Ce qui est implémenté : (Il y a plusieurs modules)

Le module core : comprends toutes les fonctionnalités de bases c'est à dire :

  • -Un système de gestion des ressources externes.
  • -Un système de gestion de commandes.
  • -Un système de gestion des states.
  • -Quelques classes utilitaire pour gérer les comportements lors du codage du gameplay.
  • -Et pleins d'autres classes utilitaires utilisée par les autres modules du framework.
  • -Un système de sérialisation de données utilisant les flux du c++. (Similaire à celui de boost mais avec gestion de l'héritage multiple)

Le module Graphique :

Se divise en 3 sous modules :

Le sous module de base :

  • -L'affichage de forme de base. (2D)
  • -Un système de composant et un gestionnaire de composants. (Composant de rendu uniquement, sorte de pipeline qui gère la transparence, génère le depthbuffer, la normal map, le framebuffer, etc…, peut être utiliser pour faire du rendu multi-pass également.)
  • -Le module graphique de SFML que j'ai modifié pour afficher des sommets en 3D, optimiser l'affichage à l'aide de VBO et regrouper toutes les faces utilisant la même texture ensemble pour éviter les appels trop nombreux à glBindTexture.
  • Le module graphique doit pouvoir aussi choisir la meilleure méthode de rendu en fonction de la version d'opengl supportée par la plateforme.

Le module 2D qui utilise le module de base :

  • -Un système d'entités. (Avec entités parent et enfants, combinaisons des transformations, etc…)
  • -Un gestionnaire d'entités.
  • -Un moteur de lumière et d'ombrage. (Avec un rendu de type “biased raytracing”.)
  • -Les animations.

Le module 3D. *-La génération de terrains en 3D. Le module graphique est le plus conséquent et le plus compliqué des modules.

Le module physique et mathématique :

  • -Un système de gestion des collisions. (hiérarchie de volumes englobants)
  • -Un système de gestion des particules. (Similaire à celui de la bibliothèque thor)
  • -Calcul de position sur une courbe en fonction du temps.
  • -Rayon pour sélection d'objets.
  • -Statistiques.

-Etc… Le moteur réseau :

  • -Un système de communication en mode TCP et UDP de manière assynchrone et sécurisé avec une liste pour la réception de messages.
  • -Possède une liste d'utilsateurs égalements et garde une trace des utilisateurs qui ont envoyé une requête côté serveur.
  • -Calcul du ping moyen pour chaque utilisateur.(Côté serveur)

-Le moteur de son :

  • Gère le chargement des musiques et des bruits, et également la spartialisation du son (la 4D) grâce à SFML.

Ce qui pourrait être implémenté dans le futur.

  • -Un système de gestion de modules. (utilisation de librairies externes.
  • -Lecture de vidéos. (Pour la cinématique du jeux)
  • -Gestion des vagues, des nuages, de la pluie, etc…
  • -Génération automatique de labyrinthes.
  • -Le chargement de modèle 3D à partir de fichiers externe. (Je ne compte utiliser que des fichiers .obj car c'est le plus simple à charger et les animations je peux gérer ça facilement avec le framework.) *
  • -Les animations en 3D. (Avec interpolation en plus des animations squelettiques)
  • -L'affichage de formes simples en 3D.
  • -Le moteur d'éclairage et d'ombrage en 3D.
  • -Gestion de la réfraction et de la disfraction.
  • -Un driver MySQL.
  • -Des composants GUI en plus des composants de rendus.
  • -Et pourquoi pas des composants spécialisé pour le développements de jeux par navigateur.