Semaine 5

Semaine 5, il me manque une fonctionnalité importante à ajouter à mon jeu : la capacité d'ajouter facilement des objets et de créer le code pour leurs interactions.

Semaine 5 Image 1

L'idée était la suivante : je veux ajouter dynamiquement des événements (Events) à mes GameObjects interactifs en utilisant la réflexion (reflection). Je construis simplement une chaîne de caractères avec le nom de l'objet suivi du type d'action.

Je crée une classe partielle InGameEvent, afin de pouvoir faire une copie pour chaque interaction. Essentiellement, une grande partie du gameplay sera contenue dans cette classe. Et, grâce à ChatGPT, j'ai appris que l'attribut [Preserve] indique au compilateur de conserver les méthodes dans le MSIL généré (Intermediate Language) même si aucun code n'y fait directement référence — ce qui est mon cas, puisque je récupère une méthode par son nom sous forme de chaîne et que je l'appelle via Invoke().

Semaine 5 Image 2
InGameEvent
[Preserve]
Invoke()

Je passerai ensuite quelques jours à ajouter des événements pour divers objets, ainsi qu'à écrire un peu de code pour :

  • un système de mise en évidence (highlight) pour les dialogues
  • une classe pour gérer les options graphiques via les réglages de volume
  • la mise en œuvre du support multilingue
  • la modification du callback d'événement de dialogue pour qu'il puisse s'exécuter soit au début, soit à la fin d'une ligne de dialogue
Semaine 5 Image 3

Enfin, je reviendrai sur le rendu de l'herbe, et après quelques recherches, je trouve une solution qui est à la fois plus jolie et plus efficace.

Et j'ajouterai le logo, pour avoir un build un peu plus présentable.

Semaine 5 Image 4

← Retour au DevLog