Sortie du tome 5 des cahiers d’Unreal Engine

Hé bien, cela aura pris le temps, mais voilà, c’est disponible à la vente. Bon, j’en ai vrai­ment bavé sur ce tome… mais tous les objec­tifs que je m’é­tais fixés sont atteints. Y‑a tout ce que je voulais y met­tre !
En pré­com­mande: http://bit.ly/2nQOmeK (Livrai­son début Avril 2017).

Dans ce 5ième tome, nous allons étudi­er tout ce qu’il est néces­saire de con­naître pour créer un jeu mul­ti­joueurs en ligne ou une appli­ca­tion de tra­vail col­lab­o­ratif en réal­ité virtuelle. La mécanique reste stricte­ment la même, quelque soit la plate-forme cible. En même temps, nous met­trons en place des out­ils réu­til­is­ables pour vos pro­jets, exclu­sive­ment en util­isant les Blue­prints et en s’ap­puyant quelques plu­g­ins pour combler les fonc­tion­nal­ités man­quantes.

Au Som­maire: un pro­jet mul­ti-postes en 5 min­utes, un tour d’hori­zon com­plet des mécan­ismes de répli­ca­tion (RPC, Reli­a­bil­i­ty, Rel­e­van­cy et Per­sis­tance, Rep Noti­fy, etc.), décou­verte de l’Online Sub­sys­tem, mise en place d’un Frame­work Mul­ti­joueurs avec Lob­by, déploiement d’un serveur dédié (Win­dows, Mac, Lin­ux), créa­tion d’un chat textuel et vocal, enreg­istrement de ciné­ma­tiques avec l’Instant Replay, out­ils de Pro­fil­ing Réseau, serveur web sur mesure (PHP/JSON), serveur Steam et autres plates-formes (Pho­ton Engine, XtraL­ife BaaS, Android, iOS, Ama­zon EC2, GameLift, Game­Cir­cle, Face­book, Ocu­lus, PS4, Xbox One et Switch), ain­si que le déploiement d’un client HTML5/WebSockets.

Petit extrait de l’in­tro­duc­tion qui explique le con­tenu:

Tout d’abord, nous allons com­mencer par un exem­ple très sim­ple qui vous mon­tre qu’en 5 min­utes, vous pou­vez créer un jeu et y con­necter plusieurs joueurs via d’autres postes. C’est un exem­ple trompeur car tout sem­ble très sim­ple, mais c’est aus­si que le tra­vail est vrai­ment mâché. Cela a au moins le mérite de vous met­tre directe­ment dans le bain, d’épuiser une par­tie de votre curiosité afin que vous puissiez focalis­er votre atten­tion sur la suite. Car il y a beau­coup de con­cepts à com­pren­dre et un peu de savoirs-faire à accu­muler avant de se lancer dans un pro­jet de créa­tion d’un jeu ou d’une appli­ca­tion «en ligne». C’est donc ce que nous allons étudi­er dans un sec­ond temps.

Ensuite, nous met­trons en place les bases d’un frame­work mul­ti­joueurs en ligne, avec la créa­tion d’un lob­by, c’est à dire d’un hall per­me­t­tant de créer une ses­sion serveur, de rechercher des par­ties et de join­dre l’une d’elle en tant que client. Nous allons sou­vent utilis­er les mots de jeu en ligne, de joueurs… mais au final, lorsqu’on crée une appli­ca­tion, on par­le d’utilisateur et de clients, cela revient exacte­ment au même. Nous ver­rons que nous allons vite attein­dre cer­taines lim­i­ta­tions et nous met­trons en place un cer­tain nom­bre d’éléments pour s’affranchir des lim­i­ta­tions des Blue­prints et créer un frame­work avancé, avec une meilleure ges­tion des joueurs.

Nous ver­rons égale­ment com­ment dévelop­per un sys­tème de chat textuel et vocal, com­ment utilis­er l’«instant replay» qui per­met de filmer des par­ties réseau et de rejouer l’intégralité ou une séquence en par­ti­c­uli­er de la par­tie. Nous appren­drons à utilis­er les out­ils de débo­gage et de mesure de per­for­mance du jeu sur le réseau.

Puis, nous ver­rons com­ment con­fig­ur­er un serveur dédié sous Win­dows, OSX et Lin­ux. La mise en place d’un tel serveur n’est pas aus­si sim­ple qu’on pour­rait le penser au préal­able. Cela néces­site, par exem­ple, une re-com­pi­la­tion com­plète de l’éditeur mais égale­ment, une con­fig­u­ra­tion plus avancée de votre pro­jet.

Join­dre une par­tie néces­site de con­naître l’adresse du serveur qui héberge la par­tie. Mais quand vous créez un jeu et que vous souhaitez lis­ter l’ensemble des serveurs disponibles dans le monde entier ou par pays, com­ment procéder ? Vous pou­vez pass­er par des plates-formes tierces comme Steam. Nous ver­rons d’ailleurs com­ment utilis­er Steam et con­fig­ur­er notre pro­jet pour pren­dre en charge cette plate-forme. Mais si vous voulez vous affranchir de cela, nous avons égale­ment dévelop­pé un serveur sur mesure en PHP/JSON, hébergé chez vous ou avec votre site web, que vous pour­rez réu­tilis­er et amélior­er pour vos pro­jets. Nous allons d’ailleurs le dévelop­per ensem­ble !

Enfin, si vous souhaitez dévelop­per un MMO ou avoir des ser­vices sup­plé­men­taires, vous pou­vez pass­er par des plates-formes tierces, autres que Steam, comme Pho­ton Engine pour le temps-réel ou XtraL­ife BaaS pour le tour par tour. Nous par­lerons égale­ment du mul­ti­joueurs sur Android, iOS, Ama­zon, Face­book, PS4,Xbox One, Nin­ten­do Switch etc. qui utilisent les mêmes fonc­tions que celles étudiées dans ce tome. Quand on dit qu’Unreal Engine est «cross-plat­form», cela n’est pas un vain mot : vous pou­vez met­tre en place un serveur Lin­ux hébergé sur le cloud d’Amazon EC2 et con­necter des joueurs qui provi­en­nent de clients divers comme Win­dows, iOS ou Android et ce, au sein d’une même par­tie ! D’ailleurs nous fer­ons le test avec un serveur et un client Win64 et un autre client HTML5 car il faut paramétr­er le pro­jet pour utilis­er des Web­Sock­ets.

Et tous les pro­jets et les sources en télécharge­ment, avec des ver­sions com­pilées pour serveurs dédiés, etc.

Bon, j’e­spère qu’il vous plaira. Il est plus gros que les autres, prob­a­ble­ment plus dif­fi­cile car le sujet est assez com­plexe. Lorsque j’ai com­mencé à rédi­ger ce tome, je con­nais­sais l’attente de cer­tains : dis­pos­er d’un frame­work «clé en main», sim­ple à maîtris­er et à faire évoluer. C’est donc en par­tie l’objet de ce livre. Mais au-delà de cela, je voulais égale­ment que vous com­pre­niez toutes les sub­til­ités du développe­ment réseau. C’est prob­a­ble­ment un vœu pieux mais j’espère au moins pou­voir vous fournir toutes les bases néces­saires pour que vous emprun­tiez par vous-même le chemin du mul­ti­joueurs ou de l’application réseau. Car si cela est vrai dans de nom­breux domaines, c’est encore plus vrai dans notre cas : c’est en forgeant qu’on devient forg­eron ! Comme je souhaite vous éviter ces longs écueils, je vais pass­er par une approche somme toute per­son­nelle, qui con­siste à ne pas à définir les grandes notions de la répli­ca­tion sous UE4, mais à vous les ren­dre tan­gi­bles au tra­vers d’ex­em­ples sim­ples et pro­gres­sifs.

J’aurais atteint tous les objec­tifs que je m’étais fixés en démar­rant ce pro­jet de livre et il a été cer­taine­ment le plus dif­fi­cile à rédi­ger de toute la série. En fait, il est très dif­fi­cile de trou­ver de la doc­u­men­ta­tion sur le sujet et c’est surtout par l’ex­péri­ence qu’on acquiert les con­nais­sances néces­saires à la créa­tion d’un jeu ou d’une appli­ca­tion mul­ti­joueur. Quand j’ai com­mencé à défrich­er le ter­rain, je pen­sais avoir tout com­pris en étu­di­ant la doc­u­men­ta­tion tech­nique: j’é­tais très loin du compte. En fin de compte, la doc­u­men­ta­tion et les quelques vidéos que l’on trou­ve sur le sujet ne sont utiles, para­doxale­ment, que lorsqu’on maîtrise l’ensem­ble du sys­tème !

 

7 réflexions sur « Sortie du tome 5 des cahiers d’Unreal Engine »

  1. En fait, je retarde un peu le livre sur la VR car je n’ai pas assez de con­tenu à y met­tre. J’ai bossé sur un jeu VR dernière­ment, mais il n’y a pas tant de spé­ci­ficités que ça. Je crois qu’il fau­dra plus dévelop­per le coté Game­play, Lev­el Design, ges­tion des sons, périphériques et dif­férentes plate­formes, voir le mul­ti­joueurs aus­si… car au-delà de ça, la tech­nique reste assez basique au final.

  2. Je vais déjà digér­er les deux pre­miers tomes avant de me lancer dans la pro­gram­ma­tion d’un univers virtuel en réseau.
    Et vive­ment le 7, que l’on puisse maîtris­er la VR

  3. Ahh­hh enfin ! C’est sûr que t’en as bavé sur celui là. Au fait, tu as util­isé le blue­print depuis le début du cours (T1)
    Pourquoi ne pas faire un HS pour le C++ ? Et si non, quelle con­trainte t’y empêche ?
    En tout cas, bra­vo.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.