Sortie du tome 5 des cahiers d'Unreal Engine

par | 25 Mar 2017

Hé bien, cela aura pris le temps, mais voilà, c’est disponible à la vente. Bon, j’en ai vraiment bavé sur ce tome… mais tous les objectifs que je m’étais fixés sont atteints. Y-a tout ce que je voulais y mettre !
En précommande: http://bit.ly/2nQOmeK (Livraison début Avril 2017).

Dans ce 5ième tome, nous allons étudier tout ce qu’il est nécessaire de connaître pour créer un jeu multijoueurs en ligne ou une application de travail collaboratif en réalité virtuelle. La mécanique reste strictement la même, quelque soit la plate-forme cible. En même temps, nous mettrons en place des outils réutilisables pour vos projets, exclusivement en utilisant les Blueprints et en s’appuyant quelques plugins pour combler les fonctionnalités manquantes.

Au Sommaire: un projet multi-postes en 5 minutes, un tour d’horizon complet des mécanismes de réplication (RPC, Reliability, Relevancy et Persistance, Rep Notify, etc.), découverte de l’Online Subsystem, mise en place d’un Framework Multijoueurs avec Lobby, déploiement d’un serveur dédié (Windows, Mac, Linux), création d’un chat textuel et vocal, enregistrement de cinématiques avec l’Instant Replay, outils de Profiling Réseau, serveur web sur mesure (PHP/JSON), serveur Steam et autres plates-formes (Photon Engine, XtraLife BaaS, Android, iOS, Amazon EC2, GameLift, GameCircle, Facebook, Oculus, PS4, Xbox One et Switch), ainsi que le déploiement d’un client HTML5/WebSockets.



Petit extrait de l’introduction qui explique le contenu:

Tout d’abord, nous allons commencer par un exemple très simple qui vous montre qu’en 5 minutes, vous pouvez créer un jeu et y connecter plusieurs joueurs via d’autres postes. C’est un exemple trompeur car tout semble très simple, mais c’est aussi que le travail est vraiment mâché. Cela a au moins le mérite de vous mettre directement dans le bain, d’épuiser une partie de votre curiosité afin que vous puissiez focaliser votre attention sur la suite. Car il y a beaucoup de concepts à comprendre et un peu de savoirs-faire à accumuler avant de se lancer dans un projet de création d’un jeu ou d’une application «en ligne». C’est donc ce que nous allons étudier dans un second temps.

Ensuite, nous mettrons en place les bases d’un framework multijoueurs en ligne, avec la création d’un lobby, c’est à dire d’un hall permettant de créer une session serveur, de rechercher des parties et de joindre l’une d’elle en tant que client. Nous allons souvent utiliser les mots de jeu en ligne, de joueurs… mais au final, lorsqu’on crée une application, on parle d’utilisateur et de clients, cela revient exactement au même. Nous verrons que nous allons vite atteindre certaines limitations et nous mettrons en place un certain nombre d’éléments pour s’affranchir des limitations des Blueprints et créer un framework avancé, avec une meilleure gestion des joueurs.

Nous verrons également comment développer un système de chat textuel et vocal, comment utiliser l’«instant replay» qui permet de filmer des parties réseau et de rejouer l’intégralité ou une séquence en particulier de la partie. Nous apprendrons à utiliser les outils de débogage et de mesure de performance du jeu sur le réseau.

Puis, nous verrons comment configurer un serveur dédié sous Windows, OSX et Linux. La mise en place d’un tel serveur n’est pas aussi simple qu’on pourrait le penser au préalable. Cela nécessite, par exemple, une re-compilation complète de l’éditeur mais également, une configuration plus avancée de votre projet.

Joindre une partie nécessite de connaître l’adresse du serveur qui héberge la partie. Mais quand vous créez un jeu et que vous souhaitez lister l’ensemble des serveurs disponibles dans le monde entier ou par pays, comment procéder ? Vous pouvez passer par des plates-formes tierces comme Steam. Nous verrons d’ailleurs comment utiliser Steam et configurer notre projet pour prendre en charge cette plate-forme. Mais si vous voulez vous affranchir de cela, nous avons également développé un serveur sur mesure en PHP/JSON, hébergé chez vous ou avec votre site web, que vous pourrez réutiliser et améliorer pour vos projets. Nous allons d’ailleurs le développer ensemble !

Enfin, si vous souhaitez développer un MMO ou avoir des services supplémentaires, vous pouvez passer par des plates-formes tierces, autres que Steam, comme Photon Engine pour le temps-réel ou XtraLife BaaS pour le tour par tour. Nous parlerons également du multijoueurs sur Android, iOS, Amazon, Facebook, PS4,Xbox One, Nintendo Switch etc. qui utilisent les mêmes fonctions que celles étudiées dans ce tome. Quand on dit qu’Unreal Engine est «cross-platform», cela n’est pas un vain mot : vous pouvez mettre en place un serveur Linux hébergé sur le cloud d’Amazon EC2 et connecter des joueurs qui proviennent de clients divers comme Windows, iOS ou Android et ce, au sein d’une même partie ! D’ailleurs nous ferons le test avec un serveur et un client Win64 et un autre client HTML5 car il faut paramétrer le projet pour utiliser des WebSockets.

Et tous les projets et les sources en téléchargement, avec des versions compilées pour serveurs dédiés, etc.

Bon, j’espère qu’il vous plaira. Il est plus gros que les autres, probablement plus difficile car le sujet est assez complexe. Lorsque j’ai commencé à rédiger ce tome, je connaissais l’attente de certains : disposer d’un framework «clé en main», simple à maîtriser et à faire évoluer. C’est donc en partie l’objet de ce livre. Mais au-delà de cela, je voulais également que vous compreniez toutes les subtilités du développement réseau. C’est probablement un vœu pieux mais j’espère au moins pouvoir vous fournir toutes les bases nécessaires pour que vous empruntiez par vous-même le chemin du multijoueurs ou de l’application réseau. Car si cela est vrai dans de nombreux domaines, c’est encore plus vrai dans notre cas : c’est en forgeant qu’on devient forgeron ! Comme je souhaite vous éviter ces longs écueils, je vais passer par une approche somme toute personnelle, qui consiste à ne pas à définir les grandes notions de la réplication sous UE4, mais à vous les rendre tangibles au travers d’exemples simples et progressifs.

J’aurais atteint tous les objectifs que je m’étais fixés en démarrant ce projet de livre et il a été certainement le plus difficile à rédiger de toute la série. En fait, il est très difficile de trouver de la documentation sur le sujet et c’est surtout par l’expérience qu’on acquiert les connaissances nécessaires à la création d’un jeu ou d’une application multijoueur. Quand j’ai commencé à défricher le terrain, je pensais avoir tout compris en étudiant la documentation technique: j’étais très loin du compte. En fin de compte, la documentation et les quelques vidéos que l’on trouve sur le sujet ne sont utiles, paradoxalement, que lorsqu’on maîtrise l’ensemble du système !

 

Découvrez nos derniers numéros !

7 Commentaires

  1. Benj

    Ahhhh enfin ! C’est sûr que t’en as bavé sur celui là. Au fait, tu as utilisé le blueprint depuis le début du cours (T1)
    Pourquoi ne pas faire un HS pour le C++ ? Et si non, quelle contrainte t’y empêche ?
    En tout cas, bravo.

    Réponse
    • greg

      Hehe, c’est justement le sujet du tome 6

      Réponse
      • benj

        nice !

        Réponse
  2. Dipsi0

    attend le tome 7 avec impatience. vive la VR

    Réponse
    • greg

      Hehe, mooosieur est connaisseur !

      Réponse
  3. RvCailloux

    Je vais déjà digérer les deux premiers tomes avant de me lancer dans la programmation d’un univers virtuel en réseau.
    Et vivement le 7, que l’on puisse maîtriser la VR …

    Réponse
    • greg

      En fait, je retarde un peu le livre sur la VR car je n’ai pas assez de contenu à y mettre. J’ai bossé sur un jeu VR dernièrement, mais il n’y a pas tant de spécificités que ça. Je crois qu’il faudra plus développer le coté Gameplay, Level Design, gestion des sons, périphériques et différentes plateformes, voir le multijoueurs aussi… car au-delà de ça, la technique reste assez basique au final.

      Réponse

Laisser un commentaire

Ces articles pourraient aussi vous intéresser …