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

jeudi, le 28 janvier 2010

Rob Miles vient de mettre gratuitement à disposition du public une version électronique de son livre (en anglais) "C# Yellow Book", édition 2009, sur son site web. Comme à notre habitude, nous en avons mis une copie ici au cas où le site de Rob Miles viendrait à être indisponible.

Le célèbre site BoingBoing vient de publier un article sur le Xbox Live Indie Games, et analyse la capacité de vente des jeux indies sur le XBLIG. Dans l'article, le XBLIG est comparé à l'Appstore d'Apple, et expose une analyse rapide des capacités de vente de la plateforme.

Les conclusions de BoingBoing sont approximativement similaires à celle de James Silva, le développeur de Ska Software, acclamé pour son jeu "The Dishwasher"; à savoir que la plateforme croule sous les jeux de qualité médiocre, voire nuls, et que ce bruit empêche les développeurs de jeux de se faire une renommée.

BoingBoing présente dans la suite de son article quelques jeux XBLIG qui ont eu un succès non négligeable sur cette plateforme, et analyse les raisons de ces succès; encore une fois on se rend compte que le marketing à posteriori du à la renommée, est très important: Arkedo (que l'on connait pour ses jeux Nintendo DS au gameplay léché) a été cité pour sa série de jeux XNA, mais James Silva a bénéficié d'une publicité gratuite suite au concours qu'il avait gagné grâce à son jeu "The Dishwasher".

Cette renommée déborde d'ailleurs sur son second jeu "I M4D3 4 G4M3 W1TH ZOMB1ES!!!11" (orthographe totalement, incertaine) qui est bien parti pour se placer correctement dans les ventes du XBLIG.

Mise à jour: Gamerbytes vient de publier un article similaire sur le même thème, à savoir l'analyse des ventes 2009 des jeux XBLIG. Cela se lit à cette url.

mercredi, le 27 janvier 2010

Neil Reed vient de publier un tutoriel sur deux articles sur son blog (l'article originel contenait un bug qu'il a corrigé dans un billet ultérieur): il nous explique comment afficher une barre de vie via un tutoriel assez complet.

Son code se base sur l'utilisation du SpriteBatch avec une utilisation du Color tinting pour effectuer un rendu 2D par dessus l'écran courant, via l'utilisation de RenderTarget2D (ce qui crée quelques soucis de rendus si l'ordre de rendu n'est pas respecté). Nous avons même pu récupérer une petite vidéo de démonstration de son helper:

David Amador vient de publier sur son site un nouveau tutoriel concernant la gestion des états des écrans de jeu avec XNA. Le code n'est pas bien expliqué, et l'on devra malheureusement se débrouiller avec le source fourni en annexe de son tutoriel...

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.

lundi, le 25 janvier 2010

Offbyone, un membre de l'User Group XNA UK vient de mettre sur son blog un nouveau tutoriel d'utilisation du moteur de son de XNA et de XACT. Contrairement au précédent tutoriel que nous avions repéré sur XACT, celui s'attache plutôt au coté code du moteur de son, et explique l'intégration des banques de sons dans un jeu XNA. Le tutoriel montre peu de code, mais indique comment simplement jouer un son dans un jeu XNA; c'est donc une excellente base pour débuter.

samedi, le 16 janvier 2010

Quand on commence à créer un jeu vidéo, le moteur de son est souvent le parent pauvre de la création vidéo-ludique, et ce sujet n'est malheureusement pas souvent traité parmi la pléthore des tutoriaux XNA. Heureusement, Azerdark tente de combler ce vide, en commençant une série de tutos sur la création d'un moteur sonore. Son premier tutoriel concerne la prise en main de l'outil d'édition sonore fourni par XNA, Le XNA Audio Cross-platform Tool (XACT).

vendredi, le 15 janvier 2010

La conférence Microsoft GameCamp 2010 aura lieu en Angleterre, à l'université de Birmingham le 19 et 20 Février, et à l'université de Huddersfield le 19 et 20 Mars 2010. Les participants devront développer des jeux dont le game design devra être de type émergent (le gameplay émergent est un type de gameplay dont les règles découlent des règles qui régissent l'environnement et dont une partie des solutions n'ont pas été forcément prévues par les développeurs au départ).

Vous pouvez retrouver des informations supplémentaires sur les sites suivants:

Mise à jour: La section dédiée à Birmingham du site CreativeBoom vient de publier quelques informations supplémentaires sur l'évènement, ainsi qu'une interview d'Andrew Sithers sur le GameCamp X48.

La série de tutos de Roecode de développement d'un moteur 3D avec XNA est assez ancienne mais elle a le mérite toutefois d'être très complète. Composée de 18 tutoriaux, divisés en 7 chapitres Roecode couvre les éléments les plus importants de la conception d'un moteur, d'un ShaderManager en passant par la gestion des contrôles, puis la gestion d'une scène grâce à un SceneGraphManager, pour finir par la gestion du ciel et du terrain.

Trois choses remarquables sont toutefois à mentionner dans cette série de tutoriaux:

  • Un des tutos parle de Test Driven Development (TDD) appliqué au développement de jeu vidéo avec XNA. De notre connaissance, Roecode est le seul qui applique la méthodologie TDD au développement XNA.
  • Un des tutoriaux explique en détail le fonctionnement du geometry hardware instancing, qui permet d'accélérer le rendu d'objets nombreux (arbres, foules, etc...)
  • Un système de plug-ins qui permet d'ajouter et supprimer des nouvelles fonctionnalités via un fichier de configuration XML.

Matt Pettineo, que l'on connaissait déjà pour certains de ses tutoriaux vient d'effectuer quelques recherches sur une nouvelle technique de rendu, l'inferred rendering. L'inferred rendering est une technique pour effectuer des rendus plus justes d'ombres et de lumière sur des objets contenant des transparences ou translucides.

Le résultat des recherches de Matt Pettineo peut être consulté sur sa page dédiée à l'inferred rendering sur son blog.

mercredi, le 13 janvier 2010

Comment trouver le juste prix pour un jeu indépendant?

Le site Gamasutra vient de publier un article très intéressant sur la tarification des jeux indépendants, notamment sur Iphone, mais la dernière partie de l'article parle du prix des jeux sur le Xbox Live Indie Community Games.

Le sujet de l'article intéressera notamment les développeurs de jeux sous Windows, plus libres de fixer leur prix que sur des plateformes dont les variations de tarification sont poussées par la tendance générale (et c'est d'ailleurs une des remarques principales de l'article: qui voudrait encore payer une application iPhone à 9.99$ alors que la plupart se trouvent maintenant aux alentours des 99c ?).

Il est parfois utile de pouvoir faire de la gestion de collision parfaite au niveau des pixels entre deux sprites. Mykre nous propose une méthode sur son blog pour réaliser ce genre de tâches, mais, selon les dire de l'auteur, cette méthode atteint vite ses limites et il note une perte sensible au niveau de la vitesse de rafraichissement à partir de 300 sprites.

Michael Quandt vient de publier un nouvel article sur son blog ou il propose un moyen unifié de gestion des actions utilisateurs via un système d'actions. Le code source d'exemple est fourni.

Dans le principe, il s'agit de rajouter une couche supplémentaire au dessus des entrées utilisateurs fournies par le framework XNA, et de convertir ces entrées, en fonction de leur état et d'un fichier XML de configuration, en actions communes. Par exemple, si l'utilisateur appuie sur la flèche gauche, une action "Aller à gauche" sera émise, mais cette action pourra aussi être émise si le contrôleur directionnel de la manette est poussé à gauche.

mardi, le 12 janvier 2010

Joel Martinez se fend d'un article très intéressant sur la gestion de la mémoire par l'utilisation de pools, que l'on pourrait traduire en français par "ensemble d'objets réutilisables".

Le concept d'un pool est simple: imaginez un vaisseau qui tire des dizaines de balles par secondes. Au lieu de détruire l'objet balle dès que celui-ci sort de l'écran et d'en créer un nouveau à chaque tir, il est plus intelligent de réutiliser la balle (les opérations d'allocation et de destructions de la mémoire étant quand même relativement couteuses). Dans ce cas précis, le pool serait une classe manageant cet ensemble de balles réutilisables.

Le tutoriel peut se trouver sur le blog de Joel Martinez, qui passe aussi en revue d'autres implémentations de Pool faites par la communauté XNA.

Casey Young, plus connu sous le pseudo d'ElementCy vient de publier le premier article d'une série sur la création d'un jeu de plateformes avec XNA, sur le site du Sergeant Conker. Le premier tutoriel de la série rentre directement dans le vif du sujet, et suppose donc que vous ayez déjà une connaissance minimale de la plateforme XNA.

Cette première partie vise notamment a créer les classes nécessaire au chargement d'un fichier texte contenant les données d'un niveau de jeu, ainsi qu'à son rendu. ElementCy met d'ailleurs à disposition le code source de son projet de jeu, que vous pourrez retrouver en annexe de cette brève.

Scribble, un jeu de plateforme réalisé avec XNA

Les algorithmes génétiques et réseaux neuronaux sont des théories prometteuses du domaine de l'intelligence articifielle (IA ou AI en anglais). Adam Stirtan a tenté de combiner les deux théories dans un programme de démo XNA dont le principe est de simuler deux équipes de tanks qui combattent entre elles.

Bien que ne nécessitant pas d'entrée utilisateur, le code source est intéressant à voir, notamment pour l'implémentation des réseaux neuronaux avec l'algorithme génétique.

Evo Tanks, une simulation de réseaux neuronaux évolutionnaires appliqué à XNA

La démo tournante se télécharge sur son site ou en annexe de ce billet.

lundi, le 11 janvier 2010

Tutoriel de rendu de grille de déboguage par Vikram

Vikram vient de publier sur 8 bits memories un petit tutoriel qui dessine une grille en arrière plan du jeu. Cette grille dont l'utilisation est essentiellement vouée au débogage des jeux, permet de connaitre le placement approximatif des éléments (sprites, objets) à l'écran.

Le code génère à la volée les points nécessaires au rendu, qu'il faut ensuite appeler à coup de DrawUserPrimitive(). Malheureusement, l'auteur n'a pas jugé bon de compartimenter son code dans un GameComponent, ce qui aurait rendu l'utilisation de cette grille de débogage beaucoup plus pratique...

Vova vient de publier sur son blog le code source de son exemple d'algorithme de recherche du plus court chemin A* (path-finding). On regrette l'absence totale de documentation au niveau du code, ni d'explication globale sur le fonctionnement de l'algorithme, et on se rabattra sur wikipedia pour avoir ce genre de détails.

Le code étant disponible sur une plateforme de téléchargement, nous avons pris la liberté de le rajouter en annexe de cet article.

Pour obtenir un résultat de qualité professionnelle au niveau d'un jeu vidéo, il faut non seulement faire de jolis graphismes, mais aussi être capable de gérer le paramètre gamma de l'écran d'un utilisateur (dont les réglages de contraste et de luminosité sont différents du poste du développeur).

Comme le soulève Matt Pettineo dans son blog, la gestion du gamma dans XNA n'est pas triviale, chose due notamment aux différences entre Xbox et Windows; il existe toutefois une solution pour faire de la correction gamma, mais cette solution n'est malheureusement valable que sous Windows.

Simon Florimond maitrise XSI ModTool, l'éditeur 3D de choix pour travailler avec XNA, et il le montre en publiant un nouveau tutoriel vidéo sur l'intégration de XNA dans XSI ModTool, en trois parties.

Lire la suite ...

- page 2 de 5 -