Разработка игр на Python: ограниченные возможности распространения? - PullRequest
0 голосов
/ 23 января 2012

Я слышал о некоторых вещах, таких как py2exe и т. Д., Но я прочитал некоторые неясные вещи о том, как они работают с загруженными библиотеками, такими как pygame, numpy или pyglet & cocos2d. Нужно ли копировать весь модуль в начало вашей основной игры .pyw, чтобы превратить исполняемый файл (или .app, или что-то еще) в один файл? Кажется грязным и подверженным ошибкам.

В идеале у вас есть папка для ресурсов с фоновыми изображениями, спрайтами, музыкой и т. Д., Папка для сохранения файлов и хорошо работающий исполняемый файл. Насколько это достижимо? Я использую pygame, чтобы учиться и делать демонстрации / тестирование прямо сейчас, и планирую использовать cocos2D, когда мы начнем настоящую игру.

Нашей конечной целью будет распространение в Steam для Windows, Mac и Linux. Мы не хотим, чтобы у людей был установлен python, чтобы играть в нашу игру, даже если он никогда не будет подхвачен. Однако я слышал, что некоторые из этих утилит для создания приложений несовместимы с предыдущими версиями Windows, что очень плохо. Я использую 7, но я бы хотел, чтобы кто-нибудь с XP или Vista мог играть.

(Было бы еще более мечтательно иметь версию Playstation Vita или что-то в этом роде, но я представляю, что это совсем другая игра, верно? Возможно, придется перекодировать весь проект, чтобы быть совместимым?)

Кстати, используя Python 2.7, если это имеет значение.

1 Ответ

0 голосов
/ 16 февраля 2012

Когда вы распространяете игру, вы можете использовать что-то вроде py2exe или py2app для компиляции вашего приложения на Python.Во время этого процесса все, что требуется вашему приложению, копируется в конечный исполняемый файл.Это означает, что нет, вам НЕ нужно копировать библиотеки в локальную папку, и нет, клиентам НЕ нужен установленный Python для запуска.

Единственное предостережение в том, что это может быть сложно.Вы, вероятно, захотите:

  • Убедитесь, что вы связываете свои файлы (чтобы у вас не было много вспомогательных файлов, загромождающих каталог).
  • Убедитесь, чтоВы перераспределяете .dll и т. д., которые нужны вашему приложению (например, SDL.dll).Вам придется обратиться к своим библиотекам за юридическими проблемами.
  • Иногда у библиотек возникают другие проблемы (например, PyGame имеет шрифты по умолчанию, а PyOpenGL требует особого внимания).Обычно это выполнимо, но это не всегда хорошо.
...