Helium Rain – un projet indépendant UE4/Blender

L’équipe qui avait concocté DeepVoid, nous informe de l’avancée de leurs travaux sur le jeu Helium Rain et nous a donné quelques infos sur les processus de création du jeu. J’ai pu consulter divers documents et m’entretenir avec l’un des fondateurs du projet et Lead Developper.

Présentation

Tout d’abord, je vous propose de découvrir ce jeu qui a été greenlighté récemment sur Steam (janvier 2016):

Helium Rain est un space opéra réaliste. GA: “Le jeu se déroule dans notre univers, en orbite autour d’une étoile proche de notre système solaire. Un vaisseau colonisateur a été envoyé pour explorer la géante gazeuse est en orbite, ainsi que ses lunes, dans l’espoir d’y trouver de la vie. Cet espoir est déçu, et le joueur fait face à un univers coupé du nôtre, dans lequel la lutte pour les ressources est âpre.
Helium Rain est avant tout une simulation économique, avec un modèle économique réaliste basé sur l’offre et la demande, qui simule de la croissance, une population, des ressources primaires, secondaires, tertiaires…

helium rain

La simulation économique est très poussée. Par exemple, les prix des ressources ou produits du jeu dépend de l’économie, de fournisseurs et de la santé de la population.

helium phot2

La simulation des dégâts présente des modèles très élaborés de gestion de la température, de l’énergie des vaisseaux,et des dégâts physiques très complexes.

Le but a été de coller au plus près de la réalité physique, tout en instaurant un gameplay intéressant. Ce que je comprends parfaitement, puisque c’est aussi mon objectif avec mon projet de jeu “Lost Colonies”.

A ma question “pourquoi avoir choisi cet univers, ce thème et ce nom ? un rapport au nucléaire ?” GA nous confie: “Helium Rain est un jeu de science-fiction, c’est un univers qui nous tenait à cœur. On voit très peu de science-fiction axée sur le réalisme, en particulier dans le jeu vidéo. L’exception notable est Kerbal Space Program, un jeu génial qui propose de la construction et de l’exploration au joueur. On voulait réaliser un jeu réaliste basé sur l’économie et le combat, dans la veine des X3 par exemple. Le titre du jeu est basé sur un phénomène physique : au cœur des géantes gazeuses, les conditions sont tellement extrêmes qu’on peut y trouver des pluies de gaz liquides, en particulier l’hélium. Cette image nous semblait assez frappante pour en nommer le jeu.

Modélisation et matériaux

Les AOMap pour simuler le Highpoly:

La conception s’appuie sur deux outils open source: le modeleur 3D Blender, et le moteur de jeu Unreal Engine 4. Quasiment tous les assets 3D sont modélisés et bakés avec Blender. Il y a une dizaine d’assets issus de la boutique Unreal Engine, mais tous les éléments de vaisseaux ou de stations sortent de Blender.

La modélisation, et plus précisément le high poly est la 1ère étape de la création de ce jeu. C’est une modélisation 3D à haut niveau de détails, le high poly est réalisé intégralement avec Blender, par modélisation classique, en manipulant des faces. Toutefois, dans le jeu lui même, ce sera le low poly qui sera utilisé demandant beaucoup moins de ressources. Pour Helium Rain, les low poly sont produits en éliminant tous les détails du high poly, là où d’autres développeurs vont plutôt créer un nouvel objet à partir de zéro, ou encore utiliser des outils automatisés.

helium rain poly

Pour cela, l’équipe utilise le normal mapping (encoder tous ces détails de géométrie dans une image – une texture ou map dans le jargon du rendu 3D). Chaque pixel de la texture correspond à la direction d’une face, via un encodage rudimentaire. L’algorithme d’éclairage du jeu vidéo utilise ces données pour modifier le comportement de la surface, afin de simuler du relief.

helium Normal_map_example_with_scene_and_result

Blender génère cette texture, en quelques secondes, à partir des deux objets, c’est le baking qui est l’occasion de produire une seconde texture, l’ambient occlusion map ou AO map. Pour plus d’informations, je décris tout ce processus de création dans mon livre sur Blender.

La production de materials sous Unreal Engine:

Le graphe à droite de l’image permet de produire le rendu visualisé à gauche. Pas besoin pour cela, de compétence particulière en programmation. Dans Unreal Engine 4, on assemble des materials génériques, que l’on réalise suivant le modèle du Physically Based Rendering ou PBR, conçu pour respecter les lois de la physique.

helium 9ffe9023-ecb8-4048-8744-c82668c5c0b4.jpg.960x960_q85

La banque de matériaux PBR est maintenant disponible, et le material assemble les différents composants suivant les consignes d’un masque, une texture qui n’est jamais affichée dans le jeu mais contrôle le material. Peinture ? Métal brut ? Lumière ? Éraflure de la surface ? Tout ça est codé par une couleur dans la texture, à gauche sur l’image ci-dessous.

helium - Création d'un objet de jeu vidéo • Ar_ - https___zestedesavoir.com_articles

Dans cet exemple, les couleurs ont l’association suivante :

  • le noir représente du métal brut ;
  • le bleu représente la peinture principale ;
  • le rouge, le rose indiquent la peinture secondaire ;
  • le vert indique du métal brillant.

Il ne reste plus qu’à importer le low poly dans le jeu, lui assigner le material configuré et effectuer quelques réglages.

On réalise aussi une deuxième version du low poly, moins détaillée pour les visions à grande distance afin d’alléger la consommation en ressources.

helium catalogue IaEaiLp

Je me suis demandé pourquoi avoir mis en place un système de masque pour récupérer des “couches” dans le material blueprint  et leur appliquer des effets particuliers. Cette approche ne va t-elle pas compliquer grandement la tâche des graphistes ? Qu’est-ce qui justifie une telle approche par rapport à l’utilisation d’outils comme Substance Painter (pour les effets de coulure, de rouille, impacts divers) ?

Mais en fait, c’est surtout du à la personnalisation des vaisseaux.  Plus précisément et selon les mots de GA: “On texture l’ensemble des vaisseaux avec une approche par masque, dans laquelle on utilise une bibliothèque de matériaux qu’on sélectionne avec des masques : on ne dessine donc pas la texture d’un vaisseau, mais des zones comme “peint”, “pas peint”, peint avec motif”, etc.. Cette technique répond à pas mal de problèmes, mais son intérêt fondamental est de rendre l’intégralité des vaisseaux personnalisables. Le joueur choisit quatre couleurs, un motif, et l’ensemble de la coque en tient compte. Rendre l’ensemble d’un vaisseau personnalisable impose une technique dynamique comme celle-ci, plutôt qu’une approche classique avec un outil de peinture. Un autre avantage fondamental de cette technique, est qu’elle rend le texturing extrêmement rapide: un vaisseau peut être entièrement texturé en quelques dizaines de minutes, avec une seule texture générée manuellement, sans compromis sur la qualité du rendu.

Un article est disponible en français sur le process créatif.

Exemple de dev: l’artillerie

Vous êtes vous déjà demandé comment on touche une cible minuscule à une longue distance lorsqu’on est un gros vaisseau spatial ?

Vous avez plusieurs approches:

  • Envoyer des chasseurs plus légers et attaquer à plus courte distance
  • Bien viser, anticiper la vitesse, les déplacements et prédire où la cible sera au moment de l’impact, puis faire exploser la munition au plus proche de la cible (on peut également utiliser un détecteur de proximité)
  • Utiliser un missile à tête chercheuse qui pourra adapter sa vitesse et sa direction  dans le temps

Les concepteurs d’HR ont décidé de simuler physiquement un obus d’artillerie avec une distance d’activation (50m) et une distance de détonation (3m).

Dans un jeu à 60fps, il se déroule 16.7ms entre chaque image. Pendant ce temps-là, un obus a le temps de parcourir près de quinze mètres, la taille d’un petit vaisseau.

Quand j’ai appris cela, je me suis demandé pourquoi les concepteurs du jeu avaient mis en place une telle approche: En effet, le composant “ProjectileMovement” d’Unreal Engine 4 a été normalement conçu pour gérer ce genre de cas. Il vérifie entre 2 Physic Ticks (qui sont plus fréquents nombreux que les frames) s’il n’y a pas eu de collision entre ces deux appels. Pourquoi avoir implémenté votre propre approche ?

Voici la réponse de GA: “On a choisi un mécanisme de tir balistique complexe car c’était le plus réaliste que l’on pouvait imaginer. Une tête chercheuse fonctionne très bien dans l’atmosphère, avec des surfaces de contrôle, mais dans le vide c’est une tout autre histoire ! Il a donc fallu mettre en place ce mécanisme, et le rendre aussi performant que possible – aussi bien sur le plan du gameplay que des performances en termes de matériel. Le résultat, c’est une approche hybride entre logique de jeu et pure physique : on ne pouvait pas se contenter d’un mouvement physique, par exemple parce que la tête balistique peut détoner sans impact, quand elle frôle la coque. Une approche purement basée sur la physique posait en plus de lourds problèmes de performances: on a donc choisi de n’activer la physique que juste avant l’impact. “

N’étant pas confronté au même développement, j’ai du mal à saisir le pourquoi exactement, mais l’intérêt au final est que cela fonctionne sans perte de performance. Ici, le but était justement la performance.

Autres éléments techniques

Aucune librairie ou outils tiers n’a été utilisée dans le cadre de ce projet.

GA: “Le jeu ne sera pas porté en VR, simplement parce que l’essentiel du jeu est en 2D, dans des menus. La VR n’aurait guère de sens dans un tel contexte.

Je ne partage pas cet avis pour ma part. Je trouve qu’un menu développé dans l’espace autour de soi comme un cockpit de vaisseau, est une solution originale. Après, tel un géant pouvoir interagir avec tel satellite ou telle ressource… façon Minority Report – ouais, ça peut-être vachement cool. Mais bon, ce n’est que mon avis. On passe d’un jeu standard à une expérience d’immersion qui peut être enivrante.

Coté IA: “L’IA dans Helium Rain est largement fonctionnelle, même si elle n’est pas terminée. Elle se découpe en trois niveaux : 

  • un pilote automatique qui permet aux vaisseaux de se déplacer dans l’espace, d’un point à un autre, en évitant les obstacles, c’est la partie la plus simple ;
  • une IA de pilotage de combat, plus complexe, qui simule le comportement d’un pilote humain ;
  • une IA stratégique qui pilote au long terme les différentes factions du jeu.
On n’a pas utilisé pour ces IA les Behaviour Tree d’Unreal Engine 4.
Les deux premières sont terminées, l’IA stratégique demande plus de temps mais est déjà capable de faire croître une faction, de gérer l’économie…

 

Et enfin, sur la composition de l’équipe, GA nous répond: “Helium Rain n’est pas un projet communautaire, on est toujours essentiellement 2 développeurs : un orienté programmation, un orienté design, même si on se partage des tâches dans ces deux aspects. On travaille également avec une compositrice, Daisy Herbaut, et un community manager. Cette minuscule équipe est assez efficace pour qu’on n’envisage pas d’autres recrutements aujourd’hui, et dans la mesure où nous avons tous un emploi à plein temps, Helium Rain n’a jamais eu besoin de financement en particulier. Je suis le seul membre de l’équipe a avoir participé au projet DeepVoid.

Là encore, je me demande pourquoi ne pas essayer l’aventure du financement participatif. Je peux comprendre qu’on arrive en plus de son boulot, en travaillant le soir et le weekend à avancer le projet. Mais au final, un financement pour améliorer tel ou tel aspect du jeu, multiplier les lunes, ajouter des dialogues… cela aurait pu être un plus. Et puis, c’est aussi une façon de vendre des licences à l’avance.
Mais le choix effectué permet de n’avoir aucune contrainte de délai, pas d’attente particulière, c’est une grande liberté également.

Conclusion

Le jeu a été Greenlighté en janvier 2016 et sera publié cet été sur Steam.  Actuellement, le jeu est en alpha privée. Alors, j’ai essayé de savoir si pour vous et moi il était possible d’accéder à cette alpha, mais d’après GA: “On a fait tester une centaine de personnes depuis le mois dernier, avec de nombreux retours ; on ne va pas étendre le programme plus largement, mais on espère publier le jeu sur Steam Early Access cet été. “

Bon, il faudra vous armer de patience donc !

En tous cas, c’est un beau projet, développé par une toute petite équipe mais qui tient la route et qui a de l’expérience dans le domaine. Je n’ai pas de doute sur le fait qu’ils atteignent prochainement leur objectif et je leur souhaite de réunir un public le plus large possible.

Je vous laisse avec cette démo d’environnement réalisée par un fan :


Sources: Gwennaël Arbonna – Equipe Helium Rain
https://zestedesavoir.com/articles/164/artillerie-et-physique-dans-un-jeu-video/
Si vous voulez de la vidéo de gameplay, il y a aussi ça:

Ces articles pourraient aussi vous intéresser …