Wie kann ich Powerups "fair" verteilen? [geschlossen]

7

Ich implementiere ein Bomberman- ähnliches Spiel, in dem Spieler versuchen, sich auf einer quadratischen Arena zu eliminieren. Ich implementiere derzeit Powerups, die dem Spieler, der sie gesammelt hat, einen Bonus geben (z. B. ein größeres Inventar oder eine schnellere Bewegungsgeschwindigkeit).

Wie sollte das Spielsystem diese Powerups so platzieren, dass das Spiel ziemlich ausgeglichen bleibt, vorausgesetzt, die Spieler sammeln Kräfte, die ihnen am nächsten sind?

Mein erster Ansatz war, alle paar Sekunden ein Powerup auf einem zufälligen leeren Plättchen zu erzeugen. Das Problem bei diesem rein zufälligen Ansatz ist, dass ein Spieler zu Beginn des Spiels einen massiven Vorteil haben kann, nur durch das Glück, dass viele Powerups in seiner Nähe erscheinen.

Idealerweise möchte ich, dass Powerups in der Nähe jedes Spielers gleich oft erscheinen, aber gelegentlich in der Nähe des Kartenzentrums erscheinen, um den Wettbewerb zu fördern. Um es klar zu sagen, ich möchte ein Element der Zufälligkeit - genau angeben, welche Powerups wann und wo erscheinen, würde das Spiel vorhersehbar und langweilig machen.

Welche Alternativen gibt es?

Craig Innes
quelle
8
Soweit ich mich an die verschiedenen Bomberman-Versionen erinnere, waren sie nie wirklich ausgewogen. Tatsächlich denke ich, dass sie weniger Spaß machen könnten, wenn die Powerup-Verteilung so programmiert worden wäre, dass sie "fair" ist.
LearnCocos2D

Antworten:

8

Eine Alternative wäre, die Power-Ups nicht in der Nähe der Spieler zu platzieren, sondern an Positionen, bei denen einige Risiken eingegangen werden müssen, um dorthin zu gelangen. Auf diese Weise würden Sie die Spieler ermutigen, sich nicht mehr zu verstecken, was den Spaßfaktor erhöhen und sie für ihren "Mut" belohnen könnte. Darüber hinaus konnte sich niemand beschweren, dass jemand das Glück hatte, ein kraftvolles Power-Up zu erhalten, obwohl eine gewisse Zufälligkeit erhalten bleibt (wenn Sie sich gerade in der Gegend befinden und ein wirklich starkes Power-Up erscheint, oder eher nutzloses Einschalten usw.).

2. Idee: Wie in Mario Kart könnten Sie den schwächsten Spieler bevorzugen und die Wahrscheinlichkeit erhöhen, dass er stärkere Gegenstände erhält. Auf diese Weise würde es auch schwachen Spielern Spaß machen, gegen fortgeschrittenere zu spielen. Sie müssen jedoch darauf achten, nicht jedem intelligenten Zug, den ein Spieler mit Ihrem Algorithmus ausführt, entgegenzuwirken, da Sie sonst die Spieler in eine Unentschieden-Situation zwingen, die das gesamte Spiel ziemlich langweilig macht, da niemand wirklich gewinnen kann.

NOhs
quelle
1
Ich mag diese Antwort wirklich. Die Power-Ups sollten so weit wie möglich von jedem Spieler entfernt sein oder eine Möglichkeit haben, ein Plättchen in Bezug auf den Schwierigkeitsgrad zu bewerten und es auf das für jeden Spieler am schwierigsten zu platzieren, so dass alle Spieler gegeneinander antreten müssen, um das zu erhalten einschalten. Das zwingt die Spieler, sich gegenseitig zu konfrontieren, um die guten Sachen zu bekommen, und das ist immer eine große Dynamik.
Jamornh
1

Ich stimme der vorherigen Antwort zum Eingehen von Risiken zu. Wenn Sie jedoch die Zufälligkeit speziell abwägen möchten, um dem Vorteil entgegenzuwirken, können Sie Folgendes tun:

  1. Generieren Sie für jeden Spieler einen zufälligen Punkt in der Nähe seiner aktuellen Position (aber nicht zu nahe). Wählen Sie beispielsweise einen zufälligen Winkel. Wählen Sie eine Entfernung, z. B. min_dist + rand ^ 2. Berechnen Sie den Punkt, der Winkel und Entfernung zum Spieler beträgt, und beschränken Sie sich auf den Spielbereich.
  2. Kombinieren Sie die zufälligen Punkte, gewichtet nach dem Vorteil, den Sie jedem Spieler geben möchten.

Oder alternativ:

  1. Wähle x völlig zufällige Punkte.
  2. Verwenden Sie den zufälligen Punkt, dessen Abstand am besten zum Vorteilsverhältnis passt.
David Cummins
quelle
1

In Bomberman werden Powerups durch Spieleraktionen erzeugt. Wenn ein Spieler einen Block zerstört, besteht die Möglichkeit, dass ein Powerup auf dem Plättchen des zerstörten Blocks erscheint. Vielleicht sollte Ihr Spiel Powerup-Spawns mit Spieleraktionen verknüpfen.

Angenommen, Ihr Spiel hat zerstörbare Blöcke wie Bomberman. Immer wenn ein Block zerstört wird, kann er ein Powerup erzeugen. Es könnte eine flache Chance pro Block sein, sagen wir 10%. Eine flache Chance wie diese wäre technisch für alle Spieler fair, könnte aber jemandem eine wirklich glückliche Serie von mehreren Powerups hintereinander oder eine wirklich unglückliche Serie von keinen Powerups für eine lange Zeit geben.

Anstatt für jeden Block eine flache Chance zu verwenden, können Sie eine zunehmend wachsende Chance verwenden und diese pro Spieler verfolgen. Die Chance würde klein anfangen, lassen Sie uns 1,5% sagen, und dann jedes Mal wachsen , um ein Powerup ist nicht hervorgebracht. Wenn ein Powerup erzeugt wird, sinkt die Chance wieder auf den ursprünglichen Wert (in unserem Beispiel 1,5%).

Nehmen wir also an, ein Spieler zerstört einen Block und der RNG würfelt mit einer Chance von 1,5%. Der Wurf ist nicht erfolgreich, daher erhöht sich die Chance für diesen Spieler um 1,5% auf 3,0%. Der Spieler zerstört erneut einen Block und erhält kein Powerup. Die Chance für den nächsten Block liegt also bei 4,5%. Wenn der Spieler schließlich ein Powerup erzeugt und dies schließlich der Fall ist, da die Chance weiter zunimmt, kehrt seine Chance im nächsten Block auf den Basiswert von 1,5% zurück.

Dieses System hat einige Vorteile für eine flache Chance auf ganzer Linie:

1) Es minimiert wirklich glückliche Streifen, denn nachdem ein Spieler ein Powerup erzeugt hat, sinkt seine Chance auf den nächsten Block dramatisch.

2) Es minimiert wirklich unglückliche Streifen, da die Chance des Spielers, ein Powerup zu erzeugen, kontinuierlich wächst, bis es schließlich 100% erreicht.

Sie können auch die Grundchance pro Spieler abhängig von der Punktzahl oder einem anderen Faktor anpassen. Wenn Sie möchten, dass der verlierende Spieler eine Chance auf ein Comeback hat, können Sie seine Grundchance auf 2,5% setzen und bei jedem "Fehlschlag" um 2,5% erhöhen.

Eric
quelle