Rozdział 20 · Tworzenie gier z Pygame

Ograniczenia gier mobilnych: bateria, pamięć i cykl życia

Bateria, Przegrzewanie, Pamięć, Cykl życia aplikacji – oraz prawdziwa odpowiedź na pytanie o wydanie Pygame- gry w App Store i Google Play.

Przeanalizujmy ograniczenia rozwoju urządzeń mobilnych, które nie są widoczne na pierwszy rzut oka, oraz pytanie, która prędzej czy później pojawia się u każdego, kto dotarł do tego miejsca: czy to możliwe Wziąć i opublikować projekt Pygame- do App Store i Google Play?

Bateria i przegrzewanie się

Telefon działa na ograniczonej baterii i ma ograniczony budżet cieplny — zauważalnie bardziej rygorystyczny niż w laptopie, który często jest podłączony do gniazdka lub ma baterię o większej pojemności. Cykl gry, który utrzymuje procesor w pełnym obciążeniu bez przerwy (zob. rozdział 20.15 o clock.tick()), długoterminowe duże obciążenie CPU/GPU przyspiesza rozładowywanie baterii i może prowadzić do thermal throttling – systemowego spadku Częstotliwość CPU, aby chronić przed przegrzaniem, które powoduje spowolnienie gry, nie z powodu Zły kod, ale właśnie przez tę ochronę.

Pamięć

Urządzenia mobilne zwykle mają zauważalnie mniej pamięci RAM niż desktop, a system operacyjny jest znacznie bardziej agresywny w monitorowaniu aplikacji, które zużywają go za dużo.

Cykl życia aplikacji

Aplikacje desktopowe też nie działają w próżni: mogą tracić koncentrację, zasnąć razem z komputerem lub z powodu awarii. Ale na telefonie system operacyjny steruje Cykl życia aplikacji jest zauważalnie bardziej aktywny i częstszy: może przesłać grę w dowolnym momencie w tle (połączenie przyszło, gracz minimalizował aplikację) i później lub odpowiedział dokładnie z tego samego miejsca miejsce, a jeśli nie ma wystarczająco dużo pamięci, całkowicie ją wyładować z pamięci i przy ponownym uruchomieniu Gra zaczyna się od nowa. Gra mobilna powinna prawidłowo doświadczać przejść między foreground a background. Jeśli utrata aktualnego stanu jest ważna dla gracza, aplikacja musi zapisać niezbędny postęp lub checkpoint do możliwego zakończenia procesu.

Sklepy z aplikacjami, reklamy i zakupy w grze

Publikacja na telefon prawie zawsze oznacza publikację za pośrednictwem sklepu z aplikacjami — Google Play dla Android lub App Store dla iOS. Oba mają proces weryfikacji przed publikacją, zasady tworzenia strony aplikacji i (dla wielu kategorii gier) typowy model biznesowy poprzez wyświetlanie reklam lub zakupy w grze (in-app purchases, IAP) — to osobny duży temat biznesu gier mobilnych, wykraczający poza ramy tej książki, ale warto wiedzieć, że istnieje i wpływa na to, jak skonstruowane są wiele gier mobilnych „od środka”.

Publikacja gry Pygame- na Android i iOS

Pygame nie ma wbudowanych eksportów do Android i iOS
Pygame pygame-ce nie ma oficjalnego, wbudowanego polecenia "zbuduj APK" lub "zbuduj aplikację dla iOS". W momencie sprawdzania główne repozytorium narzędzia firm trzecich python-for-android nie ma akceptowanej oficjalnej receptury na pygame-ce — istnieją tylko otwarte community pull request i niestandardowe przepisy, więc eksperymentalne buildy na Android są możliwe, ale nie można tego uznać za standardowy ani gwarantowany sposób wspierania. Publikowanie do iOS jest możliwe za pomocą osobnego narzędzia społecznościowego (szablon projektu plus wbudowany Xcode), którego autor sam opisuje jako niewystarczająco przetestowane i niegotowe do produkcji, a także nie testował osobiście wersji dla App Store. Obie ścieżki wymagają znacznie więcej kroków niż pip install, a wynik należy sprawdzić na rzeczywistym urządzeniu, a nie tylko zakładać na podstawie dokumentacji narzędzia.

To nie oznacza, że projekt mobilnej Pygame- jest niemożliwy – sekcja 20.31 dzieli Obie ścieżki (dla Android i dla iOS) oraz jak wyglądają w praktyce. Jest to zawarte w planie projektu z wyprzedzeniem, a nie w ostatniej chwili: jeśli ostatecznym celem są magazyny Ograniczenia aplikacji, ograniczenia tej sekcji (zużycie energii, pamięć, cykl życia, budowanie poprzez narzędzia społeczności) powinny być rozpatrywane od samego początku projektu, a nie Spróbuj je naprawić po fakcie, gdy gra jest już napisana pod kątem założeń desktopowych.

OgraniczeniaPulpitMobile
Źródło zasilaniaCzęsto gniazdo lub bateria zaprojektowana tak, by trwałaZawsze ograniczona bateria
Reakcja na obciążenieRzadko staje się problememPrzegrzewanie zmniejsza wydajność
Pamięć operacyjnaZwykle dużoZnacznie mniej, surowsze limity
Zarządzanie cyklem życia systemu operacyjnegoMniej aktywnyAktywne — tło, wyładunek, ponowne uruchomienie
Ścieżka publikacjiBezpośrednia dystrybucja pliku lub SteamApp Store oraz tworzenie narzędzi firm trzecich