L'activation du javascript est fortement recommandée !

en travauxEnglish version not finished yet

Space shooter

Ou comment faire son propre moteur

Donc pendant mon chômage, loin d'attendre de trouver un boulot, je me suis lancé dans un projet probablement trop grand. J'ai décidé de me faire un moteur de jeu perso. Alors forcément en étant tout seul et sans faire ça 24/24 ça va pas être Unreal Engine. Donc forcément j'ai commencé par le côté graphique. Le plus simple étant la 2D, je suis parti avec la SDL. Et pour utiliser ce moteur, je me suis lancé dans un SHMUP simple(shoot them up).

Malheureusement, je ne montrerais pas de vidéo puisque Fraps ne fonctionne pas avec la SDL (il fonctionne en interceptant les appels DirectX et OpenGL). Mais des screenshots c'est possible.

Remarquez le magnifique menu, quel enchantement de forme et de couleur. Et ces sprites fantastiques, c'est du fait maison, pixel par pixel, les étoiles, les ennemis et le boss sont de moi, le "vaisseau navet" étant de ma copine (oui on s'amusait bien).

Concernant le moteur, j'ai fait une gestion des sprites qui, après coup, n'est pas fantastique. Je ne le referai probablement pas comme ça maintenant. Ensuite, j'ai mis en places quelques petits trucs, comme des tableaux dynamiques, des maths avec Bezier, une classe de timer, une gestion des écrans (menu, jeu, ...)... Au final, le moteur a vite été orienté vers le shmup sans que j'en sois vraiment conscient. Par exemple, une classe de sprite de background (les étoiles) qui bougent tous seuls et une fois hors de l'écran reviennent en haut pour éviter d'en recréer tout le temps.

Finalement, j'ai trouvé un travail avant de pouvoir vraiment faire quelque chose de vraiment concret. J'ai un début de shmup avec des niveaux différents, des vagues d'ennemis, des boss, tout ça avec des stats différentes et chargés depuis des fichiers externes (organisé pour être sorti par un éditeur de niveau à part). Initialement je voulais aussi implémenter un début de moteur son en OpenAL mais je n'ai pas eu le temps.

Si jamais je repars sur cette idée, je pourrais très bien tout refaire voire partir sur du DirectX pour faire un peu de 3D. J'avais déjà fait de la 3D il y a quelques temps avec OpenGL 2 et je n'avais pas trouvé le courage de refaire la même avec OpenGL 3 vu qu'il y avait des différences fondamentales.