mercredi 7 mai 2008

Design Pattern - Function Layer | 0 vote(s)

This ticket is the first in my Design Pattern series. This series (in English, sorry for those who don't speak this language) focuses on business-oriented design patterns. The intended audience is the game development community, although I hope that others will also find some useful information. Be aware that it's a Work in Progress - some patterns may need refinement before being usable.

Lire la suite

Tags: , , ,

mercredi 9 avril 2008

Exploration de XNA : Les machines à états | 0 vote(s)

Dans un billet précédent, je faisais référence à la gestion d’états dans le cadre du développement d’un jeu vidéo. Une machine à états a des avantages intéressants dès lors qu’il s’agit de contrôler le flux des actions de l’utilisateur du jeu et de le séquencer en écrans multiples.

Avant d’aller plus loin dans cette analyse, ile nous faut définir ce qu’est une machine à état et à quoi elle peut bien servir.

Note: cet article, bien que basé sur des notions XNA, présente un concept qu'il est possible d'adapter à tous les autres langages (C++, Java, etc). NE vous sentez pas limités par le titre du billet ou par les paramètres des méthodes décrites.

Lire la suite

Tags: , , , , , , , ,

vendredi 1 février 2008

Valider et corriger une architecture objet, première partie | 0 vote(s)

La validation d'une architecture orientée objet est une étape importante dans le cadre de la mise en route d'un projet. Il s'agit de vérifier si l'architecture imaginée "tient debout", c'est à dire si d'une part elle réponds au besoin et si d'autre part elle est, disons, "suffisamment correcte". J'emploie à dessein une expression vague car la plupart du temps nous n'avons qu'une idée confuse de ce qui pourrait être une architecture "suffisamment bien" - nous n'avons pas vraiment de métrique à nous raccrocher[1].

Cet article est en deux parties. La seconde partie sera publiée la semaine prochaine.

Notes

[1] Il existe bien des métriques quantitatives (nombre de classes, nombres de méthodes par classes, nombre de liens entre les classes, etc) mais ces métriques ne nous donne que peu d'indications quand à la qualité de l'architecture objet réalisée.

Lire la suite

Tags: , , ,

jeudi 5 octobre 2006

L'hérésie des variables globales | 1 vote(s)

C'est l'un des points les plus souvent cités par les professeurs qui enseignent la programmation, à tel point qu'il en devient un mantra, un dogme à réciter le plus ouvent possible afin de se convraincre de sa véracité :

De variables globales tu n'useras point

Lire la suite

Tags: , , ,

jeudi 14 septembre 2006

La guerre des accesseurs

J'ai un dent contre les accesseurs. Enfin, pas contre tous, mais contre un accesseur particulier : le setter (nommé ainsi à cause de sa propension à être représenté par des noms du type setSomething()). Vous le verrez en lisant ce billet, la raison pour laquelle je ne l'aime pas peut vous paraître étrange, elle n'en reste pas moins forte selon moi.

Lire la suite

Tags: , ,

mercredi 30 août 2006

Le principe d'encapsulation | 1 vote(s)

En architecture objet, l'encapsulation est ce qui semble être le plus simple à comprendre. En C++, on apprend que mettre des variables membres en accès public, c'est "sale"; qu'il faut absolument mettre les variables en accès privé ou protégé, et qu'ensuite, tout ira pour le mieux. Bien évidemment, cette vision de l'encapsulation est très réductrice. Le but de l'encapsulation est plus large que juste cacher des variables: il s'agit de découpler une interface (par essence, c'est une abstraction) de l'implémentation sous-jacente.

Lire la suite

Tags: ,

mardi 22 août 2006

Sur la programmation orientée objet | 1 vote(s)

Mes lectures et mes interventions sur divers forums techniques (tel gamedev.net) m'ont appris que la notion de programmation orientée objet est floue dans l'esprit de beaucoup de programmeurs, y compris des programmeurs expérimentés. Tout au plus, ils imaginent que cela a trait aux classes et à l'héritage, certains y ajoutant le polymorphisme pour faire bonne figure.

Lire la suite

Tags: , ,