Je développe depuis quelques semaines et selon mes disponibilités un moteur de jeu 3D à l’aide d’OpenGL. Il a la particularité d’être un moteur de voxels (~ des pixels 3D), le jeu le plus connu utilisant les voxels est Minecraft.
Ce moteur est développé en collaboration avec Valentin Manceaux-Panot. Il développe notamment le moteur du gameplay, pendant que je m’occupe principalement du moteur 3D.
À l’heure actuelle, le moteur est en développement, voici les points d’implémentation réalisés :
– Configuration d’un serveur SVN pour versionner le projet.
– Découpe en class et namespace du projet :
- namespace Engine
- Voxel
- Shape
- Cube
- Sphere
- World
- Window
- OpenGL
- Command
- Keyboard
- Terrain
- namespace Tools
- Point3D
- Speed3D
- Defines
- namespace Actors
- Actor
- IdleState
- Pawn
- PawnState
- WeaponItem
- namespace VObject
- Experience
- Hero
– Création de cube et de sphère composé de Voxel avec point source et rayon (ou dimension).
– Ajout de la couleur d’une Shape (class mère abstraite de Cube et Sphere).
– Début de scene graph : on attach les Shape à un World pour les afficher.
– Amélioration des performances OpenGL, environ 60 FPS. (Perte de FPS quand il y a trop de Voxels à l’écran)
Bientôt plus :
– Génération de terrain à l’aide de Voronoi + seed (pour l’aléatoire).
– opération de translation/rotation/scale en tant que noeud dans le scene graph
– ajout de shaders / réduction du CPU au profit du GPGPU, …