TrackMania Nations Forever
Par PlaceOweb le dimanche, juin 5 2011, 11:40 - Jeux - Lien permanent
Les anciennes versions de TrackMania :
- TrackMania Nations
- TrackMania Original
- TrackMania Sunrise
et les les nouvelles versions de TrackMania :
- Trackmania Forever (la version payante)
- Trackmania Nations Forever (TmNationsForever - la version gratuite Trackmania Nations mise à jour en 2008)
Nous allons donc installer et configurer un serveur de jeux TmNationsForever (Trackmania Nations Forever) sur un serveur Linux.
Installer un serveur dédié TrackMania Nations Forever sous linux
Installation du serveur TrackMania Nations Forever sous linux
Basé sur le Tuto - Serveur dédié Trackmania Nations Forever - Installation, vous trouverez la dernière version des binaires dans le topic officiel mis à jour par l'équipe de Nadeo qui reste la meilleure source, Forum officiel : Serveur dédié pour TM Forever
wget "http://files2.trackmaniaforever.com/TrackmaniaServer_2011-02-21.zip" unzip -l TrackmaniaServer_2011-02-21.zip unzip TrackmaniaServer_2011-02-21.zip -d TrackmaniaServer_2011-02-21 cd TrackmaniaServer_2011-02-21 # ./TrackmaniaServer Starting TmForever v2011-02-21... Initializing... Loading system configuration... ...ERROR: No configuration file. ...Could not load the system configuration Loading cache... ...OK Listening for xml-rpc commands on port 5000. Trackmania server daemon started with pid=17564 (parent=17563). #
Dans le répertoire on remarquera la présence de :
ClientCommandLine.txt (non fourni)
C'est dans ce fichier que vous trouverez la syntaxe des commandes à utiliser en mode client pour contrôler votre serveur..
Readme_Dedicated.html
Est-ce bien utile de préciser qu'il devrait normalement à lui seul vous permettre de monter un serveur de base ? Consultez le en ligne : Readme_Dedicated.html
TrackmaniaServer / TrackmaniaServer.exe
Ce sont respectivement les binaires pour le serveur dédié Linux ou Windows. Vous l'aurez compris, une fois préparé votre serveur est prêt à être copié collé et lancé depuis n'importe quelle machine, qu'elle soit sous GNU Linux ou Windows.
GameData/
C'est dans ce dossier que nous placerons les circuits, la liste des maps et l'ensemble des fichiers de configuration du serveur.
Configuration du serveur dédié TrackMania Nations Forever
Basé sur le Tuto - Serveur dédié Trackmania Nations Forever - Configuration du serveur dédié
Votre serveur est désormais installé sur la machine, nous allons maintenant nous pencher sur la configuration du service. Pour ce faire rendez vous dans le fichier "GameData/Config/dedicated_cfg.txt"
<?xml version="1.0" encoding="utf-8" ?> <dedicated> <authorization_levels> <level> <name>SuperAdmin</name> <password>SuperAdmin</password> </level> <level> <name>Admin</name> <password>Admin</password> </level> <level> <name>User</name> <password>User</password> </level> </authorization_levels> <masterserver_account> <login></login> <password></password> <validation_key></validation_key> </masterserver_account> <server_options> <name></name> <comment></comment> <hide_server>0</hide_server> <!-- value is 0 (always shown), 1 (always hidden), 2 (hidden from nations) --> <max_players>32</max_players> <password></password> <max_spectators>32</max_spectators> <password_spectator></password_spectator> <ladder_mode>forced</ladder_mode> <!-- value between 'inactive', 'forced' (or '0', '1') --> <ladder_serverlimit_min>0</ladder_serverlimit_min> <!-- Those values will be clamped to the limits authorized on http://official.trackmania.com/tmf-ladderserver/ --> <ladder_serverlimit_max>50000</ladder_serverlimit_max> <enable_p2p_upload>True</enable_p2p_upload> <enable_p2p_download>True</enable_p2p_download> <callvote_timeout>60000</callvote_timeout> <callvote_ratio>0.5</callvote_ratio> <!-- default ratio. value in [0..1], or -1 to forbid. --> <callvote_ratios> <voteratio command="Ban" ratio="0.65"/> <!-- commands can be "Ban", "Kick", "ChallengeRestart", "NextChallenge", ... --> </callvote_ratios> <allow_challenge_download>True</allow_challenge_download> <autosave_replays>False</autosave_replays> <autosave_validation_replays>False</autosave_validation_replays> <referee_password></referee_password> <referee_validation_mode>0</referee_validation_mode> <!-- value is 0 (only validate top3 players), 1 (validate all players) --> <use_changing_validation_seed>False</use_changing_validation_seed> </server_options> <system_config> <connection_uploadrate>512</connection_uploadrate> <!-- Kbps (kilo bits per second) --> <connection_downloadrate>8192</connection_downloadrate> <!-- Kbps --> <force_ip_address></force_ip_address> <server_port>2350</server_port> <server_p2p_port>3450</server_p2p_port> <client_port>0</client_port> <bind_ip_address></bind_ip_address> <use_nat_upnp></use_nat_upnp> <p2p_cache_size>600</p2p_cache_size> <xmlrpc_port>5000</xmlrpc_port> <xmlrpc_allowremote>False</xmlrpc_allowremote> <!-- If you specify an ip adress here, it'll be the only accepted adress. this will improve security. --> <blacklist_url></blacklist_url> <guestlist_filename></guestlist_filename> <blacklist_filename></blacklist_filename> <packmask>stadium</packmask> <allow_spectator_relays>False</allow_spectator_relays> <!-- <minimum_client_build>2009-10-01</minimum_client_build> --> <!-- <disable_coherence_checks>laps</disable_coherence_checks> --> <use_proxy>False</use_proxy> <proxy_login></proxy_login> <proxy_password></proxy_password> </system_config> </dedicated>
Les points à modifier
authorization_levels
Changer les mots de passe des levels (SuperAdmin, Admin et User) dans authorization_levels
masterserver_account
Le masterserver account correspond à votre compte auprès du serveur central de Trackmania. Si vous n'avez pas de compte pour votre serveur dédié il vous suffit d'en créer un depuis le jeu à cet effet.
server_options
Ici pensez simplement à paramétrer le nom de votre serveur et le nombre de joueurs acceptés (max_players). A vous de tester pour voir selon les ressources de votre machine le meilleur compromis. Au delà de 64 joueurs il faudra prévoir une machine puissante avec une grosse connexion.
Attention aux paramètres autosave_replays et autosave_validation_replays, à moins d'en avoir besoin je vous conseille de vérifier que cette valeur soit à false, autrement chaque course enregistrera son lot de replays, prenant au final une place importante et entraînant des pertes de performances évidentes. Si vous organisez des compétitions sur votre serveur il semble préférable d'utiliser les validation_replays qui ne conserveront que les meilleurs temps en vue d'un éventuel visionnage à postériori par les arbitres.
system_config
Là encore, peu de choses à configurer, remplissez éventuellement les champs guestlist_filename (slots réservés pour vos amis/votre team), blacklist_filename (liste des joueurs bannis du serveur) avec les fichiers correspondants. Saisissez si possible l'adresse du pc qui servira à distance pour contrôler votre serveur dans xmlrpc_allowremote , inutile de laisser n'importe qui prendre la main sur le serveur. Laissez les ports par défaut sauf si vous lancez plusieurs serveurs sur la même machine ou si le port est déjà utilisé.
Configuration du MatchSettings TrackMania Nations Forever
Basé sur le Tuto - Serveur dédié Trackmania Nations Forever - Configuration du MatchSettings
Vous pouvez dupliquer (en "NationsPlaceoweb.txt" par exemple) l'un fichier de match par défaut depuis le dossier "GameData/Tracks/MatchSettings/Nations/" qui contient
- NationsBlue.txt
- NationsGreen.txt
- NationsRed.txt
- NationsWhite.txt
# cp GameData/Tracks/MatchSettings/Nations/NationsWhite.txt GameData/Tracks/MatchSettings/Nations/NationsPlaceoweb.txt /
game mode
- 0 = Rounds (courses normales, tout le monde part en même temps, le premier arrive gagne)
- 1 = TimeAttack (contre la montre)
- 2 = Team (classement par teams rouge vs bleu)
- 3 = Laps (nombre de tours)
- 4 = Stunts (score des cascades)
timeattack_limit
Durée en secondes d'une manche de time attack (ex : 30000 = 5 minutes)
contenu du fichier NationsWhite.txt
?xml version="1.0" encoding="utf-8" ?> <playlist> <gameinfos> <game_mode>0</game_mode> <chat_time>10000</chat_time> <finishtimeout>1</finishtimeout> <allwarmupduration>0</allwarmupduration> <disablerespawn>0</disablerespawn> <forceshowallopponents>0</forceshowallopponents> <rounds_pointslimit>30</rounds_pointslimit> <rounds_usenewrules>0</rounds_usenewrules> <rounds_forcedlaps>0</rounds_forcedlaps> <rounds_pointslimitnewrules>5</rounds_pointslimitnewrules> <team_pointslimit>50</team_pointslimit> <team_maxpoints>6</team_maxpoints> <team_usenewrules>0</team_usenewrules> <team_pointslimitnewrules>5</team_pointslimitnewrules> <timeattack_limit>180000</timeattack_limit> <timeattack_synchstartperiod>0</timeattack_synchstartperiod> <laps_nblaps>5</laps_nblaps> <laps_timelimit>0</laps_timelimit> <cup_pointslimit>100</cup_pointslimit> <cup_roundsperchallenge>5</cup_roundsperchallenge> <cup_nbwinners>3</cup_nbwinners> <cup_warmupduration>2</cup_warmupduration> </gameinfos> <hotseat> <game_mode>0</game_mode> <time_limit>300000</time_limit> <rounds_count>5</rounds_count> </hotseat> <filter> <is_lan>1</is_lan> <is_internet>1</is_internet> <is_solo>0</is_solo> <is_hotseat>0</is_hotseat> <sort_index>7</sort_index> <random_map_order>0</random_map_order> <force_default_gamemode>0</force_default_gamemode> </filter> <startindex>0</startindex> <challenge> <file>Campaigns\Nations\White\A01-Race.Challenge.Gbx</file> <ident>BeySZdnfuSh4nHY5xztiXLmlrXe</ident> </challenge> <challenge> <file>Campaigns\Nations\White\A02-Race.Challenge.Gbx</file> <ident>JwKdDsOUh4L9_eYyRsdiA2o1fW1</ident> </challenge> <challenge> <file>Campaigns\Nations\White\A03-Race.Challenge.Gbx</file> <ident>mWxQhvvPOoNfPaq18j3dokLqyO7</ident> </challenge> <challenge> <file>Campaigns\Nations\White\A04-Acrobatic.Challenge.Gbx</file> <ident>SEHmwPJVBl3NpHS56w6Sirac2Ic</ident> </challenge> <challenge> <file>Campaigns\Nations\White\A05-Race.Challenge.Gbx</file> <ident>I7rI7jAga6C4tGAe5OTDoyLF2fh</ident> </challenge> <challenge> <file>Campaigns\Nations\White\A06-Obstacle.Challenge.Gbx</file> <ident>syko1DvAxleoVlqMsc1sJzqbt66</ident> </challenge> <challenge> <file>Campaigns\Nations\White\A07-Race.Challenge.Gbx</file> <ident>KzeBzLOI62lxu3haZCPFn_4BfD6</ident> </challenge> <challenge> <file>Campaigns\Nations\White\A08-Endurance.Challenge.Gbx</file> <ident>KDBPTuNkrZG6jMxuRqmDBbLjfp6</ident> </challenge> <challenge> <file>Campaigns\Nations\White\A09-Race.Challenge.Gbx</file> <ident>TteOqSjrhVsdjZYAaLuGBWX2a4c</ident> </challenge> <challenge> <file>Campaigns\Nations\White\A10-Acrobatic.Challenge.Gbx</file> <ident>jH8X3qPtpn6pj3dLAaq08pyDdp1</ident> </challenge> <challenge> <file>Campaigns\Nations\White\A11-Race.Challenge.Gbx</file> <ident>N0CpLabOm8Kk6Lsf0kwelgHiMQm</ident> </challenge> <challenge> <file>Campaigns\Nations\White\A12-Speed.Challenge.Gbx</file> <ident>zwAbNlFSDcXjRBk0YSMyxc5kJJ8</ident> </challenge> <file>Campaigns\Nations\White\A13-Race.Challenge.Gbx</file> <ident>K27AW3HYV47qqqXentunIoUERu8</ident> </challenge> <challenge> <file>Campaigns\Nations\White\A14-Race.Challenge.Gbx</file> <ident>6ktPCqLADXXuy5LaOLTzktaGlKf</ident> </challenge> <challenge> <file>Campaigns\Nations\White\A15-Speed.Challenge.Gbx</file> <ident>dJQvN8hB18o3SXNl897MOShzZQ5</ident> </challenge> </playlist>
Lancer le serveur TrackMania Nations Forever
Basé sur le Tuto - Serveur dédié Trackmania Nations Forever - Lancer le serveur, et aller plus loin
Maintenant que tout est en place il ne reste plus qu'à lancer le serveur dédié. Pour ce faire la syntaxe de la commande Linux est la suivante :
./TrackmaniaServer /dedicated_cfg=/tmp/TrackmaniaServer_2011-02-21/GameData/Config/dedicated_cfg.txt /game_settings=/tmp/TrackmaniaServer_2011-02-21/GameData/Tracks/MatchSettings/Nations/NationsPlaceoweb.txt /internet
Attention, serveur lancé mais impossible de s'y connecter
Le serveur se lance mais impossible de le trouver et joindre ? J'ai donc forcé l'option :
<bind_ip_address>91.121.76.65</bind_ip_address>
Les options supplémentaires
Vous pouvez spécifier si votre serveur est de type internet ou LAN avec l'option " /internet " ou " /lan " (défaut)
Concernant les numéros de ports réseau votre machine doit pouvoir :
- sortir en http (TCP 80) et https (443 tcp)
- recevoir sur le port <server_port> en tcp et udp (2350 tcp eu udp par défaut)
- recevoir sur le port <server_p2p_port> en tcp (3450 tcp par défaut)
- (pour l'administration à distance) recevoir aussi sur le port <xmlrpc_port> en tcp (5000 tcp par défaut, parfois utilisé par le système sous Windows)
Pensez donc à bien ouvrir vos ports et à faire les redirections nécessaires sur les routeurs.
Se connecter à un serveur TrackMania Nations Forever
tmtp://#join=placeoweb
Rajouter un serveur favoris TrackMania Nations Forever
tmtp://#addfavourite=placeoweb
La création de compte
Elle est facultative mais pourra vous servir dans le cas d'un serveur internet, surtout si vous voulez permettre l'échange de coppers (la monnaie du jeu dans la version payante). Pour un serveur simple utilisez n'importe quel compte (ou un compte créé depuis le jeu pour l'occasion), sinon rendez-vous sur cette page dans la section Dedicated Server.
Vérifier que le serveur tourne et joignable depuis l'extérieur : http://dedimania.net/deditest/
Pour tester si votre serveur est joignable depuis l'extérieur : http://dedimania.net/deditest/
Administrer son serveur Trackmania en PHP
Si vous avez besoin de gérer votre serveur sans être connecté au jeu, ou si vous organisez par exemple des tournois, les interfaces php sont un excellent moyen de contrôle. A l'heure actuelle l'interface la plus aboutie que j'ai testé est TMWeb.
Développer son interface d'administration / Widget PHP
Aucune interface ne comble vos attentes ? Si vous vous y connaissez un minimum en php pourquoi ne pas attaquer directement en développant la votre ?
Nadeo a eu la gentillesse de fournir avec le serveur dédié un ensemble de fichiers d'exemples ainsi qu'un fichier source contenant les fonctions précodées pour intéragir depuis php avec votre ou vos serveurs. Tout se trouve dans le dossier " RemoteControlExamples/PhpRemote/ " et le fichier "basic.php" est sans doute le meilleur moyen de voir ce que cette API est capable de faire. Vous pourrez ensuite modifier à votre guise cette base pour construire, par exemple, des modules pour afficher la liste des joueurs connectés sur votre serveur en temps réel, la map en cours, les temps, etc...