Bevor wir in die Details gehen, hier nochmal der Hinweis, auf den ersten Teil dieser Artikelreihe zum neuen System für die Instanzierung:
Darin findet Ihr das komplette englische Transkript der Aussagen aus 10 for the Chairman. Außerdem - wie oben schon erwähnt - habe ich dort insbesondere die Server-Seite ausführlich beschrieben und einige Hürden, die CIG noch zu überspringen hat, erläutert.
Chris Roberts Erklärung für die Client-Seite
Nun aber zum eigentlichen Inhalt dieses Artikels. Chris Roberts hat in 10 for the Chairman deutlich gemacht, wie er das Problem auf der Client-Seite lösen möchte, wenn im Sichtbereich eines Schiffes zu viele andere Schiffe zugegen sind. Hier der Auszug aus der Folge:
Und für alle von Euch, die jetzt das Video nicht nochmal schauen wollen (oder können) hier das englische Transkript:
Well, on a client you just can't render 500 people. Just won't happen. What we will probably do is, besides having aggressive Level of Details, at some point we just cull out people beyond a certain area. They will all be sort of tagged and known there. As you move around as a client people will come in and out of your visibility - basically your sphere of visibility. I think it will be pretty seamless.
On top of that, you know, getting down to your friends which is one key parts of this question. We will know, who are sort of your acquaintances, who is your person of interest, who you play with, who is on your friend list, stuff like that. If you are making decisions of who you can see: Like as in at some point there are to many people and the client saying: "I can't just render that many people. I have to choose some entities and people to not see."
It would not be the people you as a player has sort of tagged as your friends or the ons you are interested in. They would get preference in terms of the algorithm that determines who you see and who is culled out.
Die Grundlagen des Systems
Zunächst geht Chris Roberts darauf ein, was passieren muss, wenn sich Schiffe außerhalb des Sichtbereichs des eigenen Schiffes aufhalten. Sie müssen nicht ausgeblendet werden, da man sie eh nicht sieht, sondern gar nicht erst als zu rendernde Objekte an den Client geschickt werden. Sie sollten lediglich als Punkte auf dem Radar oder Scanner zu sehen sein.
Raumschiffe um das eigene Schiff |
Das obere Bild zeigt Euch wie das dann aussehen würde. Ihr seht die Schiffe im Sichtbereich (der innere Kreis). Das könnt Ihr in der Alpha ganz leicht sehen, wenn ihr zum Beispiel von Port Olisar wegfliegt und zurückschaut. Port Olisar wird immer kleiner und verschwindet irgendwann ganz. Das wäre dann das Ende des Sichtbereiches.
Daran anschließen würde sich der Bereich, den das Radar oder vielleicht Scanner später im Spiel abdecken würden. Hier sieht man die anderen Schiffe nur auf einem Bildschirm des Schiffes als Punkte dargestellt.
So kann sich der Client komplett auf die Schiffe im Sichtbereich konzentrieren und bekommt für die anderen Schiffe nur eine Liste der Position für das Radar oder vielleicht die Sternenkarte. Dann ist für die Grafikkarte nur noch ein Punkt zu zeichnen, was natürlich kein Problem ist. Selbst die Positionsangaben müssen nicht exakt sein, da man die Schiffe ohnehin nicht in 3D sieht. Eine ungefähre Position würde also völlig ausreichen.
Ganz außen auf dem oberen Bild sind dann noch weitere Schiffe, über die der Client und damit der Spieler keine Informationen hat (Vielleicht gibt es dafür später Langstreckensensoren, die dann für einen kleinen Bereich auch weit entfernte Schiffe auf einer Karte sichtbar machen werden).
Bewegen wir uns jetzt mit dem Schiff durch die Ansammlung anderer Schiffe hindurch, dann verschieben sich einfach die beiden Grenzen (die eigentlich Kugeln um das Raumschiff sind) und wir sehen andere Spieler im Sichtbereich und auf dem Radar.
Mit diesem Vorgehen kann CIG sicherstellen, dass der Client nur die Daten übers Netzwerk bekommt, die er wirklich braucht, um Schiffe in der 3D-Umgebung darzustellen. Und diese Daten sind sehr umfangreich: genaue Positions- und Richtungsdaten, Zustand des Schiffes, Daten zu Komponenten, Geschütztürmen und vieles, vieles mehr. All dies wird ständig aktuell vom Server zum Client geschickt und dann muss es verarbeitet werden.
Wie sieht das jetzt für die anderen Schiffe außerhalb des Sichtbereichs aus? Da sie nur durch Punkte auf dem Radar oder der Karte dargestellt werden (oder gar nicht), verbrauchen sie so gut wie keine Bandbreite übers Netzwerk. Zusätzlich müssen sie auch nicht ständig aktuell gehalten werden. Ein paar Sekunden Verzögerung bei der Übertragung und Verarbeitung ist überhaupt kein Problem.
Insofern ist dies alles eine recht augenscheinliche Optimierung der Netzwerklast und wird spielerisch so gut wie keine Auswirkungen haben. Einziges Problem: Dies ist nicht das normale Verhalten der CryEngine, so dass CIG hier noch einiges an Arbeit bevorsteht, um dies auch so umzusetzen. Das ist zwar viel technischer Aufwand, aber ich sehe hier keinerlei fundamentale Probleme in der Umsetzung.
Zu viele Raumschiffe im Sichtbereich
Soweit so gut. Solange also im Sichtbereich des eigenen Raumschiffes niemals mehr Raumschiffe vom Client zu verarbeiten und anzuzeigen sind, als er leisten kann, gibt es keine Probleme mit größeren Ansammlungen von Raumschiffen. Leider wird dies natürlich nicht der Fall sein. Es gibt unzählige Möglichkeiten, in denen im Sichtbereich schnell zu viele Spieler sein könnten:
- Rund um die großen Planeten (Erde, Terra)
- Strategisch günstig gelegene Planeten Raumstationen
- Start- und Landebuchten sowohl auf Planeten als auch Raumstationen
- Quests- bzw. Missionshubs sowie die Orte wo die Missionen hinführen
- Jede Art von größerer Raumschlacht (Dogfighting mit vielen kleinen Schiffen + Trägerschiffe etc.)
- und vieles mehr
Dazu kommt noch das normale Spielerverhalten in MMOs. Viele Gilden treffen sich im Spiel an zentralen Punkten. Meist wo es genug Shops gibt, um die nötigen Vorräte für die kommenden Aufgaben aufzufüllen. In Star Citizen wird das selbstredend um Raumstationen und vor Planeten sein. Fliege ich jetzt also auf eine solche Raumstation zu, wo sich zig Gilden gerade auf einen "Raid" vorbereiten, dann kann es dort sehr schnell im Sichtbereich komplett überlaufen sein.
Was sieht Chris Roberts in diesem Fall vor? Wie Ihr oben lesen konntet, sagt er, dass dann der Client (mit den Daten des Servers zusammen) Raumschiffe im Sichtbereich ausblenden wird. Das folgende Bild zeigt Euch, wie das dann aussehen könnte. Den Scannerbereich und die Ränder habe ich hier der Einfachheit halber weggelassen.
Ausblenden von Raumschiffen im Sichtbereich |
Das ist selbstverständlich die logische Konsequenz, wenn zu viele Spieler an einem Ort versammelt sind, und es keine Instanzen gibt. Jeder von Euch hat sicher in einem anderen MMO mal einer riesigen Ansammlung an Spielern beigewohnt. Ab einer bestimmten Zahl an Spieler bewegt sich einfach nichts mehr. Das liegt ganz oft daran, dass das Netzwerk und die CPU (die die Pakete zu verarbeiten hat), einfach nicht mehr hinterherkommen.
Wenn Ihr jetzt noch bedenkt, dass Star Citizen riesige Schiffsmodelle hat, die Dutzende Komponenten haben, die alle übers Netzwerk übertragen werden müssen (ein kleines Schiff wie die Hornet hat um die 70 Komponenten), dann sollte schnell klar sein, dass bei Star Citizen schon eine wesentlich kleinere Zahl an Spielern (Schiffen) für eine Überlastung des Netzwerkes sorgen könnte, als bei normalen MMOs. Insofern sehe ich hier gar nicht die Grafikkarte als Hauptproblem (sie würde es aber werden, wenn die Netzwerklast gestemmt werden könnte).
CIG hat also keine andere Möglichkeit, als Spieler auszublenden, um stabile Frameraten zu erreichen.
Jetzt stellt sich aber die Frage, wie entscheidet das Spiel, welchen anderen Spieler ich sehe und wen nicht. Dafür soll die Freundesliste, die Organisation und weitere Kriterien genutzt werden (wahrscheinlich Ping, aktuelle Gruppe, ...). Chris Roberts sagt, dass dies sicherstellen sollte, dass nicht die falschen Spieler im Sichtbereich ausgeblendet werden.
Probleme mit der Immersion
Ich sehe das anders als Chris Roberts. Es gibt meiner Meinung nach viele Konstellationen, wo ein solcher Algorithmus schnell an seine Grenzen stößt und dann die falschen Entscheidungen treffen könnte. In der Folge möchte ich Euch einige solcher Beispiele näher bringen.
Alle Beispiele beziehen sich natürlich darauf, dass im Sichtbereich zu viele Schiffe sind und so Raumschiffe ausgeblendet werden müssen. Nehmen wir also an, dass wir am Release-Tag von Star Citizen zwei Spieler haben, die sich das Spiel kaufen. Sie kommunizieren mit Skype oder TS direkt miteinander und wählen die gleiche Location für den Hangar aus, um dann zusammenspielen zu können.
Wenn sie jetzt mit ihrem Schiff in den Weltraum starten, dann wird dort am Release-Tag die Hölle los sein. Das heißt, das Spiel wird bei beiden Spieler andere Schiffe ausblenden müssen. Da beide Spieler neu sind, hat der Algorithmus keinen Anhaltspunkt, dass sich die beiden Schiffe gegenseitig sehen müssten.
Wie wahrscheinlich ist es, dass der Algorithmus die falsche Entscheidung trifft? Sind im Sichtbereich 500 Schiffe und der Client schafft 25 Raumschiffe, dann wären 95% der Schiffe die falsche Entscheidung.
Zwei Spieler im Sichtbereich sehen sich nicht |
Also kann es in diesem Fall schnell passieren, dass die Spieler mit ihren Schiffen direkt voreinander stehen und dies dann auch über Skype/TS bequatschen, sich aber nicht sehen können.
Natürlich könnte man jetzt sagen, das ist halt so, wenn man dem Spiel nicht mitteilt, dass man sich sehen will. Nach langem Suchen nach der Ursache finden auch unsere beiden Spieler heraus, dass sie eine Gruppe aufmachen müssen, um sich gegenseitig sehen zu können.
Nach dem ersten Immersion-Reinfall (man sieht sich gegenseitig nicht) präsentiert ihnen das Spiel dann gleich den nächsten Lacher: Beide Spieler sehen den jeweils anderen aus dem Nichts erscheinen. Ich muss glaube nicht lange erklären, dass so etwas keine gute Werbung für das Spiel wäre, so mal es in den ersten paar Minuten Spielzeit passiert.
Aber selbst wenn wir dem Spiel mitteilen, wer unsere Freunde sind, wir einer Gilde beitreten und das Spiel eine lange Reihe an anderen Spielern gespeichert hat, mit denen wir mal zusammengespielt haben, kann der Algorithmus genau so schnell zu falschen Entscheidungen kommen. Und noch schlimmer, hier kann es richtig fies mit der Immersion werden.
Stellt Euch eine Raumstation wie Port Olisar vor. Dort bin ich gerade mit meiner Gilde dabei eine Aktion vorzubereiten. Wir sind eine kleinere Gruppe von 30 Schiffen. Ich kann mit meinem Client vielleicht gerade so alle Gildenmitglieder um mich herum sehen. Jetzt kommt ein Kumpel aus einer anderen Gilde online, die sich zufällig auch vor Port Olisar neben uns bereitmachen. Sie haben eine ähnliche Größe wie wir.
Wir chatten kurz miteinander und da fällt uns ein, dass er mir noch ein Item geben wollte. Also kommt er kurz zu mir rüber geflogen, um über EVA kurz das Item auszutauschen. Das Problem ist jetzt natürlich, dass er nur seine Gilde sieht und ich nur meine. Vielleicht ist das Spiel schlau genug unsere Chat-Aktivität zu interpretieren, und uns gegenseitig zusätzlich anzuzeigen.
Jetzt fliegt er also auf mich zu, aber dummerweise steht ein Schiff aus meiner Gilde ihm direkt im Weg. Er sieht das Schiff aber nicht, da er nur seine Gilde und mich sieht. Was logisch ist, warum sollte das Spiel ihm einen Spieler anzeigen, mit dem er keinerlei Kontakt hat.
Schon haben wir das nächste dicke Problem, was die Immersion angeht. Stellt Euch nur vor wie ich ihm aufgeregt schreibe, er soll dem Schiff ausweichen, und er nur fragt "Welches Schiff?". Dann fliegt er einfach durch das andere Schiff hindurch (jedenfalls aus meiner Perspektive). Noch schlimmer wird es natürlich, wenn er jetzt genau in dem anderen Schiff anhält. Was dann?
Angezeigte Schiffe für die beiden Spieler |
Ihr seht also, das personalisierte Ausblenden von Schiffen, führt unweigerlich zu solchen kuriosen Szenen. Die einzige Möglichkeit dies zu verhindern wäre, das wir beide exakt die gleichen Schiffe sehen. Das geht aber freilich nicht, denn dann müssten wir auch jeweils die anderen Gildenmitglieder sehen, was dann aber die Grenze übersteigt, welche der Client schafft.
Jetzt könnte der ein oder andere vielleicht auf die Idee kommen, man könnte doch Schiffe einblenden, wenn es zu einer Kollision kommen würde. Prinzipiell schon, aber überlegt mal, was bei plötzlichen Richtungsänderungen passiert. Dann sieht man aus dem nichts auf einmal ein Schiff vor sich auftauchen. Da ist dann nicht nur die Immersion futsch, da bekommt man richtig Frust auf das Spiel, denn das Schiff war vor der Richtungsänderung augenscheinlich noch nicht da.
Abschließend habe ich noch zwei Beispiele für Euch. Beim ersten haben wir einen Spieler mit einer extrem großen Freundesliste, der zu dem auch noch in einer 5000-Mann-Gilde Mitglied ist und sich aktuell in einem Bereich aufhält, wo viele dieser Bekanntschaften/Gildenkollegen online sind. Dann kann es schnell passieren, dass der Client zwar 25 Schiffe aus dieser riesigen Liste anzeigt, aber es könnten gerade die falschen sein.
Und schlussendlich habe ich noch diesen Fall: Zwei Spieler, die sich über den Chat, RL, Forum oder auf welchen Weg auch immer kennenlernen und zusammenspielen wollen, kann auch wieder genau das gleiche passieren, was unseren beiden Release-Spielern im allerersten Beispiel passiert ist.
Lösungsmöglichkeiten
Ich hatte oben schon die ein oder andere Idee angeführt, die ich für kaum zielführend halte. In diesem Abschnitt soll es um mögliche Systeme gehen, welche die Hauptursache für das Ausblenden von Schiffen (zu viele Spieler im Sichtbereich) reduzieren können.
Insbesondere für Planeten gibt es die Idee, mehrere Einflugschneisen zu den Landeplätzen des Planeten zu haben. Dies hat Chris Roberts in einer früheren Ausgabe von 10 for the Chairman auch schon einmal am Beispiel der Erde angedeutet. Das würde wie folgt aussehen: Nehmen wir New York als Landeplatz. Dann kann es im Orbit mehrere Bereiche geben, die gegenseitig außerhalb des Sichtbereiches sind. Von jedem von diesen kann man dann den Anflug auf die Stadt starten.
Landebereiche, im Orbit über einer Stadt auf der Planetenoberfläche |
Das obere Bild zeigt, wie das aussehen könnte. Prinzipiell könnte man eine Reihe solcher Landebereiche im Orbit der Planten einrichten, um den Andrang der Spieler besser bewältigen zu können. Ein solches System könnte dynamisch die Anzahl an Landebereiche über einem Landeplatz eines Planeten generieren, wie gerade benötigt werden.
Das ganze hört sich auf den ersten Blick sehr gut an. Man kann je nach Spieleraufkommen mehr oder weniger dieser Bereiche vor einem Planeten erstellen und Spieler mit Hilfe der Landeerlaubnis, die eingeholt werden muss, entsprechend in diese Bereiche verteilen.
Es gibt zwei Probleme bei diesem System. Erstens, ist der Platz im Orbit um New York (oder jeden anderen Landeplatz) begrenzt. Irgendwann wären weitere Bereiche auf der anderen Seite des Planeten, oder an den Polen. Dann würde auch wieder die Immersion leiden. Auch wenn das sicher nicht so schlimm wäre, wie die oben beschriebenen Probleme.
Zweitens, das Spiel kann niemanden davon abhalten nicht doch in einen vollen Bereich zu fliegen. Wenn Ihr jetzt einfach nur einmal um die Erde fliegen wollt, dann fliegt Ihr auch durch solche Bereiche, obwohl Ihr vielleicht gar nicht landen wollt. Eine andere Variante wäre, Ihr wollt Euch mit einen Freund treffen, der gerade von der Erde startet.
Dennoch ist dieses System für die Planetenorbits das Beste, was CIG machen kann, um die Spielerzahl im Sichtbereich so klein wie möglich zu halten.
Leider gibt es wenig Möglichkeiten dieses System an anderer Stelle ebenfalls einzusetzen. Raumstationen zum Beispiel werden kaum größer sein, als der Sichtbereich selbst. Selbst wenn Port Olisar, Shipping Yard Station oder die FPS-Station die doppelte, dreifache oder vierfache Größe hätte, wäre dennoch alles im Sichtbereich.
Die einzige Idee, die ich hätte wäre, dass die Raumstationen absichtlich so gebaut werden, dass man von einer Landeplattform nicht die anderen sehen kann. In Port Olisar könnte man sich vorstellen, dass es "oben" und "unten" die gleichen Aufbauten gibt. Dann könnte man nur die Schiffe auf seiner Seite sehen. Dafür müsste natürlich schon bei der Konzeption der Raumstationen darauf Rücksicht genommen werden.
Aber wollen wir wirklich Raumstationen, die absichtlich eine Art von "Sichtschutz" haben, um dieses System einzubauen. Ich denke, dass will eigentlich niemand. Insofern sehe ich für Raumstationen kaum Möglichkeiten zu verhindern, dass es dort zu viele Spieler/Schiffe im Sichtbereich gibt.
Das gleiche gilt auch für den letzten großen Bereich, die Schlachten. Dort wird man auch nur einen kleinen Teil der beteiligten Schiffe sehen. Und dort hat man keine Möglichkeit durch Tricks wie oben bei den Planeten. Eine große Schlacht im Weltraum bleibt eine große Schlacht im Weltraum.
UPDATE: In den Kommentaren kam die Frage auf, ob nicht die Verkleinerung des Sichtbereiches wie man sie in vielen Spielen (GTA, WoW, etc.) konfigurieren kann, eine Möglichkeit wäre, die beschriebenen Probleme zu lösen. Bei GTA zum Beispiel "ploppen" Hochhäuser ab einer bestimmten Entfernung aus dem Nebel auf.
In diesen Spielen ist das zwar unschön, aber man kann damit leben, da es sich um passive Spielelemente handelt. In Star Citizen würde eine solche Herangehensweise aber aktive Spielelemente (andere Spieler) zum plötzlichen Erscheinen bringen.
Habe ich also in einer großen Spielermenge den Sichtbereich so weit verkleinert, dass es für meinen Client reicht, dann sehe ich während des Fluges ständig andere Schiffe vor mir aus dem Nichts Erscheinen. Das so ein Verhalten der Immersion nicht gerade zuträglich ist, sollte klar sein.
Wenn Ihr heute in der Alpha schaut, dann wäre ein Sichtradius von um die 1000m wahrscheinlich das Minimum, das der Sichtbereich sein könnte, da bei dieser Entfernung die Größe eines anderen Schiffes (ungefähr wie ein Mauszeiger) klein genug ist, dass ein plötzliches Erscheinen gerade noch übersehbar ist.
Ein weiteres Problem wären Gefechte. Im Moment funktioniert die automatische Zielerfassung der Waffen bei etwa 2500m. Auf diese Entfernung kann man mit den Waffen treffen und Schaden anrichten. Sprich, so weit sollte der Sichtbereich im Kampf auf jeden Fall sein.
Aber nehmen wir an, dass wir in einer großen Schlacht den Sichtbereich auf ein paar Hundert Meter begrenzen, damit es für den Client reicht, dann würden andere Spieler (die man vielleicht gerade beschießen will) auftauchen und wieder verschwinden. Wenn es ganz schlimm kommt, fliegen sie zigzack über die Grenze des Sichtbereichs und dann kann man sie nicht mal mit Raketen beschießen, da die Zielerfassung immer wieder unterbrochen wird, wenn sie aus dem Sichtbereich verschwinden.
Zusammenfassend denke ich, dass man vielleicht bis ungefähr 5000m den Sichtbereich verkleinern könnte. Alles darunter schafft meiner Meinung nach wieder neue Probleme, die genau schlimm sind wie die Probleme, die man zu Beginn lösen wollte.
Schlusswort
Ich bin sehr gespannt, welche weiteren Informationen CIG uns zu diesem ganzen Themenkomplex noch geben wird. Insgesamt sehe ich sowohl auf der Server, als auch auf der Client-Seite des Systems noch viele Fragezeichen, die CIG zu lösen hat. Ich denke, dass wir zunächst abwarten müssen, welche Lösungen den Entwicklern einfallen. Sollte CIG irgendwelche Informationen Herausbringen, dann werdet Ihr hier auf dem Star Citizen Blog natürlich meine Erklärungen und Einschätzungen lesen können.
Bis dahin plane ich noch einen Artikel, der den Unterschied zwischen Zonen und Instanzen (bzw. Game-Server-Mashes) im Detail erklärt, da ich immer wieder sehe, dass dies noch zu Konfusion führt und gerne durcheinander gebracht wird.
Ich finde es gäbe noch andere weg z.B. den Sichtbereich Radius zu verkleinern denn auch in der Realität siehst du in einer Menschenmenge nicht weiter als 5 meter d.h. es sollen nur die Schife gezeigt zu denen ich auch eine tatsächliche Sichtlinie hätte
AntwortenLöschenDieser Weg wird in vielen Spielen eingesetzt, um die Umgebungsdetails im Hintergrund nicht zeichnen zu müssen. Bestimmt denkst Du an GTA oder ähnliches, wo dann Hochhäuser etc. ins Bild "ploppen".
LöschenIn diesen Spielen ist das zwar unschön, aber man kann damit leben, da es sich um passive Spielelemente handelt. In Star Citizen würde eine solche Herangehensweise aber aktive Spielelemente (andere Spieler) zum plötzlichen Erscheinen bringen.
Habe ich also in einer großen Spielermenge den Sichtbereich so weit verkleinert, dass es für meinen Client reicht, dann sehe ich während des Fluges ständig andere Schiffe vor mir aus dem Nichts Erscheinen.
Wenn Du heute in der Alpha schaust, dann wäre ein Sichtradius von um die 1000m wahrscheinlich das Minimum, das der Sichtbereich sein könnte, da bei dieser Entfernung die Größe eines anderen Schiffes (bisschen mehr als ein Mauszeiger) klein genug ist, dass ein plötzliches Erscheinen gerade noch übersehbar ist.
Ein weiteres Problem wären Gefechte. Im Moment funktioniert die automatische Zielerfassung der Waffen bei etwa 2500m. Auf diese Entfernung kann man mit den Waffen treffen und Schaden anrichten. Sprich so weit sollte der Sichtbereich im Kampf auf jeden Fall sein.
Aber nehmen wir an, dass Du in einer großen Schlacht den Sichtbereich auf ein paar Hundert Meter begrenzt, damit es für den Client reicht, dann würden andere Spieler (die Du vielleicht gerade beschießen willst) auftauchen und wieder verschwinden. Wenn es ganz schlimm kommt, fliegen sie zigzack über die Grenze deines Sichtbereichs und dann kannst Du sie nicht mal mit Raketen beschießen, da die Zielerfassung immer wieder unterbrochen wird, wenn sie aus Deinem Sichtbereich verschwinden.
Zusammenfassend denke ich, dass man vielleicht bis ungefähr 5000m den Sichtbereich verkleinern könnte. Alles darunter schafft meiner Meinung nach wieder neue Probleme, die genau schlimm sind wie die, die man zu Beginn lösen wollte.
Da ich mir gut vorstellen kann, dass andere Leser auch auf Deine Idee kommen, werde ich den gerade geschriebenen Text mit oben in den Artikel einfügen.
Danke für die schnelle Antwort.
LöschenIch verstehe was du meinst, dann bleibt meiner Meinung nur der Weg die beiden Möglichkeiten zu kombinieren zuerst die neue Idee und sobald der Client Schwierigkeiten kriegen würde die Instanzierung oder wie ich es nenne Parallel Welten greifen.Bei den Planeten oder Stationen gäbs keine allzu große Schwierigkeiten bei den großen Schlachten müsste man dann in kauf nehmen das man zwar in eigener Instanz den Sieg davongetragen hat aber die Schlacht verloren den dies geschah oft genug in der Realität wo einzelne Einheiten Hervorragend gekämpft haben aber am Ende sich doch zurück ziehen mussten weil der Rest Misserabel war.
Ich sehe das ähnlich. CIG muss bei der Lösung dieser Probleme sehr kreativ verschiedene Möglichkeiten kombinieren. Das alles zu konzipieren und zu bauen, wird seine Zeit dauern. Deshalb bin ich extrem gespannt, was sie uns in Zukunft für Informationen geben - und welchen Einfluss sie auf die Welt und ihre Glaubwürdigkeit haben werden.
LöschenSie haben sich hier für einen sehr innovativen Weg entschieden, der größtenteils unerforscht ist. Wenn sie es schaffen, dann wäre das für die Spielebranche ein Riesenfortschritt. Falls es aus irgendwelchen Gründen am Ende nicht funktioniert, dann wäre die von Dir beschriebene Instanzierung eine bekannte und technisch einfach umsetzbare Lösung.
Irgendwie hoffe ich aber schon, dass Chris Roberts dieses System erst jetzt vorgestellt hat, weil er sich erst sicher sein wollte, dass es auch Lösungen für Probleme gibt. Schauen wir mal wie es weiter geht...
Hi Jessie,
AntwortenLöschenich sehe das nicht ganz so problematisch. Klar ist es in einigen Situationen nicht schön, aber die alternative, Instanzen, wäre viel öfter nicht schön.
Ich würde es auch nicht so grob aufteilen wie du. Zum einen würde ich einen kleineren Bereich machen in denen immer alle Schiffe zu sehen sind. Je mehr Schiff da sind desto kleiner wird der Bereich. Jedes Schiffe hat eine nicht zu vernachlässigende Größe, wenn also 20 Schiffe immer erfasst werden sind es meistens schon mehrere 100 Meter in denen alle zu sehen sind. Diesen Bereich würde ich auch nicht Kreisrund machen sondern schauen was wirklich in Sicht ist. Nach hinten sind die Schiffe meistens eh nicht zu sehen. Also nach hinten weniger Sicht als nach vorne.
Dann würde ich nur in dem Sichtbereich der außerhalb dieses Bereichs liegt Schiffe einblenden. Wenn es zu viele sein sollten greifen deine Kriterien.
Und als drittes würde ich Schiffe in dem einblenden. Wenn es zu viele sein sollten greifen deine Kriterien.
Außerdem können Schiffe die hinter anderen Schiffen sind auch ausgeblendet werden.
Also von deinen 500 Schiffen sind 250 hinter dem Spieler und nicht zu sehen. Macht 250.
Und dann schau dir mal deine Cockpit Ansichten an, selbst wenn wir annehmen das auf dem Bildschirm 180° zu sehen sind fallen durch die Streben zwischen 10 und 70% wieder weg. Bei 30% bleiben von den 250 Schiffen nur noch 175 übrig.
Dann würde ich es noch so machen das ich im Cockpit eine Schiffsliste aufrufen kann, mit allen Schiffen die in Scannerreichweite sind. Wenn also deine zwei neuen Spieler zusammen im Orbit sind, und sich nicht sehen können weil Sie zu weit voneinander weg sind, wählen Sie sich in der Schiffsliste an und schon wird der Ort wo Sie sind umrandet und Sie können sich sehen, selbst wenn das andere Schiff sonst nicht zu sehen gewesen wäre.
Klar kann es auch dann immer noch dazu kommen das etwas was man sehen sollte nicht zu sehen ist, aber wie groß ist die Chance und was wäre die Alternative.
Die Alternative wäre das die zwei Spieler mit ihren Gilden in zwei unterschiedlichen Instanzen sind und der einer zuerst komplett die Instanz wechseln muss, und den anderen zu treffen. In die andere kann er im Zweifel garnicht erst rein weil er kein Freund ist und die Plätze reserviert werden. Und wenn er dann gewechselt hat muss er hinterher wieder zurück wechseln.
Gruß
Hanse
Zum Thema Sichtbereich einschränken, habe ich ja oben schon einiges geschrieben. Dies bringt wieder neue Probleme, die das ganze auch nicht besser machen.
LöschenZu Deiner Idee, den Sichtbereich nur nach vorn einzuschränken. Damit würde man natürlich weniger Schiffe haben, aber hier bekommst Du dann das Problem, dass bei Richtungsänderungen die neuen Schiffe, die dann angezeigt werden müssen, neu vom Server geladen werden müssen. Ob so etwas bei der Komplexität und Größe der Schiffe (im Sinne von was muss übers Netzwerk geladen werden) funktioniert, würde ich bezweifeln. Du musst ja bedenken, dass das sofort und Unverzüglich sein muss, da es sonst ruckelt ohne Ende.
Eine weitere Problematik sind die Shortcuts mit denen man nach oben, rechts, links und auch zurück schauen kann. Wenn Du nur die Schiffe im Client hast, die vor Dir sind, dann muss das Spiel bei jedem dieser Tastenkürzel alle bisherigen Schiffe aus dem Speicher der Grafikkarte nehmen (falls dies die Begrenzung des Clients ist), und die neuen Schiffe hineinladen. Blickst Du dann wieder nach vorn, musst Du wieder komplett austauschen.
Insofern, glaube ich nicht, dass man dem Sichtbereich eine Richtung geben kann, weil man sowohl für Richtungswechsel im Flug, als auch für das Umherschauen zu viele Daten in Millisekunden vom Server benötigt und neu rendern muss.
Noch ein Wort zu der Alternative, die Du immer ansprichst (Instanzen mit einem Limit an Spielern). Ich habe glaube ich nirgends geschrieben, dass ich das besser finden würde. Ich würde es am besten finden, wenn CIG die Probleme, die mit dem System noch da sind, geschickt gelöst bekommt. Vielleicht haben sie schon einen Prototyp, an dem sie das alles testen können. Da müssen wir einfach noch abwarten. Nur wenn alle Stricke reißen und es technisch/spielerisch nicht zu lösen wäre, bliebe ihnen keine andere Wahl mehr als die Instanzen zu verwenden.
Wie oben schon geschrieben, hoffe ich, dass sie mit einer Kombination aus vielen Ideen/Möglichkeiten die schwierigsten Probleme gelöst bekommen.
So jetzt habe ich kurz Langweile gehabt und dachte mir mann kann das bestimmt grob Berechnen wie vielen Schiffen es überhaupt möglich wäre im Sichtbereich zu sein die Betonung liegt im groben Rechnen.
AntwortenLöschenAlso nehmen wir an einen Wirkungsbereich von 2500 m (ich weis es ist die hälfte des min. Sichtbereichs).
Das Volumen dieses Cubes währe 5000*5000*5000=125.000.000.000 sieht nach viel aus aber mach ma weiter.
Jetzt nehmen wir eine Hornet mit einer Geschwindigkeit von 200 m/s.Die Reaktionsgeschwindigkeit eines Menschen 1 Sek = 200 meter und ich bin mal so blauägig und behaupte ich kann innerhalb weiterer 1/2 sek ausweichen 0,5 Sek = 100 meter.
Also 300 m nach vorne. Machen wir uns etwas einfacher und machen das Driften zu allen seiten 150 m haben wir einen Quader von 300 m kanten länge also 300*300*300=27.000.000 Dies währe unser reiner Reaktionsvolumen insgesamt würden in unseren Wirkungsvolumen 125.000.000.000 / 27.000.000 = 4629,62 Schiffe von der größe einer Hornet fliegen und NUR Reagieren können.
Ok wir wollen aber nicht nur stehenden Hindernissen ausweichen sondern auch etwas bekämpfen die mindeste Kampfhandlung währe Anvisieren Ausrichten und 1 Salve abfeuern und wieder Ausweichen von einen im Raum Stehenden Objekt ich sage mal salopp wie ich bin zusätzliche 2 sek und lasse dabei alle physikalische Kräfte die auf mein Schiff wirken außer acht .
So dann währen wir bei 2 sek Kampf + 1,5 Sek Reagieren, Ausweichen währen wir bei 3,5 sek also 3,5*200= 700m jetzt kommt unser Kampfvolumen 700*700*700= 343.000.000m
jetzt mal wie viele Schiffe passen den in unser Wirkungvolumen rein 125.000.000.000 / 343.000.000 = 364 Schiffe die nur dabei sind eine einzige Salve abzufeuern und wieder auszuweichen und dabei nur Stehende und nicht Bewegliche ziele im Raum haben.
Und wenn ich Bewegliche Ausweichende Gegner dazu nehme und wieder ganze Physik außer acht lasse dann kann ich diese zahl locker Halbieren und dann währen wir bei 182 Schiffen in meinen Wirkungsbereich/Volumen
Also mein fazit währe wir stellen uns in unserer Phantasie viel zu viele Schiffe auf einen viel zu kleinen Raum vor was in der Realität gar nicht möglich währe den die mengen an Schiffen würden sich nur die ganze Zeit Rammen und gar keinen Schuss abgeben können
Halte ich genauso wie den PvP-Slider für nicht praktikabel. Andere einfach ausblenden ist für Immersion & Spielelemente undenkbar und auch logisch schwer zu realisieren.
AntwortenLöschenNoch dazu: würde diese "Idee" von Chris Roberts erstmal nicht zu ernst nehmen. Es ist ein Kozept, dass ganz lustig klingt, aber die Nachteile liegen ja auf der Hand.
LöschenBei befreundeten Schiffen würde man sowas vielleicht hinbekommen. Da fällt irgendwas nicht zu sehen nicht ins Gewicht.
AntwortenLöschenIch sehe das größere Problem beim Kampf, wenn zwei Kampfverbände irgendwo aufeinander treffen.
Ich würde aber bei größerer Anzahl an Schiffen einen Tunnelblick bevorzugen.
Je weiter weg man vom Tunnel kommt umso weniger Details sieht man vom Objekt. Bis zuletzt nur noch ein Punkt zu sehen ist.
Auch die Objekte wenn man sich schnell umschaut würde ich dann eher als Punkt anzeigen lassen, weil mehr Information benötigt man eigentlich nicht.
Hauptsicht bleibt einfach die Cockpitausrichtung und das markierte Ziel.
Wie breit die Tunnelsicht ist, wird einfach von der Leistungsfähigkeit der Grafikkarte und der Anzahl der vorhandenen Schiffe im Bereich bestimmt.
Gruße
High2Hell
https://forums.robertsspaceindustries.com/discussion/323415
AntwortenLöschenKleiner Bug der zur Zeit im PTU auftaucht. Allerdings wirklich beeindruckend, dass die Server bei über 200 (oder sogar 500?) Schiffen auf einem Haufen nicht abschmieren. Außerdem muss man ja sagen, dass es für die Gegnermassen, bei den meisten Leuten fast noch als spielbar zu bezeichnen ist.