Mon premier raycaster : cub3D

busshi

Cub3D
Mon premier lanceur de rayons (raycaster) en utilisant le minilibX. Ce projet s'inspire du célÚbre jeu éponyme Wolfenstein 3D, considéré comme le premier FPS (First-Person-Shoot) jamais développé. Cela m'a permis d'explorer la technique du lanceur de rayons. Mon but était de faire une vue dynamique dans un labyrinthe, dans lequel vous devrez trouver votre chemin.
Objectifs
Les objectifs de ce projet sont similaires Ă beaucoup d'autres de mes autres projets : rigueur, utilisation du C, utilisation d'algorithmes de base et recherche d'informations. Comme il s'agit d'un projet de design graphique, cub3D m'a permis de travailler sur ces compĂ©tences : gestion des fenĂȘtres, des couleurs, des Ă©vĂ©nements, des formes par exemple. Cub3D est un terrain de jeu remarquable pour explorer les applications pratiques des mathĂ©matiques sans avoir Ă en comprendre les spĂ©cificitĂ©s. Avec l'aide des documents trouvĂ©s sur Internet, j'ai créé un algorithme Ă©lĂ©gant et efficace basĂ© sur [celui-ci] (https://lodev.org/cgtutor/raycasting.html). Comme d'habitude, toutes sortes de fuites de mĂ©moire dans le programme ne sont pas acceptables. J'utilise toujours valgrind lorsque je code en C ou C++ car c'est un outil trĂšs efficace de dĂ©tection de fuites mĂ©moire ou de file descriptor.
Ce que j'ai appris de ce projet
Hormis les compĂ©tences habituelles comme coder Ă la norme ou ne pas faire crasher le programme quelquesoit les cas particuliers (segmentation fault, bus error, double free, etc.), ce projet Ă©tait diffĂ©rent car c'est quelque chose de concret et visible. J'ai donc dĂ©cidĂ© d'aller plus loin, en crĂ©ant un jeu dans ce labyrinthe, avec des ennemis, des fusils, une barre de puissance, et mĂȘme une minimap... Pour conclure, je dirai que la miniLibX est un excellent outil pour s'initier Ă la crĂ©ation de jeux vidĂ©os en C, avant de se frotter Ă de outils plus complets comme la SDL par exemple, ou des moteurs graphiques 3D.