Moi qui croyais en finir rapidement…

J’espérais boucler les skills assez vite, toute l’interface était terminée, la base de données, le node.js, l’API, l’UI : tout !

Oui, mais voilà, je manquais de précision dans la répartition des tâches entre le character, le player controller, le game instance et le player state. J’avais placé les données du personnage sur le game instance, ce qui m’avait été présenté comme le bon endroit car insensible à la mort du perso et aux changements de carte. Ce qui ne m’avait pas été précisé, c’est que le game instance, par je ne sais quels détours, n’existe qu’en un seul exemplaire sur le serveur et qu’un nouveau joueur qui se connecte écrase forcément les données du précédent. J’ai donc dû transférer les données joueur sur le controller, non sans avoir passé une journée à cuisiner l’IA pour être certain que je faisais le bon choix, avoir dû lire ses contradictions, les lui opposer, recevoir de nouvelles informations, contredites par d’autres sources et après de nombreuses heures épuisantes finalement prendre la décision de rapatrier les données sur le player controller. Un inconvénient : le controller aussi est détruit au changement de map et contrairement au player state ne peut pas être copié avant sa destruction, je suis donc contraint de refaire dans un avenir proche un beginPlay propre pour rechercher les données de la database. Un avantage : le player state ne peut pas faire exécuter du code par le serveur, le controller le peut, donc je gagne des détours.
Tant que j’y étais, j’ai transféré du game instance vers le player controller tout ce qu’il fallait, ça c’est terminé.

J’aurais peut-être pu finir aujourd’hui mais je suis allé de bug en bug pour finalement comprendre (cela a pris 4 minutes 30 à ai.studio pour le déterminer, mais il y est parvenu), que la lecture des infos joueurs se faisaient en local et non par une procédure serveur, ce qui provoquait systématiquement des tables de skills vides car jamais initialisées sur le serveur.

Cela ajouté à des bêtises comme des erreurs d’encodage à la table des skills et j’aurai passé une semaine là-dessus, si seulement j’arrive à terminer demain !

Quand ce sera fini, je ne sais pas trop bien ce que je vais attaquer, d’ailleurs.