{"id":3716,"date":"2025-12-22T20:27:56","date_gmt":"2025-12-22T19:27:56","guid":{"rendered":"https:\/\/japu.synology.me\/?p=3716"},"modified":"2025-12-22T20:27:56","modified_gmt":"2025-12-22T19:27:56","slug":"les-des-sont-jetes","status":"publish","type":"post","link":"https:\/\/myrdil.com\/?p=3716","title":{"rendered":"Les d\u00e9s sont jet\u00e9s"},"content":{"rendered":"\n<p>Apr\u00e8s bien des atermoiements, j&#8217;ai finalement opt\u00e9 pour la solution la plus difficile mais aussi la plus prometteuse : Althea sera multi-joueurs avec base de donn\u00e9es d\u00e9centralis\u00e9e au travers d&#8217;une API Node.js<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Ce serait plus simple d&#8217;\u00e9crire tout le jeu en solo avec des Savegame mais je pr\u00e9f\u00e8re me r\u00e9server les possibilit\u00e9s d&#8217;\u00e9volution vers le multi. Un peu la peur au ventre, mais alea jacta est.<\/p>\n\n\n\n<p>J&#8217;ai opt\u00e9 pour une base de donn\u00e9es SQL, puisque j&#8217;ai d\u00e9j\u00e0 WordPress qui tourne sur MariaDB sur le NAS Synology DS423, plus puissant que n\u00e9cessaire, par l&#8217;interm\u00e9diaire d&#8217;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&#8217;ai pas envie de d\u00e9pendre d&#8217;un plugin ODBC. Pourquoi ne pas utiliser la solution Microsoft Azure PlayFab ? La r\u00e9ponse est dans la question, c&#8217;est Microsoft, soit un produit fait par des gens qui n&#8217;ont pas vu un client de leur vie. En utilisant le plugin Va Rest, j&#8217;ai la garantie qu&#8217;il sera toujours \u00e0 jour sous l&#8217;autorit\u00e9 d&#8217;Epic. Je pr\u00e9f\u00e9rais une connexion directe par ODBC, que j&#8217;avais d&#8217;ailleurs commenc\u00e9 \u00e0 mettre en place avec succ\u00e8s, mais il m&#8217;aurait fallu \u00e0 terme \u00e9crire mon propre plugin et j&#8217;ai autre chose \u00e0 faire. En plus, l&#8217;API offre d&#8217;autres avantages, trop technique, je passe.<\/p>\n\n\n\n<p>L&#8217;orientation multi me force aussi \u00e0 impl\u00e9menter la r\u00e9plication partout dans le jeu ; le simple fait d&#8217;ouvrir un coffre impose de r\u00e9pliquer l&#8217;ouverture \u00e0 tous les joueurs avoisinants, sinon ils le verront toujours ferm\u00e9, mais bon, c&#8217;est plus de travail mais ce n&#8217;est pas la mer \u00e0 boire, je suppose qu&#8217;une fois mes fonctions de r\u00e9plication encapsul\u00e9es dans un component maison je n&#8217;y penserai m\u00eame plus.<\/p>\n\n\n\n<p>J&#8217;ai quand m\u00eame pass\u00e9 quelques journ\u00e9es un peu p\u00e9nibles, j&#8217;ai essay\u00e9 Perforce P4D comme logiciel de versioning et n&#8217;ai rencontr\u00e9 que des ennuis, donc retour au bon vieux Synology Drive, trop de temps perdu avec \u00e7a d\u00e9j\u00e0. Gemini m&#8217;avait lanc\u00e9 sur une option Docker pour installer MariaDB et je ne sais plus quel autre soft, j&#8217;ai tout mis \u00e0 la poubelle, complications inutiles.<\/p>\n\n\n\n<p>Reste \u00e0 terminer la gestion d&#8217;inventaires et puis je passerai peut-\u00eatre \u00e0 l&#8217;IA des monstres. Tant de chantiers \u00e0 entreprendre !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Apr\u00e8s bien des atermoiements, j&#8217;ai finalement opt\u00e9 pour la solution la plus difficile mais aussi la plus prometteuse : Althea sera multi-joueurs avec base de donn\u00e9es d\u00e9centralis\u00e9e au travers d&#8217;une API Node.js<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-3716","post","type-post","status-publish","format-standard","hentry","category-news"],"_links":{"self":[{"href":"https:\/\/myrdil.com\/index.php?rest_route=\/wp\/v2\/posts\/3716","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/myrdil.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/myrdil.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/myrdil.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/myrdil.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3716"}],"version-history":[{"count":0,"href":"https:\/\/myrdil.com\/index.php?rest_route=\/wp\/v2\/posts\/3716\/revisions"}],"wp:attachment":[{"href":"https:\/\/myrdil.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3716"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/myrdil.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3716"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/myrdil.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3716"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}