Télécharger L'éxécutable, Les sources du projet, Le rapport
  1. Présentation du projet
3D Battle est une application ludique dont le thème est la simulation d'un conflit armé entre deux camps militaires. En termes simples, cette application est un jeu vidéo dans lequel l'utilisateur possède une force de frappe militaire composée de chars d'assaut, son but étant d'éliminer totalement la force de frappe de son adversaire.

Cette application est composée de plusieurs éléments, chacun ayant un rôle bien précis et détaillé plus bas:

    1. Le moteur 3D

    2. Un Moteur 3D ( 3 Dimensions) est ce qui permet la manipulation et l'affichage de points dont les coordonnées sont exprimées dans un repère tri-dimensionnel. En effet, il est difficile de concevoir une notion de profondeur lorsque l'on regarde un écran plat. Le rôle de ce moteur est donc de convertir des coordonnées tri-dimensionnelles (dans l'espace) en coordonnées bi -dimensionnelles (sur l'écran). L'ensemble des manipulations nécessaires à ces conversions sont d'ordres purement mathématiques, grace notamment à des opérations mettant en oeuvre des matrices.
       
       
    3. Le moteur physique
Le rôle du moteur physique est de gérer l'évolution dans l'espace des divers éléments qui sont capables de se déplacer. Pour ce faire, il doit considérer l'ensemble des forces qui s'appliquent à un élément et faire réagir ce dernier comme il se doit. Par exemple, un char qui se trouve sur un plan incliné est sujet à plusieurs forces : Dans le cas du plan incliné, ces forces ne sont plus en équilibre, et donc le char se déplace dans le sens de la pente. De même, un char qui avance ne s'arrête pas instantanément, il doit freiner progressivement (grace aux frottements par exemple), tout comme il a accéléré progressivement. Il en va de même pour les objets en chute libre.

C'est donc à ce moteur de calculer en permanence les forces appliquées aux objets afin que ces derniers puissent se déplacer de manière à respecter les lois physiques qui régissent l’environnement.

    1. L'interface graphique
L'interface graphique permet à l'utilisateur d'intervenir dans le déroulement de la scène, et ce, de plusieurs manière : il peut par exemple ordonner aux éléments de sa force de frappe de se déplacer ou de tirer. Mais l'interface lui permet aussi et surtout de modifier les paramètres de fonctionnement de l'application, de choisir le terrain sur lequel il veut combattre, de choisir quel élément déplacer, etc... Par interface, nous entendons non seulement la fenêtre d'affichage et les divers boutons qu'elle comporte, mais aussi son interprétation des événements souris et clavier. Ainsi le clavier sert à déplacer le point de vue du joueur ou un de ses chars, et la souris sert à faire tourner la caméra sur elle-même afin de pouvoir regarder sur les cotés et vers le haut ou le bas.
 
 

L'accélération 3D

L'accélération 3D est un terme qui désigne l'utilisation de cartes vidéo spécialisées dans le graphisme en 3D. Ces cartes possèdent en fait des circuits intégrés entièrement dédiés à certaines phases de calculs des moteurs 3D. Ainsi elle soulagent le processeur de l'ordinateur de ces calculs extrêmement coûteux, ce qui se traduit par un gain impressionnant de performance et donc de vitesse d'affichage, sans parler de la qualité de l'image, à laquelle on peut désormais appliquer des algorithmes de lissage par exemple, sans trop de pertes de performance. Soulignons le fait que si ces calculs devaient être réalisés par le processeur de l'ordinateur, la vitesse serait considérablement réduite.

L'utilisation de ces cartes se fait à travers des librairies spécialisées, comme OpenGL ou Direct3D. Ces librairies offrent une collection de nouvelles fonctions utilisables par le programmeur de jeux vidéos désireux de fournir une accélération 3D à son application. Ainsi, 3D Battle utilise Direct3D afin de pouvoir tirer partie d'une éventuelle carte accélératrice. Ces cartes ne sont pas obligatoires. Direct3D permet de choisir d'utiliser l'accélération ou pas. Dans le cas où l'utilisateur possède une vielle carte vidéo qui ne dispose pas de ces fonctions, Direct3D possède un mode " émulation ", dans lequel le processeur se voit réattribué la totalités des calculs nécessaire à l'obtention d'une image similaire (le plus possible) à ce qui serait obtenu en temps normal . Malheureusement, la vitesse s'en trouve alors très largement diminuée, la qualité visuelle quant à elle, subissant tout de même une légère altération.