Installation et configuration d'un serveur dédié OpenArena 0.7.1
(marche aussi pour Quake 3 Arena)
Amusons-nous un peu avec Open Arena, un First Person Shooter basé sur le moteur libéré sous GPL du génialissime Quake 3 Arena. Mais pour bien s'amuser, mieux vaut être plusieurs. Comme héberger soi-même la partie c'est lourd, utilisons une machine dédiée.
D'abord, on récupère OA 0.7.0 et le patch 0.7.1 soit via le site officiel, soit via votre gestionnaire de paquets favoris (à ma connaissance, Ubuntu et Fedora n'ont pas de version à jour dans leur dépôts, mais cela a pu changer depuis que j'ai vérifié. Aucun problème avec une Mandriva 2008), soit via mon miroir perso http://downloads.anotherhomepage.org/ , rubrique Programs. On récupèrera optionnellement le mod OSP 1.03.
On décompresse les archives, à la racine de son répertoire home. Pour un utilisateur "quakeur" sur une machine "campgrounds", cela donne comme arborescence :
quakeur@campgrounds:~ $pwd
/home/quakeur
$ls -hlF openarena/
total 11M
drwxr-xr-x 2 quakeur quakeur 4,0K 2007-11-11 20:50 baseoa/
-rwxr--r-- 1 quakeur quakeur 6,8K 2007-07-07 07:09 CHANGES*
-rwxr--r-- 1 quakeur quakeur 18K 2006-11-10 17:50 COPYING*
-rwxr--r-- 1 quakeur quakeur 2,1K 2007-07-07 03:56 CREDITS*
-rwxr--r-- 1 quakeur quakeur 765K 2007-07-07 09:50 ioq3ded.i386*
-rwxr--r-- 1 quakeur quakeur 877K 2007-07-07 09:50 ioq3ded.x86_64*
-rwxr--r-- 1 quakeur quakeur 1,6M 2007-07-07 09:50 ioquake3.i386*
-rwxr--r-- 1 quakeur quakeur 1,6M 2007-07-07 09:50 ioquake3-smp.i386*
-rwxr--r-- 1 quakeur quakeur 1,8M 2007-07-07 09:50 ioquake3-smp.x86_64*
-rwxr--r-- 1 quakeur quakeur 1,8M 2007-07-07 09:50 ioquake3.x86_64*
-rwxr--r-- 1 quakeur quakeur 16K 2006-11-26 05:25 libogg-0.dll*
-rwxr--r-- 1 quakeur quakeur 154K 2006-11-26 05:25 libvorbis-0.dll*
-rwxr--r-- 1 quakeur quakeur 29K 2006-11-26 05:25 libvorbisfile-3.dll*
-rwxr--r-- 1 quakeur quakeur 64 2006-11-25 18:35 LINUXNOTES*
-rwxr--r-- 1 quakeur quakeur 2,0M 2007-07-07 09:50 openarena.exe*
-rwxr--r-- 1 quakeur quakeur 1,4K 2007-07-07 09:50 README*
quakeur@campgrounds:~ $ls -hlF openarena/baseoa/
total 261M
-rwxr--r-- 1 quakeur quakeur 30M 2007-07-07 08:41 pak0.pk3*
-rwxr--r-- 1 quakeur quakeur 27M 2007-07-07 08:38 pak1-maps.pk3*
-rwxr--r-- 1 quakeur quakeur 23M 2007-07-07 08:43 pak2-players-mature.pk3*
-rwxr--r-- 1 quakeur quakeur 65M 2007-07-07 08:46 pak2-players.pk3*
-rwxr--r-- 1 quakeur quakeur 25M 2007-07-07 08:47 pak3-music.pk3*
-rwxr--r-- 1 quakeur quakeur 67M 2007-07-07 08:48 pak4-textures.pk3*
-rwxr--r-- 1 quakeur quakeur 117K 2007-07-07 08:49 pak5-TA.pk3*
-rwxr--r-- 1 quakeur quakeur 16M 2007-07-07 08:49 pak6-misc.pk3*
-rw-r--r-- 1 quakeur quakeur 12M 2007-08-08 14:36 pak7-patch.pk3
2 choses : la première, le zip contient les binaires 32 et 64 bits x86 pour Linux, mais aussi un binaire 32 bits pour Windows. On peut optionnellement dégager ce dernier ainsi que les dll, vu qu'ils ne serviront pas, je pars du postulat qu'on tourne sous un OS propre, voire terreux, mais pas sale.
La seconde, c'est l'endroit où se situe le fichier du patch 0.7.1 : on vérifiera bien que le fichier pak7-patch.pk3 est dans \~/openarena/baseoa/ .
ensuite, il faut se faire un fichier de configuration. OpenArena étant basé sur le moteur libre de Quake 3 Arena, tout bon tuto qui se respecte pour ce bon vieux Q3A est à peu près valide pour OA. Voici ma configuration, utilisée pour la micro lan-party des JM2L 2007 (téléchargeable ici):
//Fichier de config server OA, chaque commentaire commence par "//" et dure jusqu'à la fin de la ligne.
//on met gametype à 0 pour Free for All (chacun pour sa pomme)
g_gametype 0
//Free For All Settings
//Limite de frag. Au-delà, on change de map. Pour enlever la limite, mettre à 0
fraglimit 20
//Limite de temps. Au-delà, on change de map. Pour enlever la limite, mettre à 0
timelimit 10
//Nombre max de n00bz sur le serveur
sv_maxclients 8
//Nom qui apparait dans l'interface de recherche
sv_hostname "Open Arena JM2L FFA Server"
//Message du jour (Message of the day). Optionnel
set g_motd "JM2L Open Arena serveur, amusez-vous bien !"
//On peut réclamer un mot de passe à l'entrée du servur 1="je veux un mot de passe", 0="je m'en cogne" (Défaut: 0)
sv_privateClients 0
//Si t'as mis 1 à la valeur précédente, indique ici ton mot de passe (on commente si c'est 0)
//sv_privatePassword ""
//Mot de passe de la console d'admin
rconpassword "lamepassword"
//Sorte d'anti-triche qui vérifie l'intégrité des fichiers pak 1=activé, 0=désactivé (Défaut: 1)
sv_pure 1
//Rafraîchissement max des n00bz qui viennent jouer, on recommande une valeur de 8000 à 10000 Max: 25000
//(Défaut: 0)
sv_maxRate 10000
//Sélection des map, dans quel ordre, et ensuite on charge la première map
set d1 "map oa_rpg3dm2; set nextmap vstr d2"
set d2 "map q3dm6ish; set nextmap vstr d3"
set d3 "map oa_dm1 ; set nextmap vstr d4"
set d4 "map fan; set nextmap vstr d5"
set d5 "map suspended ; set nextmap vstr d1"
vstr d1
//temps de réapparition (respawn) des armes en secondes. S'il y a plein de n00bz sur le serveur,
// mieux vaut augmenter la valeur (Défaut: 5)
set g_weaponrespawn 5
//Possibilité de voter 1=oui, 0=non (Défaut: 1)
set g_allowvote 1
//multiple de puissance du quad damage
//(Défaut: 3. donc un coup de roquette fait 3 fois plus de dégâts quand on a le quad damage)
set g_quadfactor 3
//variable nécessairement à 1 pour les clients qui veulent enregistrer la partie,
//mais cela ralentit légèrement le jeu (Défaut: 0)
set g_syncronousClients 0
//petites infos parfois utiles
sets "Administrator" "r00t"
sets "Email" "mail@domain.tld"
sets "URL" "http://www.domain.tld"
sets "Location" "au fond à droite"
sets "CPU" "Quadri Xeon"
// Si on utilise un pack de maps persos, il faut en faire profiter les autres :))
//sets "mappack" "http://www.myserver.com/mappack.zip"
// --- bots ---
seta bot_enable "1" // Activer les bots : 1 = activé, 0 = désactivé
seta bot_minplayers "3" // Nombre minimum de n00bz pour que les bots se barrent
seta bot_nochat "1" // Les bots peuvent parler. 1 = ils peuvent faire les piplettes, 0 = ils la bouclent
// End of file.
Ce fichier, appelons-le ffa.cfg (puisque c'est un serveur Free For All) et plaçons-le dans notre répertoire de configuration OA (le jeu fonctionne dans un mode plus ou moins chrooté, alors mieux vaut qu'il puisse trouver la config) :
quakeur@campgrounds:~ $pwd
/home/quakeur
quakeur@campgrounds:~ $cd .openarena/
quakeur@campgrounds:~/.openarena $ls -hlF
total 4,0K
drwxr-xr-x 2 quakeur quakeur 4,0K 2007-11-11 22:19 baseoa/
quakeur@campgrounds:~/.openarena $cd baseoa/
quakeur@campgrounds:~/.openarena/baseoa $ls -hlF
total 88K
-rw-r--r-- 1 quakeur quakeur 75K 2007-11-11 22:28 games.log
-rwxr-xr-x 1 quakeur quakeur 3,1K 2007-11-11 21:00 ffa.cfg*
-rw-r--r-- 1 quakeur quakeur 956 2007-11-11 22:20 q3config.cfg
quakeur@campgrounds:~/.openarena/baseoa $
les fichiers games.log et q3config.cfg peuvent ne pas exister, ils seront créés après un premier lancement du jeu. A la rigueur, selon la quantité de mémoire vive de votre serveur dédié, il peut être bien de positionner la variable com_hunkMegs à la quantité de mémoire vive que vous désirez allouer.
Et maintenant? Et bien on lance le serveur :
quakeur@campgrounds:~ $cd openarena/
quakeur@campgrounds:~ $./ioq3ded.i386 +set dedicated 1 +set net_ip 192.168.0.3 +set net_port 27960 +set g_log games.log +exec ffa.cfg
Spécifier l'adresse IP est une bonne chose si vous avez de multiples interfaces réseau, mais c'est optionnel. Idem pour le port, mis par défaut à 27960 si ma mémoire est bonne (utile si on a un monstre de puissance et qu'on fait tourner plusieurs instances du jeu avec des confs différentes). Il est possible, si on utilise un mod, d'ajouter l'option +set fs_game nomdumod , sachant que le répertoire du mod doit être dans le répertoire de configuration (je ne comprend pas pourquoi, mais ça marche comme ça chez moi :/). Le fichier de config, et celui de log seront aussi dans ce répertoire :
quakeur@campgrounds:~/.openarena/baseoa $cd osp/
quakeur@campgrounds:~/.openarena/baseoa/osp $$ls -hlF
total 92240
-rw-rw-rw- 1 quakeur quakeur 738B 14 déc 2001 1v1.cfg
drwxrwxrwx 20 quakeur quakeur 680B 17 fév 2003 Docs/
-rw-rw-rw- 1 quakeur quakeur 3K 28 fév 2003 INSTALL.txt
-rw-r--r-- 1 quakeur quakeur 348K 23 jan 2002 OSP Config Generator.exe
-rw-rw-rw- 1 quakeur quakeur 2K 4 déc 2001 OSP Match Quick Start.txt
-rw-rw-rw- 1 quakeur quakeur 12K 16 fév 2003 README.txt
-rw-rw-rw- 1 quakeur quakeur 27K 14 déc 2001 VoodooStats-ReadME.txt
drwxrwxrwx 9 quakeur quakeur 306B 23 fév 2002 cfg-DefaultModeReference/
drwxrwxrwx 4 quakeur quakeur 136B 23 fév 2002 cfg-GfxExample/
drwxrwxrwx 8 quakeur quakeur 272B 23 fév 2002 cfg-maps/
-rw-rw-rw- 1 quakeur quakeur 762B 14 déc 2001 clanarena.cfg
-rw-rw-rw- 1 quakeur quakeur 1K 14 déc 2001 ctf-public.cfg
-rw-rw-rw- 1 quakeur quakeur 736B 14 déc 2001 ctf.cfg
-rw-rw-rw- 1 quakeur quakeur 30B 2 mar 2003 description.txt
-rw-rw-rw- 1 quakeur quakeur 738B 14 déc 2001 ffa.cfg
-rw-rw-rw- 1 quakeur quakeur 1K 4 déc 2001 filters.txt
-rw-rw-rw- 1 quakeur quakeur 885B 16 fév 2003 freezetag-vanilla.cfg
-rw-rw-rw- 1 quakeur quakeur 856B 16 fév 2003 freezetag.cfg
-rw-r--r-- 1 quakeur quakeur 96K 10 nov 15:26 games.log
-rw-rw-rw- 1 quakeur quakeur 728B 14 déc 2001 instagib.cfg
drwxrwxrwx 4 quakeur quakeur 136B 23 fév 2002 locs/
-rw-r--r-- 1 quakeur quakeur 10K 11 nov 16:09 q3config.cfg
-rw-r--r-- 1 quakeur quakeur 49B 9 nov 22:01 q3history
-rw------- 1 quakeur quakeur 167B 11 nov 16:09 q3key
-rw-rw-rw- 1 quakeur quakeur 3K 5 déc 2000 spectool.cfg
-rw-rw-rw- 1 quakeur quakeur 760B 14 déc 2001 team.cfg
drwxrwxrwx 3 quakeur quakeur 102B 23 fév 2002 vm/
drwxrwxrwx 14 quakeur quakeur 476B 23 fév 2002 voodoo/
-rw-rw-rw- 1 quakeur quakeur 35M 14 déc 2001 zz-osp-pak0.pk3
-rw-rw-rw- 1 quakeur quakeur 8M 31 jan 2002 zz-osp-pak1.pk3
-rw-rw-rw- 1 quakeur quakeur 162K 17 fév 2003 zz-osp-pak2.pk3
-rw-rw-rw- 1 quakeur quakeur 158K 28 fév 2003 zz-osp-pak3.pk3
-rw-rw-rw- 1 quakeur quakeur 239K 4 mar 2003 zz-osp-server3a.pk3
quakeur@campgrounds:~/.openarena/baseoa $
On note la présence d'un fichier ffa.cfg, d'un q3config.cfg, d'un games.log et de plein d'autres fichiers très intéressants à lire si on souhaite approfondir le sujet (connaissance de l'anglais obligatoire). Le fichier "OSP Config Generator.exe" permet, sous Windows, de générer des fichiers de configuration en mode graphique. Je ne l'ai pas testé sous wine.
Pour plus d'informations :
GLHF !