vendredi 4 janvier 2013

Jouer à Doom 3 BFG Edition sous Linux en natif

L'année dernière le code source de Doom 3 (premier du nom) a été mis à disposition sur github sous Licence GPL, le rendant ainsi accessible et permettant à tous de récupérer les sources pour les adapter ou les modifier. J'attire tout de suite votre attention : Ce n'est "que" le code source du moteur avec les parties "propriétaires" de supprimées, il faut donc obligatoirement les fichiers originaux du jeu pour utiliser un moteur compilé par ses soins. Ce n'est pas la première fois que ID Software "donne" à la communauté ses "vieux" moteurs car ça été le cas avec Doom, Quake, etc.. et grâce à ça on a vue un tas de moteurs dérivés apportant des améliorations vraiment géniales aux jeux de base. 

Au mois d'octobre 2012 est sortie Doom 3 BFG Edition qui est une version dite HD avec des améliorations graphiques notables (bien que certains s'obstinent à dire le contraire et d'ailleurs ne laissez pas de commentaire si c'est pour dire du mal de ce BFG Edition ;) ) et un nouveau petit scénario : The Lost Levels. Cette version n'a pas eu le droit à un client Linux (tout comme Rage..) cependant les sources du moteur modifié utilisé par ce remake HD ont elles aussi été publiées sur Github sous licence GPL et figurez vous qu'un développeur s'est mis en tête de le porter sous Linux et le moins que l'on puisse dire c'est que ça fonctionne ;)

Nous allons voir ici comment compiler le moteur et l'utiliser sur sa distribution Linux. J'utilise pour ma part une Fedora 18 beta avec KDE 4.9.10 lui aussi en beta avec pour terminer.. un driver AMD beta (oui vous savez pour moi les trucs stable c'est has been !). Je partirais du principe que vous avez acheté le jeu sur Steam, de toute façon la version boite ne doit être qu'une clé d'activation sur Steam aussi.. donc nous seront où récupérer les fichiers de données. Si vous avez une version piraté et/ou que vous utilisez Ubuntu ça risque de ne pas fonctionner (c'est une blague hein ;))

1 - Récupération et des sources et compilation

On va créer un dossier Source dans votre dossier home pour mettre les sources de Doom 3 BFG, en même temps je vous invite à créer un dossier Jeux/Doom3BFG, toujours dans votre home pour y mettre les fichiers de jeu et le moteur compilé (ça ne sera qu'un binaire de moins de 150 Mo). Toutes les manipulations de compilation sont en console.
cd
mkdir Sources
mkdir - p Jeux/Doom3BFG
Maintenant il faut récupérer les sources du moteur sur github, pour cela vous aurez besoin de git (paquet git-core sous ubuntu et git tout simplement sur Fedora ou les autre distributions normalement constituées).
cd Sources
git clone https://github.com/RobertBeckebans/RBDOOM-3-BFG.git
cd RBDOOM-3-BFG
Là il faut vérifié si vous avez toutes les dépendances necessaires, comme cela peut varier d'une distribution à une autre je vais être bref. Il vous faut les paquets suivants :

  • cmake
  • SDL-devel (32 ou 64 bit suivant votre plateforme, personnellement je vous recommande les 2), sur Ubuntu le paquet s'appel libsdl1.2-dev
  • OpenAL (normal et dev), personnellement j'ai fais une installation à la main car j'avais un soucis avec les paquets du dépôts. Si vous devez faire une installation à la main c'est très simple, il faut récupérer les sources de OpenAL sur le site officiel et les compiler avec cmake. Si vous ne savez pas comment faire vous pouvez regarder sur le net comment on compile avec cmake ou me laisser un petit commentaire et je vous indiquerais ça.
Si le script de construction vous donne des erreurs c'est qu'il manque une bibliothèque  dans ce cas pas de panique vous faites une recherche dans votre gestionnaire de paquet et vous installez la version "dev". Si vous savez ce que vous faites et que vous êtes un aventurier (du code perdu huhuhu) vous pouvez installer SDL2 et configurer cmake pour qu'il utilise SDL2 pour la compilation. Ici on reste avec SDL 1.2.

Il faut maintenant générer le makefiles en utilisant cmake, pour cela placez vous dans le dossier des sources de doom 3 BFG Edition et faites :
cd neo/
./cmake-eclipse-linux-profile.sh
Là vous pouvez avoir des erreurs si il vous manque des bibliothèques, si c'est le cas suivez les indications que j'ai donné plus haut, vous pouvez aussi laisser un petit commentaire et je vous dirais ce qui cloche (par contre faites juste un copier collé de l'erreur et pas du log de compilation entier ;) ).

On compile ensuite avec les commandes suivantes, vraiment je n'invente rien c'est sur le readme en première page sur la page github du projet.
cd ../build
make -j2
Vous pouvez remplacer le 2 de l’argument -j2 par le nombre de processeurs dont vous disposez, par exemple sur un core i7 vous pouvez placer un -j8, ça permettra au compilateur de profiter de votre processeur multi-coeur et donc d'aller plus vite, mais même en -j2 c'est assez rapide (5 minutes sur un core2duo). Une fois la compilation terminée vous pouvez copier le fichier RBDoom3BFG dans le dossier Jeux/Doom3BFG que nous avons créé tout à l'heure.

2 - Copie des fichiers de données et configuration

Il faut maintenant vous rendre sur votre disque Windows dans le dossier où est installé Doom 3 BFG Edition et y copier le dossier "base" dans /home/{vous}/Jeux/Doom3. Typiquement ce dossier devrait se trouver dans "c:/Program Files (x86)/Steam/SteamApps/common/DOOM 3 BFG Edition/". Maintenant vous pouvez lancer le jeu, cependant si vous n'avez pas la version anglaise du jeu vous n'aurez aucun textes à l'écran. Pour remédier à cela il n'y a rien de plus simple. Rendez vous dans le dossier jeux/Doom3BFG/base/strings vous y trouverez un fichier french.lang (ou autre chose.lang suivant votre version), il faut le renommer en "english.lang" car actuellement le moteur tente d'ouvrir un fichier english.lang et il ne trouve rien (il ne sais pas qu'il y a un french.lang). Pour ma part j'ai fais une copie du fichier french.lang que j'ai renommé en english.lang.
cd
cd Jeux/Doom3BFG/base/strings
cp french.lang english.lang
cd ../../
On lance le jeu en cliquant sur RBDoom3BFG ou en console, si rien ne se passe passez en console, allez dans le dossier où vous avez mis l'exécutable et faites :
chmod a+x RBDoom3BFG
./RBDoom3BFG
Vous avez maintenant une version de Doom 3 BFG Edition qui fonctionne sous Linux ! Pour le moment vous ne pouvez pas lancer Doom 1 et 2, peut être que par la suite le moteur l'autorisera.

Le nouveau fusil à pompe est excellent et terriblement efficace à bout portant !
Je vous recommande vivement de consulter régulièrement les mises à jour de la page du projet sur github comme ça dés qu'une nouvelle fonctionnalité est implémentée vous pouvez la récupérer et en profiter.

La mise à jour se passe comme suis :
cd
cd Sources/RBDoom3BFG
git pull
cd build
make
Ensuite il y a juste à copier le nouveau binaire généré à la place de l'ancien ;) Si vous voulez profiter de vos sauvegardes Windows sous Linux c'est n'est pas encore possible si vous n'avez pas la version anglaise du jeu. Mais quand le jeu sera compatible avec le Français il faudra juste copier vos sauvegardes dans ~/.rbdoom3bfg/base/savegame . Si vous le faites tout de suite et que vous tentez de charger une partie vous aurez un message indiquant que le fichier de sauvegarde a été fait avec la langue française et que vous utilisez la langue anglaise. 

J'espère que cet article vous aura été utile et qu'il vous permettra de jouer vous aussi à Doom 3 BFG sous Linux. Les tests que j'ai fais sont pour le moment très satisfaisants et je n'ai pas rencontré de problème de lags ou autre. Petite astuce si vous êtes sous KDE, désactivez les effets graphiques en mode plein écran ;)