Aller au contenu principal

Communication web - Introduction

Introduction

Après la création de premier prototypes fonctionnant uniquement avec Unreal, nous avons cherché à connecter le serveur de jeu à d'autres services. C'est un point important, dont les limites conditionnent l'architecture des solutions qui incluent un serveur Unreal. On souhaite notamment découvrir s'il est possible, et comment, de :

  • Récupérer des informations de l'environnement virtuel
  • Envoyer des données ou des commandes depuis un autre service

Choix des technologies

Unreal Engine est basé sur le langage C++ et il est possible de lui intégrer des bibliotèques tierces (64bit). Nous pourrions intégrer une bibliothèque C++ proposant un protocole de communication. Mais il existe aussi des modules officiels fournit avec le moteur de jeu. Dans un soucis de simplicité de mise en place et de limitation des dépendances externes, nous nous penchons sur ces derniers.

Nous travaillons avec Unreal HTTP et Unreal Websockets, deux modules officiels. Vous en trouverez un rapide guide d'utilisation dans les pages suivantes, ainsi que leurs limites.

Réalisation

Ces modules nous permettent de communiquer avec d'autres services depuis le serveur Unreal. Avec Unreal Websocket, on établit une communication bi-directionnelle entre serveur Unreal et api web, nous permettant de synchroniser des données entre clients Unreal et clients Web. Unreal HTTP nous est utile pour contacter un service extérieur depuis un client Unreal.

Ces modules sont efficaces, nous souhaitions d'abord réaliser un plugin pour simplifier leur utilisation, mais toute "simplification" est dépendante de la solution qu'on souhaite réaliser. L'utilisation d'un plugin pourrait être intéressante si celui-ci exposait les différentes fonctions aux Blueprint.

Documentation technique