La passion est une force permettant d’accomplir des choses qui, aux yeux de certains, paraîtraient incommensurable. C’est le cas de Mbaran, novice en programmation, qui vient de développer son propre jeu sur Game boy !

Voici son témoignage :

« Bonjour moi c’est Éric, j’ai 43 ans, je suis enseignant et mon pseudo sur Gamecodeur est Mbaran. Je suis membre Premium depuis novembre 2021 et avant cela je n’avais jamais créé de jeux vidéo en pur code de ma vie. Je vous présente aujourd’hui mon jeu PongBoy. Développé pur code avec le langage C et qui fonctionne sur Game Boy. »

Pong Boy sur Game boy

« Pourquoi la Game Boy ? Tout d’abord, comme vous pouvez le voir sur la photo, ma Game Boy est une originale qui date de 1989. C’est la première vraie console que j’ai eu pour moi seul (sans avoir à  la partager avec mon frère). Depuis je suis un fan inconditionnel de cette machine (J’en possède une dizaine de modèles  différents à la maison mais ne me demandez pas à quoi ça sert d’en avoir autant lol) et de retrogaming en général.

Grâce à la formation de David, je suis capable aujourd’hui de développer des jeux pour cette console.

Les jeux se développent grâce à une librairie qui se nomme “GBDK” (Game Boy Development Kit).  Le langage utilisé est le C.Peu de temps après le début de la formation je suis passé du langage LUA au C. À mes débuts j’avais vraiment très peur car je ne comprenais absolument pas les spécificités de ce langage. Par exemple, je ne comprenais pas pourquoi il fallait déclarer des types de variables. Dans un premier temps, j’ai dû apprendre les spécificités du C, mais également les spécificités de GBDK. Comme le dit David : On code comme des Vikings et on s’en fout du langage. Conséquence : j’ai passé une semaine devant mon écran à “pleurer ma mère” parce que je ne comprenais absolument pas comment coder en C. Je ne comprenais pas pourquoi les variables n’allaient que jusqu’à 127. Et d’autres jusqu’à 255. Et puis pourquoi est-ce que les variables se remettent à zéro ? Comment faire des listes ? C’est quoi un pointeur, mais surtout à quoi ça sert ?

Finalement en reprenant toutes les bases de ce que l’on apprend sur Gamecodeur, j’ai pu assez vite m’adapter et comprendre comment coder en C pour Game Boy. D’un autre côté j’ai appris à maîtriser GBDK , car David nous apprend aussi à être autonome. Je savais ce que je cherchais. J’ai pu apprendre un nouveau langage et un framework en toute autonomie et également grâce à la communauté bienveillante de GameCodeur (J’ai eu des solutions à mes problèmes sur le Discord GameCodeur Premium en moins de 5 minutes chrono).

C’est très intéressant de développer sur Game Boy car on code avec énormément de contraintes.

La première évidemment c’est le nombre de couleurs, quatre pour le décor et, en réalité, uniquement trois pour les sprites (car l’une des trois couleurs sert de couleur transparente). Ensuite, le nombre de sprites qui s’affiche en même temps à  l’écran est limité à 40,  avec impossibilité de les superposer (Il y a une règle de priorité d’apparition des sprites assez contraignante). Également,  il faut sans cesse penser à un code ne draine pas trop de puissance de la machine afin de ne pas user trop vite les piles. D’où certaines fonctions sont déconseillées et d’autres sont préférées afin de ne pas se retrouver avec une GameBoy ayant l’autonomie d’une Game Gear. Le nombre de tuiles est également limité à 255. Il y a aussi des limitations au niveau de la musique. Il faut passer par un tracker puis convertir en langage C les notes de musique jouées. Il faut aussi savoir que, concernant  les effets sonores, c’est encore autre chose, il faut les créer à partir des données internes de la Game Boy. Toutes ces limitations permettent d’être vraiment très créatif et il n’y a qu’à voir les jeux sortis par le passé pour s’en rendre compte.

J’ai commencé à développer le jeu PONG BOY pour deux raisons. Tout d’abord et aussi étonnant que ça paraisse, il n’y a pas de Pong officiel sur Game Boy. Ensuite, parce qu’à chaque fois que je m’intéresse à un nouveau langage et/ou un nouveau framework, j’aime bien reprendre les ateliers de base afin de m’assurer que je maîtrise toute la chaîne de programmation (Inutile de se lancer dans un platformer si on connaît pas les bases d’un pong). J’ai, ensuite, personnalisé mon jeu Pong Boy tout en sachant qu’il y également d’autres limitations comme par exemple l’absence de nombre flottant, ou bien l’impossibilité d’utiliser la “library STDIO” car les caractères prennent toute la mémoire vidéo. Il faut alors trouver d’autres astuces pour afficher des textes à l’écran sans utiliser “PRINTF”. Enfin , je fais partie de plusieurs groupes de passionnés et collectionneurs de GameBoy, ce qui m’a permis de présenter mon jeu à ma communauté et d’avoir des retours. Il a été très bien accueilli. »

Pong Boy sur Game boy

« Suite à leur demande j’ai décidé de le sortir en version physique. Les cartouches sont déjà prêtes, il ne me reste plus qu’à recevoir le travail de mon graphiste et à l’ imprimer pour en faire les boîtes, stickers et notices. (Maquette de la cartouche sur la photo). Ce jeu sera utilisable physiquement sur n’importe quelle Game Boy et proposé à la vente d’ici 15 jours à 3 semaines.Pong Boy sur Game boyTrès bonne expérience. Je réalise un rêve de gosse et ceci grâce à GameCodeur.

Encore merci. »

Vous pouvez télécharger la ROM de Pong-boy sur le Itch de Mbaran.

Si vous souhaitez apprendre à programmer des jeux vidéo, vous pouvez rejoindre Gamecodeur en cliquant sur ce lien. Les premiers ateliers de la formation sont gratuits, et si vous hésitez à passer Premium, vous pouvez cliquer ici pour consulter les témoignages et avis des autre membres de Gamecodeur.

Comments (2)

C’est vraiment génial ce que tu as fait, et très inspirant.
J’ai une question : Par quel moyen as tu pu mettre ton jeu sur cartouche ?

En tout cas, beau boulot. C’est courageux d’être passé du LUA au C directement (Mais je pense que j’ai la même crainte que toi, car c’est un langage qui faut un peu peur … xD )

Salut Senjinsama,

Merci pour ton retour. Pour mettre le jeu sur cartouche j’ai utilisé un dumper. Il relie simplement ton ordi à la cartouche par usb. Quant à la cartouche c’est une cardmob d’aliexpress. À l’origine elle servent pour la contre façon 😁. Mais elles sont re programmable avec le dumper. Pour le C au début ça dépayse mais ensuite ça vient vite car tu appliques tout les concepts de David. J’ai encore des choses à apprendre dans ce langage mais très vite tu peux faire un jeu car la gameboy a beaucoup de limitation donc tu peux contourner quelques principes.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.