ASTRONEER: UE4, Marching Cubes et Transvoxel Algorithm

par | 17 Oct 2015

un pote m’en a parlé il y a quelques temps – Je reste scotché devant cette vidéo: il n’y a nulle prouesse technique, ni artistique…il n’y a pas de gameplay véritablement extraordinaire… non, juste cette musique très sympa… et puis ce jeu qui ressemble à «The Martian» (Seul sur Mars) mélangé avec Minecraft et le Kerbal Space Program (l’expression n’est pas de moi mais elle colle très bien).

Le concept est simple vous êtes un petit astronaute et vous devez coloniser une planète afin d’y vivre en exploitant les ressources de cette dernière. On peut voir dans le trailer qu’il y a aura différentes machines pour vous y aider ainsi que des véhicules.

C’est juste beau, j’aurais voulu faire ce jeu, en être l’auteur. Depuis le temps que je parle de faire du voxel sans voxel, de creuser des galeries, oui, mais en utilisant de la 3D rasterisée, à partir de triangles. Et en fait, je me trompais, il s’agit bien d’une forme de voxels… vous verrez un peu plus loin. Je pense qu’on peut faire autrement, mais c’est probablement plus compliqué.

Bon, ça ne pouvait que me plaire, ça parle d’espace et ça ressemble un peu à Colobot, mais sans les robots (quoi que, vous verrez). Regardez cette scène à partir de  1’02 !!! Et cette bande son ensorcelante (en fait, c’est Bike to the river de Sophie Lu)… on aurait envie d’aller courir avec eux, j’en ai la larme à l’œil … Et cette tempête de sable en 0’50 !

Un coup d’oeil rapide sur les étendues désertiques et le vaillant cosmonaute d’Astroneer pourrait laisser penser que ses développeurs ont simplement décidé de plagier Lifeless Planet. Mais il n’en est rien.

CRTET38WwAA-Cxv.jpg largeAvec un outil de nivellement de terrain, il est possible de se frayer des passages ou creuser la terre pour découvrir des objets et bâtiments enfouis. Le joueur peut ainsi créer ses propres bases et industries seul ou accompagné d’un ami dans ce soft s’appuyant sur sa dimension créative et sa durée de vie pour espérer attirer les joueurs.

Bon, j’ai voulu en savoir un peu plus sur ce jeu qui a été réalisé sous Unreal Engine 4. Tout d’abord, c’est System Era qui est à l’origine du jeu. Bon, à priori, c’est leur premier jeu en tant que Era Softworks: il y a Jacob et Brendan  les Programmeurs et Adam et Paul les artistes.  Petit équipe de 4 personnes, mais qui a produit un teaser fort sympathique. Ils commencent tout juste à communiquer autour du projet. Ils travaillent tous de chez eux, répartis sur Seattle, Toronto, et Salt Lake City (je doute qu’il y ait un mormon dans le tas, mais on ne sait jamais… ;)Ce ne sont pas des débutants toutefois, puisqu’ils viennent sortis de différents studios tels qu’Ubisoft, 343 Industries et Valve. A Terme, si le projet réussit, ils devraient se réunir à Seattle pour y implanter le studio.

astroneer-concept-07

Coté développement ?

Ils utilisent la technique des « Marching Cubes » – je vous passe la définition de wikipédia qui est trop complexe – Il s’agit d’une méthode permettant d’extraire une surface de densité fixée (surface d’iso densité) d’un maillage structuré et uniforme 3D. La base de l’algorithme des Marching Cubes est simple. Afin de représenter un volume, on divise l’espace en cubes élémentaires. Ensuite on fixe un seuil de densité et on va parcourir l’espace cube par cube. Pour chaque cube, on compte le nombre de sommets au dessus du seuil. Ensuite, suivant ce nombre, une table permet de recenser l’ensemble des topologies possibles de triangles affichés à l’intérieur du cube. Chaque configuration correspond à un ensemble de facettes tracées à l’intérieur du volume. Ces triangles permettent donc la représentation la surface du volume à déterminer.

On distingue donc dans cet algorithme deux étapes : Localiser les différentes surfaces et Créer les triangles à l’intérieur des cubes.

Si la technique vous intéresse de près, il y a un excellent rapport de fin de projet à l’ISIMA présenté par Gregory HENRIQUES et Anthony GUILLOU.

astroneer2.0Ensuite, ils ont utilisé le Transvoxel Algorithm pour gérer plusieurs redimensionnement entre les volumes Octree. Si vous voulez en savoir plus, on en parle ici. 

En gros, pour simplifier: quand l’astronaute envoi son rayon pour creuser le sol, ou le combler, le maillage du décor est altéré tout d’abord dans sa forme « voxel » en mémoire. Puis l’alteration est traduite en 3D « triangularisée » et le modèle 3D est modifié en fonction.  Il est facile de faire des transformations comme retirer des cubes, les faire tomber en morceaux, etc… Rien à voir avec le fonctionnement des « destructible objects » sous UE4.

Le look « Triangulaire » est donné en utilisant un decimate pour simplifier les objets au final (réduction du nombre de sommets), après transformation du voxel vers les triangles.

Au final, c’est assez fouillé leur système. Je ne sais pas encore comment ils ont implémenté l’ensemble au sein du moteur UE4, tout en gardant la gestion interne des collisions, des animations, etc. Mais j’aimerais bien en savoir plus. Je vais avoir besoin du même système pour mon projet Lost Colonies.

En fait, tout le décor est généré procéduralement – directement sous forme voxel, mais traduit ensuite en 3D triangulaire. C’est bien là le point de jonction avec UE4. Toute la « gestion » du décor, toute l’information est sous forme voxel (des cubes à la minecraft en gros), mais traduite par l’algorithme ci-avant en 3D « Triangles » dont la nature est acceptée par nos cartes graphiques et sur laquelle repose également UE4 (qui ne traite pas les voxels directement). Cela signifie aussi qu’ils doivent créer le mesh de collision et le mettre à jour également en temps-réel en fonction des modifications du décor.

Si vous ne deviez retenir qu’une seule chose, c’est celle-ci: UE4 ne supporte pas les voxels directement, mais on peut les utiliser « en mémoire » et les traduire pour UE4. Cela permet de la génération procédurale de haut-niveau, mais aussi de creuser ou d’ajouter des formes au terrain (ou aux objets traités tels quels).  Bon en même temps, il existe de véritables moteurs de voxels temps-réel comme l’ATOMONTAGE Engine:

Bon, et le jeu, il parle de quoi ?

astroneer-concept-01Oui, quand même, y-a pas que la technique dans la vie (ah bon?). Voici le scénario:

« Le développement soudain de la technologie permet des voyages spatiaux rapides et peu coûteux vers les étoiles. Exo Dynamics, le conglomérat dominant, a ouvert des vols à audacieux aux citoyens de la Terre. Comme à l’époque de la ruée vers l’or, des vagues d’aventuriers signent à se lancent dans vers cette nouvelle frontière, tout risquer pour chercher fortune aux confins de la galaxie. Ce sont les « Astroneers ». Comme Astroneer, vous devez trouver un moyen de faire surgir la vie sur l’un des multiples nouveaux mondes. Vous pouvez creuser le terrain avec votre appareil pour découvrir des artefacts et des matériaux que vous pourrez utiliser pour alimenter votre quête et devenir un riche baron des étoiles. Sur le chemin, découvrez des bizarreries, posez des questions, et percez les mystères, car rien n’est comme il parait ! »

« Nous voulons inspirer les nouvelles générations pour l’espace » nous confie Adam Bromell, Directeur artistique sur le projet.

astroneer-concept-03Astroneer devrait apparaître en 2016 pour Windows PC, Mac et Linux. On pourra l’avoir aussi sur Steam en « Early Access ».

Pour les musiques de Sophie Lu, il y en a d’autres dispos sur Soundcloud, j’adore vraiment ce qu’elle fait.

Site officiel: http://astroneer.space/ – pour le blog, c’est ici.

Si vous avez d’autres infos ou corrections, je suis preneur !

Découvrez nos derniers numéros !

0 commentaires

Laisser un commentaire

Ces articles pourraient aussi vous intéresser …