Jour 3 - Mécaniques


Après les assets, il est temps de s'occuper des mécaniques.

Ayant déjà formalisé les règles et les ayant expérimentés de nombreuses fois avec des vraies cartes, je connais sur le bout des doigts les règles de mon jeu et son équilibrage.

En revanche, j'ai essayé de faire un prototype où je me suis empétré dans l'organisation du code et des messages entre objets. J'ai passé plusieurs jours à réfléchir en tache de fond à comment mieux organiser mon code et mes objets.

Après avoir une idée plus précise de mon organisation à faire, j'ai demandé l'avid des membres de mon serveur Discord dédié à GameMaker  pour échanger sur mes idées, faire un brainstorming d'idées et confronter différentes visions en argumentaux des avantages et inconvénients. Je leur en suis extrèmement reconnaissant car avec leur arguments et propositions, j'ai pu adapter mes idées à des problèmes que je n'avais pas anticipé.

Au final, il y a deux entités dans mon jeu.

  1. Un game manager, responsable de l'initialisation d'une partie, du contrôle des règles, et de la gestions des cartes.
  2. Une carte qui n'a pour seule responsabilité que d'afficher un sprite et gérer sa position (je prévois de faire des animations des cartes lors de leur déplacement).

Les cartes ont au final un code très simple qui "tween" la carte vers sa destination en utilisant la fonction lerp() prédéfinie dans GameMaker.

Le game manager utilise un tableau pour stocker le jeu de cartes qu'il crée au lancement d'une partie et contrôle si une carte est cliquée, si des paires sont révélées, si des cartes ténèbres sont cliquées, et si la partie est gagnée ou perdue. Il contient beaucoup de code mais cela reste relativement organisé.

Il y a sûrement moyen de mieux structurer mon code (notamment l'évènement Step) mais j'ai profité des "functions" pour organiser le code en plus petits éléments nommés avec du sens et modulaires si besoin avec des paramètres.

En l'état, le jeu est fonctionnel. Il s'affiche en plein écran et s'adapte à n'importe quelle résolution (il est pensé pour cibler du 1080p). La touche ECHAP permet de quitter le jeu. Lorsqu'une partie est terminée (gagnée ou perdue), on peut cliquer pour relancer une partie. Autrement dit, le jeu est jouable. C'est pourquoi j'ai publié le projet sur itch.

En revanche, il manque de "juice". Idéalement, il faudrait ajouter des particules, un graphisme plus explicite lorsqu'on gagne ou perd, un écran titre, peut être animer certains éléments et enfin ajouter sons et musiques. C'est la prochaine étape.

Files

Dragon Hatcher v1.0.0beta.zip 4 MB
Sep 30, 2023

Get Dragon hatcher

Leave a comment

Log in with itch.io to leave a comment.