Salut à tous!
J'aimerais vous présenter le projet sur lequel je travaille depuis plusieurs mois déjà : La création du EscapeNgine, un moteur de jeux 3D sous XNA. La programmation avec ce moteur permettra la création de jeux sur Xbox 360, PC et éventuellement Zune HD. D'ici quelques mois, le moteur va sortir Open Source(Licence pas encore décidée) et gratuit.
Pour l'instant, voici les features du moteur:
Rendu Graphique
- Programmation du pipeline de rendu à l'aide d'un langage en XML
- Gestion des Materials en xml( un fichier XML par matériel, permet de définir un shader, les textures, et les contextes de rendu relatif au pipeline
- Gestion des lumière de type : Point Light, Directional Light, et Spot Light
- Gestion du rendu des lumières de type Foward Lighting, et Light Pre-pass(Wolfgang Engel)
- Plusieurs effets (Parallax mapping, HDR, DoF, SSAO, God rays, etc..)
- Rendu spécial pour déboguer
- Moteur de particules, facilement extensible
- Ombrage à l'aide de shadow maps
Gestion des ressources :
- Chargement des scène complètes de type Collada
- Possibilité de Charger/Enregistrer les scène et mesh 3D au format binaire propre au moteur
- Les formats de textures PNG, JPG, TGA, DDS(DXT1, DXT3, DXT5)
Gestion des animations :
- "Skeletal Animation" à partir des fichiers collada.
- Animation Blending, entre chacun des frames, et entre les animations
- Hardware (En software éventuellement....)
Détection de collision :
- Partitionnement BSP(Pour les triangles)
- Partitionnement Octree, et Quadtree pour les objets dynamiques
- 4 types de volumes de collision : Sphere, AABB, OBB, BSPVolume(Pour la détection par triangle)
- Détection segment-triangle segment-volume optimisé par les partitionnements
Gestion Des scènes
- Implémentation d'un "Scene Graph", noeud avec transformation hiéarchique
Interface :
- Image
- Bouton
- Texte
- Autre...
- Intégration du moteur à Winforms
Le moteur est extrêmement modulaire, et chacun des modules est indépendant, ce qui permet de FACILEMENT extendre le moteur en ajoutant, par exemple, son propre moteur de rendu, son propre moteur Physique, son propre gestionnaire de scène, etc.. Le création de jeu se fait en C#, et le SDK XNA sera requis. Avec ce moteur, je vais essayer d'atteindre autant les débutants en programmation 3D, avec des fonctions fixés facile d'utilisation, et les plus avancés qui pourront exploiter les fonctions avancés du moteur pour pouvoir implémenter n'importe quels effets avec le système de pipeline. Je ne veux pas limiter le moteur à la programmation de jeux, mais aussi à la visualisation 3D sous Winforms.
Je n'ai présentement pas de site web, ni de bloque sur le moteur. Pour l'instant, je situe mes efforts sur la finalisation de la première version du projet, mais je compte travailler sur un site web avec de la documentation, et tutoriels éventuellement. Je suis présentement en phase "Implémenter les dernières petites features", optimisation et refactoring, mais le gros est déjà fait!
Finalement, je crois que le point fort du moteur, sera la possibilité de rapidement développer un produits 3D sur Xbox 360, PC et Zune HD en même temps. Le projet est développé seulement par moi-même pour le moment et je compte en faire le plus gros moteur basé sur XNA. Et voilà, je me demande si le projet semble intéressant? J'attends commentaire et suggestions!
Je vous laisse sur quelques images de l'ancêtre du moteur, et quelques travaux que j'ai effectué :
Sans/Avec SSAO:
Partager