{"id":4351,"date":"2026-04-24T21:15:59","date_gmt":"2026-04-24T19:15:59","guid":{"rendered":"https:\/\/myrdil.com\/?p=4351"},"modified":"2026-04-24T21:15:59","modified_gmt":"2026-04-24T19:15:59","slug":"les-emmerdes-volent-en-escadrille","status":"publish","type":"post","link":"https:\/\/myrdil.com\/?p=4351","title":{"rendered":"Les emmerdes volent en escadrille"},"content":{"rendered":"<p>Je ne suis pas pass\u00e9 loin de la catastrophe, en travaillant sur la sauvegarde des inventaires qui pr\u00e9sentait un comportement suspect, je me suis rendu compte qu&#8217;il \u00e9tait impossible de lancer le jeu en multi-joueurs : le serveur happait les joueurs en boucle sur l&#8217;\u00e9cran de login.<\/p>\n<p>Je suis rest\u00e9 bloqu\u00e9 l\u00e0-dessus tr\u00e8s longtemps, trop longtemps, \u00e7a m&#8217;a fortement us\u00e9. Il s&#8217;av\u00e8re que le serveur ne peut faire tourner qu&#8217;une seule map &#8211; ce dont je n&#8217;\u00e9tais pas averti &#8211; et que l&#8217;IA m&#8217;a fait cr\u00e9er mes \u00e9crans de login sur une map, avec game mode et controller sp\u00e9cifiques avant de me transf\u00e9rer sur une deuxi\u00e8me map une fois la s\u00e9lection du perso achev\u00e9e.<br \/>\nOr, \u00e7a ne marche pas. J&#8217;ai tout test\u00e9 dans tous les sens, deux jours je crois que je suis rest\u00e9 coinc\u00e9 l\u00e0-dessus, rien ne marchait et l&#8217;IA, comme toujours quand elle patauge, me conseillait n&#8217;importe quoi. Et je n&#8217;avais pas d&#8217;autre choix que de suivre, puisque j&#8217;\u00e9tais bloqu\u00e9 !<\/p>\n<p>J&#8217;en ai eu assez et j&#8217;\u00e9tais sur le point de me r\u00e9soudre \u00e0 transformer le jeu en mono-joueur, ce qui m&#8217;\u00e9viterait bien des migraines mais me contrarierait quand m\u00eame fortement, quand j&#8217;ai, \u00e0 force de poser des questions \u00e0 l&#8217;IA, d\u00e9couvert que dans aucun cas de figure le serveur ne pourrait g\u00e9rer plus qu&#8217;une map ! J&#8217;ai donc entrepris de transf\u00e9rer tout le jeu sur une seule map avec les \u00e9crans de connexion assez grands pour masquer l&#8217;arri\u00e8re-plan.<\/p>\n<p>C&#8217;est apr\u00e8s avoir remport\u00e9 cette victoire que je me suis replong\u00e9 dans le probl\u00e8me insoluble de la fermeture inopin\u00e9e du client ou du serveur : impossible de provoquer une sauvegarde d&#8217;urgence de l&#8217;inventaire. Les bugs adorant danser en rond en se donnant la main, chaque fois que je pensais trouver une solution, un autre bug compromettait le projet. Ca aussi, \u00e7a a dur\u00e9 des jours et \u00e7a aussi aurait pu sonner le glas du projet si, par le plus grand des hasards car je l&#8217;ignorais, je n&#8217;avais appris que dans Unreal tout existe <strong>en double<\/strong> !<br \/>\nLe character local n&#8217;est en fait qu&#8217;une copie du character du serveur ! Au lieu d&#8217;initialiser la variable cruciale qui persistait \u00e0 m&#8217;\u00e9chapper, je l&#8217;ai donc cr\u00e9\u00e9e par un appel au serveur et r\u00e9pliqu\u00e9e ; maintenant, c&#8217;est le serveur qui l&#8217;initialise et j&#8217;ai les deux m\u00eames valeurs de cette variable sur le serveur et les clients.<\/p>\n<p>Tout cela \u00e9tait tellement p\u00e9nible que je n&#8217;en ai \u00e9prouv\u00e9 nulle joie quand j&#8217;ai obtenu un projet parfaitement fonctionnel. Mais, para\u00eet-il, c&#8217;est l\u00e0 que s&#8217;arr\u00eatent 90% des projets multijoueurs tellement c&#8217;est une prise de t\u00eate.<\/p>\n<p>Je vais encore travailler un peu sur les inventaires, notamment en cr\u00e9ant les marchands et peut-\u00eatre soit une banque soit des coffres de maison. C&#8217;\u00e9tait une haie particuli\u00e8rement haute \u00e0 sauter, mais c&#8217;est fait et \u00e0 mon enti\u00e8re satisfaction : le code est stable.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Je ne suis pas pass\u00e9 loin de la catastrophe, en travaillant sur la sauvegarde des inventaires qui pr\u00e9sentait un comportement suspect, je me suis rendu compte qu&#8217;il \u00e9tait impossible de lancer le jeu en multi-joueurs : le serveur happait les &hellip; <a href=\"https:\/\/myrdil.com\/?p=4351\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/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-4351","post","type-post","status-publish","format-standard","hentry","category-news"],"_links":{"self":[{"href":"https:\/\/myrdil.com\/index.php?rest_route=\/wp\/v2\/posts\/4351","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=4351"}],"version-history":[{"count":1,"href":"https:\/\/myrdil.com\/index.php?rest_route=\/wp\/v2\/posts\/4351\/revisions"}],"predecessor-version":[{"id":4352,"href":"https:\/\/myrdil.com\/index.php?rest_route=\/wp\/v2\/posts\/4351\/revisions\/4352"}],"wp:attachment":[{"href":"https:\/\/myrdil.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4351"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/myrdil.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4351"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/myrdil.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}