Après bien des atermoiements, j’ai finalement opté pour la solution la plus difficile mais aussi la plus prometteuse : Althea sera multi-joueurs avec base de données décentralisée au travers d’une API Node.js
Ce serait plus simple d’écrire tout le jeu en solo avec des Savegame mais je préfère me réserver les possibilités d’évolution vers le multi. Un peu la peur au ventre, mais alea jacta est.
J’ai opté pour une base de données SQL, puisque j’ai déjà WordPress qui tourne sur MariaDB sur le NAS Synology DS423, plus puissant que nécessaire, par l’intermédiaire d’une API en Node.js. Pourquoi une API et pas une connexion directe par ODBC entre le serveur et la DB ? Simplement parce que je n’ai pas envie de dépendre d’un plugin ODBC. Pourquoi ne pas utiliser la solution Microsoft Azure PlayFab ? La réponse est dans la question, c’est Microsoft, soit un produit fait par des gens qui n’ont pas vu un client de leur vie. En utilisant le plugin Va Rest, j’ai la garantie qu’il sera toujours à jour sous l’autorité d’Epic. Je préférais une connexion directe par ODBC, que j’avais d’ailleurs commencé à mettre en place avec succès, mais il m’aurait fallu à terme écrire mon propre plugin et j’ai autre chose à faire. En plus, l’API offre d’autres avantages, trop technique, je passe.
L’orientation multi me force aussi à implémenter la réplication partout dans le jeu ; le simple fait d’ouvrir un coffre impose de répliquer l’ouverture à tous les joueurs avoisinants, sinon ils le verront toujours fermé, mais bon, c’est plus de travail mais ce n’est pas la mer à boire, je suppose qu’une fois mes fonctions de réplication encapsulées dans un component maison je n’y penserai même plus.
J’ai quand même passé quelques journées un peu pénibles, j’ai essayé Perforce P4D comme logiciel de versioning et n’ai rencontré que des ennuis, donc retour au bon vieux Synology Drive, trop de temps perdu avec ça déjà. Gemini m’avait lancé sur une option Docker pour installer MariaDB et je ne sais plus quel autre soft, j’ai tout mis à la poubelle, complications inutiles.
Reste à terminer la gestion d’inventaires et puis je passerai peut-être à l’IA des monstres. Tant de chantiers à entreprendre !