Tutoriels et actualités sur la programmation de jeux vidéos avec XNA

dimanche, le 30 mai 2010

Les effets de "parallax side scrolling" (défilement parallaxe en français) son notamment utilisés dans les jeux vidéos (notamment les jeux de plate-forme et les shoot'em up) pour simuler un effet de profondeur tout en évitant l'utilisation d'algorithmes 3D.

Cet effet est obtenu en superposant plusieurs couches (calques) représentant des objets à plus ou moins grande distance, que l'on fait se mouvoir selon une même direction, mais à des vitesses différentes.

Lire la suite ...

mardi, le 6 avril 2010

J'avais promis que dans ce tutoriel, nous attaquerions le vif du sujet, à savoir notre premier dessin en XNA. J'ai choisi de ne pas faire trop compliqué pour un premier rendu, et nous allons donc nous intéresser à la création d'un SplashScreen pour notre jeu.

Mais avant toute chose, il y a certains tutoriaux que je vous conseille de consulter, car ces derniers seront utilisés dans celui-ci:

Lire la suite ...

samedi, le 3 avril 2010

Tutoriel: Les transitions avec XNA

La finition d'un jeu dénote souvent de sa qualité intrinsèque. C'est dans les petits détails que l'on reconnait qu'un jeu a été fignolé, et que ses développeurs sont des perfectionnistes. Par exemple, un jeu dont le menu fourmille de milliers de petites animations attirera bien plus l'œil qu'un jeu dont le menu est une liste classe d'éléments sans aucune vie.

Nous allons donc voir ensemble comment gérer ces animations ensemble, afin de pouvoir donner un peu plus de vie à notre jeu. Mais avant de commencer, il serait bon de prendre connaissances des tutoriaux "Gestion du temps - Chronomètre et décompte avec XNA", "Les horloges", "Rajout de méthodes et d'évènements pour la gestion du temps", car le code utilisé ici se base sur ces derniers. De plus, ce tutoriel abuse de la notion de génériques, dont vous pourrez trouver une introduction sur le site de la MSDN.

La première technique d'animation qui coute peu en développement est l'utilisation d'effets de transitions. Quand vous voyez un effet de fondu, un agrandissement d'un sprite au cours du temps, ce genre d'effets est réalisés grâce à l'interpolation de deux variables en fonction du temps.

Ainsi, un fondu est réalisé en modifiant une valeur d'opacité de 0 à 1 sur une certaine période de temps. Un agrandissement d'un sprite est réalisé en modifiant une valeur indiquant l'agrandissement du sprite suivant le temps passé.

Le système transitions que nous allons voir ici formalise ces effets dans une classe nommée Easing.

Lire la suite ...

dimanche, le 28 mars 2010

Nous avons déjà vu dans les tutoriaux "Gestion du temps - chronomètre et décompte pour XNA" et "Utilisations d'horloges avec XNA" une première façon de gérer le temps sous XNA.

Nous allons aujourd'hui mettre à jour la classe TimerBase ainsi que la classe Timer vu dans ces deux tutos afin de les utiliser dans un système de transitions (easing en anglais) que nous verrons dans un tutoriel ultérieur.

Lire la suite ...

mardi, le 2 mars 2010

Nous avons vu dernièrement comment créer des classes utilitaires pour nous faciliter la tâche de la gestion du temps, en permettant l'utilisateur d'appeler une fonction après n secondes. Toutefois, ce tutoriel n'est pas complet, et il est tout a fait possible de créer d'autres classes qui s'occupent de gérer le temps, basées sur le code écrit la dernière fois. Nous allons donc voir aujourd'hui comment appeler une fonction à intervalles régulier grâce à notre classe Timer.

Ceux d'entre vous connaissant le monde du développement web pourront faire l'analogie entre la classe Countdown et la méthode setTimeout de Javascript (dont il n'existe malheureusement pas d'équivalent en C#) et la classe Timer que nous allons écrire avec la méthode setInterval du même langage.

Lire la suite ...

dimanche, le 28 février 2010

La gestion du temps dans un jeu vidéo est une chose que l'on retrouve partout. Que ce soit évident, comme un décompte avant un check-point dans un jeu de voiture, ou plus subtil, comme le temps d'un fondu progressif, la notion temporelle est utilisée intensément, et il en va de même pour un jeu XNA.

Heureusement pour nous, la méthode Update() et son objet GameTime passé en paramètre nous simplifie bien la vie, mais ce n'est pas suffisant pour faire du code propre. Après m'être renseigné sur le canal IRC #xna sur EFNet (qui rassemble une grande partie des développeurs XNA d'outre-manche et d'outre-Atlantique), je me suis rendu compte que la plupart du temps, les utilisateurs géraient le temps via des variables flottantes dans les GameComponent; cette méthode, très simple, a déjà fait ses preuves. Mais l'on peut mieux faire que:

  • Mode texte
  • Copier
  1. /// <summary>
  2. /// Allows the game to run logic such as updating the world,
  3. /// checking for collisions, gathering input, and playing audio.
  4. /// </summary>
  5. /// <param name="gameTime">Provides a snapshot of timing values.</param>
  6. protected override void Update(GameTime gameTime)
  7. {
  8. time += gameTime.ElapsedGameTime.TotalMilliseconds;
  9.  
  10. if (time >= 60000)
  11. {
  12. DoSomething();
  13. }

Nous allons voir dans cet article deux petites classes, qui seront extensibles à souhait, pour gérer le temps. Nous commencerons avec la classe TimerBase qui représente une implémentation abstraite de base de gestion du temps, et une classe Countdown, qui représente un décompte temporel, et qui permet d'appeler une méthode à la fin de ce décompte.

Lire la suite ...

vendredi, le 12 février 2010

Développement XNA pour la Xbox et le PC par Léonard Labat - Acheter ce livre sur Amazon.fr

Résumé

Ce livre accompagne le lecteur dans la conduite d'un projet en C#, qu'il s'agisse de programmer des événements, l'environnement sonore, ou de créer les moteurs graphique et physique. L'auteur fait le point sur les bonnes pratiques de développement propres au jeu vidéo.

Quatrième de couverture

Grâce au tandem Live et XNA, la programmation de jeu vidéo pour PC et Xbox 360 est accessible au plus grand nombre : il n'est plus nécessaire d'investir dans de ruineux outils pour donner libre cours à ses idées de jeux et les réaliser. Cet ouvrage permettra au lecteur de s'approprier le framework XNA 3.0, mais également de comprendre comment s'organise un projet de développement de jeu vidéo.

Lire la suite ...

jeudi, le 11 février 2010

Quand on développe un jeu sur Xbox, on n'a pas trop besoin de s'inquiéter des options de configuration; en effet, la Xbox étant une machine fermée, l'utilisateur final n'ira jamais changer de carte graphique, pour avoir une meilleure résolution ou de plus joli graphismes. Toutefois, avec les PC, c'est une autre galère: chaque utilisateur dispose d'un matériel différent, et même la configuration du clavier et de la souris peut changer suivant les pays (qui se souvient encore devoir taper le texte en "qwerty" parce que le jeu était programmé pour un clavier américain, laissant des souvenirs impérissables comme le "j'te niaue q lq kqlqsh111" de Counter Strike?)

Le but de notre tutoriel aujourd'hui est donc de pouvoir rajouter un système de configuration à notre jeu XNA. Par chance, sous Windows, nous ne sommes pas limité à la version compacte du Framework .Net, et nous pouvons donc utiliser toutes les classes fournies par Microsoft dans le Framework .Net pour arriver à nos fins. Par chance, il se trouve que la version 2.0 du framework .Net implémente déjà un système de configuration très (voire trop...) complet via l'espace de nom System.Configuration contenu dans la librairie du même nom (qu'il faudra donc ajouter à votre projet avant de continuer).

Lire la suite ...

mardi, le 26 janvier 2010

Cette fois ci, ce n'est pas Jamie McMahon qui s'y colle (on aurait pu le croire), mais edg3, qui vient de démarrer une nouvelle série de tutos sur la création d'un RPG avec XNA. Ses tutos pour l'instant ne couvrent que l'architecture et le squelette d'un RPG avec XNA, mais on suppose que sa série couvrira tout les aspects de développement du jeu sous XNA.

Les articles de la série de tutoriaux déjà publiés sont:

Nous vous tiendrons au courant ici même lorsque edg3 mettra à jour ses tutoriaux.

mardi, le 12 janvier 2010

Maintenant que nous avons vu en gros la structure d'un jeu XNA, nous pouvons commencer à mettre les mains dans le code. Avant toute chose, il vous faudra installer les choses suivantes sur votre ordinateur:

  • Microsoft Visual Studio 2008 Express: C'est l'IDE qui vous permettra d'écrire vos propres logiciels. Très puissant, même pour la version Express, celui ci écrase toute concurrence en ce qui concerne la programmation via le framework .Net. De plus, c'est le seul IDE à permettre une intégration aussi poussée avec le framework XNA.
  • Microsoft XNA Game Studio 3.0: C'est un package d'extensions qui va s'intégrer dans votre IDE et qui vous permettra de créer directement des jeux.

Lire la suite ...

samedi, le 2 janvier 2010

Comme nous l'avons vu précédemment, un jeu XNA est constitué de différents composants et de services. Les composants doivent dériver de deux classes distinctes, à savoir GameComponent et DrawableGameComponent. Les services quant à eux n'ont aucune restriction à part de présenter une interface unique par jeu. Nous allons donc passer en revue le code des GameComponent et des DrawableGameComponent afin d'y voir un peu plus clair.

Lire la suite ...

lundi, le 28 décembre 2009

Génération procédurale de villes avec XNA

ReCreation Studios vient de publier quelques captures d'écrans de son génération procédurale de villes avec XNA. Basé sur des papiers publiés en 2001 au SIGGRAPH (le projet Metropolis).

Le principe de la génération procédurale de villes permet de générer des villes qui s'adaptent parfaitement à la topologie du terrain, ce qui permet, suivant les conditions initiales, d'obtenir des villes différentes à chaque coup.

Lire la suite ...

samedi, le 26 décembre 2009

Dans cette seconde partie de tutoriel sur la programmation d'un jeu vidéo avec XNA, nous allons voir comment est créé un jeu XNA, sa structure et la structure interne des composants utilisés dans un jeu. Microsoft a conceptualisé son framework XNA afin que les développeurs qui l'utilisent puissent réutiliser certains composants d'un jeu à l'autre: les composants sont de différents types, et on peut distinguer les Services, les GameComponent et les DrawableGameComponent.

Lire la suite ...

Avant de commencer votre premier jeu vidéo, une petite rétrospective est certainement nécessaire, pour savoir dans quoi vous allez mettre les pieds. La création de jeux vidéos nécessite d'au minimum un peu de background, pour savoir de quoi on parle, et un peu de culture générale n'a jamais fait de mal à personne.

De plus, il vous faudra quelques connaissances dans le domaine de la programmation orienté objet. Ce tutoriel n'a pas vocation à vous apprendre à programmer, mais surtout à utiliser le framework XNA. En effet l'apprentissage de la programmation est long, et c'est pour ca qu'il y a des formations officielles pour ce genre de choses (IUT Informatique de Gestion, cursus d'ingénieurs en informatique...). Et si d'ailleurs vous n'avez pas commencé de cursus secondaire, et que la programmation vous intéresse, nous ne pouvons que vous conseiller de vous orienter vers ce genre de formation.

Lire la suite ...

mardi, le 15 décembre 2009

Jamie McMahon, qui maintient une série de tutos sur la création d'un RPG avec XNA 3.0, vient de publier la seconde partie de son tutoriel sur la gestions des écrans de jeux avec XNA.

I have finished the second tutorial on adding screen management to your XNA games. This tutorial actually covers creating separate screens for different parts of your XNA game. Separating the screens of your game into different classes will make your game easier to manage. It will also allow for code reuse down the road. If you have a screen management system in one game you can easily transfer it to a new game. [...]

La première partie se trouve ici, tandis que la seconde partie du tutoriel est disponible ici.

dimanche, le 29 novembre 2009

Un nouvel article vient d'être publié sur le site de Serious Games Source:

The Games for Learning Institute, a joint project of Microsoft Research and a consortium of universities in the United States, announced a Game Design Challenge to encourage the creation of educational minigames for Microsoft's XNA Game Studio 3.1 platform.

Submitted designs must outline a specific learning task, then describe how the game determines if the learning goal was achieved.

Entries will be judged in the areas of technical implementation, educational appropriateness, and integration of design with gameplay and educational goals.

Vous pouvez consulter l'article en entier sur le site de Serious Games Source.

Mise à jour: De plus amples informations peuvent être trouvé sur le site de l'université de New-York, à l'adresse suivante.

vendredi, le 27 novembre 2009

Jamie McMahon vient de rajouter un nouveau tutoriel sur la création d'un RPG avec XNA 3.0 sur son site XNA Game Programming Adventures, pour un total de 39 tutoriaux.

Sa série de tutos, en anglais, explique toutes les étapes de création d'un RPG avec XNA, y compris la création d'outils pour créer des cartes de jeux.

Étant donné le nombre de tutoriaux et le large spectre des sujets abordés (GUI, outils, etc...), il peut être intéressant d'y jeter un œil, même si vous ne souhaitez pas obligatoirement créer un RPG.

Composant Webcam pour XNA 3.0

DangerousIdea vient de proposer un nouveau composant pour XNA 3.0 sur les forums officiels de XNA. Ce composant, qui s'enregistre en tant que service, permet d'afficher le contenu d'un stream de Webcam via la librairie DirectShow.Net.

Vous pouvez consulter le thread complet sur les Forums XNA pour en apprendre plus.

mardi, le 24 novembre 2009

Le Zune HD de Microsoft s'ouvre aux jeux 3D

Un nouvel article vient d'être publié sur le site de Clubic:

Même si Microsoft n'a jamais mis l'accent sur cet aspect technique, l'un des arguments phare du Zune HD est l'intégration de la puce tout-en-un Tegra de Nvidia, censée offrir de bonnes performances en matière de 3D.

On savait que le baladeur était capable de décoder des vidéos allant jusqu'au 720p, mais il restait à vérifier ses capacités dans le domaine du jeu vidéo.

Vous pouvez consulter l'article en entier sur le site de Clubic.