Introduction
Trouver un cadre pour les moteurs de jeu 3D faits et avec Python peut s'avérer très difficile. La raison en est que Python rencontre rapidement des problèmes de performances lorsque la complexité augmente. Le rendu graphique rapide n'est pas ce que Python fait le mieux. Cependant, puisque Python est très bon pour créer la logique et est assez populaire, vous avez de nombreuses options pour exécuter des frameworks écrits en C++.
Pour que cela fonctionne pour les moteurs de jeu 3D, vous ne pouvez pas tout faire comme vous pouvez habituellement le faire à Python. La plupart des frameworks créent un emballage pour leurs bibliothèques C ++. Vous devrez comprendre comment compiler afin que Python puisse rappeler ce wrapper. Ils couvrent la documentation comment compiler avec l'emballage Python.
Style de jeu et choix de langue
Considérez, avant de commencer, que votre jeu soit un jeu de plateforme, un jeu de tir à la première personne ou une boîte de dialogue. Peut-être que vous allez créer un jeu qui remet en question les compétences intellectuelles. Cela n'a pas besoin de graphiques haute performance. Le fait est que vous aurez besoin de savoir ce que vous essayez de réaliser avant de commencer. Vous pouvez être habitué à Python pour la programmation. Mais si vous cherchez à créer des jeux avec beaucoup d'effets, vous devriez considérer d'autres langages de programmation. C'est un grand effort pour apprendre une nouvelle langue, mais c'est aussi extrêmement satisfaisant une fois que vous avez réussi cet obstacle initial aux bases. Le moment où la documentation régulière est logique, même en un coup d'œil rapide.
Reliures, bibliothèques à considérer
Pour faire des jeux, vous devrez créer des graphiques, des menus et des audio. Il y a plusieurs bibliothèques et liaisons Python pour gérer ces cas. L'une des plus courantes de ces bibliothèques est SDL2, qui donne aux programmeurs un accès direct au Framebuffer vidéo, à la sortie audio, à la souris et au clavier. Sans cela, votre jeu devra utiliser des routines régulières, qui peuvent parfois être lentes. La première version est toujours là, mais SDL2 a tous les gadgets nécessaires.
SFML2 joue un rôle similaire à la plupart des fonctions multimédias et rassemble toutes les fonctions. En revanche, SDL2 contient de nombreuses pièces plus petites que vous devez tirer sur votre code un à la fois.
Pour Python, vous aurez besoin des packages Pysdl2 et PysFML2, respectivement.
Pyogre
Les concepteurs de Pyogre ont écrit le framework ogre en C ++ avec un wrapper pour Python. Le wrapper est un wrapper intégré. L'ancien projet est toujours disponible sur le Web. Suivre les tutoriels peut être utile mais soyez prudent, car tout ce qui n'est pas disponible en ligne ne sera pas correct. Ogre a des cours pour de nombreux objets mondiaux, vous donnant une couche au-dessus d'OpenGL et Direct3d.
Ogre travaille avec des scènes et peut créer tous les graphiques dont vous pourriez avoir besoin pour votre jeu. Les modules Pyogre fonctionnent pour les versions avant la version ogre v1.05. Après cela, il existe d'autres modules disponibles. Le logiciel Ogre comprend des scripts Python pour importer des données de Blender à Ogre. Cela permet de créer vos ressources dans Blender pour votre jeu. D'autres exportateurs sont également disponibles.
http: // wiki.ogre3d.org /
Allegro
Allegro gère tout le travail lourd de la création de fenêtres, de l'acceptation de la contribution utilisateur, du dessin d'images et de la lecture des sons - toutes les fonctionnalités qui sont utiles pour le jeu vidéo et la programmation multimédia. Les concepteurs d'Allegro ne prétendent pas que ce programme est un moteur de jeu, mais il est utile pour faire des jeux.
Étant donné qu'Allegro a été construit en C ++, vous devrez créer l'emballage pour utiliser ce programme dans Python. Vous pouvez effectuer cette étape en compilant à partir de la source. Le processus crée les classes dans un dossier nommé Allegro.py. Une fois que vous avez terminé cette étape, vous pouvez choisir les classes à partir de ce fichier, mais il est recommandé de lire également la documentation régulière sur le fonctionnement de ce programme. Cela peut compliquer le processus, mais l'apprentissage C ++ est également une corvée.
https: // github.com / liballeg / allegro5
Armory 3D - extension du mélangeur
Ce package utilise Blender comme plate-forme de développement et HAxe comme langage de programmation. Oui, vous devrez passer à Haxe, mais vous pouvez convertir une logique de jeu existante de Python. Armory3d fonctionne à l'intérieur de Blender comme extension, où vous pouvez créer toutes vos ressources pour le jeu.
Même si l'armurerie 3D ne fonctionne pas sur Python, considérez ce programme néanmoins néanmoins, car vous pouvez commencer très rapidement avec cet outil. https: // armory3d.org /
Urho3d
Ce package utilise Blender comme plate-forme de développement et utilise Haxe comme langage de programmation. Encore une fois, vous devrez passer à Haxe, mais vous pouvez convertir une logique de jeu existante de Python. Armory3d fonctionne à l'intérieur de Blender comme extension, où vous pouvez créer toutes vos ressources pour le jeu.
Même si URHO3D ne fonctionne pas sur Python, considérez ce programme soigneusement également, car vous pouvez commencer très rapidement avec cet outil. https: // armory3d.org /
Ursina
Ursina est écrite en python et construite sur Panda3d. Cet outil est conçu pour fournir de nombreuses primitives, comme un cube, une sphère, etc., afin que vous puissiez passer au jeu lui-même dès que possible. Panda3d fait le travail en profondeur et Ursina vous offre des fonctions de programme prêtes à l'emploi. Une classe de joueurs vous offre les options pour enregistrer les touches pressées et les mouvements de la souris.
La plupart des fonctions sont intuitives à utiliser avec des noms clairs et des fonctions facilement compréhensibles. Vous pourrez commencer rapidement avec votre jeu si vous utilisez cet outil de création de jeu. Ursina a également des outils pour convertir les fichiers Blend et PSD.
https: // github.com / pokepetter / ursina
Moteur de jeu Blender (?)
Avant la version 2.79, Blender avait un moteur de jeu intégré. Dans les versions ultérieures, cependant, les concepteurs ont choisi de supprimer le moteur de jeu de la construction standard et de se concentrer sur les animations. Ainsi, les gens d'Upbge ont décidé de créer leur propre extension qui fonctionne à l'intérieur de Blender. Vous pouvez donc utiliser Blender pour créer tout le jeu. Comment cela est-il lié au développement du jeu Python?
BPGE a une API qui vous permet d'accéder à toutes les données que vous créez tout en travaillant à l'intérieur de Blender. Vous pouvez utiliser la console à l'intérieur du mélangeur pour accéder et tester l'API. En fait, vous pouvez écrire tout le programme de cette façon, mais ce n'est peut-être pas le meilleur choix pour vos besoins. À tout le moins, vous aurez toutes les ressources prêtes et la façon dont vous les voulez à partir du moment où vous les créez.
Godot - GDScript, pas Python
Si vous voulez écrire un jeu et que vous êtes à l'aise avec Python, vous pouvez également utiliser Godot. Cette langue est très similaire à Python seulement c'est surtout pour écrire des jeux.
Conclusion
Il existe de nombreux frameworks pour écrire des jeux à Python. Si vous cherchez à créer des jeux 3D haute performance, vous devriez sérieusement envisager d'apprendre d'autres langues pour ces jeux. Assurez-vous que votre choix de programme vous permet de suivre votre idée de jeu originale. Si nécessaire, adaptez votre langage de programmation à votre vision personnelle.