ToDo

 

Cette page précise les principaux modules que nous sommes en train de développer, ou sur lesquels nous souhaitons travailler prochainement. Si vous souhaitez travailler sur l'un de ces sous projets ou proposer vos idées, n'hésitez pas à nous contacter !

 

 

Framework

 

urgent
(60 %)

Définition du framework

Il est nécessaire d'avoir un framework de très haut niveau pour parvenir à agencer les différents éléments du jeu. Ce framework doit proposer le moins de choix d'implémentation possible, tout en proposant une structure souple et en précisant les interfaces de communication entre les différents objets. Il y a quatres parties à étudier dans ce framework. La première concerne les fonctionnalités système, et tout particulièrement le modèle de mémoire qui permette facilement de la partager. La seconde régit les règles physiques entre les objets, et décrits le modèle des règles qu'ils doivent respecter. La troisième consiste à organiser toute l'interface graphique et la récupération des évènements de l'utilisateur. Dans la dernière, on s'intéresse à la manière de représenter l'intelligence artificielle.

Quentin Ochem

 

Modélisation physique

 

important
(30 %)

Modèle de représentation physique des objets

Nous souhaitons créer un modèle dynamique de création d'objets, afin que les joueurs puisse créer leur propres unités. Cela signifie qu'il faut quelque chose d'assez souple. On décrit ici un objet comme la composition de plusieurs sous-objets, et on associe un certain nombre de propriétés à ces sous objets : les propriétés du nouvel objet sont égales à la réunion des propriétés de ses composantes. On s'intéresse aussi aux articulation des différents morceaux entre eux.

Jean-Baptiste Silvy
Clément Viguier

intéressant
(10 %)

Génération de relief aléatoire

On veut pouvoir construire des terrains par le seul réglage d'un certain nombre de paramètres, sans avoir à placer chaque montagne, chaque vallée, etc. Il existe pour cela des algorithmes basés sur des fractales, qui permettent de créer un relief assez réaliste. Dans un premier temps, ce sont ces algorithmes que nous allons utiliser.

Marc Ventre

 

Rendu graphique

 

intéressant
(0 %)

Effets à insérer au moteur

Il serait bon de savoir dans quel direction nous souhaitons aller pour construire notre moteur 3D. Quelles sont les caractéristiques possibles, lesquelles sont facile à implémenter, lesquelles sont difficiles ? Il s'agit d'établir une liste de caractéristiques dont pourrait profiter notre moteur (ombres portées, effets de flammes, de pluie, de fumée, etc...) et de donner des pistes pour l'implémentation de chacune.

Steve Duran
intéressant
(à pourvoir)

Textures procédurales

Nous admettons que les unités peuvent être rajoutées dynamiquement au jeu par les joueurs. Ils peuvent donc ajouter de nouvelles textures, qui seront chargées lorsqu'un autre aura besoin d'afficher l'unité en question. D'où un premier problème : des textures, même des textures jpeg, pèsent plusieurs dizaines de kilo-octets, voir plusieurs centaires pour les plus grandes définitions. Pour peu qu'il y en ai un certain nombre à charger, le réseau a de gros risques d'être saturé, ou au moins perturbé par ce type de téléchargements, d'autant plus qu'il s'agira de téléchargements peer-to-peer, donc à partir de machines déjà fortement mises à contribution.

L'autre problème, c'est la précision. Une image bitmap ou jpeg fonctionne avec une précision finie. On ne peut pas zoomer indéfiniment sans subir une grosse pixelisation.

Une image procédurale (aussi appelée image vectorielle), c'est une image qui est définie non pas à partir des points de couleur qui la compose, mais à partir de formes élémentaires, d'équations, de transformations... Leur poids est en général plus petit que leur équivalent en mode point, en tout cas il ne dépend ni de la définition ni de la taille de l'image. La précision est infinie, lorsque l'on se rapproche, on recalcule l'image, ou la portion d'image, à la bonne définition. Deux désavantages cependant : le chargement d'une image procédurale est plus long que celui d'une image normale, et les cartes graphiques ont de toute manière besoin de tableaux de points pour fonctionner.

A ne pas négliger : une texture procédurale, c'est également une texture paramètrable. On peut imaginer par exemple faire varier la texture en fonction de l'altitude, de l'heure de la journée, de la saison, etc...

L'objectif de ce projet est de fournir un format d'image procédural et un chargeur pour le module G3L, ainsi qu'un éditeur d'image.

(à pourvoir)

 

Outils divers

 

intéressant
(0 %)

Algorithmes du perlin noise

L'algorithme du Perlin Noise est un algorithme très efficace qui permet de créer des rendu 3D et 2D très intéressants, comme dans la capture d'écran ci-contre. Il peut également être utilisé dans la création de textures procédurales, la variable travaillée n'étant alors plus une hauteur mais une couleur.

Steve Duran