Salut à tous,
Je poste aujourd’hui ce message pour présenter mon projet : PyEngine. Mais avant cela, commençons par une petite présentation de moi-même : je suis LavaPower, développeur Python depuis bientôt 4 ans et ayant à mon actif de nombreux projet. Je bosse avec une équipe de 5 personnes (dont moi même) sur PyEngine (mais je suis un des seuls à être à fond dessus)
Revenons à PyEngine.
En savoir plus sur le projet
Genèse
J’étais en train de créer un jeu vidéo avec PyGame, le projet avancait bien mais je voulais le rendre maintenable et j’ai commencé à créer un système d’entité. Mais je me suis rendu compte que ce genre de système était utile dans presque tous les jeux et qu’il serait intéressant de le créer dans une bibliothèque python. C’est ainsi que commença la création de PyEngine
Généralités et avancement
Actuellement, PyEngine en est à la version 1.1.2. Il est assez proche du paterne "ECS" (Entity, Component, System) mais ne suit pas totalement ce dernier. C’est à dire que les entités et les composants suivent bien ce paterne mais les systèmes de PyEngine n’ont rien à voir. Ceux ci sont là pour gérer une partie du jeu. Exemple : L’EntitySystem gère toutes les entités tandis que l’UISystem gère tous les widgets.
PyEngine comporte déjà pas mal de composants et son système d’entités est assez avancé. Le système de Widgets est lui assez basique et ne comporte que 4 widgets : Label (pour écrire un texte), Image (pour afficher une image), Button (pour créer un bouton) et Entry (pour créer une entrée de texte). Ce dernier est particulièrement limité vu qu’il a du être codé à la main.
Je pourrais encore parler des heures sur PyEngine, notamment des GameStates ou des deux autres systèmes mais je vais plutôt vous laisser poser des questions auxquelles je me ferai une joie de répondre.
Objectifs
PyEngine est en constant amélioration. Mon but est de faire de lui une bibliothèque simple, stable et utile sans trop l’alourdir.
Des fonctionnalités sont prévues comme l’arrivé de nouveaux widgets et vous pouvez toujours faire des suggestions sur Github ou même discord
Le projet et son originalité
Il existe déjà des bibliothèques pour faire des jeux en Python. On peut citer PyGame qui est lui même utilisé par PyEngine. Cependant, il est simple à prendre en main quand on a compris son architecture et il facilite des mécanismes comme la gravité, les collisions ou même la création de widgets.
Cette présentation est à présent terminé. Vous pouvez retrouver PyEngine sur :
Merci d’avoir lu jusqu’à la fin.