TUTORIEL/PRATIQUE
 
04/06/2008

Créer la base d'un jeu vidéo avec DirectX

DirectX est la brique de Windows gérant les applications multimédia. Elle offre aux développeurs des librairies pour programmer des jeux vidéos. Construction d'une interface de base en C#.
  Envoyer Imprimer  

En savoir plus

DirectX offre aux développeurs de hautes performances graphiques pour les jeux vidéos. Aujourd'hui en version 10, cette brique de Windows est compatible avec la dernière génération de matériels d'accélération graphique 3D. DirectX propose également des librairies permettant aux développeurs de créer leurs propres jeux vidéos. DirectX est utilisable avec de nombreux langages de programmation : C, C++, .Net, Delphi...


Pour créer un jeu vidéo dans cet environnement, deux outils sont indispensables : un environnement de développement assez puissant comme Visual Studio, et l'API DirectX. L'interface de programmation contient une collection de fonctions conçues pour interagir avec les fonctionnalités matérielles de l'ordinateur. Le SDK DirectX fournit les API avec des exemples, de la documentation et des outils de développement, ainsi que les DLL nécessaires pour exécuter un programme sous DirectX.

 

 
Les grandes bibliothèques de DirectX
 
  DirectGraphics Gestion des graphismes 2D et 3D. Elle est accompagnée de D3DX qui apporte des fonctionnalités supplémentaires.  
  DirectMusic Gestion des sons et musiques  
  DirectSound Gestion des sons au format Wave  
  DirectShow Gestion des vidéos  
  DirectInput Gestion des périphériques d'entrées (clavier, souris...)  
  DirectSetup Gestion de l'installation des composants DirectX.  
  DirectPlay Gestion des échanges réseau.  
 
Source : Benchmark Group
 

 


Pour utiliser une bibliothèque, il faut créer une référence vers celle-ci. Les API de DirectX possèdent toutes une classe abstraite Device qui évite au développeur de traiter les spécificités de chaque matériel installé sur la machine du joueur. Le design du projet est créé avec la méthode Paint.


L'exemple suivant utilise DirectX avec C#. Le programme affiche un simple écran bleu qui servira de support au projet.

 

//références vers les bibliothèques

         using Microsoft.DirectX;

         using Microsoft.DirectX.Direct3D;


// création d'un Device

         private Device device = null;


// initialisation du Device

public void InitializeGraphics( ) 

          { 

            //On definit les paramètres de présentation
            PresentParameters Params = new PresentParameters();


            //On spécifie que l'application sera dans une fenêtre
            Params.Windowed = true;
            Params.SwapEffect = SwapEffect.Discard;


            //Création du device
            device = new Device(0, DeviceType.Hardware, this,   CreateFlags.SoftwareVertexProcessing, Params);
           }

 

 

// initialisation de la méthode Paint qui va créer le design

private void Form1_Paint(object sender, PaintEventArgs e)
        {
            //la fenêtre sans rien sera de couleur Bleu
            device.Clear(ClearFlags.Target, System.Drawing.Color.Blue, 1.0f, 0);
 
            //entre BeginScene et EndScene on informe directX qu'on
            //veut dessiner
            device.BeginScene();
            //Aujourd'hui on ne veut rien dessiner 
            device.EndScene();
 
            device.Present();
        }

 

 

 

 

 

// création du main

static void Main()   
        {
            using (Form1 frm = new Form1())
            {
                //Fait apparaître la form
                frm.Show();
                //Initialise le device
                frm.InitializeGraphics();

                //Ce qui suit est par défaut lorsqu'on crée un projet Windows Application nous n'en auront pas besoin
               //Application.EnableVisualStyles();
               //Application.SetCompatibleTextRenderingDefault(false); 
  
                //Execute l'application
                Application.Run(frm);
            }
        }

 

Cette base contiendra par la suite les objets 3D du monde virtuel. Un objet 3D est formé d'une multitude de triangles assemblés les uns aux autres. Ils sont créés à la main, ce qui nécessite de nombreux calculs, ou avec des outils dédiés comme 3DsMax.

DirectX ne pouvant lire les fichiers 3D qu'en format X, le SDK contient un utilitaire pour transformer les fichiers 3D propriétaires en format X. Les objets vont être manipulés à l'aide de coordonnées cartésiennes (X, Y et Z pour la profondeur). Il faut également gérer la lumière et la vue que l'utilisateur va avoir de la scène à l'aide d'une caméra virtuelle. 

 

Code provenant de Games Creators Network sous licence Creative commons Attribution-Noncommercial-Share Alike 3.0 Unported
JDN Développeur Envoyer Imprimer Haut de page
A quelle technologie de RIA faites-vous le plus confiance ?

Adobe RIA

JavaFX

Microsoft WPF/Silverlight

Autres

Tous les sondages

BOURSES & MARCHES

CAC 40 -0.11 %

SBF 120 -0.20 %

Nasdaq -3.20 %

Or 0.42 %

Petrole (NY) -0.19 %

Tous les cours


ANNUAIRES