ASTRONEER: UE4, Marching Cubes et Transvoxel Algorithm

un pote m’en a par­lé il y a quelques temps — Je reste scotché devant cette vidéo: il n’y a nulle prouesse tech­nique, ni artistique…il n’y a pas de game­play véri­ta­ble­ment extra­or­di­naire… non, juste cette musique très sym­pa… et puis ce jeu qui ressem­ble à «The Mar­t­ian» (Seul sur Mars) mélangé avec Minecraft et le Ker­bal Space Pro­gram (l’expression n’est pas de moi mais elle colle très bien).

Le con­cept est sim­ple vous êtes un petit astro­naute et vous devez colonis­er une planète afin d’y vivre en exploitant les ressources de cette dernière. On peut voir dans le trail­er qu’il y a aura dif­férentes machines pour vous y aider ain­si que des véhicules.

C’est juste beau, j’aurais voulu faire ce jeu, en être l’auteur. Depuis le temps que je par­le de faire du vox­el sans vox­el, de creuser des galeries, oui, mais en util­isant de la 3D ras­ter­isée, à par­tir de tri­an­gles. Et en fait, je me trompais, il s’agit bien d’une forme de vox­els… vous ver­rez un peu plus loin. Je pense qu’on peut faire autrement, mais c’est prob­a­ble­ment plus com­pliqué.

Bon, ça ne pou­vait que me plaire, ça par­le d’espace et ça ressem­ble un peu à Colobot, mais sans les robots (quoi que, vous ver­rez). Regardez cette scène à par­tir de  1’02 !!! Et cette bande son ensor­ce­lante (en fait, c’est Bike to the riv­er de Sophie Lu)… on aurait envie d’aller courir avec eux, j’en ai la larme à l’œil … Et cette tem­pête de sable en 0’50 !

Un coup d’oeil rapi­de sur les éten­dues déser­tiques et le vail­lant cos­mo­naute d’Astroneer pour­rait laiss­er penser que ses développeurs ont sim­ple­ment décidé de plagi­er Life­less Plan­et. Mais il n’en est rien.

Avec un out­il de niv­elle­ment de ter­rain, il est pos­si­ble de se fray­er des pas­sages ou creuser la terre pour décou­vrir des objets et bâti­ments enfouis. Le joueur peut ain­si créer ses pro­pres bases et indus­tries seul ou accom­pa­g­né d’un ami dans ce soft s’appuyant sur sa dimen­sion créa­tive et sa durée de vie pour espér­er attir­er les joueurs.

Bon, j’ai voulu en savoir un peu plus sur ce jeu qui a été réal­isé sous Unre­al Engine 4. Tout d’abord, c’est Sys­tem Era qui est à l’origine du jeu. Bon, à pri­ori, c’est leur pre­mier jeu en tant que Era Soft­works: il y a Jacob et Bren­dan  les Pro­gram­meurs et Adam et Paul les artistes.  Petit équipe de 4 per­son­nes, mais qui a pro­duit un teas­er fort sym­pa­thique. Ils com­men­cent tout juste à com­mu­ni­quer autour du pro­jet. Ils tra­vail­lent tous de chez eux, répar­tis sur Seat­tle, Toron­to, et Salt Lake City (je doute qu’il y ait un mor­mon dans le tas, mais on ne sait jamais… ;)Ce ne sont pas des débu­tants toute­fois, puisqu’ils vien­nent sor­tis de dif­férents stu­dios tels qu’Ubisoft, 343 Indus­tries et Valve. A Terme, si le pro­jet réus­sit, ils devraient se réu­nir à Seat­tle pour y implanter le stu­dio.

Coté développe­ment ?

Ils utilisent la tech­nique des “March­ing Cubes” — je vous passe la déf­i­ni­tion de wikipé­dia qui est trop com­plexe — Il s’agit d’une méth­ode per­me­t­tant d’extraire une sur­face de den­sité fixée (sur­face d’iso den­sité) d’un mail­lage struc­turé et uni­forme 3D. La base de l’algorithme des March­ing Cubes est sim­ple. Afin de représen­ter un vol­ume, on divise l’espace en cubes élé­men­taires. Ensuite on fixe un seuil de den­sité et on va par­courir l’espace cube par cube. Pour chaque cube, on compte le nom­bre de som­mets au dessus du seuil. Ensuite, suiv­ant ce nom­bre, une table per­met de recenser l’ensemble des topolo­gies pos­si­bles de tri­an­gles affichés à l’intérieur du cube. Chaque con­fig­u­ra­tion cor­re­spond à un ensem­ble de facettes tracées à l’intérieur du vol­ume. Ces tri­an­gles per­me­t­tent donc la représen­ta­tion la sur­face du vol­ume à déter­min­er.

On dis­tingue donc dans cet algo­rithme deux étapes : Localis­er les dif­férentes sur­faces et Créer les tri­an­gles à l’intérieur des cubes.

Si la tech­nique vous intéresse de près, il y a un excel­lent rap­port de fin de pro­jet à l’ISIMA présen­té par Gre­go­ry HENRIQUES et Antho­ny GUILLOU.

Ensuite, ils ont util­isé le Trans­vox­el Algo­rithm pour gér­er plusieurs red­i­men­sion­nement entre les vol­umes Octree. Si vous voulez en savoir plus, on en par­le ici. 

En gros, pour sim­pli­fi­er: quand l’astronaute envoi son ray­on pour creuser le sol, ou le combler, le mail­lage du décor est altéré tout d’abord dans sa forme “vox­el” en mémoire. Puis l’alteration est traduite en 3D “tri­an­gu­lar­isée” et le mod­èle 3D est mod­i­fié en fonc­tion.  Il est facile de faire des trans­for­ma­tions comme retir­er des cubes, les faire tomber en morceaux, etc… Rien à voir avec le fonc­tion­nement des “destruc­tible objects” sous UE4.

Le look “Tri­an­gu­laire” est don­né en util­isant un dec­i­mate pour sim­pli­fi­er les objets au final (réduc­tion du nom­bre de som­mets), après trans­for­ma­tion du vox­el vers les tri­an­gles.

Au final, c’est assez fouil­lé leur sys­tème. Je ne sais pas encore com­ment ils ont implé­men­té l’ensemble au sein du moteur UE4, tout en gar­dant la ges­tion interne des col­li­sions, des ani­ma­tions, etc. Mais j’aimerais bien en savoir plus. Je vais avoir besoin du même sys­tème pour mon pro­jet Lost Colonies.

En fait, tout le décor est généré procé­du­rale­ment — directe­ment sous forme vox­el, mais traduit ensuite en 3D tri­an­gu­laire. C’est bien là le point de jonc­tion avec UE4. Toute la “ges­tion” du décor, toute l’information est sous forme vox­el (des cubes à la minecraft en gros), mais traduite par l’algorithme ci-avant en 3D “Tri­an­gles” dont la nature est accep­tée par nos cartes graphiques et sur laque­lle repose égale­ment UE4 (qui ne traite pas les vox­els directe­ment). Cela sig­ni­fie aus­si qu’ils doivent créer le mesh de col­li­sion et le met­tre à jour égale­ment en temps-réel en fonc­tion des mod­i­fi­ca­tions du décor.

Si vous ne deviez retenir qu’une seule chose, c’est celle-ci: UE4 ne sup­porte pas les vox­els directe­ment, mais on peut les utilis­er “en mémoire” et les traduire pour UE4. Cela per­met de la généra­tion procé­du­rale de haut-niveau, mais aus­si de creuser ou d’ajouter des formes au ter­rain (ou aux objets traités tels quels).  Bon en même temps, il existe de véri­ta­bles moteurs de vox­els temps-réel comme l’ATOMONTAGE Engine:

Bon, et le jeu, il par­le de quoi ?

Oui, quand même, y-a pas que la tech­nique dans la vie (ah bon?). Voici le scé­nario:

Le développe­ment soudain de la tech­nolo­gie per­met des voy­ages spa­ti­aux rapi­des et peu coû­teux vers les étoiles. Exo Dynam­ics, le con­glomérat dom­i­nant, a ouvert des vols à auda­cieux aux citoyens de la Terre. Comme à l’époque de la ruée vers l’or, des vagues d’aventuriers sig­nent à se lan­cent dans vers cette nou­velle fron­tière, tout ris­quer pour chercher for­tune aux con­fins de la galax­ie. Ce sont les “Astroneers”. Comme Astroneer, vous devez trou­ver un moyen de faire sur­gir la vie sur l’un des mul­ti­ples nou­veaux mon­des. Vous pou­vez creuser le ter­rain avec votre appareil pour décou­vrir des arte­facts et des matéri­aux que vous pour­rez utilis­er pour ali­menter votre quête et devenir un riche baron des étoiles. Sur le chemin, décou­vrez des bizarreries, posez des ques­tions, et percez les mys­tères, car rien n’est comme il parait !”

Nous voulons inspir­er les nou­velles généra­tions pour l’espace” nous con­fie Adam Bromell, Directeur artis­tique sur le pro­jet.

Astroneer devrait appa­raître en 2016 pour Win­dows PC, Mac et Lin­ux. On pour­ra l’avoir aus­si sur Steam en “Ear­ly Access”.

Pour les musiques de Sophie Lu, il y en a d’autres dis­pos sur Sound­cloud, j’adore vrai­ment ce qu’elle fait.

Site offi­ciel: http://astroneer.space/ - pour le blog, c’est ici.

Si vous avez d’autres infos ou cor­rec­tions, je suis pre­neur !

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.