Introduction au Blender Game Engine (BGE)

Le moteur de jeu intégré de Blender

Greg. Gossellin De Bénicourt

Vous avez souvent entendu parler de Blender, et peut-être avez-vous déjà utilisé cet outil de modélisation gratuit et Open Source pour modéliser votre appartement ? Saviez-vous que Blender possède un moteur de jeu intégré très performant et permettant de réaliser de A à Z des jeux 3D complets fonctionnant sous Windows, Mac et Linux ? Dans cet article, nous vous proposons un petit tour d'horizon du Blender Game Engine (BGE) et de ses fonctionnalités.

Commentez

- Titre : Introduction au Blender Game Engine (BGE)

- Auteur : Greg. Gossellin De Bénicourt

- Parution : 11 juin 2014

- Mise à jour : 11 juin 2014

- Public visé :

- Licence : Le contenu de cet article est rédigé par Greg Gossellin De Bénicourt et est mis à disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transposé. Les logos Developpez.com, en-tête, pied de page, css, et look & feel de l'article sont Copyright ® 2013 Developpez.com.

Sommaire

- I. Qu'est-ce que le BGE ?

- II. Quelle est sa place vis-avis des autres moteurs de jeu ?

- III. Quel genre de jeux peut-on développer avec le BGE ?

- III-A. YoFrankie

- III-B. Le jeu Sintel The Game

- III-C. Dead Cyborg

- IV. Sur quelles plates-formes peut-on exporter son jeu ?

- IV-A. Windows, MacOS, Linux

- IV-B. Web

- IV-C. Les mobiles: OpenGL ES

- IV-D. IPhone et Android: GameKit

- IV-E. Consoles (Wii, PS4, Xbox One)

- V. Comment installer le BGE ?

- V-A. Windows 32 ou 64

- V-B. Linux

- V-C. Mac

- V-D. Un problème

- VI. Conclusion

I - Qu'est-ce que le BGE ?

Blender est un logiciel gratuit et Open Source de modélisation, d'animation et de rendu 3D. Il est disponible dans de nombreuses langues et sur de nombreuses plates-formes dont Microsoft Windows, Linux et Mac OS X.

Grâce au « Blender Game Engine » (BGE), Blender peut être utilisé comme moteur de jeu. Il gère la logique du jeu, c'est-à-dire, la possibilité de programmer les interactions entre les entités du jeu, et ce, sans avoir à écrire une seule ligne de code.

Toute la logique du jeu peut ainsi être « programmée » graphiquement sans avoir besoin de passer par des lignes de code. Le système de briques graphiques est au cœur du BGE, mais il est également possible d'étendre les fonctions du BGE grâce à des scripts python.

Doté du moteur de simulation physique Bullet, le BGE gère les collisions entre objets, la pesanteur et autres accélérations. Il intègre également la gestion des sons dans un environnement 3D.

Que vous souhaitiez apprendre à réaliser un jeu en 3D, créer un prototype de votre projet ou produire directement votre jeu, le BGE est un excellent choix.

Le BGE n'est pas exclusivement réservé au monde du jeu vidéo. Il permet des démonstrations techniques (Tech Demos), des applications temps-réel comme les simulations, des dessins interactifs, des applications de réalité virtuelle, de la robotique, etc. D'ailleurs, il est question de rebaptiser l'outil dans les prochaines années : on parlera du mode interactif de Blender.

II - Quelle est sa place vis-avis des autres moteurs de jeu ?

On peut classer les moteurs de jeu en deux grandes catégories :

- ceux qui ne possèdent pas d'éditeur ou d'outils particuliers et qui sont plus proches des bibliothèques (ensemble de fonctions) contenant des fonctions utiles pour le développement d'un jeu vidéo. On pense particulièrement à des moteurs comme Panda 3D, Irrlicht, Crystal Space ou bien un moteur de rendu 3D comme Ogre 3D. Ces derniers demandent une connaissance approfondie de la programmation.

- ceux qui disposent d'un éditeur de jeu et éventuellement d'un modeleur intégré comme Blender. On les appelle aussi « kits de développement de jeux ». À titre gratuit, dans une certaine mesure, il y a Unity (non Open Source). C'est un produit très abouti : il exporte directement vers Android, IOS et les principales consoles, et dispose de très nombreux outils facilitant le développement. Ensuite, il y a ceux qui représentent les standards du marché des jeux vidéo, mais qui n'étaient que rarement accessibles aux petits studios (les indies) à cause de leur coût : Unreal Engine (Epic Games), Id Tech (Id Software), CryEngine (Crytech) ou Source Engine (Valve). Toutefois, fin mars 2014, Crytech et Epic Games annoncent qu'ils ouvrent leurs kits aux petits studios moyennant une cotisation relativement faible. Ils restent donc un choix fort intéressant également.

Le BGE est Open Source : l'importante communauté de développeurs dont il dispose lui permet d'évoluer rapidement et constamment.

Miser sur le BGE est donc un pari pour l'avenir.

III - Quel genre de jeux peut-on développer avec le BGE ?

Le BGE permet de construire un jeu de « niveau commercial ». Et ce, de la modélisation au produit final, avec pas ou peu de programmation. À ce sujet, il vaut mieux connaître Python pour développer un jeu complet, mais ce n'est pas non plus indispensable car on trouve de nombreuses sources sur Internet.

Dans l'absolu, le BGE permet d'attaquer n'importe quel type de jeux vidéo : du FPS comme Far Cry, au jeu de plates-formes comme Mario 64, en passant par un simulateur de pilotage d'avion ou une course de voitures. Toutefois, le BGE ne possède pas, à l'heure où nous écrivons ces lignes, d'extension permettant de créer simplement un jeu réseau. Il existe toutefois de nombreuses initiatives en ce sens. De même, vous ne pourrez jamais créer un MMORPG comme World of Warcraft avec le BGE car cela dépasse de loin (en termes de réseau principalement) les capacités de ce moteur.

Voici quelques exemples de jeux fonctionnant avec le BGE.

III-A - YoFrankie

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/watch?v=c7RRaEvWqJc

Toute première vitrine du BGE, le jeu a été produit par l'Institut Blender en 2008 sous le nom de code « Apricot Project ». Il fait suite au film d'animation Big Buck Bunny et utilise à la fois son univers et ses personnages.

Le jeu a demandé plus de huit mois de travail à une équipe d'une dizaine de graphistes et de développeurs professionnels. Plusieurs fonctionnalités ont été développées au cours du processus, avec notamment une amélioration du système d'animations, ainsi que l'utilisation de shaders.

Yo Frankie est un jeu de plates-formes particulièrement réussi où le joueur incarne un écureuil qui chasse les moutons et autres bêtes, tout en collectant différents objets. Il est possible de jouer à deux joueurs en écran partagé, le second joueur contrôlant un autre personnage, le singe Momo.

Le jeu a également été porté sous le moteur de jeu Crystal Space. Notons que les deux versions utilisent le langage de script Python pour l'animation des personnages.

Site officiel : www.yofrankie.org

III-B - Le jeu Sintel The Game

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/watch?v=86kKnsy41Kk

Sintel The Game est jeu produit également par l'institut Blender en 2010. Le projet fait suite au film d'animation « Sintel » produit par la même fondation. Bien qu'il soit encore en phase alpha, le projet semble très prometteur.

Site officiel : www.sintelgame.org

III-C - Dead Cyborg

Dead Cyborg est un jeu d'aventures développé par un seul développeur, Endre Barath. Il s'agit d'un jeu au gameplay relativement simple, mais très réussi graphiquement. Sans être représentatif des capacités du moteur graphique, c'est un bon exemple de jeu qu'il est possible de réaliser seul ou avec une petite équipe.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/watch?v=euGnVNNfMhE

Site officiel : www.deadcyborg.com

Les deux premiers épisodes sont proposés en Free to Play.

IV - Sur quelles plates-formes peut-on exporter son jeu ?

IV-A - Windows, MacOS, Linux

Avec le BGE, il est possible de créer un exécutable du jeu pour les plates-formes PC, Mac et Linux. Toutefois, il n'est pas possible de produire directement un jeu pour Android, iOS ou console (PS4, Xbox One).

IV-B - Web

L'export web est également possible et passe par une extension (Burster) qui ne fonctionne que sous Windows et Linux et n'est pas supporté directement par la communauté Blender. Voici un jeu de course de voitures développé avec le Blender Game Engine.

IV-C - Les mobiles: OpenGL ES

Une tentative de portage de Blender pour plates-formes mobiles a été réalisée. Ce dernier est loin d'être complet, mais on peut espérer voir fonctionner pleinement le BGE sous Android et iOS très bientôt. Il s'agit de BlenderPlayer pour OpenGL ES 2.0 (version mobile d'OpenGL, présente sur plus de 90 % des appareils sous Android).

IV-D - IPhone et Android: GameKit

Il y a un projet très intéressant : le GameKit. C'est un moteur de jeu alternatif au moteur interne de jeu de Blender, qui peut être totalement intégré à Blender sous la forme d'une extension et qui permet d'utiliser à la fois DirectX (uniquement sous Windows) et OpenGL.

Toute sa logique de jeu, sous la forme des briques logiques, est supportée. Il utilise le moteur de rendu 3D Ogre (Crystal Space par le passé), le moteur physique Bullet et OpenAL pour le son.

Les scripts pythons ne sont toutefois pas supportés, il faut les convertir en langage Lua, ce qui n'est pas insurmontable en soi. Tout l'intérêt de ce moteur est qu'il permet d'exporter vers les iPhone et Android - certains le trouvent plus rapide également sur les plates-formes traditionnelles.

Si vous souhaitez développer pour les mobiles, c'est un projet à suivre de près.

IV-E - Consoles (Wii, PS4, Xbox One)

Il n'y a pas aujourd'hui de piste sérieuse pour exporter vers les consoles. C'est peut-être vous qui serez à l'origine d'un tel projet. Toutefois, le BGE permet la mise au point rapide d'un prototype. Tous les modèles réalisés peuvent être exportés vers d'autres moteurs grâce à un nombre très important de formats supportés (Wavefront, X, etc.)

V - Comment installer le BGE ?

Pour télécharger et installer Blender sur sa machine : rendez-vous sur le site officiel, rubrique téléchargement.

V-A - Windows 32 ou 64

Aller à la racine du disque dur (C:/).

S'il y a un dossier « Program Files » et un dossier « Program Files (x86) », alors vous avez Windows 64 bits, sinon c'est un 32 bits.

V-B - Linux

Souvent, la distribution fournit déjà une version de Blender. Reportez-vous pour cela au gestionnaire de logiciel.

V-C - Mac

Téléchargez la version correspondante à votre machine (Power PC ou Intel). Une fois le téléchargement terminé, montez le volume, ouvrez-le, et copiez le programme dans votre dossier « Applications », ou n'importe où ailleurs sur votre disque dur.

V-D - Un problème

Consulter le site suivant rubrique « installation ».

Ou encore : http://blenderclan.tuxfamily.org. Dans tous les cas, inscrivez-vous sur ce forum, il vous permettra d'entrer en contact avec des personnes susceptibles de vous aider et d'apprendre un tas de choses utiles.

Enfin, et non le moindre, rendez-vous sur le forum dédié de developpez.com.

VI - Conclusion

Le Blender Game Engine est un très bon outil pour apprendre la programmation de jeux 3D. Pour ma part, j'utilise cet outil pour enseigner aux enfants le développement de jeux, car on peut modéliser très rapidement des formes élémentaires, les animer et les rendre interactives, ce que d'autres kits de développement ne permettent pas nécessairement. Le BGE masque une grande partie des difficultés, mais laisse le développeur libre de programmer ses propres outils également (scripts ou shaders). Il permet donc un apprentissage progressif de la création de jeux 3D.

Nous espérons que cette petite introduction au moteur de jeu de Blender vous aura donné envie d'en apprendre plus sur ce dernier. Suite à cet article, nous vous proposons d'attaquer directement la création d'un petit jeu afin de prendre en main l'interface et découvrir les fonctions principales du Blender Game Engine. Puis, nous reviendrons sur ces fonctions un peu plus en détail.

Enfin, selon vos retours, nous pourrions envisager la création d'un jeu complet, dont chaque étape fera l'objet d'un nouvel article.