Jean-Pierre Deschamps Qui suis-je ?

Projet Personnel – Caldeira / Astemul

Entête du projet Caldeira

Introduction

Caldeira est un projet de serveur pour le jeu de rôle en ligne La Quatrième Prophétie (souvent abrégé par le sigle T4C). Suite à la fermeture du serveur rôliste nommé Aegir, un petit groupe de gens s'est formé pour créer ce qui devait être à l'origine Aegir V3. Le projet a cependant changé radicalement d'idée pour devenir quelque chose de nouveau : Caldeira ! C'est donc un Nouveau Monde, une nouvelle histoire, une nouvelle (et unique) île, un nouvel équilibre de jeu et surtout un nouveau logiciel baptisé Astemul. C'est dans cette dernière partie que j'entre en jeu.

Pour résumé rapidement, le projet fut lancé en septembre 2010 par un groupe de l'ancienne communauté du serveur Aegir. Parmi eux, un ami à moi du nom de Quentin m'approche en décembre 2010 pour me demander si je suis intéressé au projet. À ce moment je terminais ma première session universitaire et en transition vers mon premier lieu de stage : Bell Helicopter. J'ai donc été recruté comme technicien pour le projet sous le pseudonyme Jolinar.

Le projet

Astemul est un projet d'émulateur écrit "from scratch" écrit en Java pour remplacer entièrement les logiciels serveur piratés étant à la base de pratiquement tous les serveurs T4C non liés à Dialsoft, l'éditeur actuel du jeu. Suite au changement de direction du projet Caldeira, l'opérateur système connu virtuellement sous le pseudonyme Gustaf reprend un ancien projet d'émulateur T4C. C'est ainsi que Astemul est né.

Aujourd'hui, le projet est à l'arrêt depuis août 2013 et j'étais Opérateur Système (Chef de projet) au sein de l'équipe. Je participais activement au développement du projet en assurant le suivi avec tous les techniciens et la gestion de leurs tâches. J'écrivais encore tout récemment intensivement du code pour l'émulateur. Voici différentes réalisations au sein du projet qui sont aussi décrites dans la section de mes projets personnels.

  • Langage de script baptisé : NPCScript
  • Logiciel de simulation des NPCScripts : Caldeira NPCSimulator
  • Logiciel d'édition des ressources graphiques du jeu : Caldeira DDA Editor
  • Logiciel d'édition des fichiers de configurations de l'émulateur : Caldeira XML Editor
  • Analyseurs syntaxique et lexical mathématiques basiques : StringFormula
  • Proxy d'intégration IRC-T4C : Projet I

Progression

Couche réseau

100 %

La couche réseau est le moteur réseau utilisé par Astemul. Il gère tout le protocole réseau et s’occupe d’établir une connexion logique entre le client Caldeira et Astemul. Cette couche contient aussi toute la définition des messages échangés entre le client Caldeira et le Astemul ainsi que des différents niveaux de cryptage et de sécurité utilisés par le client 1.6.

Gestion du protocole Réseau

50 %

Le protocole réseau se résume à la définition de tous les messages échangés entre le client Caldeira et Astemul. Le protocole reposé sur un modèle dit « Demande/Réponse ». Il existe 3 familles de messages dans le protocole du jeu. La première est les demandes faites par le client provoquant une réponse du serveur : se déplacer à droite, lancer un sort, parler sur un channel, etc. La seconde est les demandes faites par Astemul provoquant une réponse du client : gérer le signal d’activité, apprendre des sortilèges, Vérification de la version du jeu. Finalement, il existe aussi des messages envoyés au client ne provoquant aucune réponse : recevoir un Whisp, voir un mob se déplacer. La gestion de ce protocole repose sur la façon de répondre/émettre correctement tous ces messages.

Base de données

65 %

La base de données est la mémoire d’Astemul. Elle enregistre toutes les informations volatiles sur les personnages à tout moment afin de pouvoir le restituer à tout moment. Ces informations sont par exemple la position, le nombre de points d’expérience, les quêtes accomplies, l’inventaire du joueur, le contenu du livre de sort, etc.

Script PNJs

95 %

Les PNJs en jeu ont la possibilité de discuter avec les joueurs. Ces dialogues sont scriptes à l’aide d’un langage de script fait maison ciblant des mots-clefs dans une phrase qui provoquent une série de fonctions. Ces fonctions sont aussi simples que d’afficher une phrase au-dessus de la tête du PNJ, afficher une liste d’objet à vendre ou attaquer le joueur. Il existe aussi plusieurs fonctions plus complexes servant à créer des quêtes en jeu et stocker de petites informations sur les joueurs et sur le PNJ lui-même.

IA Monstre

40 %

L’intelligence artificielle des monstres est un point important pour Astemul. Elle constitue l’ensemble de l’interaction possible avec les créatures de Caldeira. Au contraire des autres serveurs, nos créatures seront dotées d’un comportement de réflexion qui leur permettra de prendre des décisions comme de contourner un obstacle, attaquer en groupe une cible ou au contraire fuir une cible. Il existe aussi plusieurs façons pour un monstre de se déplacer. Il peut rester sur place, errer sans but précis, patrouiller une zone en plusieurs points ou même fuir un point précis.

Logging

20 %

Plusieurs actions en jeu doivent être enregistrées pour des fins de suivis et de gestions des litiges afin d’aussi détecter les éventuels tricheurs. La destruction d’objet, les transferts depuis et vers les coffres, le « leveling », l’utilisation des compétences, les messages sur les canaux globaux ainsi que d’autres actions seront donc mémorisés pour une certaine période de temps.

Format des données de jeu

50 %

Contrairement à la base de données qui est utilisée pour les informations devant changer fréquemment au gré des actions des joueurs, les éléments plus statiques du jeu sont stockés dans des fichiers. Parmi ces éléments l’ont retrouvé les définitions de sortilèges, de monstres, d’objets, de compétences et de monstres. Il s’agit de définir tous les attributs ainsi que leur façon de s’écrire dans un fichier afin de les charger dans Astemul.

Commandes GM

15 %

Les commandes GM sont les différentes commandes textuelles utilisées majoritairement par les administrateurs pour réaliser certaines actions. Parmi celles-ci nous retrouvons l’invocation d’objets et de monstres, la téléportation, le redémarrage du serveur, le bannissement de joueurs, etc.

Gestion du gameplay

20 %

La gestion du gameplay est la mécanique de jeu utilisé par les joueurs. Il ne s’agit pas du gameplay en lui-même, mais la programmation de ses différents aspects. Par exemple : la mise à jour des points de vies ou du mana en fonction du temps (régénération naturelle), les effets de sortilèges ou de compétences (augmenter les PV, malus sur une caractéristique), la gestion des « exhausts » (empêcher un joueur d’effectuer une quelconque action dans un délai de temps), la gestion des points d’expériences et des levels, le combat contre les monstres et entre eux, etc.

Vidéos de l'état du projet



(PS : Le mot de passe visible n'est plus utilisé, pas la peine d'essayer !)