Что реально возможно на Android, iOS и консолях
Android доступен только через экспериментальную интеграцию сообщества, не принятую в основной репозиторий python-for-android. iOS — через инструмент, который его собственный автор называет экспериментальным.
Раздел 20.13 уже дал ответ в общих чертах: Pygame не публикуется на мобильные платформы одной командой. Здесь — подробнее о том, как выглядят оба реальных пути на практике, а не только то, что они существуют.
Android — python-for-android, Buildozer и экспериментальные рецепты
python-for-android — это инфраструктура для упаковки
Python-приложений под Android; поверх неё обычно используют Buildozer
— более высокоуровневый инструмент, который берёт настройки из простого
конфигурационного файла и запускает сборку .apk за вас,
подключая нужные рецепты. На момент проверки в основном репозитории
python-for-android нет принятого официального рецепта pygame-ce
— есть только открытые community pull request'ы, добавляющие такой рецепт, и пользовательские
рецепты, которые можно подключить вручную. Поэтому обычная установка Buildozer сама по себе
не даёт готовой поддержки pygame-ce: собрать APK с pygame-ce можно, подключив один из этих
рецептов вручную (например, через форк или локальный custom-рецепт), но это экспериментальная,
а не стандартная или гарантированно поддерживаемая интеграция — совместимость стоит проверять
заново на момент сборки и обязательно тестировать на реальном устройстве. Процесс в любом
случае заметно длиннее, чем упаковка под десктоп (раздел 20.29): нужен набор инструментов
Android (Android SDK/NDK), сборка занимает существенно больше времени, а итоговый размер
файла заметно больше, чем сам код игры — внутрь APK упаковывается целая среда выполнения
Python.
iOS — через pygame-ios, экспериментальный инструмент
Помимо статуса самого инструмента, публикация на iOS требует компьютера Mac (Xcode доступен только на macOS), сборки и подписи через сам Xcode и, как и любое iOS-приложение, платного аккаунта разработчика Apple. Инструмент поддерживает не каждую версию pygame-ce — конкретную совместимость стоит сверять с документацией инструмента на момент сборки, а не полагаться на память из прошлого проекта.
| Android | iOS | |
|---|---|---|
| Инструмент | python-for-android + Buildozer (сообщество) | pygame-ios (сообщество, экспериментальный) |
| Официальная поддержка pygame-ce | Нет — рецепт не принят в основной репозиторий | Нет |
| Готовность к публикации | Экспериментальная сборка через community pull request'ы или custom-рецепт; требует проверки актуального состояния рецепта и инструментов | Автор описывает как не готовый к продакшену |
| Нужная система для сборки | Windows, macOS или Linux | Только macOS (нужен Xcode) |
| Итоговый формат | .apk / .aab | Проект Xcode → .ipa |
| Публикация | Google Play | App Store, нужен аккаунт разработчика Apple |
Консоли
Для игровых консолей (раздел 20.9) заметной, поддерживаемой сообществом переходной цепочки
вроде python-for-android не существует. Публикация на консоли
остаётся отдельным, закрытым процессом через официальный SDK производителя — это не связано
с выбором Pygame конкретно, так же устроена публикация игр, написанных на любом инструменте.