Focus TourDeJeu

Technique : automatisation et mails

par Olivier Gangloff, MJ de Nebula

[Ceci est la version complète imprimable]

Le serveur de mail de Nebula, 1ère partie : présentation.

Gérer un Jpc est une véritable passion. Souvent les créateurs de tels jeux sont jeunes, dynamiques et pleins de bonne volonté. Mais cette passion risque de devenir très envahissante et demande beaucoup de temps au maître de jeu. Lorsqu'on a le temps et la motivation, tout va bien. Mais l'expérience montre que ce sont des paramètres qui fluctuent au cours du temps. Beaucoup de jeux ne se remettent pas d’un changement de travail, de l'arrivée d'une petite amie, ou d’autres passions de son créateur. Pour éviter ces écueils il faut essayer d'avoir les deux objectifs suivants :

  • Constituer une équipe de personnes pouvant prendre le relais à l'occasion.
  • Automatiser le plus possible le jeu afin que le travail du maître de jeu soit tourné vers l'amélioration du jeu plutôt qu'au déroulement de celui-ci.

    Autant il n'y a pas grand chose à ajouter sur le premier point, autant le deuxième est un vaste sujet. Ce focus n'en abordera qu'un cas concret existant, à des fins d'illustration.

    L'association Ludimail essaye de sensibiliser les maîtres de jeux sur l'automatisation maximale de leur jeu. Cela demande un investissement en temps initial et des compétences techniques, c'est certain, mais si on y arrive c'est un gain de temps formidable lors de l'organisation de parties. Donc dans la lignée du gain de temps et du confort du maître de jeu voici le serveur de mail. Cet article se base sur ce qui a été mis en place pour Nébula depuis septembre 1997. C'est donc maintenant un outil parfaitement rodé et qui a servi à des dizaines de parties.

    Principe

    Le serveur de mail de Nébula gère tous les échanges par Email du jeu. Cela passe par l'échange de messages entre joueurs (et avec l'arbitre), la collecte des ordres, l'envoi des comptes-rendus.

    L’intérêt du serveur de mail est de tout centraliser automatiquement. La petite contrepartie, c’est l’obligation de formater ses mails d'une manière bien précise. Le serveur répond par un message d'erreur en cas de soucis et prévient l’arbitre si nécessaire. Néanmoins ce formatage peut tout à fait être intégré dans un outil.

    Si vous voulez voir un peu à quoi ça ressemble, vous pouvez aller voir la page de Nébula, et plus particulièrement la page consacrée au serveur de mail.

    Options offertes aux joueurs

    Comme ce sera répété par la suite, le SM gère lui-même les adresses Email des joueurs. Qu'un joueur change d'adresse ou bien qu'il veuille tout recevoir dans plusieurs boites aux lettres différentes (maison, boulot...), il suffit d'indiquer au serveur de mail la liste de ses adresses Email. L'arbitre n'est jamais dérangé par cette opération.

    D'autres options existent. Par exemple il est possible d'indiquer si on souhaite ou non recevoir les rumeurs (messages anonymes envoyés à tous les joueurs, en général c'est un message d'ambiance), il est possible de demander au SM la réception d'une copie de tous les messages qu'on lui envoie (pratique pour l'archivage ou quand plusieurs personnes jouent le même joueur dans le cadre d'un parrainage de débutant par exemple).

    Le serveur met à disposition des joueurs des commandes leur permettant de récupérer des informations. Les plus importantes étant les suivantes :

  • Dernière version des ordres stockés
  • Dernier CR stocké
  • Nombre de joueurs ayant rendu leurs ordres

    Chaque joueur et l'arbitre doivent donner un mot de passe pour chaque utilisation du SM. Il faut bien sécuriser ça un minimum.

    La collecte des ordres

    Lorsqu'un joueur souhaite envoyer ses ordres à l'arbitre, il les envoie par Email non pas à l'arbitre mais au serveur de mail. Celui-ci stocke les ordres sur le serveur et en envoie une copie à l'arbitre à des fins d'archivage. Le serveur de mail effectue une simulation d'éval permettant de détecter rapidement des erreurs grossières dans les ordres et retourne le résultat avec un message d'accusé de réception au joueur.

    Si jamais celui-ci voulait changer ses ordres il lui suffit d'envoyer à nouveau ses ordres. La dernière version des ordres efface la précédente. Ainsi lorsque la date limite du tour arrive l'arbitre n'a plus qu'à récupérer l'ensemble des dernières versions des ordres sur le serveur de mail dans un seul fichier. L'évaluation devient un jeu d'enfant : un simple copier-coller du fichier vers le programme d'arbitrage suffit.

    Un autre intérêt est également le fait que les joueurs peuvent à tout moment demander au serveur de mail de leur envoyer la dernière version des ordres qu'il a stocké. Cela peut-être utile si on a perdu ses ordres ou bien si on n'est pas sur son ordinateur habituel mais que l'on doit modifier ses ordres.

    Dernier point intéressant, avoir tous les ordres stockés à un endroit unique permet de voir facilement qui n'a pas rendu ses ordres. Le serveur de mail offre aussi à l'arbitre une commande de relance aux joueurs n’ayant pas encore rendus leurs ordres. Indispensable pour éviter de mauvaises surprises aux joueurs tête en l'air.

    L'envoi des comptes-rendus

    Plutôt que d'envoyer un mail à chacun des joueurs avec son compte-rendu l'arbitre se contente d'envoyer tous les CR dans un unique fichier compressé au SM. Celui-ci va alors stocker tous les CR sur place et en envoyer une copie à chaque joueur concerné.

    Cela évite à l'arbitre de gérer lui-même la liste des joueurs, charge à eux d'indiquer au SM leurs changements d'adresse. L’arbitre évite également de créer un message pour chaque joueur (plus long à envoyer). Et en dernier lieu ça permet aux joueurs de récupérer à tout moment leur dernier CR en le demandant au SM sans embêter l'arbitre. Mieux encore, le CR stocké permet d'effectuer une simulation d'évaluation avec les ordres que les joueurs envoient : à chaque fois ils reçoivent un accusé de réception avec une simulation d’éval.

    La simulation d’éval fait plus qu’une simple analyse syntaxique des ordres, elle réalise une évaluation du tour à l’aide du dernier CR du joueur stocké et les ordres qui viennent d’être envoyés par le joueur (et lui seul). Ceci permet de repérer certaines erreurs de logique. Dans le cas d’une partie par équipes la simulation se fait avec tous les ordres stockés de l’équipe. Pratique pour se synchroniser. C’est un plus qui permet d’éviter pas mal de bourdes. Bien entendu cette fonctionnalité est spécifique à Nébula et n’est pas forcément adaptable à d’autre jeux.

    La discussion entre les joueurs

    Cette fonctionnalité n'est pas forcément utile pour tous les jeux mais dans un jeu de diplomatie comme Nébula elle s'est vite montrée indispensable. Afin d'éviter les alliances (et ennemis) préconçues lorsqu'on joue dans une nouvelle partie nous cherchions un moyen de communiquer sans forcément connaître l'adresse Email ni la véritable identité des autres joueurs. Ainsi pour s'échanger des messages on écrit au serveur de mail en indiquant les numéros des joueurs (ou leur pseudo) à qui on veut écrire. Le serveur de mail fait suivre.

    Le SM permet également de répondre facilement à un message reçu. Grâce à un code sécurisé (pour éviter des bidouilles de petits malins) l'utilisation de la fonction de réponse du logiciel de messagerie permet de répondre à son interlocuteur, et ce toujours par l'intermédiaire du SM.

    Le SM permet d'envoyer des messages en indiquant ou non le pseudonyme de l’auteur du mail. S’il est visible on peut alors répondre au message. Sinon c’est impossible car la source n’est pas identifiée (rumeur, dénonciation).

    Comme pour un mail classique il est possible d’envoyer un message à plusieurs destinataires. Dans ce cas on peut indiquer si les réponses doivent aller uniquement à l'auteur du message d'origine ou bien également à tous ses destinataires.

    A noter : l'arbitre peut recevoir une copie de tous les messages échangés. Il reste ainsi au courant de ce qui se passe et de suivre la partie de manière plus vivante. C’est pratique également pour informer de la situation un joueur remplaçant qui arrive forcément en milieu de partie.

    Comme tout bon automate le SM effectue des statistiques du nombre de messages envoyés par chaque joueur. Cela permet de vérifier en fin de partie qu’une diplomatie active est souvent payante ;-).

    Le côté technique

    Il sera discuté dans la deuxième partie de ce focus.

    Je parlerai des pré-requis pour héberger un tel serveur, on verra que c'est possible aussi bien sous Unix que Windows. La mise en place n’est pas évidente la première fois, surtout pour un néophyte (des connaissances système sont souhaitables). Bien entendu la machine en question devra être connectée de manière permanente à Internet.

    Je discuterai également des langages de programmation conseillés pour ce genre de serveur (en gros, potassez votre Perl.)

    Un exemple sera créé et on l'hébergera chez Ludimail pour que vous puissiez le tester.

    Et c'est là qu'on s'aperçoit que sans l'hébergement requis ni les compétences techniques ce n'est pas évident à réaliser...

    Pour finir

    Ceci n'est qu'un exemple de ce qui pourrait être développé pour d'autres jeux. Le serveur de mail en question est fortement dimensionné pour des parties de Nébula. Par exemple il fonctionne par parties et ne supporte pas plus de 35 joueurs pour chacune d'entre elles. Le fonctionnement par parties n’est pas vraiment un problème mais la limitation à 35 joueurs probablement.

    Si jamais un maître de jeu avait des besoins relativement simple, on peut toujours en discuter, l'association Ludimail est là pour ça (même si les moyens humains ne sont jamais évidents à trouver).

    Et n'hésitez pas à soutenir Ludimail. Le serveur dédié que nous louons grâce aux cotisations nous permet d'être ambitieux dans les automatismes que nous essayons de mettre en place.

    A noter que le serveur de mail et le serveur dédié ont permis une variante de Nébula automatisée à 100%. Le jeu n'est encore qu'en bêta test mais Nébula-défi permet de jouer dans des parties en un contre un sans la moindre intervention humaine. Et ce, par mail. Pour y jeter un coup d'oeil : http://nebdefi.ludimail.net/

    Annexe 1 : résumé des fonctionnalités

    Un serveur de mail apporte donc plusieurs avantages, aussi bien en simplicité pour le maître de jeu, qu’en sécurité pour le jeu, ou en fonctionnalité pour les joueurs !

  • L'arbitre sait en un coup d'oeil quels sont les joueurs qui ont rendu leurs ordres.
  • L'arbitre peut facilement envoyer une relance par mail aux joueurs qui n’ont pas encore rendus leurs ordres.
  • La gestion des ordres pour l’arbitre est simplifiée, il récupère l'ensemble des ordres en un seul mail par une simple commande.
  • L’envoi des CR aussi est simplifié, une commande pour envoyer un mail unique au serveur de mail. Le serveur archive, sécurise et renvoi les CR aux joueurs.
  • A chaque envoi d’ordres, le joueur reçoit un accusé de réception lui permettant d'être assuré que ses ordres sont bien arrivés.
  • Chaque joueur peut redemander à tout moment et de manière sécurisée son CR sans passer par l’arbitre. Il peut aussi demander la dernière version des ordres stockées.
  • Les joueurs ne connaissent donc pas l'adresse Email des autres joueurs (ainsi que leur identité). C’est à eux de changer leur adresse sur le SM le cas échéant.
  • Le SM permet d‘envoyer à plusieurs personnes simultanément, il précise alors si la réponse à ce message ira à tous les destinataires initiaux ou bien uniquement à l'expéditeur.
  • Il est possible d'envoyer ce qu'on appelle une rumeur c'est-à-dire un message avec le pseudo masqué. Cette rumeur peut être envoyée à un seul ou à tous les joueurs.
  • Enfin il est possible d’avoir rapidement des statistiques diverses.

    Annexe 2 : exemples d’utilisation

    Si vous voulez tester le serveur de mail de manière très simple :
    envoyez un mail à nebmail@ludimail.net, avec comme sujet : HELP
    essayez d'en envoyer un autre avec autre chose ("toto" par exemple), vous verrez que vous ne recevrez pas la même réponse dans les deux cas.

    Exemple d’un envoi de message : message du joueur 4 aux joueurs 2 et 3.

    Subject : Message KARNAJ 4 toto M <2,3>

    DEBUT
    On va gagner !
    FIN

    Exemple d’envoi d’ordres :

    Subject : ORDRESTOUR KARNAJ 4 toto 5

    DEBUT
    ###############################################
    # Ordres du joueur "Lucifer":4 pour le tour 5 #
    # Ordres saisis avec Nebutil version 3.03 #
    ###############################################

    J : 3 ; surprise !!!
    F 5 * M
    FIN

    Vous pourrez trouver d’autres exemples sur le site du serveur de mail.

    A suivre la 2ème partie, très technique, expliquant en détail comment installer un tel outil. 

    Copyright TourDeJeu, portail des jeux en ligne alternatifs, site indépendant