Serveur "dédié" pour JCloisterZone

Kécécé JCloisterZone

JCloisterZone est une implémentation libre du jeu de société Carcassonne, édité par Hans im Glück et par Asmodee en France, ainsi que ses extensions. Écrit en Java, il est possible de jouer seul contre une IA ou en ligne via un serveur “maître”.

Pourquoi un serveur dédié ?

Malheureusement il nous est arrivé de voir nos parties interrompues par les serveurs principaux qui plantent, problème à priori réglé mais passons. En fouillant dans le peu de documentations qui existent sur le jeu (une FAQ sur le forum Carcassonne Central et la maigre documentation sur GitHub.

La solution est alors de lancer une partie sur un ordinateur, de se connecter via le port adéquat. Ce qui implique d'avoir tout le temps le jeu de lancé. Pas tip top.

J'ai donc envoyé un mail à Roman Krejčík alias Farin, le développeur du jeu, qui m'a rapidement en gentiment répondu : il faut utiliser la classe com/jcloisterzone/wsio/server/SimpleServer du programme, qui lance, d'après le développeur un serveur “stupide”.

Mise en place

Cette opération a été réalisée sur un Raspberry Pi 3B+ sous Raspbian, mais doit aussi fonctionner sur n'importe quelle plate-forme exécutant Java.

Installer Java et 7zip

Comme nous n'avons pas besoin d'affichage, nous allons utiliser la version headless de Java en installant le paquet default-jre-headless. Les exécutables de JCloisterZone sont compressés via 7zip, nous allons aussi installer p7zip.

Récupérer le jeu

Un simple wget du lien de téléchargement sur le site officiel fait l'affaire :

Décompresser :

Options :

e : extraire

-o : le répertoire de sortie. Le nom doit être collé.

Exécuter le serveur JCloisterZone

Pour exécuter le serveur “stupide” il faut lancer le jeu via Java avec la commande suivante :

Options :

-cp : permet d'appeler une classe dans le fichier JAR

Il est ensuite possible de se connecter au serveur en allant sur Connexion dans le menu principal, puis saisir l'IP.

Règles de pare-feu

Si tout va bien, votre routeur ou votre box ne permet pas n'importe quelles connexion entrantes. Pour permettre à des joueurs de se connecter il faut ouvrir le port 37447, ou faire une NAT, sur votre routeur.