Глава 20 · Разработка игр с Pygame

Веб-игры, XR и облачный гейминг

Три способа добраться до игрока, устроенные совсем не как обычный десктопный запуск.

Веб: игра прямо в браузере

Веб-игра не требует установки — игрок открывает ссылку и играет прямо в браузере. Между вашим Python-кодом на Pygame и браузером стоит несколько слоёв, а не один волшебный переключатель:

Исходный код на Pygame
обычный import pygame
Python-рантайм, собранный под WebAssembly
готовит инструмент вроде pygbag — раздел 20.30
WebAssembly (WASM)
компактный байт-код, который браузер умеет исполнять быстро
Браузер
Canvas для картинки, Web Audio для звука, обработчики ввода
WebAssembly — это формат байт-кода, который исполняет браузер; сам по себе он не запускает обычный десктопный Python — для этого нужен отдельно собранный рантайм и инструмент вроде pygbag.

XR: виртуальная и дополненная реальность

XR (extended reality) объединяет виртуальную реальность (VR, полностью цифровое окружение в гарнитуре) и дополненную реальность (AR, цифровые объекты поверх реального мира). Разработка под XR требует стерео-рендеринга (отдельная картинка для каждого глаза), отслеживания положения головы и рук и жёстких требований к частоте кадров, чтобы не вызвать у игрока укачивание. Это отдельная, узкоспециализированная область разработки — Pygame не предназначен для XR.

Облачный гейминг — способ доставки, а не отдельное устройство

При облачном гейминге игра выполняется на сервере в дата-центре — фактически на обычном десктопном или серверном оборудовании, — а на устройство игрока в реальном времени передаётся только видеопоток, как видеозвонок с игрой на том конце. Поэтому облачный гейминг честнее описывать не как ещё одну платформу наравне с десктопом или мобильными, а как способ доставки уже существующей десктопной (или консольной) версии игры до экрана, на котором её физически не запускали. Это снимает требования к мощности устройства игрока, но требует стабильного и быстрого интернет-соединения.

Сводка: где Pygame подходит напрямую

КудаТипичный вводКак игра попадает к игрокуPygame — подходящий инструмент?
ДесктопКлавиатура, мышь, геймпадСкачивание файла или магазин вроде SteamДа — родная платформа
КонсолиГеймпад производителяОфициальный магазин консоли, через SDKНет — нужен официальный SDK
Портативные консолиТачскрин или кнопкиМагазин устройстваНет напрямую — см. раздел 20.13
МобильныеТачскрин, акселерометрApp Store, Google PlayТолько через инструменты сообщества — раздел 20.31
ВебКлавиатура, мышь, тачСсылка в браузереДа, через pygbag — раздел 20.30
XRКонтроллеры, отслеживание рукМагазин гарнитурыНет — нужен XR-движок

Облачный гейминг в эту таблицу намеренно не включён: он не меняет ответ на вопрос «подходит ли Pygame», а лишь добавляет ещё один способ доставить уже готовую десктопную сборку до экрана игрока.

Где Pygame сильнее всего
Среди целевых устройств Pygame увереннее всего чувствует себя на десктопе и способен, с оговорками и через инструменты сообщества, дотянуться до веба и мобильных устройств (разделы 20.11–20.13, 20.30–20.31). Знать эти границы заранее избавляет от разочарования на позднем этапе проекта — гораздо лучше выбрать целевое устройство под инструмент, чем упереться в инструмент, не подходящий под уже выбранное устройство.