2 pièce(s) jointe(s)
Antares Project - Somewhere among the stars
Antares Project
Quelque part dans les étoiles...
Ce projet, à l'état de concept pour le moment, trotte néanmoins dans ma tête depuis de nombreuses années déjà.
Dans la mesure où pas mal de choses pourraient encore évoluer, le nom actuel n'étant d'ailleurs qu'un nom de code, je préfère ne pas trop en dire sur le gameplay histoire de ne pas m'enfermer dans une direction. La seule chose de certaine, c'est que ça se passe dans l'espace...
Première itération : Le fond étoilé
Un jeu qui marque, c'est souvent grâce à une bonne ambiance. Et rien de tel qu'un joli décor. Mais réaliser un joli décor dans un contexte spatial, ce n'est pas si évident. Dans mon esprit, l'esthétisme doit l'emporter sur l'exactitude astrophysique. Je n'envisage pas de modéliser l'univers, le mouvement des planètes ou ce genre de choses. Non, juste une ambiance qui permette de s'évader et de rêver un peu.
Il existe d'innombrables d'images de fond spatial toutes plus jolies les unes que les autres et en toute franchise, cela aurait très bien pu faire l'affaire dans un premier temps. Mais j'ai eu envie de partir sur une autre direction. Quelque chose de plus informatique, procédurale. Quelque chose qui puisse changer à chaque démarrage. D'un point de vue du gameplay, ça n'apportera strictement rien. Ce n'est que du décor après tout. Mais cela contribue, je pense, à ce qu'on nomme de façon plus ou moins abusive de nos jours, à l'expérience.
En partant de ces postulats, après quelques réflexions et recherches à gauche et à droite, je suis parvenu à mettre au point un petit générateur de champ d'étoiles dont voici quelques screenshots :
D'un point de vue technique, ça tourne sur navigateur. Le code source est en TypeScript et s'appuie sur la bibliothèque graphique Pixi.js dont je suis plutôt satisfait.
Ce qu'on ne voit pas sur ces images fixes, c'est l'effet de parallaxe produit par les trois couches d'étoiles, pouvant être mobiles les unes indépendamment des autres. La luminosité de chaque étoile oscille ce qui produit un effet de scintillement qui me plaît bien, même si dans l'espace, sans atmosphère, ce n'est pas réaliste.
Le fond représente une nébuleuse / nuage de gaz stellaire. On est en plein dans la génération procédurale avec bruit du simplex (variante du bruit de Perlin mais au maillage triangulaire au lieu d'un maillage quadrangulaire) à quatre octaves. Le rendu de ce nuage de gaz se fait via un shader WebGL. Il y a encore pas mal d'améliorations à apporter à ce niveau. Pour le moment, je peux contrôler plus ou moins les couleurs (en fait plutôt moins que plus ^^), et la forme du nuage reste encore complètement aléatoire. Mais je pense avoir quelques pistes pour améliorer ces points.
Enfin, à intervalle aléatoire, avec des bornes temporelles qui sont paramétrables, une comète traverse l'écran. Les comètes sont gérées par un système de particules. Après quelques essais, je suis tombé sur nombre de 500 particules comme compromis entre performance et résolution.
Voilà, c'est tout pour cette première itération. A la prochaine ! :)
Expérience, retour, technique et références
Fasciné par l'espace ton projet m'intéresse définitivement. En plus j'adhère à ta vision car l'ambiance est essentielle même si une simulation un peu réaliste serait aussi sympa. Sinon en plus de l'expérience j'aime aussi parler d'immersion.
Ta première itération est prometteuse. Tu es preneur de suggestions et remarques ou tu préfères voyager plus en solo ?
Merci pour les précisions techniques et je t'annonce que ton article Introduction au langage TypeScript est le 4e résultat retourné sur Qwant quand on recherche TS. Par contre pour en revenir à l'exp tu t'es interrogé sur l'impact du jeu sur navigateur ?
Enfin je suis curieux de tes références cosmiques !