01 septembre 2022

Principe de relativité


Jusqu'à présent, le vaisseau d'Omeganaut n'a jamais vraiment volé. Il ne se déplaçait que sur les axes horizontal et vertical. Quant à la profondeur, c'était du bricolage digne d'un tour de magie. Le vaisseau n'avançait pas, c'est tout le reste qui venait à lui : ennemies, obstacles, particules d'explosions, corps célestes... Est-ce que c'était une bonne idée ?

Tout d'abord, c'est un drôle de choix hérité de Pong. En 2012, quand je m'étais mis à ZGameEditor, j'avais modifié la démo de ZPong, fournie avec le programme. Drôle de départ...


ZGameEditor ZPong

J'avais supprimé la balle, réduit la taille du palet de gauche dirigé par le joueur, et il fallait éviter les murs venant de droite. Puis j'avais mis la caméra derrière le joueur et itéré les modifications jusqu'à obtenir la toute première version alpha. J'y ai rejoué pour prendre ce screenshot, et c'était déjà très cool. Tout était là : un rail shooter type Star Fox, infini, généré aléatoirement, et avec une difficulté progressive. Seulement le vaisseau et la caméra n'avançaient pas.


First version of Omeganaut back in 2012

En tant qu'observateur derrière la caméra fixe, ça ne change pas grand-chose. Le décor défile, donnant l'impression d'avancer. Le problème avec cette méthode est qu'il fallait mettre à jour les boîtes de collisions physiques de tous les objets, même ceux censés être fixes comme les bâtiments et les arbres. Niveau optimisation, ce n'était pas folichon et ça commençait à se ressentir lors des grosses explosions avec des centaines de particules.

J'ai donc passé ces derniers jours à inverser tout ça. Désormais, le vaisseau file droit vers l'infini, suivi de près par la caméra, et le décor ne se déplace plus. C'est un énorme changement, mais comme c'est invisible pour le joueur, c'est à se demander pourquoi perdre ma vie avec de telles modifications ? Déjà que je travaille tout seul et quand j'en ai le temps... En fait, j'aimerais que le moteur de jeu soit le plus solide possible avant d'attaquer le grand remplissage avec du contenu, car il est très difficile de revenir en arrière par la suite.

J'en ai quand même profité pour ajouter de vraies montagnes générées aléatoirement, un nouvel habillage pour le niveau Mothership, une rampe de lancement pour l'Omeganaut et tout un tas de petites choses à découvrir par vous-même :





Random mountains in Omeganaut
Mothership in Omeganaut