[Plan du site]
Vous êtes ici ---
> Le Site du Zér0
> Les tutoriels
> Non-Officiels
> Réseaux
> Général
> Lecture du tutoriel
Counter-Strike
Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Bonjour et bienvenue dans ce premier cours de cette seconde partie. Aujourd'hui nous consacrons ce dernier à la réalisation des tournois dudit jeu à succès : Counter-Strike.
Citation : WikipediaCounter-Strike, ou CS, signifiant littéralement contre-offensive, est un jeu vidéo de tir subjectif multijoueur en ligne basé sur le jeu d'équipe. C'est une modification complète du jeu Half-Life, réalisée par Minh Le et Jess Cliffe, dont la première version est sortie le 18 juin 1999. Le jeu fait s'affronter une équipe de terroristes et d'antiterroristes au cours de plusieurs manches. Les joueurs marquent des points en accomplissant les objectifs de la carte de jeu et en éliminant leurs adversaires, dans le but de faire gagner leur équipe.
Bon allez, maintenant que les présentations sont faites, passons à l'installation du jeu et des serveurs

.
L'installation qui va suivre porte sur la version 1.6 de Counter-Strike. Cette dernière, bien qu'étant ancienne, est à l'aise même sur des configurations modestes, donc vous aurez davantage de joueurs potentiels ainsi.
L'installation du serveur CS sous un système Windows
Se procurer Steam
Tout d'abord, je vous invite à télécharger cet installateur qui va installer le fichier de base qui va se charger de vous rapatrier le serveur dédié de CS.
Ensuite, vous l'installez normalement et je vous invite à démarrer votre invite de commande, accessible grâce à la combinaison Touche Windows + R.
Commençons par nous rendre dans le dossier d'installation par défaut, pour cela tapez "cd c:\hlserver" :
Code : Console | Microsoft Windows [version 6.0.6001]
Copyright (c) 2006 Microsoft Corporation. Tous droits réservés.
C:\Users\Mickael Knight>cd c:\hlserver |
Mettre à jour Steam
Maintenant nous allons taper une commande qui va mettre à jour les fichiers de la plateforme Steam.
Code : Console | c:\HLServer>hldsupdatetool -command update -dir c:\hlserver |
Télécharger le serveur dédié CS
Dès que vous voyez "HLDS installation up to date" vous pouvez faire la combinaison Ctrl+C pour arrêter le programme et pour taper une autre commande. Cette fois-ci c'est vraiment du sérieux, puisque nous allons demander à Steam de récupérer les fichiers propres au serveur dédié CS :
Code : Console | c:\HLServer>hldsupdatetool -command update -game "cstrike" -dir c:\hlServer |
Théoriquement, vous devez avoir une liste de fichiers qui défilent avec le pourcentage global effectué sur la droite. Cette étape dure une bonne dizaine de minutes, donc vous avez le temps de vous chauffer un café

.
Citation : Pas de titre2.33% c:\HLServer\cstrike\events\vehicle.sc
2.33% c:\HLServer\cstrike\events\xm1014.sc
2.35% c:\HLServer\cstrike\manual\manual.htm
2.38% c:\HLServer\cstrike\maps\as_oilrig.bsp
3.00% c:\HLServer\cstrike\maps\cs_747.bsp
3.52% c:\HLServer\cstrike\maps\cs_assault.bsp
3.84% c:\HLServer\cstrike\maps\cs_backalley.bsp
...
Quant à moi, je vous retrouve juste après, juste le temps d'expliquer à nos amis Linuxiens comment faire cette manip sous Linux et je vous reviens, à tout de suite

.
L'installation d'un serveur CS sous GNU/Linux
Afin de gagner davantage de performances, il est intéressant si vous avez un nombre de participants assez élevé et des machines un peu modestes, d'utiliser un système d'exploitation à base de GNU/Linux. Ici nous allons utiliser uniquement la console, donc cela suppose que vous avez déjà les compétences nécessaires pour la manier.
L'installation et les manipulations qui vont suivre ne doivent jamais être faites sous root pour des raisons de sécurité ! Votre compte utilisateur UNIX suffit largement.
Se procurer Steam
Tout d'abord, nous allons créer un dossier dans notre répertoire personnel qui porte le nom de "cs-srv" afin bien ranger nos fichiers
Code : Console | cedric@knight-portable:~$ mkdir cs-srv |
Maintenant, rendons-nous dans ce nouveau dossier et téléchargeons l'installateur Steam.
Code : Console | cedric@knight-portable:~$ cd cs-srv |
Code : Console | cedric@knight-portable:~/cs-srv$ wget <lien url="http://www.lanup.org/pub/sdz/hldsupdatetool.bin">http://www.lanup.org/pub/sdz/hldsupdatetool.bin</lien> |
Maintenant nous allons rendre le fichier exécutable en tapant la commande suivante :
Code : Console | cedric@knight-portable:~/cs-srv$ chmod 777 hldsupdatetool.bin |
Je vous invite maintenant à exécuter le fichier :
Code : Console | cedric@knight-portable:~/cs-srv$ ./hldsupdatetool.bin |
Toute la licence s'affiche alors, avec une question en-dessous qui vous demande si vous acceptez la licence ou non. Tapez "yes" et validez. "extracting steam...done" vous signale que la décompression s'est bien faite

.
Maintenant que la décompression de Steam est faite, nous pouvons supprimer le fichier "hldsupdatetool.bin".
Code : Console | cedric@knight-portable:~/cs-srv$ rm -f hldsupdatetool.bin |
Mettre à jour Steam
Maintenant il est temps de mettre à jour Steam et de télécharger tous les fichiers dont votre serveur dédié a besoin, car avec seulement 3 mégaoctets de fichier, il ne faut pas de faire d'illusions : votre serveur dédié CS n'est pas encore sur votre machine.
Lancons donc Steam avec cette commande :
Code : Console | cedric@knight-portable:~/cs-srv$ ./steam update |
Télécharger le serveur dédié CS
Pour ce faire, il suffit de taper la commande qui va suivre. Cette étape est relativement longue, car le programme va télécharger tous les fichiers du serveur dédié un par un.
Code : Console | cedric@knight-portable:~/cs-srv$ ./steam -command update -game "cstrike" -dir . |
Une liste de fichiers doit défiler avec à gauche le pourcentage global effectué :
Citation : Extrait de la liste de fichiers0.02% .\cstrike\cl_dlls\client.dll
0.30% .\cstrike\dlls\cs_amd64.so
1.09% .\cstrike\dlls\cs_i386.so
1.82% .\cstrike\dlls\mp.dll
2.20% .\cstrike\events\ak47.sc
2.20% .\cstrike\events\aug.sc
Le téléchargement et la fin de cette sous-partie se termine par un "HLDS installation up to date".
Le fichier "autoexec.cfg"
Ce fichier permet de lancer automatiquement des paramètres que l'on insère dans la ligne de commandes pour lancer le serveur. En effet, souvenez-vous de la longue ligne pour tester si votre serveur fonctionne bien : eh bien c'est grâce au fichier "autoexec.cfg" qui nous permet de raccourcir la commande en tapant seulement hlds ou ./hlds pour Linux !
Il se trouve dans le répertoire "cstrike", s'il n'est pas présent, je vous invite à le créer.
Alors au niveau du contenu, nous allons mettre les lignes suivantes :
- map de_dust2 (on spécifie la carte qui doit être chargée en premier)
- maxplayers 10 (on lui indique le nombre de joueurs maximum, ici 2 équipes de 5 généralement)
- sv_lan 1 (on lui dit que c'est pour un réseau local, donc on l'active)
Le fichier "liblist.gam"
Ce fichier configure plutôt les rouages du serveur de jeu. Théoriquement le fichier doit être déjà crée et possède ces lignes :
Citation : liblist.gamgame "Counter-Strike"
url_info "www.counter-strike.net"
url_dl ""
version "1.6"
size "184000000"
svonly "0"
secure "1" <== si 1 active la protection anti-triche, mais attention nécessite Internet : donc désactiver si vous n'êtes pas connecté.
type "multiplayer_only"
cldll "1" <== si 1, le serveur vérifie que le joueur a les mêmes fichiers DLL que lui, pour éviter la triche. Si des problèmes de version se posent (joueur avec une version LAN contre un serveur officiel mis à jour), désactivez en mettant cette valeur à 1.
hlversion "1111"
nomodels "1"
nohimodel "1"
mpentity "info_player_start"
gamedll "dlls\mp.dll" <== Ces 2 lignes permettent à CS de lancer une DLL différente afin de charger un gestionnaire de plugin, genre AMX, MetaMod & compagnie. Cette ligne concerne les serveurs sous Microsoft Windows ...
gamedll_linux "dlls/cs_i386.so" <== ... et elle pour les serveurs sous Linux.
trainmap "tr_1"
Voila un peu ce qu'il y a à changer là-dedans

.
Le fichier "server.cfg"
Ce fichier nous permet de modifier la configuration du serveur en lui assignant un mot de passe administrateur, le nom qu'il porte, si on autorise les spectateurs, etc.
Il se trouve dans le répertoire "cstrike", s'il n'est pas présent, je vous invite à le créer.
Alors au niveau du contenu, nous allons mettre les lignes suivantes :
- hostname "SDZ-Lan -=- Poule #1" (on lui donne le nom qu'il doit porter dans les listings des serveurs quand on scanne le réseau)
- sv_password "sdzwar1" (sv_password permet de rendre le serveur privé, car il demande ce mot de passe au joueur lors de sa connexion)
- rcon_password "ISGFP8QSO8IFG" (ici, contrairement à sv_password, c'est le mot de passe pour administrer le serveur, donc inutile de vous dire qu'il faut un pass en béton
)
- allow_spectators 1 (permet aux spectateurs de se connecter si 1, utile pour le vidéoprojecteur ou HLTV)
- sv_proxies 1 (un peu compliqué, mais retenez juste que ça sert pour HLTV)
- pausable 0 (si 0, le jeu ne pourra pas se mettre en pause. Il est toujours désactivé en général)
- sv_cheats 0 (désactive les codes de triche si 0
)
- log 1 (active la journalisation de l'activité du serveur si 1)
- mp_logdetail 3 (je veux tous les détails - échelle de 0 à 3)
- sv_alltalk 0 (la voix d'un joueur au micro s'entend uniquement dans sa propre équipe à 0, à 1 sa voix s'entend dans les deux camps)
Maintenant je demande votre entière attention, puisqu'on va parler de performances :
- sv_minrate 10000 (définit la bande passante minimale par joueur en octets/sec)
- sv_maxrate 20000 (définit la bande passante maximale par joueur en octets/sec)
- sv_minupdaterate 10 (définit le nombre de fois par seconde au minimum où l'on fait appel à un transfert du serveur vers le client)
- sv_maxupdaterate 100 (définit le nombre de fois par seconde au maximum où l'on fait appel à un transfert du serveur vers le client)
Alors pour les "rates" ci-dessus, nous avons fixé une limite maximale de 20000 octets/sec, soit 19.5 Ko/s par joueur. Ainsi sur un serveur avec 10 joueurs, votre serveur devra débiter du 195 Ko/s ce qui est largement réalisable avec des câbles Ethernet. Pour aller plus loin avec 5 serveurs CS qui tournent sur la même machine, cela fait au total 975 Ko/s de trafic maximal pour servir 50 joueurs. Inutile de mettre ces configurations à fond, même si le réseau le permet, car le gain de performances est imperceptible.
En ce qui concerne les "updaterates" ce sont des paramètres qui limitent le nombre de requêtes effectués au serveur en une seconde. Ainsi, plus vous demandez d'informations au serveur en l'espace d'une seconde, meilleure en sera la réactivité au sein du jeu. Par contre, cela se traduit par une montée de l'utilisation du processeur, donc prenez garde si vous faites tourner plusieurs poules sur la même bécane. Un minimum de 10 et un maximum de 100 me semblent être un bon compromis entre confort de jeux et performances.
Alors bien évidemment, il y a d'autres paramètres qui existent notamment le tickrate & compagnie, mais en LAN les pings sont largement réduits ce qui donne une fluidité adéquate pour vos tournois. En revanche, ces paramètres sont, je l'avoue, assez intéressants dès lors qu'on joue à travers l'Internet où les temps de latences sont grosso-modo dix fois supérieur à une latence en LAN'Party.
Le fichier "game.cfg"
Ce fichier nous permet de configurer vraiment l'environnement propre du jeu en définissant si on peut utiliser la lampe-torche ou non, dans combien de temps la bombe explose, si on peut tirer sur ses équipiers, etc.
- mp_fadetoblack 1 (lorsque vous crevez, votre écran devient noir en attendant le prochain round)
- mp_forcecamera 1 (force la caméra spectateur)
- mp_forcechasecam 1 (permet de modifier le type de caméra à forcer au joueur. 0 on peut voir sa propre équipe et l'équipe adverse, 1 sa propre équipe, et 2 on reste sur le lieu du décès)
- mp_friendlyfire 1 (si 1, tirer sur vos coéquipiers les blessent)
- mp_tkpunish 1 (si vous avez tuer un coéquipier, vous ne participez pas au round suivant en guise de punition)
- mp_hostagepenality 0 (désormais tuer tous les otages ne vous fera pas quitter le serveur)
- mp_autokick 0 (le serveur ne vous déconnecte plus automatiquement si vous n'êtes pas devant l'ordi pendant un moment)
- mp_c4timer 40 (définit le temps en secondes de la durée du détonateur avant explosion)
- mp_flashlight 1 (active la possibilité au joueur d'utiliser la lampe-torche)
- mp_startmoney 2000 (permet de modifier le montant des disponibilités de départ en USD en sachant que 16000 est le maximum)
- mp_autoteambalance 0 (permet au serveur d'équilibrer lui-même les équipes si 1, mais là les joueurs sont assez intelligents pour se placer eux-mêmes)
- mp_freezetime 0 (permet de bloquer le joueur selon x secondes en début de manche, ici on peut commencer à jouer sans attendre)
- mp_chattime 10 (définit le temps entre la fin de la partie et le changement de map, temps durant lequel les joueurs peuvent converser)
- mp_roundtime 3 (permet de fixer à x minutes le temps d'une manche en sachant que 10 minutes est le maximum)
- mp_buytime 1.5 (fixe le temps limite d'achat des armes & compagnie, ici on a 1 minute 30 secondes pour acheter son arme)
- mp_timelimit 30 (ici, la partie dure 30 minutes au total avant de changer de carte)
Démarrage des serveurs
Sur Internet, ce ne sont pas les serveurs dédiés qui manquent, mais en LAN'Party ... si

. Par conséquent il est intéressant de lancer plusieurs serveurs CS sur la même bécane. Pour cela c'est très simple il faut copier vos fichiers de configuration par autant de serveurs que vous voulez lancer. La seule modification qu'on va apporter c'est le nom du serveur qui va changer. Le port devra être aussi changé, mais nous le ferons directement dans la ligne de commande lors du lancement.
Pour les pros...
D'abord, il va falloir modifier le nom du serveur dans le fichier "server.cfg" et copier plusieurs fois ce fichier avec autant de serveurs que vous souhaitez, toujours en modifiant le nom des serveurs, comme "SDZ-LAN :: Poule 1", "SDZ-LAN :: Poule 2"... Vous pouvez aussi modifier les mots de passe, nombre de joueurs maxi...
Ainsi je me retrouve avec des fichiers "server1.cfg", "server2.cfg", nous allons maintenant lancer nos serveurs en indiquant quel fichier utiliser :
Code : Console | cedric@knight-portable:~/cs-srv$ ./hlds_run -game cstrike -nomaster -insecure +port 27015 +servercfgfile server1.cfg |
Code : Console | cedric@knight-portable:~/cs-srv$ ./hlds_run -game cstrike -nomaster -insecure +port 27016 +servercfgfile server2.cfg |
Code : Console | c:\HLServer>hlds -console -game cstrike +port 27015 -nomaster -insecure +servercfgfile server1.cfg |
Code : Console | c:\HLServer>hlds -console -game cstrike +port 27016 -nomaster -insecure +servercfgfile server2.cfg |
Pour les flémards ...
Il est possible de lancer plusieurs serveurs en changeant sur le numéro de port dans le lancement du serveur. Par contre ici nous ne pouvons pas changer le nom directement pour une question de simplicité (voilà pourquoi je l'ai mise pour les flémards

). Allez, quelques commandes (démarrer une nouvelle invite de commande à chaque fois). Exemple pour Linux (ici je demande un serveur CS sans ajouter le serveur à l'annuaire de steam et sans le système anti-triche (car pas Internet) et sur le port x) :
Code : Console | cedric@knight-portable:~/cs-srv$ ./hlds_run -game cstrike -nomaster -insecure +port 27015 |
Code : Console | cedric@knight-portable:~/cs-srv$ ./hlds_run -game cstrike -nomaster -insecure +port 27016 |
Code : Console | c:\HLServer>hlds -console -game cstrike -nomaster -insecure +port 27015 |
Code : Console | c:\HLServer>hlds -console -game cstrike -nomaster -insecure +port 27016 |
Pour Windows c'est juste le "./hlds_run" qui change en "hlds". Pour vous faciliter la vie, vous pouvez faire un fichier .BAT par serveur

.
Création du tournoi
La constitution des équipes
Alors ici, il faut savoir déjà combien de joueurs veulent participer au tournoi CS. Pour cela, vous prenez stylo et feuille et vous faîtes un tour de table pour les inscriptions ou soit via votre propre système intranet. L'idéal serait d'avoir des équipes de 5 complètes, c'est ce qu'il se fait généralement.
Si par malheur, il vous manque un ou deux joueur(s), ne paniquez pas, les organisateurs peuvent eux-mêmes jouer, c'est largement faisable. Quoi ? Ah tu ne sais pas bien jouer ? Je te rassures moi non plus

. Mais bon pour une LAN'Party fun, je crois qu'on s'en fout un peu : on est là pour s'amuser, donc c'est très positif pour le fairplay

.
La récupération des scores
Que serait un tournoi sans scores dites-moi ?

Eh bien ici, je vais vous faire partager un bon petit logiciel assez puissant sur ce point, car il permet en plus de contrôler l'ensemble de vos serveurs CS sans aller dans le jeu et sans toucher à la console.
Son nom est HLSW et je vous invite à le télécharger dès maintenant dans sa dernière version ici :
télécharger !
Installez-le et démarrez le : il doit vous demander un login et un mot de passe, vous cliquez juste sur "Offline" pour accéder au logiciel, dont voici l'interface :
L'interface principale de HLSW
Alors tout d'abord, on va ajouter votre premier serveur CS dans le logiciel. Pour ce faire dans la 2e barre en haut, vous tapez l'IP ou le nom de votre ordinateur qui héberge vos serveurs CS, vous pouvez spécifier le port si vous le voulez. Bon chez moi j'ai juste tapé "knight-portable" et pouf il me l'a trouvé, c'est pas merveilleux ça ?
Sur toute la partie gauche en gris, vous avez les caractéristiques du serveur avec un graphique du ping, la carte en cours, nombre de joueurs, limite de temps, etc. Sur la partie de droite, vous avez une ligne par joueur avec son nombre de frags et plus bas, vous avez des variables de jeux que nous avons en partie fixées juste avant dans la partie "Configuration".
Par contre, pour obtenir la partie basse, il faut aller dans "Voir" et "Section RCON". Tiens tiens ... rcon, j'ai déjà entendu ça quelque part ... ah vous aussi ?

Eh bien rappelez-vous c'est le mot de passe d'administration. Vous le tapez dans la nouvelle zone qui vient d'apparaître (au pire elle est cachée en bas, vous tirez la ligne vers le haut pour la faire apparaître) puis vous cliquez sur "Test" et un beau "OK" vert doit s'afficher vous indiquant que vous êtes loggé cher Maître

. Vous ainsi accès à la console, à la liste des bannis, liste des cartes, etc.
Donc voila, les scores de chaque équipe s'affichent également dans le listing des joueurs : vous êtes maintenant équipé pour récupérer les scores assez facilement. Il existe aussi des programmes qui font ça automatiquement en se greffant sur les serveurs eux-mêmes et placent ensuite les scores en base de données de façon à les récupérer via intranet. Bon c'est plus compliqué et plus chiant à les faire fonctionner correctement (moi-même j'ai lutté comme pas possible

). Toutefois je peux citer AdminBot, M4, etc. qui sont déjà de bons logiciels

.
Quelques exemples
Ci-dessous, je vous fais partager 2 des tournois LanUp pour Counter-Strike. Le support utilisé pour faire ces tournois est Microsoft Excel tout simplement (cliquez dessus pour agrandir/ouvrir):
Bien, je crois qu'on a très bien fait le tour des éléments de base dans un tournoi CS. Je pense que vous saurez vous débrouiller avec les phases d'éliminations tout ça, bref c'est vous qui gérez ça. Quant à moi, je vous retrouve dans mes futurs chapitres et également sur le forum pour davantage de support en cas de besoin

.
N'oubliez pas d'utiliser le projo pour diffuser la finale en mode spectateur, ou de projeter le tableau Excel avec les scores.
La gestion des serveurs avec HLSW (écran sur la gauche)