Pokémon TCG Pocket: Einführung der reinen Vulkan-Entwicklung für Casual Games

Screenshot des Logos des Spieltitels aus Pokémon TCG Pocket

Das Pokémon-Sammelkartenspiel (Pokémon Trading Card Game, TCG) wird seit fast 30 Jahren auf der ganzen Welt gespielt. Das vor Kurzem veröffentlichte Pokémon-Sammelkartenspiel „Pocket“ wurde entwickelt, damit Spieler jederzeit und überall Pokémon-Sammlungen und -Kämpfe erleben können, ohne dass sie physische Karten benötigen. Die Zugänglichkeit des Spiels auf Smartphones hat zu seiner großen Beliebtheit bei den Nutzern beigetragen.

Das Pokémon-Sammelkartenspiel Pocket mag zwar wie ein einfaches Kartenspiel erscheinen, verwendet aber komplexe Shader, was die Kompilierungszeit erheblich verlängert. Um dieses Problem zu beheben und hochwertige Grafiken sowie flüssiges Gameplay zu ermöglichen, wurde in der Android-Version von Pokémon TCG Pocket Vulkan, die Grafik-API der nächsten Generation, implementiert.

In diesem Dokument erfahren Sie mehr über die Einführung von Vulkan durch das Entwicklungsteam von Pokémon TCG Pocket, die damit verbundenen Herausforderungen und die Vorteile von Vulkan.

Abbildung 1. Spielszenen aus „Pokémon TCG Pocket“

Gründe für die Einführung von Vulkan

Ursprünglich wollte das Entwicklungsteam von Pokémon TCG Pocket OpenGL ES verwenden. Sie entschied sich jedoch für Vulkan, eine Grafik-API mit vielversprechender Zukunft. Die Hauptgründe für die Wahl von Vulkan waren:

  • Langfristige App-Verwaltung: Das Team erkannte, dass Vulkan die dominierende Grafik-API für Android wird, und entschied, dass Vulkan die optimale Wahl für die langfristige App-Verwaltung ist.
  • Stabile Leistung auf Geräten mit niedrigen Spezifikationen: Damit eine Vielzahl von Nutzern die App reibungslos nutzen kann, ist eine stabile Leistung auf Geräten mit niedrigen Spezifikationen unerlässlich. Da Vulkan die CPU-Auslastung reduzieren kann, werden voraussichtlich die Frameraten und der Akkuverbrauch verbessert.
  • Vermeidung umfangreicher Änderungen nach der Veröffentlichung: Ein Wechsel von OpenGL ES zu Vulkan nach der Veröffentlichung würde umfangreiche Änderungen erfordern, die die Nutzerfreundlichkeit beeinträchtigen könnten. Durch die Verwendung von Vulkan von Anfang an konnten solche erheblichen Änderungen vermieden werden.

Vulkan mit Unity implementieren

Pokémon TCG Pocket verwendet Unity als Spiel-Engine. Unity bietet einen optimierten Prozess zur Implementierung von Vulkan mit nur einem Klick. Durch die Verwendung von Unity konnte das Entwicklungsteam Vulkan nahtlos einbinden, ohne spezielle Schulungen absolvieren zu müssen. Außerdem trug der Mangel an Vulkan-spezifischen Anpassungen für Entwicklungsumgebungen und ‑tools zur Kosteneffizienz bei.

Auto Graphics API in Unity
Abbildung 2. Auto Graphics API in Unity

Herausforderungen bei der Implementierung von Vulkan

Die Vulkan-Implementierung war relativ einfach, aber das Entwicklungsteam stieß danach auf einige Herausforderungen:

  • Gerätespezifische Probleme: Im Vergleich zu OpenGL ES waren die Treiber einiger Hersteller mit Vulkan weniger stabil, was zu gerätespezifischen Problemen führte.
  • Unvollständige Vulkan-Unterstützung in der Middleware: Einige Middleware-Komponenten unterstützten Vulkan nicht vollständig, sodass das Team auf Middleware-Updates warten musste.

Das Entwicklungsteam hat diese Herausforderungen mithilfe verschiedener Strategien angegangen. Dazu gehörte die Zusammenstellung eines Teams erfahrener Entwickler von Verbraucherspielen zur Fehlerbehebung, da sie mit der Low-Level-Grafik-API oder der benutzerdefinierten Engine vertraut waren, sowie die Zusammenarbeit mit den Google- und Unity-Teams zur Behebung einzelner Probleme. Um die Gerätekompatibilität zu erweitern, wurden auch ältere High-End-Geräte (vor 2–3 Jahren veröffentlicht) getestet, um die empfohlenen Gerätespezifikationen zu ermitteln.

Vorteile von Vulkan

Die Verwendung von Vulkan hat für „Pokémon TCG Pocket“ mehrere Vorteile:

  • Reduzierte Shader-Kompilierungszeit: Vulkan reduziert die Shader-Kompilierungszeit erheblich, auch bei einer großen Anzahl von Shadern. Die OpenGL ES-Kompilierungszeit kann beispielsweise mehr als 1 Sekunde betragen. Beim Vulkan-Rendering ist das jedoch kein Problem mehr.
  • Erweiterte Unterstützung für Geräte: Durch Verbesserungen bei der Framerate und dem Akkuverbrauch können jetzt mehr Geräte unterstützt werden. So profitieren mehr Nutzer von einer flüssigeren Wiedergabe.
  • Verbesserte Telemetrie mit Vulkan-Bestätigungsebenen: Die Vulkan-Bestätigungsebene war sehr hilfreich bei der Ermittlung der Grundursache von Problemen und ergänzte die Daten aus den ANR-/Absturzberichten von Vitals.

Nachricht an Entwickler

Das Entwicklungsteam von Pokémon TCG Pocket hat folgende Tipps für Entwickler, die Vulkan für ihre Projekte in Betracht ziehen:

  • Neben der Verkürzung der Shader-Kompilierungszeit bietet Vulkan erhebliche Leistungsvorteile.
  • Wenn Sie vkQuality verwenden, um auf OpenGL ES umzustellen, lässt sich die Geräteunterstützung möglicherweise erweitern, auch wenn diese Funktion in Pokémon TCG Pocket noch nicht verwendet wird.

Fazit

Durch die Verwendung von Vulkan konnte das Entwicklungsteam von Pokémon TCG Pocket die Grafik auf einer Vielzahl von Geräten optimieren, um allen Spielern ein reibungsloses und ansprechendes Spielerlebnis zu bieten. Durch fortlaufende Funktionserweiterungen und ein sich weiterentwickelndes Potenzial wird Vulkan mit der Zeit voraussichtlich noch mehr Vorteile bieten.