WarCreaft

Pendant la troisième année à Créajeux, nous devions développer un petit jeu dans lequel nous pouvions intégrer tout ce qu’on voulait concernant l’IA comme le pathfinding, les behavior trees ou le steering en plus d’outils de diagnostic tels qu’une console de commandes ou des composants de programmation comme les threads. Notre formateur voulais quelque chose inspiré de Warcraft 2 même si ce ne serait pas vraiment un jeu car il ne contiendrai que des outils et peu de mécaniques de gameplay même si nous pouvions en ajouter mais ce n’était pas le but du projet.

Je faisait équipe avec deux autres étudiants pour le développement, nous avons démarré avec les outils de diagnostic et l’utilisation des threads dont je me suis occupé. Mes camarades s’occupaient des unités, du HUD et de la caméra. Je m’occupais beaucoup du coeur du jeu, modifiant le moteur (nous nous sommes basés sur le petit framework que j’avais à l’époque) et gérant principalement des choses internes au jeu. J’ai créé la fenêtre de débug qui affiche les commandes et les unités selectionnées ou des informations sur l’application comme la mémoire qu’elle utilise et le framerate.

Plus tard, j’ai travaillé sur le pathfinding qui était une grosse partie du projet, j’ai réussi à faire quelque chose qui marchait assez bien et avec lequel j’était content. J’ai utilisé le Astar avec un simple Pythagore pour l’heuristique (j’utilisait Manathan mais ça prenait trop de temps de calcul). En travaillant là dessus, j’ai ajouté les comportements de steering, notamment le path following pour adoucir les mouvements des unités quand elles rejoignaient leur endroit cible. J’ai aussi utilisé du string pulling pour finir avec un chemin optimisé.

Pour finir, j’ai ajouté les behavior trees pour créer une illusion d’IA pour les ennemis, j’ai vraiment apprécié cette partie même si c’était assez long à programmer.

Une chose qui a pu poser problème était que, notre cursus progressant, nous avions à refaire certaines parties du jeu plusieurs fois pour adapter le code (pour suivre les objectifs des fonctionnalités à rajouter) et il est devenu un peu compliquer à lire à certains endroits mais nous avons réussi à le garder aussi propre que possible malgré les circonstances.

Je suis assez content de ce que j’ai fait sur ce jeu au final. J’ai intégré plusieurs comportements de steering comme le path following, l’arrival ou le seek, un pathfinding qui marche bien et une console de commande qui peut accomplir plusieurs tâches comme faire apparaître des unité, les tuer, les sélectionner, les soigner, les blesser et autre.

Je pense que c’est une des choses que j’ai le plus aimé faire en troisième année. Ce projet m’a aussi permis de travailler sur mon framework personnel (qui est plus tard devenu FaZoN, sur lequel je travaille toujours pour ajouter plus de fonctionnalités) et j’ai apprécié le fait de prévoir ce que l’utilisateur voudrai faire et développer avec ça en tête, c’est très intéressant.

Captures d’écran

WC - Start
WC - Unit creation
WC - Building placement
WC - AI base
WC - Debugging tools
WC - Console
WC - Commands
previous arrow
next arrow
 
WC - Start
WC - Unit creation
WC - Building placement
WC - AI base
WC - Debugging tools
WC - Console
WC - Commands
previous arrow
next arrow
Shadow

Liens

Le manuel arrivera plus tard cependant le jeu est déjà disponible pour le téléchargement.