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

lundi, le 19 juillet 2010

L'algorithme de bruit inventé par Ken Perlin et présenté au SIGGRAPH il y a déjà de cela plusieurs dizaines d'années est un des algorithmes les plus utilisés dans le monde du graphisme temps réel, notamment grâce aux effets qu'on peut en tirer et grâce à sa relative rapidité.

Le bruit de Perlin permet de générer des textures procédurales utilisées comme effet visuel pour augmenter le réalisme apparent.

De nombreuses utilisations sont possibles, la plus connue étant certainement celle permettant de générer un terrain aléatoire (cet algorithme sert par exemple de base pour la librairie libnoise), mais d'autres effets peuvent être obtenu si l'on combine le bruit de Perlin avec d'autres fonctions mathématiques, comme dans les vidéos suivantes ci-dessous.

Lire la suite ...

mardi, le 2 mars 2010

C# et .NET Version 2.0 par Gérard Leblanc - Acheter ce livre sr Amazon.fr

Résumé

Apprenez à développer en C# dans l'environnement .NET ! Grâce à ce livre, apprenez à écrire vos premières applications en C#. Ce nouveau langage de programmation développé par Microsoft est présenté comme la pierre angulaire de la solution .NET. Rassurez-vous, on ne vous assommera pas avec toutes les subtilités du langage, mais vous posséderez les bases nécessaires pour utiliser la panoplie d'outils du parfait programmeur C#.

Quatrième de couverture

Nouveau langage phare de Microsoft, C# combine les meilleurs aspects des langages C++, Visual Basic et Java, et s'avère en effet d'une facilité incomparable pour créer des applications Windows et Web, même pour des programmeurs non chevronnés. Ce langage a été spécialement conçu pour la plate-forme .NET qui, outre Visual Studio.NET, regroupe l'interface ADO.NET simplifiant l'accès aux bases de données et la technologie ASP.NET permettant d'implémenter des services Web.

Lire la suite ...

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 ...

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 ...

mercredi, le 10 février 2010

S'il y a bien une chose qui manque dans les dizaines d'implémentations de collections du Framework.Net, c'est bien une implémentation de tableau circulaire; cela n'aurait pas été si grave si cette structure n'était pas si souvent utilisée dans la création de jeux-vidéos: en effet, l'on peut utiliser ce genre de structures pour différentes raisons:

  • Historique d'états: parfois, il est nécessaire de maintenir l'état de certaines variables sur la durée, comme par exemple, les positions du curseur de la souris, afin de lisser les mouvements de la souris (l'option "smooth moves" disponible dans la configuration de FPS) pour éviter, notamment, les saccades d'un capteur optique parfois un peu sensible
  • Historique d'état simplifié: souvent utilisé en conjonction avec les touches claviers, cet historique d'état ne stocke en fait que l'état courant et l'état précédent, mais est néanmoins très utile pour détecter des changement d'états du clavier; il est en effet parfois utile de détecter juste le changement d'état. Par exemple, imaginez un jeu ou l'on pilote un chasseur F-16; vous ne voudriez quand même que à chaque boucle de jeu, le F-16 lance un de ses missiles! Il est donc important de pouvoir capter le moment ou le joueur appuie sur une touche, mais de ne rien faire si la touche reste enfoncée. L'on obtient cet effet si la touche à vérifier est appuyée sur la frame courante, et qu'elle ne l'était pas sur la frame précédente. L'on peut comparer ce genre de choses à l'équivalent d'une détection d'un front montant ou descendant en électronique.
  • Les fenêtres de visualisations glissantes: ce sujet est beaucoup plus complexe et fera le sujet d'un autre article beaucoup plus développé.

Avant d'entreprendre ce tutoriel, le lecteur aura pris soin de se familiariser avec la notion de génériques si cette notion ne lui est pas familière. En effet la totalité des exemples cités dans la suite de l'article abusent de cette notion.

Lire la suite ...