PyGame : L’outil de création de jeux vidéo 2D en Python

-
6
 m de lecture
-

PyGame est une bibliothèque Python dédiée au développement de jeux vidéo. Découvrez tout ce que vous devez savoir sur cet outil, son fonctionnement, ses avantages et inconvénients, et sur les formations pour apprendre à l'utiliser.

Les jeux vidéo sont une excellente façon de se divertir et de s’amuser. Toutefois, le processus de conception et programmation de ce type de logiciel est loin d’être une partie de plaisir.

Heureusement, le langage Python permet de simplifier cette tâche ardue. Le module PyGame permet de créer des jeux rapidement, y compris pour les débutants.

Qu'est-ce que PyGame ?

PyGame est un jeu de modules Python multiplateformes, libre et open-source, conçu pour la création de jeux vidéo et autres contenus multimédia. Il regroupe des bibliothèques de graphismes et de sons pensées pour être utilisées avec le langage de programmation.

Cet outil fut initialement créé par Pete Shinners, dans le but de remplacer PySDL après l’abandon du projet. Depuis l’an 2000, il s’agit d’un projet communautaire relaxé sous la licence de logiciel libre GNU Lesser General Public Licence. Il peut donc être distribué sous forme de logiciel open source ou commercial.

Comment fonctionne PyGame ?

PyGame repose sur la bibliothèque Simple DirectMedia Layer (SDL), permettant l’interface et la gestion d’appareils d’entrée tels qu’un clavier, une souris ou un joystick et d’appareils de sortie comme un écran ou un haut-parleur.

Le but est de permettre le développement de jeu vidéo en temps réel sans les mécaniques de bas niveau du langage C et de ses dérivés. Les fonctions de jeu les plus basiques sont abstraites, simplifiant fortement le développement.

En d’autres termes, plutôt que d’avoir à écrire un moteur de jeu en Python depuis le début, PyGame permet d’exploiter des fonctions déjà codées. Ceci permet de se concentrer sur le jeu en lui-même.

Par ailleurs, SDL propose aussi des fonctionnalités de mathématiques vectorielles, détection de collision, gestion de sprite 2D, manipulation de matrice de pixels, transformations, filtrage et dessin. Elle prend aussi en charge le MIDI et les polices freetype.

Les applications basées sur PyGame peuvent être exécutées sur les smartphones et tablettes Android à l’aide d’un Pygame Subset pour Android. Les sons, les vibrations, le clavier et l’accéléromètre sont pris en charge.

Les composants de PyGame

PyGame repose sur quatre principaux composants. Afin de créer un jeu avec cet outil, il est nécessaire de bien les connaître.

Tout d’abord, Pygame.init(e) est utilisé pour initialiser tous les modules PyGame importés. Cette commande permet d’appeler tous les modules nécessaires au programme en une seule fois.

La « Display Surface » est un écran noir faisant office de toile sur laquelle concevoir le jeu. Tous les composants du programme apparaissent sur cet écran.

La « Game Loop » est un morceau de code utilisé pour exécuter la logique principale du jeu. Ceci aide à définir les règles, et permet de prendre en charge et mettre à jour les événements.

Enfin, Pygame.quit() a l’effet inverse de la fonction init(). Elle permet de désactiver complètement la bibliothèque PyGame, mais le jeu n’est pas fermé.

Quels types de jeux peuvent être créés avec PyGame ?

Une large variété de jeux peut être développée avec PyGame. Ce module prend en charge aussi bien les jeux d’aventure textuels à l’ancienne que les jeux graphiques.

On peut d’abord mentionner les jeux de plateau basiques comme le jeu d’échecs, le jeu de dames, le sudoku, le Solitaire ou le puissance 4.

Il est aussi possible de créer des jeux graphiques impliquant un mouvement du curseur de la souris comme Snake, Flappy Bird ou Car Racing. Un grand nombre de ces jeux sont d’ailleurs open source et accompagnent la bibliothèque de base de PyGame.

Les jeux de plateformes impliquant l’animation d’objets peuvent également être construits avec cet outil. Des packs de personnages peuvent être utilisés pour créer une expérience plus riche.

Enfin, même s’il est techniquement possible de créer des jeux vidéo plus avancés, les limites de PyGame peuvent rapidement poser problème.

En guise d’exemples de jeux créés avec PyGame, on peut mentionner Snake, Frets on Fire, Dangerous High School Girls in Trouble, Drawn Down Abyss, ou encore le titre Save the Date finaliste de la compétition IndieCade 2013.

Avantages et inconvénients

Il est possible de créer des jeux sans PyGame, mais la tâche est fastidieuse. Cet outil prend en charge de nombreux détails de bas niveau pour permettre de se concentrer sur la logique du jeu.

En l’utilisant, il n’est par exemple plus nécessaire de positionner les objets, de les déplacer sur l’écran, ou de déterminer comment recevoir les entrées ou commandes des joueurs.

Les fonctions de PyGame fournissent toutes ces capacités, et le développeur peut se focaliser sur des éléments comme les règles du jeu, la façon dont le joueur marque des points, ou comment la partie est gagnée.

Autre point fort : PyGame utilise Python, connu pour sa flexibilité et sa simplicité. Sa syntaxe proche de l’anglais en fait un langage adapté aux débutants.

De plus, la documentation officielle est très complète et permet de comprendre tous les mécanismes importants de cet outil. La communauté de contributeurs est dévouée, et toujours prête à venir en aide aux néophytes via Reddit ou Discord.

Par ailleurs, un jeu programmé avec PyGame fonctionnera aussi bien sur PC, smartphone ou autre appareil. Ce module est multiplateforme et ne requiert donc pas de réécrire le code.

En revanche, si PyGame est suffisant pour créer des jeux en 2D, cet outil est trop lent pour des jeux en 3D complexes en temps réel exploitant la carte graphique (GPU) d’un ordinateur.

PyGame et sa communauté

PyGame fédère une vaste communauté très active. Ses membres ont créé de nombreux tutoriels, permettant aux débutants d’apprendre à maîtriser rapidement ce puissant outil.

Les contributeurs ont créé une large gamme d’outils pour les divers aspects du développement de jeu vidéo, du rendu graphique à la prise en charge du hardware d’entrée en passant par la détection de collision.

Toutes les actualités et évolutions du projet peuvent être suivies sur sa page GitHub officielle. Vous y découvrirez notamment les fonctionnalités en développement, les améliorations apportées au code, les correctifs de bugs et les informations sur les nouvelles versions.

En outre, la compétition PyWeek est régulièrement organisée. Elle consiste à créer des jeux avec Python et PyGame.

Un module parfait pour apprendre le codage aux enfants

La création de jeu vidéo est une activité parfaite pour initier les enfants à la programmation. Les nombreux éléments visuels sont engageants, et le résultat est amusant et ludique.

En utilisant PyGame, les plus jeunes pourront apprendre le langage Python utilisé par de nombreux développeurs dans le monde entier. Ils pourront coder leurs propres jeux, ou importer du code déjà écrit par d’autres utilisateurs depuis le Python Package Index (PyPi) et les bibliothèques GUI.

Tous les aspects de jeux PyGame sont entièrement personnalisables et adaptables au type de machine utilisé. Il est notamment possible d’ajouter ses propres images et fichiers MP3. Par la suite, les enfants pourront partager les jeux qu’ils ont créé avec le monde entier.

La version simplifiée de l’outil, PyGame Zero, permet de commencer à créer des jeux encore plus facilement. Quelle que soit la version choisie, de nombreux tutoriels permettent de se laisser guider au fil des étapes.

Qu'est-ce que PyGame Zero ?

PyGame Zero a été créé par Daniel Pope alias Lord Mauve sur GitHub pour offrir une expérience de codage de jeu vidéo simplifiée pour les programmeurs Python débutants.

Cet outil est si facile d’utilisation qu’il permet de créer un jeu vidéo en moins d’une heure. La prise en charge d’éléments comme les pressions de touche, les clics de souris ou la présentation d’objets à l’écran est très intuitive.

Toutefois, il s’agit d’une bibliothèque dédiée à l’apprentissage. Elle n’offre donc pas de fonctionnalités aussi avancées que PyGame. Elle est aussi plus récente, et vous ne trouverez donc pas autant de tutoriels.

PyGame vs Pyglet

Pyglet est une autre bibliothèque Python dédiée au développement de jeux vidéo. Il s’agit plus exactement d’une bibliothèque multiplateformes multimédia, utilisée pour la création de jeux et autres applications visuellement riches.

Par rapport à PyGame, l’un de ses points forts est la prise en charge de la 3D grâce à OpenGL. Cet outil est écrit en pur Python, et peut être compilé en utilisant d’autres interpréteurs.

Néanmoins, la popularité de Pyglet est moins large. Cette bibliothèque est donc moins populaire, et les débutants trouveront moins facilement de l’aide en cas de besoin.

PyGame 2.0 : une nouvelle version pour le vingtième anniversaire

En 2009, la version 2 de PyGame fut annoncée sous le nom de code « PyGame Reloaded ». Toutefois, le développement et la maintenance de PyGame ont totalement cessé jusqu’à la fin de 2016, avec la version 1.9.1.

Le projet d’une deuxième version fut à nouveau inscrit sur la feuille de route en mars 2019 après la relaxe de la version 1.9.5. Finalement, Pygame 2.0 a été lancé le 28 octobre 2020 pour le vingtième anniversaire du projet.

Comment utiliser PyGame ?

Pour commencer à utiliser PyGame, la première étape est de télécharger Python sur ordinateur Linux, Windows ou Mac. Vous pouvez ensuite installer PyGame avec le Python Package Installer aussi connu sous le nom « pip ».

Ouvrez l’invite de commande, et tapez la commande « pip install pygame ». Le processus d’installation commence automatiquement, et un message vous annoncera quand il sera complété.

En guise d’alternative, vous pouvez vérifier si l’installation a réussi en lançant un jeu de démonstration fourni avec PyGame. Vous pouvez par exemple taper « python -m pygame.exemples.aliens » pour lancer le jeu Aliens.

Si vous avez déjà installé PyGame, vous pouvez le mettre à jour vers la dernière version avec la commande « pip install pygame –upgrade ». En cas de problème lors de l’installation, n’hésitez pas à consulter les instructions sur le site officiel.

Pour installer PyGame sur Mac, téléchargez la dernière version en date au format .dmg sur le site officiel pygame.org. Dézippez le fichier, puis double-cliquez sur le fichier mpkg pour exécuter l’installeur. Suivez ensuite les instructions.

Après avoir complété l’installation, vous pouvez importer les modules PyGame en tapant « import pygame » et les initialiser avec la commande « pygame.init() ».

Conclusion : PyGame, un outil idéal pour commencer à créer des jeux vidéo

PyGame est un très bon outil pour commencer à développer des jeux vidéo, en particulier si vous êtes déjà familiarisé avec le langage Python et la syntaxe orientée objet. Il existe de nombreux tutoriels créés par la communauté, permettant d’acquérir la maîtrise de cette bibliothèque.

Afin d’apprendre Python, vous pouvez aussi choisir DataScientest. Toutes nos formations comportent un module dédié au langage Python et à ses bibliothèques.

À travers nos différents cursus, vous pourrez apprendre toutes les compétences et outils requis pour exercer les professions de Data Analyst, Data Scientist, Data Engineer, Machine Learning Engineer ou Data Product Manager.

Tous nos programmes se complètent intégralement à distance via le web, et notre organisme reconnu par l’État est éligible au Compte Personnel de Formation. Découvrez dès à présent DataScientest !

Vous savez tout sur PyGame. Pour plus d’informations sur le même sujet, découvrez notre dossier complet sur Python et notre dossier sur Pyglet.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?