Games

Automatisieren Sie Ihr Playtesting: Erstellen Sie virtuelle Spieler für Spielsimulationen

DYLAN SCANDINARO Anonymous
Dec 11, 2020|6 Min.
Automatisieren Sie Ihr Playtesting: Erstellen Sie virtuelle Spieler für Spielsimulationen
Diese Website wurde aus praktischen Gründen für Sie maschinell übersetzt. Die Richtigkeit und Zuverlässigkeit des übersetzten Inhalts kann von uns nicht gewährleistet werden. Sollten Sie Zweifel an der Richtigkeit des übersetzten Inhalts haben, schauen Sie sich bitte die offizielle englische Version der Website an.

Es ist einfach, Playtests zu automatisieren, indem man einen virtuellen Spieler (einen spielenden Agenten) erstellt und dann Game Simulation verwendet, um automatisierte Playtests in großem Umfang durchzuführen. Lesen Sie weiter, um drei Fallstudien zu entdecken, in denen beschrieben wird, wie iLLOGIKA, Furyion und Ritz Deli virtuelle Spieler entwickelt haben und damit fast 40.000 Stunden (~4,5 Jahre) automatisiertes Playtesting an Game Simulation übertragen haben.

Spiele sind aus demselben Grund herausfordernd zu testen, aus dem sie Spaß machen - die Spieler haben die Freiheit, ihre eigene Erfahrung zu gestalten. Daher bieten Spiele eine große Fläche für Bugs und Designfehler. Die Entwickler müssen häufig und umfassend testen, um Probleme zu beheben und Termine zuverlässig einzuhalten.

In der Vergangenheit hatten die Entwickler die Wahl zwischen Tests mit geringer Abdeckung und hoher Frequenz (Unit-Tests in einer CI-Pipeline) und Tests mit hoher Abdeckung und niedriger Frequenz (Playtests vor einer größeren Veröffentlichung).

Wir haben Unity Game Simulation entwickelt, um Entwicklern zu helfen, mit der Reichweite von Playtests und der Häufigkeit von Unit-Tests zu testen. Unity Game Simulation ermöglicht es Entwicklern, automatisierte Playtests in der Cloud durchzuführen. So verwenden Sie Unity Game Simulation:

Erstellen Sie einen virtuellen Spieler (einen spielenden Agenten).

Verwenden Sie das Paket Game Simulation, um Ihr Spiel für die Simulation zu instrumentieren.

Implementieren Sie fernkonfigurierbare Parameter, um verschiedene Varianten Ihres Spiels zu simulieren. Implementierung von Metriken zur Erfassung der Daten, die zur Beantwortung von Designfragen benötigt werden.

Verwenden Sie das Game Simulation-Paket, um einen Build Ihres Spiels zu erstellen und auf unsere Server hochzuladen.

Lassen Sie Ihr Spiel tausende Male über die Benutzeroberfläche (UI) der Spielesimulation laufen.

Dieser Blogbeitrag konzentriert sich auf Schritt 1 - die Erstellung eines virtuellen Players für automatisierte Tests. Die Schritte 2 bis 4 sind einfach und werden in der Dokumentation zu Game Simulation beschrieben. Sie können Game Simulation jetzt kostenlos testen.

Die Erstellung eines virtuellen Spielers für Unity Game Simulation ist einfach

Ein virtueller Spieler emuliert die Eingaben eines echten Spielers, um bestimmte Aspekte Ihres Spiels zu testen. Für einfache Tests, z. B. um zu überprüfen, ob Ihr Spiel 60 Minuten lang laufen kann, ohne eine Ausnahme auszulösen, kann ein virtueller Player ein einfaches C#-Skript mit ein paar Codezeilen sein, das eine Szene startet und zufällige Aktionen ausführt.

Für komplexere Tests, z. B. um zu überprüfen, ob alle Waffen in etwa gleich stark sind oder ob jeder Level abgeschlossen werden kann, kann ein virtueller Spieler mit denselben Methoden erstellt werden, die auch für die Erstellung von Nicht-Spieler-Charakteren (NPCs) verwendet werden. Dazu gehören:

  • Heuristische Skripte: Ein Skript mit einer sehr einfachen Regel oder einem Algorithmus
  • Verhaltensbäume: - Eine visuelle Darstellung eines Plans, der aus Bedingungen und Aufgaben besteht
  • Endliche Zustandsautomaten: Ein Skript mit einigen Zuständen, zwischen denen der Virtual Player abwechselt, z. B. Suchen und Angreifen
  • Unity AI Planner: Ein visueller Planungsrahmen mit einer intuitiven Unity Editor UI
  • Verstärkungslernen und Nachahmungslernen mit dem Unity ML-Agents Toolkit: Sehen Sie sich an, wie wir mit ML-Agents einen virtuellen Player für Jam City's Snoopy Pop erstellt haben.

Im Folgenden zeigen wir, wie drei Studios virtuelle Spieler erstellt haben, die zusammen fast 40.000 Stunden Spieltests auf Unity Game Simulation übertragen haben. Besonders bemerkenswert ist, dass alle drei Studios in der Lage waren, mit Game Simulation einen immensen Mehrwert zu erzielen, während sie sich bei der Erstellung ihrer Virtual Player auf relativ einfache Ansätze stützten.

Ritz Deli: Heuristik (gieriger Algorithmus)

Das Indie-Studio Ritz Deli hat Eraser Blast entwickelt, ein Puzzle-Spiel im Linker-Stil mit über 50 Charakteren, von denen jeder über einzigartige Gameplay-Eigenschaften verfügt. Ritz Deli hat mit Unity Game Simulation Hunderte von Simulationen durchgeführt, um sicherzustellen, dass jeder Charakter mit steigender XP-Stufe immer mehr Punkte und Münzen generiert.

Eric Jordan, CTO und technischer Leiter von Ritz Deli, musste einen virtuellen Spieler entwickeln, der in der Lage ist, Rätsel im Stil von Linker zu lösen. Er implementierte einen Virtual Player mit einem C#-Skript, das auf einem einfachen heuristischen Greedy-Algorithmus basiert. Bei Eraser Blast passt der Algorithmus die längste mögliche Kette von Blasen desselben Typs an:

Erstellen Sie die Menge aller möglichen Einzelblasen-Auswahlen.

Unbekannter Blocktyp "__block", bitte geben Sie einen Serializer dafür in der `serializers.types` prop an Unbekannter Blocktyp "__block", bitte geben Sie einen Serializer dafür in der `serializers.types` prop an

Wählen Sie die Sprechblase aus der Menge der gültigen Sprechblasen aus, die die meisten Übereinstimmungen aufweist.

Wiederholen Sie die Schritte 1 und 2 so lange, bis keine verfügbaren Blasen mehr gültig sind.

Aktualisieren Sie die Metriken für die Gesamtpunktzahl und die belohnten Münzen.

iLLOGIKA: Geskripteter Verhaltensbaum

iLLOGIKA ist das Studio hinter Rogue Racers, einem Spieler-gegen-Spieler (PvP)-Runner. Die Spieler erstellen Kartendecks, die Powerups enthalten, die der Spieler während eines Rennens einsetzt. iLLOGIKA hat mit Hilfe der Spielsimulation jede Kartenkombination getestet, um sicherzustellen, dass keine Karte und kein Deck zu mächtig ist.

Die Entwickler von iLLOGIKA haben mit Hilfe eines C#-Skripts einen Virtual Player erstellt:

Ermögliche es dem virtuellen Spieler, erfolgreich bis zum Ende des Rennens zu navigieren, indem er Raycasts durchführt, um aufkommende Hindernisse zu finden und ihnen dann durch Spurwechsel, Ducken oder Springen auszuweichen.

Fügen Sie eine Reihe von Regeln hinzu, die beschreiben, wann Karten in Abhängigkeit vom Spielzustand, einschließlich der aktuellen Gesundheit des Spielers, der relativen Position der anderen Spieler, ihrer Kartenfähigkeiten usw., eingesetzt werden sollten.

Unbekannter Blocktyp "__block", bitte geben Sie einen Serializer dafür in der `serializers.types` prop an

Wählen Sie für jede in Schritt 1 und 2 beschriebene Aktion eine falsche, aber mögliche Aktion, um die Unvorhersehbarkeit eines echten Spielers zu berücksichtigen.

Furyion: Verhaltensbaum des Verhaltensdesigners

Furyion ist der Entwickler von Death Carnival, einem Top-Down-Shooter mit einem einzigartigen Waffensockelsystem, das es dem Spieler ermöglicht, aus über hunderttausend möglichen Kombinationen von Waffen, Munition und Waffenmodulen zu wählen - jede Kombination definiert ein einzigartiges Spielerlebnis.

Herbert Yung, Gründer und Leiter von Furyion, verwendete ein Tool zur Erstellung von Verhaltensbäumen namens Behavior Designer, um einen virtuellen Spieler zu erstellen, der die durchschnittliche Zeit bis zum Abschluss eines Levels für jede Kombination aus Waffe, Munition und Waffenmodul schätzt. Herbert führte dann Tausende von Simulationen mit Unity Game Simulation durch, um jede Waffensockel-Kombination zu testen, wodurch mehr als 600 Stunden Spielzeit eingespart wurden.

Herbert nutzte die intuitive Benutzeroberfläche des Behavior Designers und viele Standardaufgaben im Behavior Designer, um einen Virtual Player zu erstellen:

Wenn sich ein Feind in Reichweite befindet, greifst du diesen Feind an.

Wenn kein Gegner in Reichweite ist, bewegen Sie sich zum Ausgang, bis ein Gegner in Reichweite erscheint.

Wiederhole die Schritte 1 und 2, bis keine Feinde mehr übrig sind.

Navigieren Sie zu dem Tor am Ende des Levels und rufen Sie Application.quit() auf, sobald das Level offiziell beendet ist.

Weitere Informationen über die Erstellung eines Bots mit Behavior Designer finden Sie in der Dokumentation auf der Asset Store Seite von Behavior Designer.

Frühzeitige Vorschau: Unity-Spielsimulation für QA-Tests

Das Unity Game Simulation Team unterstützt Sie bei der Erstellung von virtuellen Spielern für automatisierte Tests, angefangen bei virtuellen Spielern für QA-Tests. Setzen Sie sich mit uns in Verbindung, wenn Sie zu den Ersten gehören möchten, die unsere neuen Tools und Funktionen zur Erstellung virtueller Player für QA-Tests ausprobieren möchten.

Los geht's

Erfahren Sie mehr über die ersten Schritte mit Unity Game Simulation - Sie können es sogar kostenlos ausprobieren. Bei Fragen wenden Sie sich bitte an das Game Simulation Team.