Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
laforge2nealweiss.over-blog.com

Expérimentations autour de la création de jeux vidéo amateur.

Metroid Neal

Objectif :

Être capable de refaire la première salle du jeu Metroid sur NES

 

Version : Construct 2 gratuit

Limitations : 100 événements et 4 layers, pas de gestion de l'axe Z

 

Motivation :

Après avoir créé un niveau de type Mario-like et goûté aux difficultés du genre plate-forme, je décidais d'approfondir avec un jeu de plateformes ayant des caractéristiques différentes.

 

Inspiration :

Metroid sur Nes (sortie en Europe en 1988). Ce n'est plus de l'inspiration, c'est un calque. Un jeu Nintendo puissant qui est devenu une solide licence pour Big N. J'étais passé à côté à l'époque. Internet n'existait pas pour le grand public.

Pour la presse spécialisée, j'étais plus Génération 4 que Console + et je n'y avais accès qu'au CDI du collège.

Non, pour se faire une idée d'un jeu le meilleur moyen était d'y jouer. La stratégie publicitaire de Nintendo était de mettre en place une borne d'arcade dans les hypermarchés. Le futur client avait accès à une dizaine de jeu Nes chargées dans une borne similaire au Playchoice-10 mais sans y devoir claquer ses pièces de 10 francs. Autant dire qu'il avait du monde autour de la borne et que les jeux les plus joués étaient ceux qui offraient rapidement de l'amusement. Or Metroid est un jeu pudique qui ne révèle ses charmes que progressivement.

#Metroid #Nintendo #NES #Nealweiss #laforgedenealweiss #jeuvideo #expérimentation

Morphingball en vue !

Morphingball en vue !

Difficultés :

 

Première difficulté : Gérer la physique de la morphingball et de Samus Aran. Samus Aran sous forme humanoïde ne peut pas passer par les petits trous. Pour ce faire, elle doit se transformer en morphingball. Initialement, j'avais intégré la morphingball comme une animation du "sprite représentation" de Samus. Quand Samus se transforme, le sprite représentation lance l'animation de transformation Humanoïde->morphingball.

Quand celui-ci est fini. Le sprite représentation lance l'animation morphingball et le sprite physique est redimensionné pour correspondre à la dimension de la représentation de la morphingball. Je n'ai jamais réussi à faire fonctionner la transformation avec ce raisonnement. Soit la morphingball ne voulait pas passer par les petits trous car elle conservait le sprite physique de Samus humanoïde. Soit c'était l'inverse, Samus humanoïde passait par les petits trous, la tête dans le décor. Pour solutionner le problème, j'ai dû changer de raisonnement. J'ai utilisé deux jeux de sprites (un jeu = sprite représentation + sprite physique), le premier pour Samus humanoïde, le second pour Samus morphingball. A chaque transformation, l'un des deux jeux était détruit pour laisser place à l'autre. Cette méthode fonctionne mais j'ai dû généraliser les variables d'instances des sprites de Samus.

 

Deuxième difficulté : Gérer les mobs qui arpentent les sols et les plafonds. Ces mobs ressemblent à des boules de piques avec des petites pattes.

Les petites pattes sont toujours en contact avec la surface que soit le sol, les murs ou le plafond. Quel comportement leur donner. Le comportement "Plate-forme" est bien pour les déplacements au sol ou à la rigueur au plafond en inversant la gravité. Mais pour ce qui est de marcher long des murs ? Il n'y a pas de gravité vers la droite ou vers la gauche. De plus, la force comportement "Plate-forme" est de gérer les chutes et les sauts. Ces mobs ne sautent ni ne chutent jamais.

Le comportement "Pathfinding" permet de mener un sprite d'un point A à un point B. Mais il le fait de la manière la plus efficace et certainement pas en empruntant le chemin tortueux prévu par le décor. Il faudrait que je multiplie les points de passages intermédiaires, multipliant ainsi les risques de comportement bizarre (tremblement du sprite ou sprite coincé). De plus comment gérer l'orientation du sprite ? Les pattes doivent toujours être en direction de la surface.

La solution que j'ai choisie est la montagne russe. Un circuit de rails autour des décors avec des points de changement de direction. J'ai créé un petit chariot pour chaque sprite de mob. Chacun de ces sprites est épinglé avec le comportement "pin" sur son chariot. Chaque chariot suit le rail et quand il passe sur un point de changement de direction, le sprite du mob s'oriente correctement. Par contre, utiliser cette méthode sur la totalité du jeu aurait été éreintant.

#SamusAran #Morphingball

J'ai hâte de voir LA boule de Samus. Et j'ai dit "LA" ! Je n'ai pas envie qu'elle se mette en boule !

J'ai hâte de voir LA boule de Samus. Et j'ai dit "LA" ! Je n'ai pas envie qu'elle se mette en boule !

Facilités :

Première facilité : La communauté de créateurs sur construct-french. Quand j'ai exposé mon exercice à la communauté, j'ai reçu plein d'astuces et de bons conseils. La communauté m'a notamment conseillé d'utiliser la fonction tilemap pour créer les décors. Initialement, j'avais utilisé une image représentant la salle du début du jeu par-dessus laquelle j'ai mis des sprites invisibles avec le comportement "solid". Le tilemapping permet de faire cela de manière bien plus propre.

Deuxième facilité : Le tilemapping permet de "peindre" son décor en utilisant des blocs issus d'une image "tilemap". On peut peindre sur plusieurs couches. Chaque couche peut recevoir des comportements. Par exemple, on peut avoir une couche "solid" pour créer des sols, des murs et autre, une couche "thru" pour créer des plateformes traversables et une couche sans comportement pour faire un fond.
 

Ca va couper chérie !

Ca va couper chérie !

 

La démo :

#Metroid #Brinstar #Samus #laforgedenealweiss #nealweiss #jeuvidéo
Un petit clic vers Brinstar

Samus se contrôle au clavier QZSD pour la direction, touche 1 pour sauter, touche 2 pour tirer.

Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article