Netmarble Games: Optimizing Performance with ADPF

Netmarble: logo serialu Gra o tron
Netmarble: scena bitwy
Netmarble: scena bitwy z bossem polowym Drogonem

Netmarble, jeden z wiodących deweloperów gier mobilnych, stworzył Game of Thrones: Kingsroad (wkrótce na Androida), czyli RPG akcji i przygody oparty na nagrodzonej Emmy® i Złotym Globem® serii „Gra o tron”. Podczas uruchamiania gry na urządzeniach z Androidem napotykała problemy ze skutecznością, zwłaszcza ograniczenie temperatury, co miało wpływ na trwałą wydajność i wrażenia użytkownika. Aby to osiągnąć, firma strategicznie wykorzystała ramę Android Adaptive Performance Framework (ADPF) i wdrożyła optymalizacje skupione na skalowaniu rozdzielczości i dynamicznej regulacji liczby klatek.

Wyzwanie

Gry mobilne o wysokiej jakości wymagają znacznych zasobów GPU i procesora, co często prowadzi do nadmiernego wydzielania ciepła i ograniczania temperatury na urządzeniach z Androidem. Firma Netmarble zauważyła, że długie sesje grania powodują wzrost temperatury urządzenia, co prowadzi do pogorszenia wydajności, w tym spadku liczby klatek i niestabilnej wydajności. Głównym wyzwaniem było zapewnienie atrakcyjnego wizualnie obrazu przy jednoczesnym skutecznym zarządzaniu temperaturą urządzenia, aby uniknąć spowalniania i zapewnić stałą wydajność.

Rozwiązanie

Firma Netmarble zastosowała podejście oparte na danych do korzystania z ADPF, koncentrując się na dynamicznych korektach na podstawie stanu termicznego w czasie rzeczywistym.

Identyfikowanie wąskich gardeł wydajności

Firma Netmarble przeprowadziła skrupulatną analizę wydajności, mierząc wpływ różnych ustawień jakości grafiki na liczbę klatek i obciążenie termiczne. Z tej analizy wynika, że skalowanie rozdzielczości miało największy wpływ na obciążenie GPU i wytwarzanie ciepła, nie wpływając znacząco na częstotliwość wyświetlania klatek. Co ważne, okazało się, że inne opcje graficzne (cienie, tekstury itp.) miały stosunkowo niewielki wpływ na ogólną wydajność cieplną.

Dynamiczne skalowanie rozdzielczości

Netmarble dodał system dynamicznej rozdzielczości. Zmienia jakość obrazu w grze na podstawie temperatury urządzenia za pomocą interfejsu ADPF Thermal API. Dzięki temu gra może dostosować się do różnych warunków. Gdy urządzenie jest chłodne, gra używa wysokiej rozdzielczości. Jeśli urządzenie się przegrzewa, gra obniża rozdzielczość, aby zmniejszyć temperaturę.

Dostosowanie adaptacyjnej częstotliwości klatek

W związku ze skalowaniem rozdzielczości Netmarble wdrożył dynamiczne korekty liczby klatek. Jeśli docelowa liczba klatek na sekundę w grze wynosi 60, system może stopniowo zmniejszać docelową liczbę klatek na sekundę, gdy wykryje nadmierne nagrzewanie się. Aby uniknąć problemów z temperaturą, Netmarble ustawił minimalną skalowalna liczbę klatek na sekundę na 30. Dzięki temu gra działała płynnie. System jest też zaprojektowany tak, aby stopniowo zwiększać liczbę klatek na sekundę do wartości docelowej, gdy temperatura spadnie, co pozwala zachować optymalną wydajność.

Wyniki

Wdrożenie dynamicznego skalowania rozdzielczości i adaptacyjnych korekt liczby klatek na sekundę, które są obsługiwane przez ADPF, znacznie poprawiło zarządzanie temperaturą i wydajność działania.

Netmarble: porównanie wydajności
  • Zwiększony margines temperatury: ADPF zmniejszył średni margines temperatury z 1,04 do 0,92 (o 11%), zapobiegając pogorszeniu wydajności i wydłużając żywotność urządzenia. Wartość marginesu temperaturowego nigdy nie przekroczyła 1,0, dzięki czemu zapobiegała przegrzewaniu się urządzenia.
  • Bardziej stabilna liczba klatek na sekundę: ta funkcja zapewnia płynniejszą rozgrywkę dzięki inteligentnemu dostosowywaniu docelowej liczby klatek na sekundę w grze na podstawie stanu termicznego urządzenia. Bez ADPF liczba klatek na sekundę w grze może się znacznie wahać (np. od 40 do 56) z powodu ograniczania ze względu na temperaturę. Ta niestabilna częstotliwość klatek spowodowana jest tym, że urządzenie ma problemy z odprowadzaniem ciepła, co może powodować nieprzyjemne wrażenia podczas rozgrywki. Dzięki temu gra może zapobiegać nadmiernemu nagrzewaniu się, zapewniając stabilną i ciągłą liczbę klatek na sekundę, która zwykle mieści się w zakresie 50–60 FPS. Zapobiega to nagłym spadkom liczby klatek związanym z ograniczeniem temperatury, co znacznie poprawia komfort korzystania z odtwarzacza.
  • Zachowujemy wysoką jakość grafiki: dzięki temu, że priorytetem jest skalowanie rozdzielczości jako główny mechanizm dostosowywania, firma Netmarble zminimalizowała wpływ zarządzania temperaturą na jakość obrazu, zachowując przy tym inne ustawienia (tekstury, efekty itp.) na wyższych poziomach.

Podsumowanie

Koncentrując się na skalowaniu rozdzielczości i dynamicznym dostosowywaniu liczby klatek na sekundę zgodnie z zaleceniami ADPF, firma Netmarble rozwiązała problemy z przegrzewaniem się urządzenia w grze Game of Thrones: Kingsroad, zachowując przy tym optymalny balans między wydajnością, jakością obrazu i wrażeniami użytkownika. Ich strategiczne korzystanie z ADPF pokazuje skuteczne podejście dla deweloperów gier mobilnych, którzy mają podobne problemy. ADPF zapewnił graczom bardziej niezawodne, przyjemne i spójne wrażenia, umożliwiając im dłuższą rozgrywkę z mniejszą liczbą spadków liczby klatek i mniejszymi obawami o przegrzanie urządzenia. Dzięki temu rozwiązaniu firma Netmarble może nadal zapewniać wysoką jakość gier, a zarazem optymalną wydajność i długowieczność urządzeń.

Rozpocznij pracę z ADPF już dziś w Unity, Unreal i C++

Deweloperzy, którzy chcą korzystać z Androida Adaptability, powinni:

Niezależnie od tego, którego silnika używasz, zawsze możesz bezpośrednio korzystać z interfejsów API. Więcej informacji znajdziesz w artykule Android Adaptability i artykule Wtyczka ADPF dla Unreal Engine.