Différences entre les bibliothèques de jeux Python Pygame et Pyglet?

J'ai eu une certaine expérience avec Pygame, mais il semble qu'il y ait beaucoup de buzz autour de Pyglet ces jours-ci.

comment ces deux bibliothèques se comparent-elles? Quel serait l'avantage d'utiliser l'un par rapport à l'autre, tant sur le plan des caractéristiques que de la facilité d'utilisation?

enfin, diriez-vous que l'un est plus pythonique que l'autre?

40
demandé sur Martin v. Löwis 2008-12-16 10:55:22

5 réponses

je considérais à la fois Pygame et Pyglet pour un petit tireur 2D, et après avoir regardé le code source et quelques tutoriels est allé avec Pyglet. J'ai été très heureux avec les résultats.

Pyglet a travaillé immédiatement et a été agréable à travailler avec, et conceptuellement très propre. Il a certainement eu une sensation pythonique pour moi: vous pourriez obtenir un exemple simple et lisible allant très rapidement, et il utilise des décorateurs à bon effet pour la manipulation d'événement. Il également n'a pas la force d'un structure de programme particulière, qui m'a permis de mélanger facilement dans la modélisation physique de Pymunk ( http://code.google.com/p/pymunk / ).

bien qu'il soit basé sur OpenGL et que vous puissiez utiliser ces fonctionnalités pour des effets spéciaux, j'ai été capable de faire très bien sans aucune connaissance d'eux.

cela fonctionne aussi bien avec py2exe et py2app, ce qui est important car beaucoup de gens n'ont pas d'interpréteur Python installé.

du côté négatif, il y a moins d'information à ce sujet sur le web parce qu'il est plus récent, ainsi que moins de jeux d'échantillon à regarder.

aussi, il a changé un peu des versions précédentes, de sorte que certains des tutoriels qui sont là sont maintenant périmés (il y a la " nouvelle boucle d'événement de style" et la classe Sprite comme ajouts majeurs.)

je recommande de télécharger les exemples (il y a un beau clone D'astéroïdes appelé Astraea inclus) et de voir si vous aimez le style.

25
répondu Kiv 2008-12-29 02:40:06

Pygame: licence LGPL

Pyglet: licence BSD

Pygame s'appuie fortement sur les bibliothèques SDL

Pyglet est une bibliothèque purs python avec moins de dépendances, je pense qu'il nécessite une meilleure compréhension de OpenGL

Pygame est ici depuis longtemps, beaucoup de gens l'ont utilisé

Pyglet est une nouvelle lib

Pygame est orientée vers le développement de jeux (curseurs, les sprites, joystick/manette de soutien)

Pyglet est plus d'usage général (même s'il a une classe Sprite)

j'ai également trouvé cette discussion sur pyglet-utilisateurs Liste de diffusion: de pygame+pyopengl à pyglet

Avertissement: je n'ai pas utilisé encore, seulement essayé quelques tutoriels ;-)

28
répondu sastanin 2012-04-20 03:35:45

Pyglet est bon (pour les jeux 2D) si vous n'avez jamais l'intention de dessiner des graphismes vectoriels ou des primitives dans le jeu lui-même, et juste s'en tenir au chargement des images à partir du disque. Il est également beaucoup plus propre parce qu'il n'y a pas besoin d'écrire votre propre boucle de jeu et avoir à se soucier de la vitesse et le calendrier et la réactivité.

cependant, si vous devez Un jour générer des graphiques à la volée, puis les enregistrer, que ce soit sous forme de variable ou de fichier, alors pyglet devient considérablement plus compliqué parce que vous commencez à avoir à vous faufiler avec les fonctions OpenGL de bas niveau. Dans ces scénarios, pygame est beaucoup plus convivial, avec son rendu logiciel et sa classe de Surface. Ou vous pouvez utiliser la bibliothèque D'imagerie Python et l'interface avec pyglet.

évidemment, pour les jeux 3D, vous allez devoir vous faufiler avec les fonctions OpenGL de toute façon, dans ce cas je recommande pyglet sur pygame + PyOpenGL.

12
répondu ztangent 2017-02-02 20:34:31

je voudrais ajouter qu'il y a une bibliothèque sprite rapide Rabbyt qui peut être un bon complément pour Pyglet.

5
répondu sastanin 2010-11-04 07:10:04

après avoir regardé à la fois pygame et pyglet j'ai trouvé pyglet plus facile à ramasser et a été en mesure d'écrire un jeu de style de breakout simple en quelques jours.

2
répondu Alastair Montgomery 2010-03-19 14:00:39