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
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.
| Ograniczenia | Pulpit | Mobile |
|---|---|---|
| Źródło zasilania | Często gniazdo lub bateria zaprojektowana tak, by trwała | Zawsze ograniczona bateria |
| Reakcja na obciążenie | Rzadko staje się problemem | Przegrzewanie zmniejsza wydajność |
| Pamięć operacyjna | Zwykle dużo | Znacznie mniej, surowsze limity |
| Zarządzanie cyklem życia systemu operacyjnego | Mniej aktywny | Aktywne — tło, wyładunek, ponowne uruchomienie |
| Ścieżka publikacji | Bezpośrednia dystrybucja pliku lub Steam | App Store oraz tworzenie narzędzi firm trzecich |