Ich bin Chris Shankland, CTO von Odyssey Interactive und ehemaliger Technical Lead bei Omega Strikers. Omega Strikers ist ein blitzschneller 3-vs-3-Footbrawler, bei dem das Rauswerfen von Gegnern aus der Arena und das Freischlagen eines Pfads zum Ziel nur die erste Runde ist. Wir haben Omega Strikers auf allen großen Plattformen veröffentlicht: PC, PlayStation, Xbox, Nintendo Switch, iOS und Android. Ich werde einige der Methoden beschreiben, mit denen es uns gelungen ist, ein kompetitives und visuelles Erlebnis bester Qualität für Mobilgeräte auszuliefern. Die Veröffentlichung von Omega Strikers mit der Geschwindigkeit und Qualität, die wir erreicht haben, war eine Leistung des gesamten Teams. Ich werde Sie lediglich durch die Herausforderungen und Lösungen führen, die wir implementiert haben, und hoffe, dass Entwickler ähnlicher Spiele daraus wertvolle Einsichten gewinnen können.
Omega Strikers ist im Wesentlichen ein kompetitives Spiel, deshalb war für uns die kompetitive Integrität von oberster Priorität. In der Praxis bedeutete das einen starken Fokus auf Performance, verständliches Gameplay und Steuerung. Auf dieser Grundlage aufbauend legten wir auch großen Wert auf die Qualität unseres Bildmaterials, damit unsere großartigen Kunstwerke vollständig zur Geltung kommen konnten. Um unseren Ambitionen in Hinsicht auf Bildmaterial und Performance gerecht zu werden, mussten wir einige altbekannte Engpässe wie Speicher, CPU und GPU managen. Ich werde Ihnen einige spezifische Beispiele aus jedem dieser Bereiche zeigen, um den Prozess zu illustrieren, mit dessen Hilfe wir Herausforderungen identifizieren und letztendlich überwinden konnten, die sonst zu einer Verzögerung der Veröffentlichung geführt hätten.
Omega Strikers ist ein charakterbasiertes Spiel mit einer Startauswahl von fünfzehn Charakteren, die dank regelmäßiger Updates stets ergänzt wird. Am Anfang der Entwicklung gab es weniger Charaktere, weniger Anpassungen und Platzhalter-Grafiken. In dieser Phase war es sehr bequem, ein globales Set an Hard-Referenzen auf Charaktere und jegliche dazugehörige Inhalte anzuwenden. Bei internen Tests konnten während des Großteils der Entwicklung auf leistungsschwachen Geräten keine Probleme mit diesem Setup festgestellt werden. Doch als wir der Veröffentlichung näher kamen, nahmen visuelle Wiedergabetreue und Quantität stark zu. Wir setzten die Entwicklung mit diesen höherwertigen Assets fort und schon bald nahmen die Speicherprobleme zu und letztendlich konnte das Spiel auf leistungsschwachen Geräten nicht mehr gestartet werden.
Paketvisualisierung eines frühen Omega Strikers-Builds
An diesem Punkt standen uns zwei allgemeine Strategien zur Verfügung: Wir konnten entweder die Asset-Größe verringern oder das Asset-Management komplett überarbeiten und von einem Always-Loaded-Schema zu einem Load-On-Demand-Schema übergehen. Das On-Demand-Schema passt zu den Erwartungen an die Skalierbarkeit für ein Live-Service-Modell, also gingen wir in diese Richtung. Die Umgestaltung bestand darin, dass alle Hard-Referenzen auf größere Assets wie Texturen oder Charaktere zu Soft-Referenzen gemacht werden mussten. Alle Datensätze für den Katalog des Spiels verbleiben im Speicher, damit Assets schnell und synchron aufgelöst werden können. Diese Methode verringerte den Maßstab der erforderlichen Umgestaltung auf einen zu bewältigenden Umfang und wir konnten die gesamten Änderungen in etwa einer Woche implementieren. Nachdem diese Lösung implementiert wurde, wurden vier große Inhaltsupdates für Omega Strikers veröffentlicht, einschließlich neuer Karten und neuer Charaktere, ohne dass wir uns erneut mit dem Speicherproblem befassen mussten.
Schnappschuss des verwendeten Speichers via Unreal Insights – Hard-Referenzen
Schnappschuss des verwendeten Speichers via Unreal Insights – Soft-Referenzen
Die CPU-Performance hat für uns oberste Priorität, damit es nicht zu Problemen mit den Veröffentlichungsfristen kommt. Das war während der gesamten Entwicklung immer der Fall, und es gelang uns dadurch, große Optimierungsarbeiten vor den Veröffentlichungsterminen zu vermeiden. Die Strategie besteht hierbei darin, regelmäßig auf leistungsschwachen Geräten zu spielen und Performance-Regressionen zu priorisieren. Und wenn wir auf ein Problem treffen, ist Unreal Insights das Diagnosewerkzeug unserer Wahl.
Die Grafik-Performance auf den unterschiedlichsten Mobilgeräten zu handhaben, ist eine Herausforderung. Auf hochwertigen Geräten erwarten Spieler auch hochwertiges Bildmaterial – und gute Performance wird bei allen Geräten vorausgesetzt. Für Omega Strikers haben wir Standardmethoden für den Detaillierungsgrad von Texturen und Meshes verwendet, die durch spezielle Umgebungsqualitätseinstellungen ergänzt werden, um eine umfassende Skalierung der Grafik zu ermöglichen. Die Einstellungen werden dabei über CVars vorgegeben und angepasst. So können wir Geräteprofile erstellen und es Nutzern ermöglichen, ihre eigenen Einstellungen festzulegen. Auch hier verlassen wir uns auf Unreal Insights, um den Großteil der Profiling-Daten zu erhalten, von denen wir uns bei der Optimierung leiten lassen. RenderDoc und das dazugehörige Plugin sind weitere Werkzeuge, die wir verwenden, um mehr über die Performance spezifischer Geräte zu erfahren, oder wenn fein abgestufte Timings benötigt werden.
PSO-Caching hat sich mit der erstmaligen Verwendung von Shadern schnell zu einer Grundvoraussetzung für Mobilgeräte entwickelt, um Hitching zu vermeiden. Wir haben einen automatisierten Prozess entwickelt, der eine Version des Spiels erschafft, die automatisch jegliches Bildmaterial für alle Qualitätseinstellungen rendert und diese einem physischen Gerät bereitstellt. Am Ende des automatisierten Durchlaufs exportiert die Anwendung den kompletten PSO-Cache in unsere Build-Pipeline, sodass er in zukünftige Builds integriert werden kann.
Die Veröffentlichung und konstante Aktualisierung von Omega Strikers auf Mobilgeräten konnte durch unser kleines Team nur bewerkstelligt werden, indem wir unsere Entwicklung von Anfang an für Mobilgeräte auslegten und unsere Entwicklungsbemühungen mit den Werkzeugen der Unreal Engine optimierten. Zu unseren Tricks gehören Strategien zur Entlastung leistungsschwacher Geräte, das Streamen von Assets oder Daten, um kleinere Speicherkapazitäten zu bedienen, und die Verwendung spezifischer Lösungen für Mobilgeräte, wo es absolut erforderlich ist – UI und Steuerung sind dafür gute Beispiele. Durch die regelmäßige Überprüfung des Spiels auf Geräten, die nur die Mindestanforderungen erfüllten, erfahren wir von Problemen, sobald sie auftreten, und werden nicht beim Erreichen eines Meilensteins von ihnen überrascht. Dank unserer Planung und vielen Tests in der Frühphase der Entwicklung konnten wir angemessene Strategien und Budgets erstellen, bevor wir uns entschlossen, unsere Produktion hochzuskalieren. Die Kombination all dieser Lösungen und unser großartiges Team sorgten dafür, dass Omega Strikers ein maximal großes Spektrum an Plattformen bedienen und auch in Zukunft so reibungslos wie möglich als Live-Service ausgeführt werden kann.
Wir hoffen, dass unsere Einblicke für zukünftige Spiele hilfreich sein werden – und ich kann es kaum erwarten, sie zu spielen!
Sichern Sie sich die Unreal Engine noch heute!
Holen Sie sich das offenste und fortschrittlichste Erstellungswerkzeug der Welt.
Die Unreal Engine wird mit allen Funktionen und vollem Zugriff auf den Quellcode geliefert und ist sofort einsatzbereit.