Подтвердить что ты не робот

Различия между игровыми библиотеками Python Pygame и Pyglet?

У меня был некоторый опыт работы с Pygame, но в наши дни, похоже, вокруг Пиглета много шума.

Как эти две библиотеки сравниваются? Каким будет преимущество использования одного над другим, как в функциях, так и в простоте использования?

Наконец, скажете ли вы, что он более Pythonic, чем другой?

4b9b3361

Ответ 1

Я рассматривал как Pygame, так и Pyglet для небольшого 2D-шутера, и посмотрев исходный код, и некоторые уроки пошло с Pyglet. Я был очень доволен результатами.

Пиглет работал сразу, и было приятно работать, и концептуально очень чисто. Конечно, у меня было чувство Pythonic: вы могли бы получить простой и понятный пример очень быстро, и он использует декораторы для эффективного управления событиями. Это также не заставило создать определенную структуру программы, которая облегчила мне смешение в физическом моделировании Pymunk (http://code.google.com/p/pymunk/).

В то время как он основан на OpenGL, и вы можете использовать эти функции для специальных эффектов, я смог отлично справиться, не зная о них.

Он также хорошо работает с py2exe и py2app, что важно, потому что у многих людей нет установленного интерпретатора Python.

С другой стороны, в Интернете меньше информации об этом, потому что оно новее, а также меньше примеров игр для игр.

Кроме того, он немного изменился по сравнению с предыдущими версиями, поэтому некоторые из обучающих программ, которые есть, теперь устарели (есть "цикл событий нового стиля", и класс Sprite в качестве основных дополнений.)

Я бы рекомендовал загрузить примеры (есть хороший клон Asteroids, который называется Astraea) и посмотреть, нравится ли вам стиль.

Ответ 2

Pygame: лицензия LGPL

Pyglet: лицензия BSD

Pygame сильно опирается на библиотеки SDL

Pyglet - это чистая библиотека python с меньшим количеством зависимостей, я думаю, что это требует лучшего понимания OpenGL

Pygame уже давно здесь, многие люди использовали его

Pyglet - это новый lib

Pygame ориентирован на разработку игр (курсоры, спрайты, поддержка джойстика/геймпада)

Pyglet - более общая цель (хотя он имеет класс Sprite)

Я нашел также эту дискуссию по списку рассылки пользователей pyglet: от pygame + pyopengl до pyglet

Отказ от ответственности: я еще не использовал, только попробовал некоторые учебные пособия; -)

Ответ 3

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

Однако, если вам когда-либо приходилось генерировать графику "на лету", а затем сохранять их либо в виде переменной, либо в виде файла, тогда пиглет становится значительно более сложным, потому что вы начинаете гасить с помощью низкоуровневого Функции OpenGL. В этих сценариях pygame гораздо удобнее, с программным рендерингом и классом Surface. Или вы можете использовать Python Imaging Library и связать его с pyglet.

Очевидно, что для 3D-игр вам все равно придется гадать с функциями OpenGL, и в этом случае я рекомендую pyglet над pygame + PyOpenGL.

Ответ 4

Я хотел бы добавить, что есть быстрая библиотека спрайтов Rabbyt, которая может быть хорошим дополнением для Pyglet.

Ответ 5

Посмотрев на pygame и pyglet, я обнаружил, что пиглет легче подобрать и смог написать простую игру в стиле прорыва в течение нескольких дней.