Vor einigen Tagen berichteten wir über die geplante Herbst-Veröffentlichung des bislang Apple Arcade-exklusiven Oceanhorn 2: Knights of the Lost Realm auf der Nintendo Switch. Senior Graphics Programmer Kalle Hämäläinen von Entwickler Cornfox & Bros. hat auf der Unreal Engine-Webseite einen neuen Artikel über das Vorgehen des Studios bei der Nintendo Switch-Portierung geschrieben. Das Entwicklerteam hat Unterstützung durch Engine Software (unter anderem Portierung von The Legend of Heroes: Trails of Cold Steel III) erhalten. Folgende Ziele an die Nintendo Switch-Portierung haben sich die Entwickler gestellt:
- Die höchstmögliche Qualitätsstufe erreichen.
- Eine gleichbleibende Bildrate erzielen.
- Eine Auflösung von 1080p im TV- und 720p im Handheld-Modus erreichen.
- "Supersampling Anti-Aliasing" durch dynamische Auflösung statt MSAA (bei iOS genutzt) oder temporäres Anti-Aliasing (bei Mac genutzt) verwenden.
- Die Verwendung des Mobile-Renderer statt den PC-Renderer, da die Auflösung statt Rendering-Features priorisiert wird.
Ihr erster Versuch der Nintendo Switch-Portierung ergab eine Bildrate von 13 FPS. Für iOS wurde eine Zielmarke von 30 FPS gesetzt, um eine hohe Auflösung sowie eine gute Akku-Laufzeit zu gewährleisten. Für die Berechnung eines Bildes bei 30 FPS stehen den Prozessoren nur 33,3 Millisekunden zur Verfügung. Die ersten Versuche ergaben aber 80 Millisekunden. Die Basis der Portierung bildet die iOS-Version.
Zunächst wurden einige inperformante Blueprints (zum Erstellen diverser Funktionalitäten in der Unreal Engine) durch C++-Code ersetzt, welches einiges an Rechenzeit einsparte. Dann wurde die Nutzung diverse "Actor"-Objekte optimiert. Danach wurde noch die Berechnung von Gras und Vegetation angepasst. Zuletzt hat Engine Software noch eine Technik namens Actor Tick Batching implementiert, wodurch zahlreiche überflüssige oder doppelte Anweisungen entfernt werden konnten. Diese Technik wird auch in Sea of Thieves vom britischen Entwickler Rare genutzt.
Freut ihr euch bereits auf die Nintendo Switch-Umsetzung des Spiels?