{"id":2910,"date":"2021-05-18T17:18:22","date_gmt":"2021-05-18T15:18:22","guid":{"rendered":"http:\/\/myrdil.com\/?p=2910"},"modified":"2021-05-18T17:21:36","modified_gmt":"2021-05-18T15:21:36","slug":"replication-des-effets-visuels","status":"publish","type":"post","link":"https:\/\/myrdil.com\/?p=2910","title":{"rendered":"R\u00e9plication des effets visuels"},"content":{"rendered":"<p>Tout se met en place, j&#8217;ai l&#8217;impression que beaucoup se compliquent la vie pour rien, ou juste pour se faire mousser, non mais, <a href=\"https:\/\/cedric-neukirchen.net\/Downloads\/Compendium\/UE4_Network_Compendium_by_Cedric_eXi_Neukirchen.pdf\">111 pages pour expliquer la r\u00e9plication<\/a>, vraiment\u00a0?<\/p>\n<p><!--more--><\/p>\n<p>Je viens de terminer la r\u00e9plication des sorts \u00e0 effet de zone et si je devais r\u00e9sumer tout ce que j&#8217;ai appris jusqu&#8217;ici, \u00e7a donnerait \u00e0 peu pr\u00e8s \u00e7a :<\/p>\n<ol>\n<li>Tout blueprint qui souhaite que le r\u00e9sultat de son code soit visible de tous doit appeler un custom event RPC (<em>Replicated Procedure Call<\/em>) ex\u00e9cut\u00e9 par le serveur et cr\u00e9\u00e9 sur le blueprint du personnage, le seul dont j&#8217;ai la certitude qu&#8217;il appartient au client, le reste n&#8217;appartenant g\u00e9n\u00e9ralement \u00e0 rien ni personne.<\/li>\n<li>Le RPC appelle une MC (Multicast) o\u00f9 est cod\u00e9 tout ce qui doit \u00eatre r\u00e9pliqu\u00e9.<\/li>\n<li>En fin de MC, on rend la main si n\u00e9cessaire au blueprint appelant, au besoin par un <em>event dispatcher<\/em> cr\u00e9\u00e9 sur le perso en <em>call<\/em> et \u00e9cout\u00e9 par l&#8217;appelant en <em>bind<\/em>.<\/li>\n<li>Si on veut que des clients \u00e9loign\u00e9s de la zone o\u00f9 se produit l&#8217;\u00e9v\u00e9nement soient inform\u00e9s de la r\u00e9plication, il faut cr\u00e9er une variable <em>repnotify<\/em> dans le RPC, o\u00f9 sera \u00e9crit le code, ex\u00e9cut\u00e9 automatiquement quand un client rentre dans la zone de pertinence de l&#8217;\u00e9v\u00e9nement.<\/li>\n<li>Il convient de marquer r\u00e9pliqu\u00e9es les variables que l&#8217;on souhaite soustraire \u00e0 la manipulation frauduleuse &#8211; oui, cheats &#8211; pour qu&#8217;elles n&#8217;appartiennent qu&#8217;au serveur.<\/li>\n<\/ol>\n<p>Bon, \u00e7a va, on ne va pas en faire un fromage. 111 pages, des kilom\u00e8tres de vid\u00e9o, non mais les gars, pourquoi pas une \u00e9quipe de trois mille gus pour faire gagner une F1 ? Ah, on me dit en r\u00e9gie que c&#8217;est ce que Mercedes fait, autant pour moi.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tout se met en place, j&#8217;ai l&#8217;impression que beaucoup se compliquent la vie pour rien, ou juste pour se faire mousser, non mais, 111 pages pour expliquer la r\u00e9plication, vraiment\u00a0?<\/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-2910","post","type-post","status-publish","format-standard","hentry","category-news"],"_links":{"self":[{"href":"https:\/\/myrdil.com\/index.php?rest_route=\/wp\/v2\/posts\/2910","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=2910"}],"version-history":[{"count":0,"href":"https:\/\/myrdil.com\/index.php?rest_route=\/wp\/v2\/posts\/2910\/revisions"}],"wp:attachment":[{"href":"https:\/\/myrdil.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2910"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/myrdil.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2910"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/myrdil.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2910"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}