Sites


Blender pour le jeu video

Partager son jeu

Une fois le projet finalisé, nous souhaitons le partager. Blender permet d'exporter les scènes de manière à les lire sans lancer Blender. Le logiciel Blenderplayer permet de lire les fichiers .blend comme des séquences interactives autonomes afin de les distribuer.

Configuration de l'affichage du jeu

Blender permet depuis l'interface de tester le comportement du jeu. Dans le panneau Render, lorsqu'on est en mode Game Engine, les onglets Embedded Playeret Standalone Player apparaissent. Ils permettent de tester le jeu en le lançant dans l'interface de Blender pour Embedded Player ou dans une fenêtre séparée avec Standalone Player.

Les paramètres de cette fenêtre permettent de configurer le jeu pour son export :

  • Resolution : permet d'adapter la taille de l'image du jeu.
  • Fullscreen : lance le jeu en plein écran. Lorsque cette case est cochée, l'option Desktop devient disponible. Si cette option est cochée, le jeu sera lancé dans la résolution actuelle de l'écran, outrepassant le réglage Resolution.
  • Quality : AA Samples : permet de configurer l'anti-crénelage. Par contre, il faut faire attention car cette option nécessite plus de ressources graphiques.
  • Bit Depth : règle le nombre de couleurs. Généralement, on garde 32 bit pour une qualité des couleurs idéale sur les machine actuelles.
  • Refresh Rate : nombre maximum d'images par seconde. La plupart des écrans d'ordinateurs actuels fonctionnent à 60 Hz, qui est l'option par défaut.

L'onglet Stereo : permet de faire un rendu stéréoscopique (3D) suivant plusieurs procédés (par lunettes teintées, côte-à-côte) ou d'activer le rendu anamorphique en Dome, permettant de projeter l'image sur un dôme (ex. planétarium) ou éventuellement d'autres géométries...

L'onget Shading :

  • L'option Multitexture permet de faire un rendu simplifié, adapté à des cartes graphiques ne supportant pas OpenGL 2.0, par exemple anciennes ou dédiées aux SOC* (systèmes embarqués), comme les smartphones et les tablettes.
    Le BGE ne permet pas actuellement d'exporter directement pour les plate-formes ne supportant qu'OpenGLES 2.0 comme Android ou iOS. Par contre, on peut tout à fait utiliser Blender et le BGE pour concevoir des ressources exportables vers des moteurs dédiés à ces plateformes.
  • L'option GLSL active le rendu OpenGL2.0 avec les effets de texture et de lumière avancés, permettant un rendu optimal mais nécessitant un matériel plus récent.
  • L'onglet System : Use Frame Rate, utilise la fréquence de rafraîchissement actuellement utilisée par l'écran.
  • Restrict Animation Update : contraint le rafraîchissement des animations à la fréquence de rafraîchissement de l'écran. Cette option permet d'optimiser certaines performances en réduisant le calcul des animations, mais peut provoquer des incohérences dans certains mouvements rapides ou complexes.
  • Use Material Caching : option d'optimisation permettant de minimiser les lectures disque des textures.
  • Vsync: synchronise le rendu au rafraîchissement de l'écran (l'option Adaptive est recommandée si vous ne connaissez pas).
  • Storage Mode : option d'optimisation graphique. Le mode par défaut (auto-select) n'est à changer qu'en cas de problème.
  • Exit key : définition de la touche permettant de sortir du jeu.

  • L'onglet Display concerne le rendu dans l'interface d’édition, et ses paramètres n'ont pas d'influence lors de l'export d'un jeu en dehors du paramètre Animation Frame Rate que nous aborderons dans la section Comportement des objets et personnages dans le chapitre Animer des personnages dans le Game Engine. Cet onglet comporte donc des options de débogage, permettant de visualiser les paramètres internes du jeu, comme les propriétés des objets, la fréquence de rafraîchissement de l'image réelle, les contraintes physiques, les avertissements de dépréciation pour le code Python (pour ne pas utiliser des fonctions Python anciennes et non supportées) et l'affichage du curseur de la souris.
  • Le Framing permet de configurer la vue camera dans l'éditeur.
  • L'onglet Sound permet de régler la diffusion du son, plus précisément sa simulation physique.
  • L'onglet Bake concerne une optimisation des textures et du rendu, qui sera détaillée dans la section Optimisations dans le chapitre Pré-calcule des textures et de la lumière.

Publier un binaire

Lorsque nous souhaitons exporter une scène, l'entièreté du jeu peut être contenue avec le Player dans un même fichier exécutable. De la sorte, tout le jeu est présent dans un seul fichier (accompagné de bibliothèques DLL), et donc plus simple à partager. Sous cette forme, le code et le contenu sont soumis à la licence GPLv3*, et nous sommes dès lors obligé de publier également le fichier .blend de manière séparée.

Pour cela, allons dans le menu File > Export > Save as Game Engine Runtime. Cet export est à activer au préalable dans l'onglet addons, se trouvant dans user settings.

Nous pouvons également choisir de sauver le contenu sous la forme d'un fichier .blend, et de le lire avec le binaire Blenderplayer. De cette manière le contenu artistique n'est pas soumis à la licence GPL (mais reste lisible par ailleurs avec Blender).

Il suffit donc simplement de mettre le fichier .blend dans le même répertoire que l'exécutable Blenderplayer.

Pour lancer le jeu, il faut alors lancer Blenderplayer en lui spécifiant quel fichier lire.

sur GNU-linux et MacOS :

user@desktop:~/mondossier/$: ./blenderplayer monjeu.blend

sur Windows, utiliser la ligne de commande :

C:\mondossier\> blenderplayer.exe monjeu.blend

Pour créer un lanceur il faut créer un raccourci, ou un fichier de script batch avec cette commande.

Certains ont développé des scripts permettant de crypter le fichier .blend, de sorte à en protéger le contenu, mais ceci dépasse le cadre de ce manuel.

A noter que si le contenu artistique n'est pas soumis ici à la licence GNU GPL*, le code Python faisant référence à l'API du Blender Game Engine reste lui sous cette licence. Il y a lieu donc de publier les scripts, séparément au besoin.

Empaqueter son contenu

Pour être certain de ne rien perdre entre les manipulations de copie et d'installation du jeu, nous pouvons empaqueter le contenu directement dans le .blend (par exemple, textures et sons).

La façon la plus simple est de cocher l'option d'empaquetage automatique. De la sorte les données externes sont intégrées dans le fichier .blend à chaque enregistrement. Sinon, il faut s'assurer que les données soient toujours dans le bon répertoire (répertoire du .blend ou sous-dossier).

Une fois les éléments empaquetés, il est possible de les dés-empaqueter et donc de les retravailler ultérieurement avec l'option Unpack all files. L'empaquetage n'est donc pas une mesure de protection du contenu, simplement une méthode facile pour conserver les données accessibles au jeu dans un même fichier.

Export vers d'autres moteurs de jeu

Blender permet d'exporter le contenu et parfois (une partie de) la logique. Ceci dépend de la plate-forme ou du moteur de jeu visé, et la plupart du temps on utilise les plugins d'exportateurs adaptés, soit pour exporter directement (par exemple, l'animation pour le moteur Unreal - plugin à activer dans les préférences utilisateurs) soit en passant par un format intermédiaire (par exemple, .dxf ou .obj pour les objets, collada pour géométrie et animations, etc.).

Notions de licences

Les créations de l'esprit sont soumises, dans nos contrées, à un régime de propriété intellectuelle. Le droit d'auteur (et copyright) s'exerce a priori sur toute création et a priori restreint les droits des utilisateurs, lecteurs, spectateurs à une consultation privée. Toute autre utilisation est normalement soumise à autorisation des ayants droits (auteur, héritiers de l'auteur ou éditeur).

Blender, en tant que logiciel libre est distribué avec une licence GNU GPLv3*. Ceci implique que tout code lié au code de Blender est lui-même soumis à cette licence.

La licence GPLv3 est une licence garantissant les libertés des utilisateurs, en obligeant à publier les sources des logiciels, et permettant aux utilisateurs de modifier et d'utiliser ce logiciel comme bon leur semble, à la seule condition que toute modification soit également publiée sous cette licence.

Elle garantit tant la liberté de l'utilisateur que le droit d'auteur du créateur, en lui assurant la citation de son nom et le fait qu'il bénéficiera des modifications ultérieures au programme.

Qui dit publication, dit distribution. Si les créations ne sont pas distribuées, elle ne doivent pas nécessairement divulguer leurs sources (par exemple, dans le cas d'une installation interactive sur une machine spécifique pour un événement ou un musée).

Il y a eu beaucoup de discussions sur ce sujet et souvent beaucoup de confusion, voire même de peur de voir son travail pillé par d'autres parce que sous licence libre. Ceci est souvent le fait de personnes ne comprenant pas les implications ni la protection offerte par la licence GNU GPL.

De manière générale, cette question n'a finalement pas beaucoup d'importance pour l'usage qui est généralement fait du BGE, entre application à usage interne, exemples didactiques et prototypage.

Parce que ce qui compte généralement dans un jeu, c'est le contenu et non le code, certains ont par ailleurs publié des jeux de manière commerciale sans problème, sous ces conditions de licence, sans en souffrir. Tout comme certaines grosses sociétés de jeux vidéo qui ont libéré le code de leur moteur de jeu (Quake Engine par exemple). Les contenus eux peuvent rester protégés pour pouvoir être vendus.

Les contenus peuvent être également libres pour pouvoir être modifiés par d'autres et réutilisés comme Yo Frankie! ou sur http://opengameart.org/.

Ainsi, être libre n'empêche nullement le financement, mais oblige parfois à revoir le modèle économique envisagé.

Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.

Vous devriez rafraîchir la page.