Écrit par David Henry, le 5 mai 2004
Cet article est une introduction au développement de jeux vidéo multi-platforme (GNU/Linux, MacOS, Windows, etc.), libre (Open Source) ou non, à l'aide de logiciels et de bibliothèques libres et disponibles gratuitement.
Dans chaque domaine seront présentés les logiciels libres disponibles, les bibliothèques et les formats de fichier à préférer. Ce petit guide présente également les diverses licences libres que vous pourrez utiliser pour protéger les données de votre futur jeu.
En ce qui concerne la programmation, il vous faut un simple éditeur de texte ASCII et un compilateur.
Pour le compilateur, GCC (GNU Compiler Collection) est certainement le plus populaire et supporte une grande variété d'architectures et systèmes d'exploitations. Développée pour le projet GNU, c'est une suite de compilateurs en ligne de commande (avec des Makefile), mais il existe aussi des IDE comme KDevelop (GNU/Linux), Dev C++ (Windows) ou Code::Blocks (mutliplatforme). Les langages supportés sont le C, C++, Objective C, Fortran, Java, et l'Ada. Pour du code natif Windows le portage de GCC est MinGW.
Site web de GCC : http://gcc.gnu.org/.
L'éditeur de texte peut-être n'importe quel éditeur de texte pouvant enregistrer du texte brut (ASCII), avec coloration syntaxique de préférence : Emacs, VIM, etc.
Développer un jeu multi-platforme signifie qu'il doit utiliser des bibliothèques multi- platformes, donc pas de DirectX. Voici les grosses bibliothèques utilisées pour développer des jeux vidéo :
La meilleur licence libre pour protéger le code de votre jeu et de ses outils est la GPL (General Public Licence). C'est une licence copyleftée qui assure à l'utilisateur quatre libertés fondamentales :
Concrètement, cette licence vous oblige à laisser le code source du programme disponible, permet à quiconque de le modifier et de le redistribuer (modifié ou pas) à condition que le programme reste sous licence GPL (principe du copyleft). Le code possède un copyright à votre nom et personne d'autre que vous ne pourra en changer la licence.
Attention à quelques amalgames qu'il ne faut pas faire. Libre ne signifie pas gratuit ! Un logiciel libre peut être vendu. Un logiciel libre n'est pas un freeware (un freeware ne peut pas être modifié). Un logiciel libre n'est pas dans le domaine public.
Il existe d'autres licences libres plus ou moins similaires que certains logiciels présentés ici sont susceptibles d'être sous l'une d'entre elle, je vous invite à les regarder vous-même.
Pour la création de textures et autres images 2D de votre jeu, le logiciel libres et multi-platformes de dessin et de retouche d'images numériques qui vous sera nécessaire est The Gimp. Vous le trouverez sur http://www.gimp.org/.
En ce qui concèrne la modélisation 3D, c'est avec Blender que vous devrez faire ! Même si son interface est un peu austère aux premiers abords, il n'en reste pas moins un puissant logiciel de création 3D. Voir http://www.blender.org/.
Autre logiciel de modélisation 3D libre : Wings3D. Il est plus « simpliste » que Blender et ne gère pas les animations, mais est facile à prendre en mains. Pour des petits travaux par exemples. http://www.wings3d.com/.
Pour vos images et textures, privilégiez les formats PNG et JPG. Le premier, qui était avant tout une alternative au format GIF, possède une des meilleurs compression non destructive, gère aussi bien des images indexées avec palette (8 bits) que des images RGB 24 bits avec un canal alpha pour la transparence. Le format JPEG lui peut obtenir une meilleur compression, mais au détriment de la qualité de l'image (utilisez une faible compression). À vous de voir quelles images ne doivent pas perdre en qualité.
Ces deux formats d'images peuvent être facilement manipulé grâce aux bibliothèques libres libpng et libjpeg qui vous épargneront quelques tâches laborieuses. Également, la bibliothèque SDL_image permet de lire ces formats, ainsi que d'autres, très facilement.
Pour la 3D, il n'existe pas vraiment de format universel. Vous pouvez en adopter des déjà existant suivant vos besoins ou vous recréer un format propre à votre jeu. Il vous faudra alors programmer des plugins ou des outils de conversions/compilation.
Il existe aussi plusieurs licence libre spécifique pour les œuvres numériques (mais aussi non numériques), comme la Licence Art Libre et les licences Creative Commons. Ce sont des licences qui reconnaissent et protège les droits d'auteur. Basé sur le droit de disribuer, modifier et du copyleft, ce sont en quelque sorte « les GPL des œuvres d'art ». Vous trouverez plus détails à son sujet sur http://artlibre.org/licence.php/lal.html pour la LAL et sur http://creativecommons.org/ pour les différentes licences Creative Commons.
Pour la création de niveau, il n'existe pas vraiment de logiciel « généraliste ». Pour certains jeux vous pouvez utiliser GtkRadiant (http://www.qeradiant.com/?data=editors/gtk), ou bien en les modélisant dans Blender puis en les convertissant vers un format propre à votre jeu. Sinon, il vous faudra développer vos propres outils d'édition de niveau.
Là il vous faudra sûrement inventer un format spécifique à votre jeu. Vous pouvez partir d'un format classique (par exemple .map) puis le convertir (ou le compiler) dans votre propre format à partir d'outils que vous aurez développé.
Il existe plusieurs logiciels d'édition audio libres :
Pour les sons de bruitages, vous pouvez simplement utiliser des fichiers au format WAV. Pour les musiques, utilisez plutôt le format Ogg Vorbis que le format MP3. Celui-ci possède un meilleur compression et ne posera pas d'ennuis au niveaux brevets... La bibliothèque SDL_sound permet de décoder tout un tas de formats audios de manière simple.
Les mêmes licences que pour le domaine du graphisme, la LAL ou une des licences Creative Commons, peut être appliquée à vos productions, ou bien vous pouvez créer une licence libre spécifique à vos sons et musiques suivant les libertés que vous voulez accorder.
La documentation a aussi une part importante, notamment pour un logiciel libre. Il est préférable donc de documenter les outils que vous avez développé pour faire des conversions/compilations entre différents formats de fichiers. Vous pouvez également documenter le code propre du jeu si une autre équipe veut le reprendre et le modifier, ou même tout simplement pour les autres programmeurs de votre équipe.
La Free Software Fondation a également créé une licence libre pour tout ce qui concerne la documentation : la FDL (Free Documentation License). C'est aussi une licence sous copyleft, donc tout produit dérivé doit garder cette même licence. Une adaptation française non officielle est disponible sur http://fr.wikipedia.org/wiki/FDL.
Il existe déjà une multitude de moteurs de jeux et de moteurs graphiques libres que vous pouvez (ré)utiliser. Parmi eux :
Une liste beaucoup plus complète se trouvait sur 3dengines.de, mais elle n'est malheureusement plus à jour depuis un bon moment...
Voilà, ce petit guide de démarrage pour la création de jeux vidéo libre et à l'aide de logiciels libres s'achève ici. Vous pourrez également trouver d'autres logiciels libres portés sous Windows sur http://gnuwin.epfl.ch/. Pour les licences, je vous recommande d'aller voir sur le site gnu.org.
Cet article est mis à disposition sous un contrat Creative Commons (licence CC-BY-ND).