Enemy Territory: Legacy progresse vers le libre

 Cet article est basé sur des extraits d'un article paru sur Linuxfr par Thomas Debesse.
Le projet Enemy Territory: Legacy est basé sur le code source de Wolfenstein: Enemy Territory, un jeu vidéo de tir subjectif multijoueurs se déroulant durant la Seconde Guerre mondiale et développé par Splash Damage. Sorti en 2003, ce jeu gratuit tournant sur une version modifiée du moteur id Tech 3 (plus connu sous le nom de Quake III engine) fut libéré en avril 2010 par Id Software sous licence GNU GPL v.3(le moteur seulement).

 ET:Legacy a sorti la version finale de sa première version stable 2.71, fin 2014 après près de 3 ans de développement.

 Puisque les données du jeu d’origine ne sont pas libres, ET:Legacy n’est pas par définition un jeu entièrement libre, posant une certaine difficulté d’empaquetage dans les distributions GNU/Linux. À plus long terme, le projet désire remplacer toutes les textures, modèles 3D et sons par des équivalents librement modifiables et distribuables.
-De Wolfenstein 3D à ET:Legacy :
ET:Legacy tire ses plus profondes racines de Wolfenstein 3D, l’ancêtre de Doom, developpé par Id Software en 1992 (et communément appelé «Wolf 3D»). Le joueur incarne un soldat Allié qui se retrouve prisonnier dans un château nazi dont il doit s’échapper. Ce jeu a rendu populaire le genre du tir subjectif (FPS).
Publié en 2001, toujours par Id Software, Return to Castle Wolfenstein (RTCW) est un reboot couronné de succès de Wolf 3D. En effet, son mode multi-joueurs est devenu la partie la plus renommée du jeu, ayant même une influence considérable sur le genre. Ayant travaillé sur quelques unes des cartes de l’édition «Game of the Year» de RTCW, le studio indépendant londonien Splash Damage s’est vu confier le travail sur la partie multijoueurs de la suite de RTCW.
Wolfenstein: Enemy Territory était à l’origine prévu pour être publié en tant qu’extension de RTCW, puis plus tard comme un jeu autonome. Toutefois, en raison de problèmes avec la partie solo, la sortie commerciale fut annulée tandis que la partie multijoueur du projet fut mise à disposition en mai 2003 en tant que jeu gratuit, ce qui explique sa popularité et sa très longue longévité. En janvier 2004, un SDK fut publié au profit de la communauté, permettant de créer de nouvelles cartes et modifications.
Tandis que le code du moteur de Quake 3 était disponible depuis 2005, les versions modifiées des moteurs d’Enemy Territory et de Return to Castle Wolfenstein n’ont été libérées qu’en 2010, permettant alors à la communauté de s’essayer à la maintenance et à l’amélioration du logiciel.
La reprise du développement et le problème juridique
Avec une base de code commune à Quake 3, les développeurs derrière le projet libre ioquake3 chez icculus.org se sont naturellement intéressés à ce nouveau code libéré, annonçant immédiatement que le travail sur iowolfet et iortcw commençait. Cependant, si la base de code est très similaire, il existe une cruciale différence qui n’a rien à voir avec la technique, mais relève d’une question juridique : le moteur de Quake 3 a en effet été publié à l’origine sous licence GPLv2, tandis que les nouveaux moteurs sont sous licence GPLv3.
En d’autres termes, il n’était pas possible de transférer les améliorations du moteur iowolfet dans le code de ioquake3, bien plus avancé et plus propre sur de nombreux points grâce au travail apporté sur plusieurs années. L’unique solution consistait ainsi à transférer dans iowolfet les améliorations déjà faites dans ioquake3. Cependant, comme personne n’aime faire le travail deux fois, et à cause de possibles ambiguïtés juridiques liées à certaines parties de code dans ioquake3 qui étaient à l’origine sous GPLv2 uniquement, les dépôts iowolfet et iortcw d’Icculus ont végété dans leur coin, sans modifications notables.
Mais différents projets ont surgi à de nombreux endroits à travers le web. On peut citer : wolfet-merge, raedwulf-et(mort), ET:XreaL, Open Territory(mort), OpenWolf(mort), et enfin Enemy Territory : Legacy, le présent projet, est à l’origine un fork de raedwulf-et. À un certain moment dans le développement, l’auteur de raedwulf-et a commencé à remplacer SDL en faveur de GLFW dans son projet. Tout le monde n’a pas apprécié ce changement et le code a été forké pour commencer une autre vie.
Ainsi, parmi les différentes tentatives d’amélioration les plus connues, seul le projet ET:Legacy est toujours actif et en constant développement depuis son lancement.
-Compilation :
le système de compilation est passé de SCons au plus puissant «moteur de production» multiplate-forme CMake. Les bibliothèques SDL 2, libcurl et libjpeg6 utilisées sont désormais liées dynamiquement. La prise en charge de la libjpeg-turbo a également été ajoutée. Il est désormais possible de compiler ET:Legacy pour Windows depuis GNU/Linux grâce au système de compilation croisée MinGW.
-Portabilité :
Les routines assembleur i386 ont été remplacées par les routines équivalentes développées par le projet ioQuake3. ptitSeb, développeur très actif dans le projet OpenPandora (un projet communautaire de console de jeu de poche tournant sur GNU/Linux), a porté le moteur sur l’architecture ARM et a implémenté la gestion d’OpenGL ES afin de pouvoir rajouter ET:Legacy à la logithèque de Pandora ; BZsili a rajouté la prise en charge des systèmes AROS et MORPHOS ; enfin Jonathan Gray s’est occupé de la prise en charge d’OpenBSD.
-Configurations prises en charge :
ET:Legacy prend en charge les systèmes GNU/Linux, *BSD, OS X, Windows, AROS et MORPHOS, et les architectures x86, x86_64 et ARM.
Les binaires OS X sont compatibles seulement avec Mountain Lion (10.8) ou supérieur et les mods «Silent» et «Legacy».
Seules les configurations 32 bits sont compatibles avec les serveurs Wolf:ET d’origine. Les mods les plus populaires sont pris en charge, à l’exception du mod «etpro» dont le module anti-cheat intégré dans la partie cliente vérifie explicitement la présence du binaire d’origine 2.60b.
Il est possible d’utiliser ET:Legacy en 64 bits, mais on ne pourra se connecter qu’aux serveurs proposant moteur et mod en version 64 bits (ET:Legacy avec Legacy mod pour l'instant). Le même problème se pose pour les architectures nouvellement supportées. Le module de joueurs IA Omni-bot a lui aussi été récemment porté en version 64 bits.
Encore un beau FPS qui progresse doucement vers le libre.

Article d'origine sur Linuxfr

Site officiel