Rozdział 20 · Tworzenie gier z Pygame

Co naprawdę jest możliwe w Android, iOS i konsolach

Android jest dostępny wyłącznie poprzez eksperymentalną integrację społecznościową, nie jest akceptowany do głównego repozytorium python-for-android. iOS – przez narzędzie, które sam autor nazywa eksperymentalnym.

Rozdział 20.13 już udzieliła odpowiedzi w ogólnych kategoriach: Pygame nie jest publikowana na platformach mobilnych jako zespół. Tutaj możesz przeczytać więcej o tym, jak obie rzeczywiste ścieżki wyglądają w praktyce, a jak nie tylko że istnieją.

Android – python-for-android, Buildozer i eksperymentalne przepisy

python-for-android — to infrastruktura do pakowania Python-aplikacji pod Android; na niej zwykle używa się Buildozer — wyższej klasy narzędzie, które pobiera ustawienia z prostego pliku konfiguracyjnego i uruchamia kompilację .apk za ciebie, podłączając potrzebne przepisy. W momencie sprawdzania w głównym repozytorium python-for-android nie ma przyjętego oficjalnego przepisu pygame-ce — są tylko otwarte community pull request, dodające taki przepis, i przepisy użytkowników, które można podłączyć ręcznie. Dlatego zwykła instalacja Buildozer sama w sobie nie daje gotowego wsparcia pygame-ce:, zbudowanie APK z pygame-ce jest możliwe, podłączając jeden z tych przepisów ręcznie (na przykład przez fork lub lokalny przepis custom-), ale jest to eksperymentalna, a nie standardowa lub gwarantowanie wspierana integracja — kompatybilność należy sprawdzać ponownie w momencie kompilacji i obowiązkowo testować na rzeczywistym urządzeniu. Proces w każdym przypadku jest zauważalnie dłuższy niż pakowanie pod desktop (sekcja 20.29): potrzebny jest zestaw narzędzi Android (Android SDK/NDK)), kompilacja zajmuje znacznie więcej czasu, a końcowy rozmiar pliku jest wyraźnie większy niż sam kod gry — do środka APK zapakowane jest całe środowisko uruchomieniowe Python.

iOS – poprzez pygame-ios, narzędzie eksperymentalne

pygame-ios jest projektem pilotażowym, który nie jest gotowy do publikacji
Dla iOS istnieje narzędzie społecznościowe pygame-ios — szablon projektu, który osadza grę Pygame- w standardowej Xcode. Własna dokumentacja wyraźnie opisuje ją jako niedoprzetestowaną i niegotową do produkcji: autor narzędzia informuje, że wersja do prawdziwej publikacji w App Store nie była osobiście przez niego testowana. To nie jest „jedna z dwóch równych ścieżek”

Oprócz statusu samego narzędzia, publikacja na iOS wymaga komputerowego Mac (Xcode jest dostępny tylko na macOS), buildach i podpisach poprzez sam Xcode i, jak w każdej iOS- aplikacji, Płatne konto deweloperskie Apple. Narzędzie nie obsługuje każdej wersji pygame-ce — Specyficzna zgodność powinna być sprawdzana w dokumentacji narzędzi w momencie montażu, a nie Polegaj na pamięci z poprzedniego projektu.

AndroidiOS
Toolpython-for-android + Buildozer (społeczność)pygame-ios (społeczność, eksperymentalny)
Oficjalne wsparcie pygame-ceNie — przepis nie został przyjęty do głównego repozytoriumTak
Gotowy do publikacjiEksperymentalne składanie za pomocą community pull request lub custom-recept; wymaga sprawdzenia aktualnego statusu receptury i narzędziAutor opisuje jako niegotowy do produkcji
Odpowiedni system montażuWindows, macOS czy LinuxTylko macOS (potrzeba Xcode)
Format końcowy.apk / .aabProject Xcode →. ipa
PublikacjaGoogle PlayApp Store potrzebujesz konta deweloperskiego Apple

Konsole

Dla konsol do gier (sekcja 20.9) zauważalny, wspierany przez społeczność łańcuch pośredni taki jak python-for-android nie istnieje. Publikacja na konsoli pozostaje oddzielnym, zamkniętym procesem przez oficjalny SDK producenta — nie jest to związane z wyborem Pygame konkretnie, tak samo zorganizowana jest publikacja gier napisanych w dowolnym narzędziu.

Zaplanuj swój mobilny build z wyprzedzeniem, a nie na końcu
Obie mobilne ścieżki dodają rzeczywistą pracę inżynierską na gotowej grze desktopowej — to nie jest finalny eksport jednym kliknięciem, lecz oddzielny etap projektu z własnymi wymaganiami dotyczącymi środowiska budowy, przy czym gotowość tych ścieżek znacznie różni się między Android i iOS.. Decyzję o wydaniu gry również na telefony należy podjąć na początku pracy nad grą (biorąc pod uwagę ograniczenia rozdziału 20.13 — bateria, pamięć, cykl życia, wprowadzanie), a nie próbować dopasować go po tym, jak cały kod został już napisany pod założenia desktopowe.