© 2002-2011 nintendo-difference.com

 On entend souvent parler de programmation à droite ou à gauche concernant les jeux vidéos : «° Waaaa, cette console est trop facile à programmer, trop cool ! » ou bien encore « Waaa, il est trop naze ce jeu, le programmeur a du le bâcler en deux minutes ! »... Enfin bref, tout cela pour dire que la programmation est un sujet important dans les jeux vidéos. Mais au fait, la programmation, késako ? C'est quoi, un animal, une plante, un minéral ? Ca fait quoi, ça sert à quoi ? C'est dangereux ? Pour répondre à cette question, nous avons interviewé un programmeur sur GBA, au risque de nous faire mordre ou tuer. Finalement, l'entretien s'est plutôt bien déroulé... |
Programmation sur GBAInterview |
Interview | |
![]() Gfx : N'Cha ! ND : Quels, sont, d'après toi, les points forts en programmation de la GBA par rapport aux consoles de salon ? | ND : Maintenant, quels sont, toujours d'après toi, les points
faibles en programmation de la GBA par rapport aux consoles de salon ? Gfx : Plein ! La limitation de la mémoire, de l'écran, du processeur, de la taille des cartouches, des coûts des mémoires de sauvegarde, les quelques bugs du kit de développement, le processus de débogage pas toujours très pratique... Néanmoins, on peut difficilement établir une telle comparaison tant les deux univers sont éloignés. Et malgré ce que je viens de dire, travailler sur GBA reste très plaisant. ND : Par rapport aux anciennes portables de chez Nintendo ? Gfx : Aucun ! :) ND : Par rapport à la concurrence ? Gfx : Pour ce qui est de la GP32 je n'en sais malheureusement rien. En ce qui concerne la N-Gage, je peux juste dire que Nokia semble fournir une API (c'est à dire un ensemble d'outils prêts à utilisation pour le programmeur) permettant de gérer la physique, la 3D, le son, etc. très facilement et surtout très rapidement. Les temps de développement (et de portage surtout) semblent vraiment réduits sur cette machine. La GBA demande plus d'efforts. ND : Peux-tu nous expliquer que sont les différents « modes » ? A quoi servent-ils ? Gfx :
Les fameux « modes » dont on entend parler sont des modes d'affichage.
Il s'agit d'une manière d'exploiter les ressources de la machine d'une
certaine manière, selon ce que l'on veut faire. Sans entrer dans les
détails (qui sont techniques), je peux donner des exemples. Par exemple
le mode 3 permet d'afficher des images avec 32 765 couleurs, mais
occupe toute la mémoire vidéo. Le mode 4 quant à lui permet d'afficher
des images en 256 couleurs à l'aide de palettes de couleur. On s'en
sert beaucoup car il permet le double buffering qui permet d'éliminer les effets de scintillement dans les jeux. Les autres modes (0, 1, 2 et 5) ont tous une utilité particulière, mais rien de bien intéressant pour le joueur. Par contre, j'aimerais parler du fameux mode 7, utilisé dans Mario Kart par exemple. Il ne s'agit pas d'un véritable mode mais d'une astuce de programmation. La GBA sait afficher des tiles. Par exemple, les décors des jeux comme Zelda ont l'air d'être composé d'un ensemble de carrés. Ce sont des tiles (c'est une technique extrêmement utile pour réaliser des jeux 2D). La matériel sait les manipuler pour les zoomer, leur faire effectuer des rotations, etc. Maintenant l'astuce est relativement simple. Pour simuler un effet 3D, il suffit de créer en 2D le sol du niveau puis de l'afficher avec des tiles. Pour le moment nous voyons le niveau comme si nous étions au dessus, la tête tournée vers le bas. La GBA, lors de l'affichage, balaye l'écran 160 fois, pour chaque ligne de pixels que l'on peut observer. En jouant avec le coefficient de zoom des tiles à chaque balayage de ligne on simule un effet 3D. Ainsi, les bandes de pixels du haut de l'écran seront rapetissées et celle du bas agrandies. Le joueur aura l'illusion d'une perspective. ND : Qu'est-ce qu'un sprite ? Gfx : Un sprite est un élément graphique indépendant que le programmeur peut déplacer (translations, rotations, zooms...) à l'écran. Dans Zelda sur GBA, le héros Link est un sprite. Ses ennemis sont des sprites. ND : Y a-t-il des différences au point de vue programmation entre le GBA et le GBA SP ? Gfx : Aucune. ND : Sais-tu combien de temps dure un développement en moyenne ? Gfx : Le développement d'un jeu GBA dure entre 4 et 12 mois. Une durée de 4 mois dans le cas d'un portage, et 12 mois pour un jeu original complexe (comme un RPG par exemple). Les autres jeux nécessitent aux alentours de 6 mois. ND : Sais-tu combien coûte un développement en moyenne ? Gfx : Aucune idée :) ! Les développeurs ne coûtent pas bien cher, mais le matériel, si. Les jeux à licence aussi. Disons que pour rentabiliser l'investissement sur un jeu, il faut vendre 100 000 copies. ND : Nintendo a-t-il une quelconque approbation à donner pour qu'un développeur puisse faire paraître un jeu sur GBA ? Gfx : Oui, et c'est même obligatoire ! Nintendo édicte des règles très strictes pour l'obtention de leur approbation. Par exemple, la position des messages "A Suivant" et "B Précédent" à l'écran. On ne peut pas faire n'importe quoi. De plus leur labo vérifie si le jeu respecte la philosophie Nintendo. A l'heure où je vous réponds, le jeu Backyard Hockey (ndlr : un jeu de hockey, qui, hélas, comme presque tous les jeux de hockey, a extrêmement peu de chances de voir le jour dans nos vertes contrées) sur lequel j'ai travaillé est en train de subir la torture des labos Nintendo :) ! ND : Aurais-tu des conseils ou des adresses utiles pour ceux qui, après avoir lu ce dossier, veulent se mettre à la programmation, et plus particulièrement à celle sur GBA ? Gfx : Pour se mettre à la programmation voici mes conseils, vitaux : n'ayez pas peur de l'anglais et Google est votre meilleur ami. Il faut être curieux, souvent passionné, débrouillard (pour ne pas tout le temps poser des questions qui trouvent leur réponse dans le manuel ou sur Google) et créatif. Ceux qui veulent se lancer dans la programmation de jeux devront apprendre sans plus tarder le langage C et éventuellement le C++. Pour les autres, je ne saurais que trop leur conseiller de commencer par le Python, le Java ou le C. Vous pourrez vous casser la tête sur le C++ plus tard Une fois que vous avez acquis les bases d'un langage et la logique inhérente à la programmation (les boucles, les conditions, les variables, les algorithmes) consultez des sites ou lisez le code source d'application Open Source. Enfin, les intéressés pourront se rendre sur mon site personnel, #ProgX, qui propose notamment des cours de programmation GBA. ND : Voilà, c'est tout ce que nous avions à dire. Merci pour ton temps, ta patience, et ton courage. @+ ! Gfx : Ben, merci à vous. :) |
© 2002-2011 nintendo-difference.com













Gfx :
Hop, on va renverser la question pour répondre dans l'ordre
chronologique. L'envie de programmation m'est venue par hasard le 31
décembre 1996. Je n'avais alors que 14 ans et je m'ennuyais ferme au
ND : Par rapport à la concurrence ?
Gfx :
Les fameux « modes » dont on entend parler sont des modes d'affichage.
Il s'agit d'une manière d'exploiter les ressources de la machine d'une
certaine manière, selon ce que l'on veut faire. Sans entrer dans les
détails (qui sont techniques), je peux donner des exemples. Par exemple
le mode 3 permet d'afficher des images avec 32 765 couleurs, mais
occupe toute la mémoire vidéo. Le mode 4 quant à lui permet d'afficher
des images en 256 couleurs à l'aide de palettes de couleur. On s'en
sert
ND : Sais-tu combien de temps dure un développement en moyenne ?