Table des matières
Installation d'un serveur Counter-Strike: Source
par Flubber, pour Gandi
I - Téléchargement de HL-Dedicated Server
Le principe du serveur source est le même pour tout les mods (du moins ceux proposés officiellement par valve) conçus sous ce moteur, par exemple Counter Strike Source, Half Life 2 Deathmatch ou encore Team Fortress 2.
Il faut en premier lieu télécharger le serveur puis les fichiers correspondants au jeu à installer.
Commençons par créer un répertoire pour le déploiement de l'utilitaire d'installation puis téléchargeons le fichier. (Source Dedicated Server soit srcds)
cd srv mkdir srcds cd srcds wget http://storefront.steampowered.com/download/hldsupdatetool.bin chmod +x hldsupdatetool.bin
Lançons maintenant la mise à jour de cet utilitaire et de steam.
./hldsupdatetool.bin ./steam
II - Installation des fichiers du jeu
Il faut maintenant récupérer les fichiers du jeu correspondants à celui voulant être installé, dans notre cas Counter-Strike Source. Créons tout de même un répertoire pour ceux-ci.
mkdir css ./steam -command update -game "Counter-Strike Source" -dir css
Autant vous prévenir que cette partie de l'installation est de loin la plus longue ! Si vous souhaitez accélérer le téléchargement et le traitement de tous les fichiers, vous pouvez prendre quelques parts de plus le temps de l'installation.
Nous indiquons donc à steam de mettre à jour l'installation (-command update) du jeu Counter Strike Source (-game “Counter-Strike Source”) dans le répertoire actuel (-dir .). Dans notre cas elle est inexistante : le jeu sera donc intégralement téléchargé.
Une fois le téléchargement terminé, il est bon de vérifier que les fichiers sont tous en bon état. Cette étape n'est pas obligatoire mais elle prend peu de temps et nous assure le bon fonctionnement du serveur.
./steam -command update -game Counter-Strike Source -dir css -verify_all
Le serveur de jeu est maintenant complètement téléchargé et prêt à être lancé. Mais il faut le configurer afin d'obtenir un serveur personnalisé et surtout optimisé.
III - Personnalisation du serveur
A - Le server.cfg
Toute les informations nécessaires au serveur se trouve dans le fichier server.cfg qui se trouve lui même dans le répertoire cfg qui est lui-même dans le répertoire cstrike qui se trouve dans css. Je résume :
cd /srv/srcds/css/cstrike/cfg/
Si il n'existe pas, créez le.
Voici les informations de base à lui fournir. Il existe énormement de variables qu'il serait inutile de présenter toutes ici, mais que vous trouverez sans soucis sur le web. C'est assez indigeste comme ça, mais il est nécessaire de connaitre un minimum ces variables pour bien administrer son serveur.
server.cfg
// Nom du serveur - Mettez ici le nom de votre serveur hostname "Server Counter-Strike Chez le Père Flubber @ Gandi" // Mot de passe rcon (ceci est le mot de passe pour l'administration de votre serveur ne le communiquez à personne) rcon_password "motdepasse"
// Mot de passe du serveur (Ici vous pouvez mettre un mot de passe pour accéder au serveur, laissez le vide si vous désirez ouvrir un serveur public) sv_password ""
cvars Serveur (ici commence la longue liste des variables serveurs)
Dans la majorité des cas :
0 désactive la fonction
1 active la fonction
Parfois il faut rentrer une valeur, en particulier sur les variables de temps.
Les valeurs commentées (par //) sont les plus importantes.
// active le tir-amis mp_friendlyfire 0 mp_footsteps 1 mp_autoteambalance 1 // Ejection automatique du joueur mp_autokick 0 // Autorise la lampe de poche mp_flashlight 0 //Punition automatique pour team-killing mp_tkpunish 1 //Bloque la caméra des joueurs morts mp_forcecamera 0 //active la discussion vocal pour les deux équipes sv_alltalk 0 //Permet de mettre le serveur en pause sv_pausable 0 //Autorise la triche sv_cheats 0 //Vérifie l'intégrité des données afin que le client et le serveurs aient bien les mêmes fichiers sv_consistency 1 //Autorise l'upload et le download. (des tags par exemple ou des cartes que vous avez ajoutées) sv_allowupload 1 sv_allowdownload 1 sv_maxspeed 320 mp_limitteams 2 mp_hostagepenalty 5 sv_voiceenable 1 mp_allowspectators 1 //Durée de chaque carte (en minute) mp_timelimit 25 mp_chattime 10 //Durée avant l'éjection d'un joueur qui ne répond plus (en seconde) sv_timeout 65
// variables de round //Durée ou les joueurs sont immobilisés en début de round (en seconde) mp_freezetime 6 //Durée d'un round (en minute) mp_roundtime 5 //Montant avec le quelle les joueurs commencent le round mp_startmoney 800 //Durée du timer de la bombe mp_c4timer 45 //Nombre maximum de round avant de changer de carte mp_maxrounds 0 //Nombre maximum de victoire pour une équipe avant de changer de carte mp_winlimit 0 //Durée de protection des joueurs avant le début d'un round (en seconde) mp_spawnprotectiontime 5
Réglages du réseau
Ces paramètres permettent de forcer les machines des joueurs à transmettre les informations à la même vitesse, afin que tout les joueurs soient logés à la même enseigne et ce quelque soit la rapidité de leur connexion.
sv_minrate 4000 sv_maxrate 8000 decalfrequency 60 sv_maxupdaterate 100 sv_minupdaterate 60
// Logs du serveur //Active l'enregistrement des journaux du serveurs (répertoire /logs) variables:on/off log on
//Enregistre les joueurs bannis sv_logbans 1 sv_logecho 1 sv_logfile 1 sv_log_onefile 0
//Divers //Défini si le serveur est un serveur locale ou en ligne (Toujours laissé cette variables sur 0) sv_lan 0 //Définis la région on se trouve le serveur (Pour l'Europe c'est 3) sv_region 3 //désactive le système de prix dynamique de valve (très peu de serveurs l'utilisent) mp_dynamicpricing 0
// execute ban files //Le serveur va lire la liste des steam_id bannis exec banned_user.cfg //Le serveur va lire la liste des ips bannis exec banned_ip.cfg
Par exemple : http://www.cstrike-planet.com/cfgmaker?cfg=srcds
B - Ajouter des maps
Aujourd'hui, peu de serveurs ne tournent qu'avec les cartes d'origines. En effet, les joueurs les ont joués des centaines de fois, voire plus.
Il convient d'ajouter des cartes qui correspondent au ton de votre serveur et aux désirs des membres de votre clan ou de vos visiteurs.
Difficile ici de vous donner des conseils sur quelles cartes il est préferable d'installer. Je ne peux que vous conseiller un site qui, pour moi, est une référence : fpsbanana.com qui liste quasiment toutes les cartes créées par les mappeurs et qui met à disposition un top des cartes les plus téléchargées.
Les cartes doivent être copiées dans le répertoire “maps” qui se trouve à la racine de votre installation.
Une fois copié, il faut les ajouter au mapcycle. Pour cela, rien de plus simple : il suffit d'éditer le fichier mapcycle.txt qui se trouve lui aussi à la racine de votre serveur et d'y rajouter le nom de la carte récemment installée et enfin de le sauvegarder.
Il sera pris en compte dès la prochaine carte jouée sur votre serveur, sans même avoir besoin de le redémarrer.
Tout les fichiers devant être récupérés par le client peuvent être compressés. Il convient de procéder ainsi :
cd maps bzip2 nouvellecarte.bsp
Vous obtiendrez alors un fichier nouvellecarte.bsp.bz2 qui prendra moitié moins de place que la carte d'origine, divisant ainsi par deux la durée de téléchargement pour les joueurs.
à savoir qu'il est possible de tout compresser, les fichiers .bsp pour les cartes, mais aussi les fichiers texte les accompagnant ainsi que les sons que vous voudriez ajouter.
Il est possible de créer un miroir de téléchargement afin de ne pas surcharger le serveur lorsqu'un joueur ne possède pas la carte. Sur ce serveur il est impératif de conserver la même architecture que sur le serveur de jeu.
Par exemple, imaginons que mon miroir se trouve sur "http://www.miroircss.com". Je dois alors créer un répertoire css dans lequel je crée un répertoire maps où je placerais les nouvelles cartes ainsi que leurs versions .bz2 (il est nécessaire de mettre les deux). Une fois le miroir en place il faut ajouter ceci dans le fichier server.cfg :
// Taille maximum autorisée pour les fichiers à télécharger (Valeur d'origine 15Mo) net_maxfilesize 60 //Indique l'adresse du miroir sv_downloadurl "http://www.miroircss.com/css/"
IV - Lancement du serveur
Après cette longue, mais nécessaire, phase de configuration, il est temps maintenant de lancer notre serveur CS:S.
Placez-vous dans le répertoire /srcds/ et lancez le Source Dedicated Server de la manière suivante :
Dans notre exemple le serveur va avoir 24 places, un tickrate de 100 et va se lancer sur la carte de_dust2.
cd /srv/srcds/css/ ./srcds_run -console -game cstrike +map de_dust2 -maxplayers 24 -autoupdate -tickrate 100
Un tickrate élevé permet par exemple de ne pas avoir un joueur qui viens de se mettre à l'abris tué par un joueur qui ayant un décalage dans les information de position le voit toujours en face de lui.
Pour faire bref, plus le tickrate est élevé plus les informations relatives à la position des joueurs sont précises et moins nombreuses sont les plaintes des joueurs :)
screen -A -m -d -S css-server ./srcds_run -console -game cstrike +map de_dust2 -maxplayers 24 -autoupdate -tickrate 100
Un screen css-server sera créé, pour y accéder tapez :
screen -x css-server
Voila, amusez-vous bien, et n'hésitez pas à poser vos questions à la communauté.