Depuis que je connais Minecraft, je suis fasciné par la génération de mondes virtuels à partir de voxels, ces millions de petits cubes disposés en grille infinie.J’ai concrétisé plusieurs projets basés sur cette approche, dont zCraf et Voxy, pour les nommer.
Le dernier en date, Voxy, utilise le moteur de jeu Unity3D, et je l’ai programmé en C#. Il comporte les mêmes spécifications que mes autres projets autour du voxel, à savoir un monde infini dans toutes les directions (les chunks sont cubiques), avec la transparence et l’ombrage dynamique en plus. Il a l’avantage de fonctionner dans votre navigateur, aussi 🙂
J’avais précédemment réalisé le même moteur en C++, sous le nom de zCraft :
J’ai commencé ce moteur avec Irrlicht fin 2010, mais je n’étais pas encore expérimenté en 3D et programmation parallèle (multi-thread). La première version est vite devenu difficile à maintenir. Alors 1 an plus tard, j’ai complètement recommencé le projet : j’ai réécrit une partie du code en C++11, utilisé SFML pour le fenêtrage et seulement OpenGL pour les graphismes.
Je ne considère pas zCraft comme un jeu, pour l’instant il ne s’agit que d’un groupement de modules permettant de générer et explorer des mondes infinis constitués de cubes. Il n’est pas limité en hauteur ou profondeur, il est configurable (taille des chunks notamment) et n’a (dans un premier temps) pas l’intention de supporter les textures, TOUT pourra être fait de cubes : la map, mais aussi les sprites, l’interface, les particules…
Démos
Je n’ai pas encore créé de jeu avec, mais seulement des démos techniques.
Test de canyon caverneux infini : pour Windows
Note : il m’est plus difficile de compiler des versions pour Mac : je n’ai pas de Mac. Cependant, vous pouvez toujours compiler votre propre exécutable à partir du code source.
Code source
Sur GitHub
Ancienne version
L’ancienne version avec Irrlicht, d’apparence plus minecraftienne, est disponible pour Windows : lien de téléchargement
Note : comme les VBO n’étaient pas utilisés, elle est relativement plus lente que la nouvelle au niveau des performances (pas comme sur la vidéo, là c’est mon logiciel de capture qui lag) et peut comporter des bugs.