Semaine 2

Avec un bon terrain de base en place, j'ai décidé de commencer à ajouter des assets basés sur des photos de référence — et assez rapidement, j'ai dû me rendre à l'évidence : tout seul, je ne pourrai pas obtenir quelque chose de parfaitement réaliste. Néanmoins, j'essaie de faire correspondre le type général de végétation.

Je ne récupère que les maillages de base pour pouvoir refaire les LODs dans InstaLOD (afin de garder un flux de travail cohérent sur tous les assets — certains sont gratuits, d'autres proviennent de packs achetés, et quelques-uns sont personnalisés). InstaLOD est super utile — même si le plugin est payant pour les gros projets, il existe une licence gratuite disponible sous un certain seuil d'utilisation.

Semaine 2 Image 1

Idem pour les rochers — certains ne rendent pas très bien, mais j'y reviendrai plus tard. Idéalement, je récupérerais des maillages de Quixel, ferais une retopo et exporterais, mais je n'ai tout simplement pas le temps pour l'instant.

Et qu'est-ce qu'une île sans la mer ? Après quelques recherches, j'ai opté pour le système intégré d'Unity Water Surface dans HDRP.

Semaine 2 Image 2

Et honnêtement, cette fonctionnalité est absolument brillante !

J'ai fini par passer presque une journée entière rien qu'à peaufiner les détails : hauteur des vagues, reflets, caustiques, couleur de l'eau, écume — et le résultat est très satisfaisant.

Semaine 2 Image 3

Il y a même une fonction pour obtenir la hauteur de l'eau à un point précis via script (bien que la simulation soit lourde en performance, je m'en passerai pour l'instant).

Ensuite, j'ai ajouté un ciel HDRI et affiné le rendu visuel à l'aide du système HDRP Volume, ainsi que l'éclairage — ce qui a également pris pas mal de temps pour être correct.

Semaine 2 Image 3b

Tout cela a l'air génial, mais… je n'avais pas encore écrit une seule ligne de code. J'ai donc rapidement récupéré la base de scripts de mon ancien projet de Game Jam.

Cela s'est bien passé, mais je voulais faire monter le système d'un cran :

  • J'ai réécrit le système d'événements, en ajoutant des interfaces comme IEventApplication, IEventMouse, IEventKeyboard, etc., pour le rendre plus facile à maintenir au fur et à mesure que j'ajoute de nouveaux abonnés.
  • J'ai ajouté un système pour que les gestionnaires puissent activer ou désactiver leurs méthodes Update, LateUpdate et Tick (un petit ajustement pour que ces méthodes puissent être appelées à des intervalles définis plutôt qu'à chaque image).
  • J'ai créé un planificateur d'événements (plus jamais de coroutines ! C'est un cauchemar à déboguer, difficile à maintenir et une mine d'or pour les fuites de mémoire). Maintenant, je peux déclencher des actions après un délai et même y attacher un callback.
  • J'ai aussi amélioré le CameraManager pour permettre le zoom, la rotation, etc. (quelque chose que je n'avais pas dans la version Game Jam).
Semaine 2 Image 4

Et enfin, un peu de travail de level design sur la scène de base… Encore une semaine bien remplie !


← Retour au DevLog