Game Jam

Haunted Chase

Haunted

Début : Mars 2014
Durée : 1 semaine
Langage : C#
Bibliothèques/Outils : Unity

Lien vers le jeu (WebPlayer)
Lien vers une vidéo test du jeu (par FancyPanda)

Haunted Chase est un projet de jeu créé lors de la Procedural Death Jam, qui a eu lieu sur la semaine du 8 Mars 2014. Le but était alors de créer un jeu appartenant au style « Rogue-like-like » (définition dérivée de la nouvelle vague inspirée du « Rogue-like », tels que The Binding Of Isaac, Spelunky, etc.). Ainsi, il fallait créer un environnement labyrinthique, généré aléatoirement, où la mort permanente obligerait le joueur à recommencer la partie.

Stan Wilhelm et moi-même avons donc décidé de participer ensemble à la PDJ, cette dernière étant notre toute première expérience de Game Jam. Nous n’avions que peu d’idées originales au départ, mais nous savions que nous souhaitions jouer sur une masse importante d’ennemis à l’écran. Le joueur devait à la fois se sentir oppressé par le labyrinthe et par les entités ennemies affluant vers lui.

Stan commença donc par s’occuper de la génération aléatoire des niveaux, tandis que je m’occupais pour ma part de régler le problème de l’algorithme de Pathfinding. Il était clair que pour gérer une quantité importante d’ennemis, la seule utilisation de l’algorithme A* ne serait pas suffisante. Un court test me révéla qu’en effet, le nombre d’ennemis ne pouvait dépasser la cinquantaine sans optimisation. C’est en retrouvant cet article très intéressant que j’eus l’idée de contourner le problème en appliquant le Pathfinding aux Tiles du niveau, plutôt qu’à chaque ennemi. Ainsi, l’algorithme est propagé depuis le joueur (rendant le calcul plus long), mais n’est fait qu’une seule fois (plutôt qu’une fois par ennemi). La population de chaque Tile est d’ailleurs aussi prise en compte dans l’algorithme, afin que les ennemis s’évitent dynamiquement.

Nous voulions ensuite que la visibilité du joueur soit quelque peu réduite par les éléments l’entourant, rendant le niveau d’autant plus labyrinthique. Encore une fois grâce à un article très instructif, je décidais plutôt de prendre une approche nettement moins coûteuse que de calculer directement le champs de vision du joueur. Les murs sont donc extrudés en direction de la caméra, provoquant un effet ressemblant à d’immenses colonnes bloquant la vision alentours. Bien que je m’attendais à une approximation plus proche du champs de vision, l’effet reste très intéressant et donne une certaine ambiance au donjon.

Une fois ces éléments mis en place, nous pensions alors réaliser un jeu où le joueur devrait s’approcher du maximum d’ennemis possible (les motivant ainsi à le suivre), tout en évitant leur contact. Le jeu aurait donc été principalement basé sur l’esquive, mais après quelques tests il s’est avéré que l’expérience restait relativement pauvre et nous avons donc décidé d’implémenter attaques et bonus. Ainsi, un shotgun (clic gauche) permet de tenir les ennemis éloignés et d’en éliminer, tandis qu’un bouclier (clic droit) permet de se sortir de certaines situations délicates. Pour survivre, le joueur est aussi motivé à explorer le niveau pour trouver divers bonus augmentant ses capacités (ou en les réduisant si la chance n’est pas avec lui).

Nous avons réussi à terminer la plupart de ce que nous voulions entreprendre dans les délais. Avec le recul, le jeu souffre tout de même d’une difficulté trop élevée, et ce principalement parce que nous n’avons pas pu beaucoup y jouer (les dernières fonctionnalités étant implémentées tard dans le développement). Avec plus de temps, j’aurais aussi aimé fluidifier le mouvement des ennemis qui se contentent de bouger du centre d’un Tile à l’autre, trahissant légèrement le fonctionnement du  Pathfinding. Je suis tout de même ravi du retour qu’ont donné les autres développeurs sur le jeu, votant pour nous et classant Haunted Chase en 5ème position de la catégorie « Best Game », parmi plus d’une centaine de participations !

Au final, cette première Game Jam aura été une incroyable expérience. Bien qu’on m’en parlait beaucoup, je crois que je sous-estimais l’intensité de ce type d’événements et la difficulté de développer avec une contrainte de temps. De plus, le fait de concilier les cours à l’Université en plus du développement le soir aura rendu cette semaine très éprouvante. Cependant, cela m’aura aussi montré à quel point ce type d’événement est formateur et vous pousse à réagir à la contrainte du temps. J’ai vraiment hâte de pouvoir retenter l’expérience dès que l’occasion d’une prochaine Game Jam se présentera.