Après le Media Center et l’overcloking, tentons… Quake 3. Ce jeu datant de 1999 (oui, il y a 13 ans) a un grand mérite : il est open source. Et comme John Carmack et son équipe proposaient déjà à son lancement des versions optimisées pour différents systèmes d’exploitation (Windows, GNU/Linux, Mac OS X) et architectures processeurs (x86 mais aussi PowerPC), Quake 3 a été porté assez facilement le Raspberry Pi.
Le jeu fonctionnait de façon correcte à sa sortie sur un Pentium II 300 MHz et une carte Voodoo 2 (en 800 x 600), et le Raspberry Pi et son ARM11 à 700 MHz couplé à un VideoCore IV de chez Broadcom devrait donc se débrouiller avec la 3D rudimentaire (par rapport aux standards actuels) de ce titre.
Préparer le Raspberry Pi
Il va d’abord falloir un système Debian fonctionnel, et configuré correctement. Première chose à faire, régler le ratio mémoire vive/mémoire vidéo. Quake 3 fonctionne de façon efficace avec 64 Mo pour le GPU et 192 Mo pour le système. Si vous n’êtes pas dans ce mode, c’est le moment d’aller adapter les fichiers .elf dans le répertoire /boot.
Avant d’installer les sources, il va falloir installer quelques utilitaires et vérifier qu’il reste de la place pour les binaires du jeu. Il faut compter 550 Mo pour la version complète du jeu, un peu moins de 100 Mo pour la démo, qui se trouve sur Internet assez facilement.
Deux utilitaires à installer, s’ils ne le sont pas déjà : git et wget.
sudo apt-get install git
sudo apt-get install wget
Ensuite, les outils de compilation.
sudo apt-get libsdl1.2-dev
sudo apt-get build-essential
Maintenant, nous allons récupérer les sources du jeu.
git clone https://github.com/raspberrypi/quake3.git
Une fois que c’est fait, il faut aller éditer le fichier build.sh et le modifier pour une compilation sur le Raspberry Pi même. Les sources sont prévues pour une compilation depuis une autre machine, mais il est plus simple — même si plus lent — de le faire directement depuis la carte.
Il faut modifier les lignes suivantes :
Ligne 8 : ARM_LIBS=/opt/vc/lib
Ligne 16 : INCLUDE_DIR=”/opt/vc/include”
Ligne 19 : #CROSS_COMPILE=bcm2708-
Maintenant que tout est prêt, il suffit de compiler le jeu en tapant la commande suivante, et attendre.
./build.sh
Et là on attend. On attend. On se documente sur le ARM11. On se rend compte que c’est lent. On cherche une souris. Un tapis de souris Everglide. Et on attend.
Une fois que c’est fait, il faut créer un dossier pour le jeu (Q3A par exemple). Il faut copier les fichiers ioq3ded.arm et ioquake3.arm dans ce dossier.
Dans un sous-répertoire baseq3, il faut copier cgamearm.so, qagamearm.so et uiarm.so.
Dans un autre sous-répertoire lib, il faut copier libSDL.so, libSDL-1.2.so.0 et libSDL-1.2.so.0.11.3.
Ensuite, il faut récupérer les fichiers pak0.pk3 à pak8.pk3 d’un CD d’installation de Quake 3 et les copier dans le dossier baseq3.
Enfin, il faut récupérer des fichiers de configurations avec la commande suivante et les copier dans le dossier baseq3.
wget http://simon.lc/files/rpiquake3cfg.zip && unzip rpiquake3cfg.zip
Une fois que c’est fait, il est conseillé de quitter l’interface graphique (dans certains cas elle nécessite trop de ressources), de se rendre dans le dossier Q3A et de taper la commande suivante :
sudo ./ioquake3.arm
Normalement, si tout s’est bien passé (c’était notre cas), le jeu va se lancer. Il est configuré pour obtenir des performances élevées (environ 60 fps en 1080p dans notre cas) au détriment des graphismes.
Pour aller un peu plus loin, il est possible de configurer le jeu via sa console intégrée. Normalement, elle est mappée sur la touche ~, généralement obtenue avec le raccourci alt gr + 2 sur un clavier français.
Il faut taper la commande suivante pour changer de configuration :
exec low.cfg
Dans notre cas, plusieurs profils sont installés : low (rapide), high (lent), fps (très rapide) et celui de base.
Pour mesurer les performances, il faut taper deux commandes :
timedemo 1
demo four
Ces deux commandes lancent la demo et donnent ensuite le nombre de FPS.
Maintenant que tout fonctionne pour vous, il faut aller fragger…
Comme d’habitude, si vous avez des commentaires, des questions, allez-y.