Zufällige Spawnpunkte fair machen?

22

Wenn alle Spieler auf zufälligen Positionen in der gleichen Entfernung zu benachbarten Spielern erscheinen, ist die Anzahl der Spieler proportional zur Wahrscheinlichkeit, dass ihre Spawn-Positionen ungerecht sind. Je näher die Spieler der Kartenmitte kommen, desto wahrscheinlicher ist es, dass sie auf andere Spieler treffen und desto unwahrscheinlicher ist es, dass sie überleben, verglichen mit Spielern am Rand der Karte. Angenommen, alle Spieler werden gleichzeitig erzeugt.

Gibt es eine Möglichkeit, Spawnpunkte zu formen oder die Karte zu ändern, so dass:

  1. Alle Spieler haben eine begrenzte Anzahl benachbarter Gegner.
  2. Alle Spieler haben die gleiche Chance, auf benachbarte Gegner zu treffen.
  3. Die Kartengröße muss sich nicht proportional zur Anzahl der Spieler erhöhen.
  4. Diese Einschränkungen gelten nicht für unpassierbare Leerzeichen.

Die Antwort muss nicht perfekt sein, nur offensichtlich besser als die Alternative. Out-of-the-Box-Denken willkommen.

Unangemessener Code
quelle
10
Im Kreis laichen?
Zibelas
1
@Zibelas Traditioneller Ansatz, verstößt jedoch gegen Anforderung 3, und bei vielen Spielern entsteht eine riesige Karte und ein leeres Interieur.
Unangemessener
4
Es hängt von Ihrer Art des Spiels ab. (2D / 3D, Respawn / Last Man Standing, etc.) Perfektes Spawn ist in diesem Fall nur auf einer Kugelform-Welt möglich (mehr Spieler, näheres Spawn, aber Sie können garantieren, dass sie alle die gleiche Distanz haben). In einer 2D-Welt mit festen Grenzen haben Sie immer weniger angrenzende Spieler, da Sie keinen Platz haben, um sie zu erzeugen. Wenn es sich um ein 3D-Spiel handelt, können Sie mehrere Ebenen haben.
Zibelas
1
Ich denke, es würde helfen zu wissen, was für ein Spiel du machst. Es klingt wie eine Art Kriegsspiel, aber was sind die Details? Ist es ein Schütze? Beginnen Sie mit all Ihren Waffen oder müssen Sie Dinge erforschen und finden? Was ist die Siegbedingung? Wie lange wird ein Match voraussichtlich dauern?
RothX
3
Nicht zur vollständigen Beantwortung, aber ich denke, jeder strebt nach "fairem und ausgewogenem Laichen", was ... keinen Spaß macht. Schauen Sie sich das hervorragende Laichen von PUBG (und anderen Battle Royale) an: Spieler können fast überall "laichen" (also springen und landen ...) - wenn Sie Konflikte und Dramen wollen, wählen Sie den Ort, an dem die meisten Spieler landen / laichen. Hohes Risiko, hohe Belohnung, aber nur, wenn der Spieler es will. Du kannst irgendwo im Wald landen, du hast Zeit, dich vorzubereiten - geringes Risiko, geringe Belohnung, aber manche Spieler mögen es lieber (wie ich zum Beispiel;)). Es ist NICHT zufällig, sondern von den Spielern gewählt.
Jan "splite" K.

Antworten:

27

Lassen Sie die Spieler ihre Startpositionen selbst auswählen.

Laichen Sie zu Beginn des Spiels alle Spieler in der Mitte der Karte, ohne die anderen Spieler zu verletzen. Sie müssen sich dann austoben und die Mittel beschaffen, um sich gegenseitig anzugreifen (eine Basis aufbauen, eine Waffe aufheben, Ressourcen sammeln usw.).

Je nachdem, ob Sie prozedurale oder handgefertigte Karten verwenden, müssen Sie entweder ein bisschen Glück oder Kartenwissen mitbringen, um einen guten Startort frühzeitig zu finden. Aber wann und wo man sich niederlässt, ist meist eine strategische Entscheidung. Eine frühzeitige Bereitstellung bietet Ihnen einen Zeitvorteil, bringt Sie jedoch in eine gefährliche Position. Wenn Sie Ihre Basis sorgfältig auswählen, bleiben Sie im frühen Spiel zurück, können aber im mittleren und späten Spiel einen entscheidenden Vorteil haben.

Philipp
quelle
3
@Shashimee Eigentlich glaube ich, dass ich diese Methode zuerst in Anno 1602 gesehen habe. Ich glaube auch, dass einige der frühen C & C-Spiele diese Option als Mehrspieler-Option hatten (aber ich bin mir nicht sicher, ob ich mich richtig daran erinnere).
Philipp
3
@Philipp MULE für den Commodore 64 rund 15 Jahre älter und lassen Sie auch Ihre Positionen
auswählen
Sie stoßen dann auf das Problem, wo Sie zu Ihrem Spawn-Punkt verfolgt werden. Dies könnte natürlich eine gewünschte Spielmechanik sein, aber es könnte auch extrem frustrierend sein und nicht etwas, das Sie in Ihrem Spiel haben möchten. Eine gute Idee wäre es, die Charaktere unsichtbar und frei von Spielerkollisionen erscheinen zu lassen und ihre Basis zu finden, bevor Sie das Spiel starten.
Dent7777
Diese Methode wird von den benutzerdefinierten Spielmodi "Vampirism" und "Tree Tag" in Warcraft 3 verwendet. Sie funktioniert am besten, da alle Spieler (zumindest anfangs) verbündet sind und das gegnerische Team später freigelassen wird.
Kroltan
Dies hat auch den Vorteil, sich weniger unfair zu fühlen. Wenn Sie zufällig spawnen und schnell sterben oder Strafen erleiden, kann sich das ungerecht anfühlen, auch wenn es ziemlich fair ist. Wenn Sie wählen, wo Sie den Tod oder Strafen hervorrufen möchten, kann dies weniger unfair und bestrafend wirken, da die Auswahl von Spawnpunkten eine Fähigkeit für sich ist und etwas ist, in dem Sie besser werden können. Das heißt, wenn es wirklich schwierig ist, Spawnpunkte zu wählen, könnte es sich auch ungerecht anfühlen, weil höher qualifizierte Spieler viel besser darin abschneiden würden.
Anubian Noob
9

Die Anforderungen verstehen

  1. Alle Spieler haben eine begrenzte Anzahl benachbarter Gegner.

Zunächst geht es um die Spawnpunkte der Spieler, nicht um die aktuelle Position der Spieler zu einem bestimmten Zeitpunkt im Spiel. Nur um das aus dem Weg zu räumen.

Angrenzend ist gut definiert, wenn wir über ein Diagramm sprechen. Wir können uns eine Karte vorstellen, die die Navigierbarkeit auf der Karte darstellt - von nun an "die Grafik".

Wenn der Can-Node höchstens einen Spawn-Punkt haben kann, ist es sinnvoll, davon zu sprechen, dass sie "benachbart" sind. Hinweis: Ich werde Knoten aus Gründen, die später ersichtlich werden, nicht dazu zwingen, höchstens einen einzigen Startpunkt zu haben.

Um den Graphen zu erstellen, müssen wir Dinge wie Mauern, Brücken, Leitern, Teleportationspunkte oder sogar den Flugraum berücksichtigen, wenn es einen Spieler geben könnte, der fliegen kann. Jeder Knoten repräsentiert einen überfahrbaren Ort; Jede Verbindung repräsentiert eine mögliche Bewegung.

Hinweis: Größe und Form der Knoten kennen und mit tatsächlich benachbarten Knoten arbeiten. Betrachten Sie Knoten nicht als Punkt. Beachten Sie, dass Verbindungen keine Länge haben. Verwenden Sie auch konvexe Knoten.

Das Diagramm könnte vorkompiliert worden sein (die Karte wurde von einem Designer erstellt); Andernfalls kann es im laufenden Betrieb erstellt werden, wenn die Karte nach dem Zufallsprinzip erstellt wird.

  1. Alle Spieler haben die gleiche Chance, auf benachbarte Gegner zu treffen.

Ich gehe davon aus, dass Gegner andere Spieler sind. Wieder nur, um das aus dem Weg zu räumen.

Unter der Annahme, dass jeder Spieler einen zufälligen Schritt macht, wird die Wahrscheinlichkeit, einen Spieler an einem bestimmten Punkt zu finden - auf einer ebenen Fläche, frei von Hindernissen - durch eine (Gauß'sche) Funktion der Entfernung zum Startpunkt gegeben - von nun an " Funktion".

Da wir am Diagramm arbeiten, werden wir stattdessen die Werte im Diagramm mit Anmerkungen versehen.

  1. Die Kartengröße muss sich nicht proportional zur Anzahl der Spieler erhöhen.

Wenn wir die Einschränkung hätten, einen einzelnen Spawn-Punkt pro Knoten zu haben, dann bräuchten wir kleinere Knoten, um mehr Spieler hinzuzufügen. Wenn wir die Grafik festlegen, bevor wir wissen, wie viele Spieler wir haben werden, müssen wir möglicherweise die Knoten für das jeweilige Spiel unterteilen.

  1. Diese Einschränkungen gelten nicht für unpassierbare Leerzeichen.

Ich habe nicht vor, Hindernisse hinzuzufügen, um das Problem zu lösen. Au contraire muss ich um die Hindernisse arbeiten. Wenn sie nicht da wären, wäre die Implementierung einfacher.


Lösung

Wir versuchen, N Spawnpunkte so zu platzieren, dass die Chance, bei all diesen Spawnpunkten auf einen anderen Spieler zu treffen, gleich ist.

Wir können den Fehler als Summe der Differenzen der Chancen zum Mittel der Chancen messen. Wir versuchen das zu minimieren (in der Tat wollen wir es auf 0 setzen).

Dazu müssen wir die Chance kennen, auf jedem Knoten des Graphen auf einen Spieler zu treffen.

Beginnen Sie mit Null, um diese Chance zu berechnen. Da die Chance, einen Spieler auf einem bestimmten Knoten zu finden, wenn es keine Spieler gibt, Null ist. Gehen Sie dann für jeden Spawnpunkt durch das Diagramm und addieren Sie zur mit Annotationen versehenen Chance den Wert der Funktion für den aktuellen Spawnpunkt.

Hinweis 1: Das Hinzufügen oder Verschieben eines Spawn-Punkts wirkt sich auf die Wahrscheinlichkeit aus, dass auf der gesamten Karte ein Spieler angetroffen wird.

Hinweis 2: Wenn Sie nachverfolgen, wie stark sich jeder Spawn-Punkt auf die Chance auswirkt, wird dies einfacher.

Hinweis 3: Da Knoten eine Größe haben, hängt es von der Größe der Knoten ab, wie nahe Sie an error = zero kommen können. Sie können präziser arbeiten, indem Sie mit Wertebereichen arbeiten (minimale und maximale Wahrscheinlichkeit, abhängig von der jeweiligen Position der Startpunkte innerhalb des Knotens).

Platziere die Spawnpunkte nach dem Zufallsprinzip und beginne sie so zu verschieben, dass der Fehler kleiner wird. Und machen Sie so lange weiter, bis wir uns nicht mehr verbessern können (zu viele Iterationen ohne Verbesserung, oder der Fehler ist Null).

Hinweis 4: Wenn Sie einen Spawnpunkt verschieben, können Sie die Chance nutzen, auf einen Spieler zu treffen (mit Ausnahme des Spawnpunkts, den Sie verschieben), um zufällig eine neue Position für einen Spawnpunkt auszuwählen, an der die Chance besteht, auf einen Spieler zu treffen, der näher ist die Mittelwerte sind wahrscheinlicher. Ich erinnere dich daran, dass das Verschieben des Spawnpunktes den Mittelwert beeinflusst.

Das erwartete Verhalten ist, dass zu nahe beieinander liegende Spawnpunkte auseinander gehen und zu weit auseinander liegende Spawnpunkte näher rücken. Bis sie das Gleichgewicht erreichen.

Wenn Sie bei einer bestimmten Iteration mehrere Spawn-Punkte auf einem Knoten haben (was unwahrscheinlich ist, da diese sich tendenziell verschieben, aber bei genügend großen Knoten möglich sind), teilen Sie den Knoten und fahren Sie mit dem Lösen fort. Jede Unterteilung des Knotens ist gültig.


Die obige Lösung nähert sich dem Fehler = Null, erreicht aber garantiert nicht Null. Sie können es so lange ausführen, bis es ein lokales Minimum erreicht ... Theoretisch können Sie dann die Knoten so unterteilen, dass sie genau Null sind ... Dies entspricht jedoch dem Ändern der Koordinaten des Startpunkts!

Versuchen Sie simuliertes Tempern, um den Startpunkt innerhalb des Knotens zu verschieben. Obwohl es sich, ehrlich gesagt, wahrscheinlich nicht lohnt, sich mit diesem Detaillierungsgrad zu beschäftigen.


Ich möchte klarstellen, dass das Ergebnis für eine flache Karte ohne Hindernisse nicht gleichmäßig verteilte Punkte sein wird. Wenn die Karte Kanten hat (d. H. Wenn sie nicht umbrochen wird), befindet sich mehr Startpunkt näher an den Kanten. Dies liegt daran, dass Punkte in der Mitte aus mehr Richtungen erreicht werden können, was die Wahrscheinlichkeit einer Begegnung erhöht andere Spieler dort. Somit zeigen weiter auseinander in der Nähe der Mitte, um dies zu kompensieren.

Theraot
quelle
6

Es hängt davon ab, welche Art von Spiel Sie erstellen möchten und wie schnell es ist. Die perfekte gleichmäßige Verteilung ist auf einer Kugel wie der Welt möglich (zum Beispiel Planetary Annihilation). Aber ist das eine faire Option in Ihrem Spiel? Selbst wenn alle Leute auf gleicher Distanz laichen, haben manche Brut einen besseren Vorteil.

  • Näher / bessere Waffen in Reichweite / mehr Ressourcen
  • Bessere Deckung / mehr versteckt / Übersicht
  • Im „Fluss“ der Spieler sind einige Orte attraktiver als andere (denken Sie an eine vollständige Waldkarte mit einem einzelnen Haus an einem Ort, unabhängig davon, wo sich das Haus befindet, gute Chancen, dass die Leute es überprüfen).

Ist Ihre Karte eine feste oder eine prozedural erzeugte? Und haben Sie jemals versucht, Age of Empires mit 8 Personen auf einer 2-Personen-Karte zu spielen? Es ist nicht möglich, die Spieler unendlich zu skalieren, ohne die Kartengröße anzupassen. Sogar eine unfaire Startplatzierung kann viel Dynamik in das Spiel bringen (siehe die Worms-Serie). Niemand hat sich beschwert, wenn Sie direkt in einer großen Gruppe aufgetaucht sind, solange Ihre einrundige Allianz mit einem anderen Spieler andauerte oder Sie nach der ersten Runde nicht die überlebendsten Würmer hatten.

(Ich werde ein paar weitere Beispiele hinzufügen, wenn ich mehr über Ihre Art von Spiel weiß.)

Zibelas
quelle
5

Gehen Sie für etwas, das bisher nicht vorgeschlagen wurde: Stellen Sie sicher, dass es keinen Mittelpunkt auf der Karte gibt. Damit meine ich, dass sich die Kartenränder an die gegenüberliegenden Seiten anschließen. Dies würde viel Programmierarbeit erfordern, aber in der Praxis kann sich das Niveau unendlich wiederholen, wenn Sie in eine Richtung gehen. Dies bedeutet, dass es kein Zentrum gibt und eine zufällige Spawnposition keine Vor- oder Nachteile hat.

Sie können dies tun, indem Sie eine flache, quadratische Karte erstellen und jede Kante mit einer Kopie der gegenüberliegenden Kante verbinden. Wenn ein Spieler die Seite verlässt, wird er ohne Wissen des Spielers an die gegenüberliegende Kante teleportiert. Theoretisch kann man natürlich keine Spieler auf der anderen Seite der Grenze sehen. Um dies zu beheben, erstellen Sie Klone dieses Spielers, die auf der anderen Seite der Grenze herumzulaufen scheinen, damit Sie sie sehen können. Wenn Sie auf sie zulaufen, teleportieren Sie sich über den Spieler und der tatsächliche Spieler steht dort, wo sich der Dummy befunden hat.

Alternativ könnte sich die gesamte Karte außerhalb einer Kugel befinden, dies erschwert jedoch das Ablaichen von Koordinaten.

Aric
quelle
2
Oder machen Sie eine Karte, auf der Sie in der Mitte viel leichter jagen oder jagen können und die Beute auch leichter finden können. Aber auch hier ist es viel einfacher, auf diese Weise zu jagen und in nicht in der Mitte gelegenen Gebieten zu machen Es ist also weniger wahrscheinlich, dass Spieler andere Benutzer finden und plündern. Wenn sie mehr plündern möchten, müssen sie in die Mitte gehen. Wenn sie länger überleben möchten, müssen sie dort bleiben, wo sie sind. Machen Sie also im Grunde den Nachteil von zufälligen Spawns zum Vorteil.
Ave
4

Hier sind einige mögliche Lösungen:

  • Laichen Sie zufällig auf dem Umfang des Kreises
  • Laichen zufällig auf Radien (nicht laichen, um die Mitte zu schließen)
  • Füge eine zufällige Spawn-Zeitkomponente hinzu

Diagramm der Laichmechanismen

dnk drone.vs.drones
quelle
Das zweite Bild ist eine gute Option. Es löst das Problem der ersten Option, bei der der Spieler genau weiß, wo sich alle anderen Spieler befinden.
Zanon
@Zanon Mit dem ersten Bild können (und werden) Spieler wegziehen, bevor jemand dorthin kommt. Zweitens wird es zu unfairen Erscheinungen kommen, von denen einige nahe beieinander liegen. So etwas wie vielleicht dies , wo es 2 Kreise und die Differenz zwischen kleineren und größeren ist , wo sie laichen, so wie zweites Bild, aber weniger ins Zentrum.
Ave
1

Grundsätzlich glaube ich, dass dies ein Problem der Graphverteilung ist. Unter der Annahme einer Deathmatch-Situation (jeder andere Spieler ist ein Feind) müssen Sie Ihre Karten als zusammenhängende Grafik modellieren und nachverfolgen, welchem ​​Knoten in der Grafik jeder Spieler am nächsten ist. Nicht jeder Knoten muss ein Spawnpunkt sein, aber Sie benötigen das komplexe Diagramm, um die Abstände zwischen den Spawnpunkten zu modellieren. Zur Spawn-Zeit iterieren Sie dann den Graphen und bewerten jeden spawnbaren Knoten basierend darauf, ob es in der Nähe befindliche Knoten Spieler gibt.

Der ideale Knoten hat dann:

  • Derzeit sind keine Spieler dabei
  • Mehr als null Spieler in Knoten in der Nähe (einige wenige Links entfernt)

Stellen Sie sich vor, Ihr Diagramm wurde reguliert und Sie zeichnen konzentrische Zonen um jeden Knoten. Sie bestrafen den Knoten, wenn sich in den inneren Zonen bereits Spieler befinden, und belohnen Knoten, bei denen sich Spieler in der richtigen Entfernung befinden. Sie möchten das Laichen nahe genug bei anderen Spielern fördern, damit sie schnell Interesse finden, aber nicht so nahe, dass sie sich darauf stürzen, bevor sie die Gelegenheit haben, sich zu orientieren.

Sie werden benötigen die Kartengröße zu erhöhen , da die Zahl der Spieler wächst, aber die kNotwendigkeit , nicht mehr als 1 oder größer zu sein. Ihr schlimmster Fall wird immer noch sein, dass jeder Knoten in der Grafik mindestens einen Spieler hat. In diesem Fall gibt es keine guten Knoten, und Sie müssen diesen Fall erleiden und einen Spieler hervorbringen, der weiß, dass dies der Fall ist lande direkt auf einem anderen. Der Bewertungsalgorithmus sollte weiterhin die Knoten gewichten, damit Sie mit den wenigsten anderen Spielern auf dem Knoten erscheinen.

Bedenken Sie, dass Ihr Kartendiagramm sorgfältig erstellt werden muss, mit Kenntnis der Karte, ihrer Routen, eventueller Engpässe und der effektiven Entfernung zwischen Knotenpunkten, nicht der tatsächlichen Entfernung. Verwenden Sie wie in etwa die gemessene Zeit, um zwischen Knoten und nicht die Entfernung zu wechseln, um schwierigeres Gelände zu berücksichtigen. Außerdem müssen Sie Offenheit und Deckung berücksichtigen. Zwei Knoten können physisch weit voneinander entfernt sein. Da sie jedoch sehr offen sind, kann das Laichen eines Spielers an jedem Knoten bedeuten, dass sie genauso anfällig sind, als hätten Sie sie direkt nebeneinander erzeugt.

Verfeinerungen:

  • Füge eine vorübergehende Strafe hinzu, um Punkte zu erzielen, wenn ein Spieler kürzlich in diesem Knoten aufgetaucht ist, um die Bildung von Chokepoints zu verhindern (ein endloser Strom von Spielern, die aus der gleichen Richtung kommen und abgeholt werden).
  • Fügen Sie die Zufälligkeit innerhalb eines Bereichs hinzu (wählen Sie z. B. die besten 3 Knoten aus und wählen Sie sie dann mit gleicher Wahrscheinlichkeit nach dem Zufallsprinzip aus), um eine größere Variation zu erzielen.
  • Fügen Sie der Mitte der Karte (oder den interessantesten Punkten) ein Anfangsgewicht hinzu, wenn noch niemand aufgetaucht ist, sodass Sie an bekannten Orten aufgetaucht sind, auch wenn jeder Knoten eine Punktzahl von Null hat, da keine anderen Spieler anwesend sind.
MrCranky
quelle
0

Einige andere haben bereits die Einschränkungen Ihrer Anforderungen besprochen (die Karte muss irgendwann skaliert werden, um eine Überfüllung zu verhindern usw.) und sind letztendlich der Tatsache entgangen, dass es wahrscheinlich keinen "perfekten" Platzierungsalgorithmus gibt. Wenn es wahrscheinlich keinen "perfekten" Algorithmus gibt, schaue ich immer in Richtung Heuristik. Sie haben mehrere Kriterien, die entweder direkt oder indirekt im Widerspruch zueinander stehen, zusammen mit einem sehr komplizierten Suchraum. Eine optimale Lösung zu finden, ist vielleicht nicht machbar oder praktisch, aber mit ein wenig Abstimmung kann ein statistischer Ansatz die meiste Zeit sehr gut funktionieren.

Ansprechen Ihres dritten und vierten Kriteriums: "Die Karte sollte nicht erweitert werden müssen."

Ich würde am Anfang sicherstellen, dass Sie eine Überfülle an Knoten haben (dh: dicht wie ein Navigationsnetz für die Wegfindung). Dies verteuert die Berechnung der Distanz zu anderen Spielern (nicht direkt benachbarte Knoten), aber dies ist kein Vorgang, der mehr als einmal pro Runde stattfinden wird (nehme ich an). Ein Bonus davon ist, dass Sie für die meisten Ihrer Operationen eine vorgerollte Navigationsbibliothek verwenden können. Darüber hinaus wird das Umfahren von Hindernissen auf faire Weise respektiert, ohne dass es zu einer euklidischen Entfernung kommt (Spieler in einem Labyrinth könnten enger beieinander stehen als auf freiem Feld).

Berechnen Sie Heuristiken für Ihre gewünschten Spawn-Eigenschaften:

Nachdem Sie alle Spieler nach dem Zufallsprinzip platziert haben, berechnen Sie die Leistung der umliegenden Knoten anhand Ihrer Kriterien (Entfernung zu anderen Spielern, Entfernung zum Spawn usw.) Sie möchten in einem bereinigten Idealfall (flaches rechteckiges Gitter ohne Hindernisse), und die Leistung sollte ähnlich sein, wenn Sie die Welt wieder hinzufügen. Von dort aus können Sie entscheiden, wie viele Knoten durchsucht werden sollen, wie hoch der Schwellenwert für das Verschieben eines Startpunkts ist und wie viele Iterationen Sie durchführen möchten, bevor Sie den Spawn beenden und das Spiel beginnen.

Aaron
quelle
0

Wenn es sich bei dem Spielfeld um einen topologischen Torus handelt (dh ein Rechteck, bei dem das Überschreiten der Grenzen das Betreten der gegenüberliegenden Seite bedeutet), ist dies wahrscheinlich eine gute Antwort: Der Spieler jspawnt bei x = (pjW/N) mod W, y = (qjH/N) mod H, wo W,Hdie Dimensionen des Rechtecks ​​liegen, Nist das Anzahl der Spieler und p,qzu bestimmende ganze Zahlen; sie sind verschieden, (wahrscheinlich) relativ gut und nicht zu weit vonsqrt(N) . Die Spawnpunkte bilden ein schräges Tapetenmuster.

Dies setzt voraus, dass die Spieler nur zu Beginn des Spiels laichen. Wenn sie später erscheinen, sollten Sie sie so weit wie möglich von der aktuellen Position eines Spielers entfernt platzieren - an einem Scheitelpunkt des Voronoi-Diagramms, das von den anderen Spielern definiert wurde.

Anton Sherwood
quelle
0

Wie wäre es mit:

Jeder Spieler ist von einer nicht laichenden Box (oder einem Kreis) umgeben.

Wie in gibt es ein Feld einer bestimmten Größe, das um jeden Spieler herum erscheint und diesem Spieler folgt - kein anderer Spieler kann in diesem Feld erscheinen.

Diese Felder wirken sich nur auf das Laichen und nicht auf andere Bewegungen während des Spiels aus.

Dies funktioniert entweder beim erstmaligen oder kontinuierlichen Laichen.

(Punkte zeigen Spieler an und grün zeigt möglichen Spawnbereich für neue Spieler an)

Die Kartengröße muss sich nicht proportional zur Anzahl der Spieler erhöhen

Um damit umzugehen, können Sie eines von zwei Dingen tun: (oder beides)

  • Verringern Sie die Größe der Nicht-Laichboxen basierend auf der Anzahl der Spieler.
  • Erlaube bis zu X feindlichen Spielern, in jeder Kiste zu erscheinen.
    • Diese Zahl kann sich mit jedem Schritt erhöhen (beginnend bei 0).
    • Variante 1: Haben Sie eine kleinere No-Spawn-Box und eine größere Limited-Spawn-Box.
    • Variante 2: Gewichtswahrscheinlichkeiten entsprechend der Nähe des neuen Spawns zu diesem Spieler (falls in der Box enthalten) - sind möglicherweise schwer effizient umzusetzen.
NotThatGuy
quelle