Case studies

Verschmelzung von Welten im spannenden Multiplayer-Spiel Histera | Unity

Jul 3, 2024|11 Minuten
Histera von Stickylock – Key Art
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.

Entdecken Sie, wie die Leistungssteigerungen von DOTS StickyLock dabei helfen, Spieler durch Raum und Zeit zu transportieren, in dieser frischen Version eines Multiplayer FPS

Die Herausforderung:
Anheben der Leistungsgrenze eines schnellen FPS zum dynamischen Austauschen von Spielinhalten mit dem Glitch
Projektmitarbeiter:
40
Plattformen:
PC
Standort:
Nordholland, Niederlande

Wie bringt ein kleines Entwicklerteam eine innovative Spielmechanik in rasante Ego-Shooter-Action? Dem Team von StickyLock war klar, dass es einen neuen Ansatz brauchte, um sich auf dem überfüllten FPS Markt durchzusetzen. Was mit Portalen zwischen verschiedenen Zeiträumen begann, entwickelte sich zum Glitch – einer Spielmechanik, die Spieler in eine andere Zeitepoche versetzt, komplett mit einer neuen Karte. Doch für die Umsetzung dieser kühnen Vision waren eine erstaunliche Leistung, eine grundsolide Multiplayer-Infrastruktur, innovative Grafikkomponenten und ein starker Partner erforderlich, der dabei half, alles zusammenzubringen.

Das FPS Genre in neue Dimensionen katapultieren

Der zum Produzenten gewordene technische Künstler und Programmierer Jamel Ziaty wusste, dass er ein ehrgeiziges Projekt vor sich hatte, als er und das StickyLock-Team mit der Arbeit an dem begannen, was später Histerawurde. Dieser rasante 8x8-Ego-Shooter transportiert die Spieler in Echtzeit über sich überlappende Karten und Zeitlinien – ohne Einbußen bei der Leistung.

Als erfahrener Unity Entwickler wusste Jamel, dass sie skalierbare Verarbeitungs- und Backend-Funktionen benötigten, die den sofortigen Austausch von Karten- und Charakterkomponenten ermöglichen würden. Zu diesem Zweck entschied sich das Team für den Data-Oriented Technology Stack (DOTS) und das Entities Component System (ECS) von Unity zur Leistungssteigerung und nutzte gleichzeitig die Unity Gaming Services (UGS) zur Verwaltung der Multiplayer-Backend-Infrastruktur.


Die Ergebnisse:

• Ein effizientes und leistungsfähiges Backend-Framework, das Hunderttausende Entitäten und Komponenten verarbeiten kann (mit über 230.000 allein auf einer Ebene

• Hunderte bis Tausende von Entwicklungsstunden durch den Einsatz von UGS gespart

Vogelperspektive einer Karte, die gerade aufgrund des Fehlers ausgetauscht wird.

Spieler mit dem Glitch in parallele Epochen versetzen

Das Markenzeichen von Histeraist die Glitch-Spielmechanik, bei der ein Abschnitt innerhalb eines Levels in eine völlig andere Ära mit eigenem Spielfeld, eigenen Verhaltensweisen und eigenen Waffensets übergeht. Dieser plötzliche Wechsel der Einstellungen sorgt für viel Spannung im Spiel, stellte das StickyLock-Team jedoch auch vor Herausforderungen.

Der Glitch verläuft in drei klar unterscheidbaren Phasen. Die erste Phase, die Erwartung, dient den Spielern sowohl als visuelles Signal, dass ein Glitch unmittelbar bevorsteht, als auch zur Vorbereitung der Verwaltung von Asset-Übergängen hinter den Kulissen. Als Nächstes folgt eine Dekonstruktionsphase, in der die visuellen Elemente der aktuellen Ära dem nächsten Grafiksatz Platz machen. Während dieses Übergangs werden die Kollisionen der ursprünglichen Ära beseitigt, während das Terrain der neuen Ära Gestalt annimmt.

Mit dem Wechsel in die neue Ära des Spiels erhalten die Spieler einen Einblick in die neue Grafik und die Kollisionszonen. Eine einzigartige Texturkarte dient zur Abgrenzung befahrbarer Bereiche und drohender Kollisionszonen und leitet die Spieler von Gefahrenstellen weg. Sollten sich Spieler in diesen Bereichen wiederfinden, fördert das Spiel die Bewegung, indem es Schaden zufügt. Der Schaden steigert sich bis hin zum tödlichen Schaden, wenn Spieler nach dem Übergang dort verbleiben. Dies gipfelt in einem dramatischen Stoßwelleneffekt, der die visuellen Effekte und Kollisionen der neuen Ära verfestigt und die Glitch-Sequenz vervollständigt.

Der Aufbau von Glitch erforderte fortschrittliche Systeme für Übergänge, Spielerbewegungen und Kollisionsmanagement. Dank der Flexibilität von Unity konnte das Team benutzerdefinierte Tools und Skripte entwickeln, die diese automatisierten und so ein flüssiges Gameplay gewährleisteten, selbst wenn sich die gesamte Karte während des Spiels verschiebt. „Es ist ein einzigartiges Schlachtfeld“, erklärt Jamel, „und wir haben uns wirklich darauf konzentriert, es richtig hinzubekommen.“

Der Fehler ereignet sich in einer Höhlenumgebung.

Optimieren von Arbeitsabläufen mit Unterszenen

Der Glitch stellte sowohl hinsichtlich seiner technischen Umsetzung eine große Herausforderung dar, als auch weil er sich, um zu funktionieren, in ein Level einfügen musste, ohne die visuelle Kohärenz oder den Spielfluss zu stören. Das Team hat dieses Gleichgewicht mithilfe der SubScene-Komponente von Unity erreicht.

Eine Unterszene ist ein GameObject- MonoBehaviour , das auf eine andere Szene verweist. Es wird in eine Entitätsdarstellung konvertiert, die als „EntityScene“ bezeichnet wird. Unterszenen können in verschiedenen Zuständen existieren: offen, geschlossen oder entladen, und dieser Zustand wirkt sich auf die Speicher- und Sichtbarkeitsbelastung aus. Offene Unterszenen ermöglichen die Änderung und Konvertierung von GameObjects in Echtzeit, während geschlossene Unterszenen Entitätsdarstellungen in den Speicher laden. Dieses Setup hilft bei der Verwaltung komplexer Szenen und optimiert die Leistung durch die effiziente Handhabung von Entitätsdaten.

„Es ist ein scheinbar kleines Detail, das einen großen Unterschied macht“, erzählt Jamel. „Es ermöglicht uns, mehrere Kartenabschnitte innerhalb einer einzigen Szene zu verarbeiten. Dieser Ansatz vereinfacht nicht nur den Arbeitsablauf unserer Künstler, da er es ihnen ermöglicht, sich ohne Überschneidungen auf einzelne Teilszenen zu konzentrieren, sondern minimiert auch Konflikte. Es bietet einen klaren Überblick darüber, welche Unterszenen zu einem bestimmten Zeitpunkt aktiv sind.“

Histera-Spiellandschaft mitten im Glitch.

Behebung von Verzögerungen und Optimierung für höhere Tickraten

„Die Bereitstellung eines globalen Multiplayer-Erlebnisses ist definitiv die größte Herausforderung, bei der wir mit Hilfe von UGS vorgehen“, sagt Jamel. „Es kümmert sich um die Sorgen beim Aufbau und der Verwaltung von Flotten und stellt gleichzeitig sicher, dass Sie in vielen verschiedenen Regionen der Welt eine angemessene Servicequalität bieten können.“

Das StickyLock-Team hat hart daran gearbeitet, das Erlebnis für Spieler mit unterschiedlichen Ping-Levels auszugleichen. Spieler mit hohem Ping profitieren von der Lag-Kompensation, da das Spiel durch Berücksichtigung ihrer Verzögerung eine gerechtere Trefferregistrierung ermöglicht. Dies kann sich jedoch negativ auf Spieler mit niedrigem Ping auswirken, da sie aufgrund des „Zurückspulens“ des Servers hinter der Deckung getroffen werden könnten. Die Einblicke in Platzierung und Leistung aus dem Multiplay Hosting-Dashboard sowie die sofort einsatzbereiten Vorhersage-, Rollback- und Lag-Kompensationsfunktionen im Netcode for Entities-Paket waren der Schlüssel zur Gewährleistung eines reibungsloseren und faireren Multiplayer-Erlebnisses für alle Spieler.

Jamel betont, dass viel Arbeit in die Optimierung der Server geflossen sei, um mit höheren Tick-Raten zu arbeiten, ohne die Kosten zu erhöhen. Dank der Erfahrung des Unity Teams konnten Optimierungsmöglichkeiten erkannt und die Server so konfiguriert werden, dass das Team schnell Live-Anpassungen vornehmen konnte. Schließlich konnte das StickyLock-Team mit dem regelbasierten Matchmaking von Unity das Spieldesign mit Wartezeiten und Latenzen ausbalancieren.

„Einblicke in die RAM- und CPU-Nutzung der Server zu erhalten, einen hochwertigen Service über verschiedene Regionen hinweg aufrechtzuerhalten und Serverfunktionen zusammen mit der Flexibilität der Matchmaking-Regeln zu verwalten, ist für uns von entscheidender Bedeutung“, sagt Jamel. „Wir suchen immer nach Möglichkeiten, die Leistung zu steigern, damit wir ungünstige Kompromisse zwischen verbesserter Spielbarkeit und Kostenkontrolle vermeiden können.“

Histera-Gameplay mit Egoperspektive und roten Glitch-Elementen, die den Spieler umgeben.

Mit DOTS die Leistungsgrenze anheben

Ein kreuz und quer durch die Zeit verlaufendes Gameplay stellt Herausforderungen dar, die weit über fließende Übergänge hinausgehen. Das Erstellen überlappender Parallelwelten in einem Multiplayer-Framework erfordert das Erreichen unglaublich hoher Leistungsmarken. Um dieses Ziel zu erreichen, nutzte das StickyLock-Team den datenorientierten Technologie-Stack (DOTS) von Unity, der aus dem ECS-Paket (Entities Component System), Physics, C# Job System und dem Burst Compiler besteht.

Die Einführung von DOTS und ECS Anfang 2020 war mit einigen Risiken verbunden. Das Unternehmen gehörte zu den Early Adopters dieser Technologie und musste in die Weiterbildung investieren und sich im Handumdrehen an neue Arbeitsabläufe anpassen. Doch nachdem sie sich eingehend mit den Beispielen befasst hatten, kamen Jamel und sein Team zu dem Schluss, dass der Nutzen die Risiken überwiegt, und stürzten sich in die Sache.

“​„Die höhere Leistungsgrenze von Burst und ECS ist für uns von entscheidender Bedeutung“, sagt Jamel, „insbesondere angesichts der Herausforderung, fünf unterschiedliche Epochen zu verwalten.“ Dies führt zu mehr fehlerhaften Chargen, da wir Meshes oder Materialien nicht für verschiedene Stile wiederverwenden können. Mit ECS erhalten wir die notwendige Leistung, um trotz dieser Einschränkungen eine hohe Bildqualität zu gewährleisten.“

Das C#-Jobsystem ermöglicht eine effiziente parallele Verarbeitung von Aufgaben, während Burst C#-Code in hochoptimierten nativen Maschinencode kompiliert und dabei den Overhead der herkömmlichen .NET-Laufzeit umgeht. Dieser native Code ist speziell auf die Zielplattform zugeschnitten, was zu einer besseren Leistung führt. Im Hinblick auf die Vorteile, die DOTS seinem Team gebracht hat, sagt Jamel: „Wenn wir einen Großteil unseres Leistungsbudgets für Systeme ausgegeben hätten, wären wir nicht in der Lage gewesen, fünf verschiedene Epochen in der Qualität darzustellen, die wir jetzt haben.“

Ich-Perspektive eines Spielers, der mit einem Gewehr auf große Entfernung zielt.

Zeitgewinn mit UGS

Über die Konnektivität hinaus musste Jamel seinem Team Zeit verschaffen, seine Fähigkeiten weiterzuentwickeln, indem er andere Wege fand, um Entwicklungsstunden einzusparen. Damit sich die Entwickler weiterhin auf das Gameplay konzentrieren konnten, wandte er sich an UGS. Seiner Einschätzung nach würde dieser Schritt „im Bereich von Hunderten bis Tausenden von Entwicklungsstunden Einsparungen bedeuten“.

Das Team verwendete Multiplay Hosting, Matchmaker, Authentication und Cloud Content Delivery (CCD). Die Vorteile der Verwendung mehrerer Erstanbieterdienste waren für StickyLock von Anfang an klar. „Ein First-Party-Dienst wäre einfacher zu integrieren und zu warten“, sagt Jamel, „und UGS Dienste sind plattformübergreifend, falls wir später eine Portierung auf die Konsole durchführen möchten.“

Multiplay Hosting ist für eine schnelle Skalierung im Falle eines über Nacht eintretenden Erfolgs konzipiert. „Heutzutage kommt es häufiger vor, dass ein Spiel über Nacht populär wird. Dass wir einen Dienst haben, der über die Erfahrung verfügt, viele erfolgreiche Titel auf den Markt gebracht zu haben, gibt uns ein Gefühl der Sicherheit“, sagt Jamel. Darüber hinaus bereiten die plattformübergreifenden Fähigkeiten von Authentication Histera auf eine plattformübergreifende Erweiterung vor, wenn die Zeit reif ist, während CCD es dem Team leicht macht, seine Inhalte und seine Veröffentlichungspipeline zu verwalten, damit es die richtigen Inhalte und Funktionen bereitstellen kann, um die Spieler bei der Stange zu halten, während das Spiel wächst.

Dank einer robusten und skalierbaren Multiplayer-Backend-Infrastruktur sowie einer plattformübergreifenden Authentifizierung und Spielerkommunikation geht Jamel voller Zuversicht in den Start, da er weiß, dass ihm die Multiplay und UGS Teams zur Seite stehen.