Je vous présente Final Tankasy, Projet réalisé pour la Game jam GameCodeur #19

Dans ce jeu Gameboy, vous contrôlez un tank qui débarque sur une plage et doit éliminer les ennemis niveau après niveau.

Projet réalisé en langage assembleur pour Gameboy. J’étais en train d’apprendre la programmation Gameboy quand la jam a été lancée, j’ai alors décidé de faire mon projet sur ce support.

Le code est de moi et les spirites ont été récupérés de Zelda et Advance War.

Cela a été extrêmement enrichissant d’apprendre l’assembleur et de l’appliquer à la Gameboy. Chaque étape du projet a été particulièrement éprouvant, tellement la documentation sur la GB se fait rare. Chaque fonctionnalité rajoutée était un défi en soi, j’ai appliqué la plupart dès les fondamentaux appris pendant les ateliers GameCodeur.  Je connais maintenant assez bien ce support et sa programmation, n’hésitez pas si vous voulez des conseils !

Je suis élève GameCodeur depuis 1 an.

Temps passé : 100h, apprentissage de l’assembleur et développement du jeu.

Lancement : Pour lancer le jeu, il suffit de lancer Final Tankasy v1.1.exe

Contrôles : Flèche directionnelle pour le déplacement, espace pour tirer, maj gauche pour le boost et entrée pour lancer la partie.

Post mortem :

Au-delà de l’apprentissage de l’assembleur et de son application à la Gameboy une des plus grosses difficultés était d’afficher le background, ainsi que plus de 10 Sprite. Cela demande d’utiliser une méthode spéciale appelée DMA(direct memory acces) qui n’était pas expliquée dans le tuto que j’ai suivi.

Cela peut paraître futile d’apprendre l’assembleur en 2019 et, pourtant, je le conseille fortement ! Cela m’a permis d’apprendre beaucoup de fondamentaux sur la programmation et je me sens beaucoup plus fort pour me mettre au C++.

Tutos utilisés :

Open classroom : https://openclassrooms.com/fr/courses/2288321-apprenez-a-programmer-en-assembleur-x86/2289526-electronique-la-memoire

https://openclassrooms.com/fr/courses/1464031-en-profondeur-avec-lassembleur/1465425-un-minimum-de-code

Furrtek: http://furrtek.free.fr/?a=gbasm

Tuto sur le DMA: https://exez.in/gameboy-dma (indispensable pour afficher plus de 10 sprites)

Install instructions

Launch Final Tankasy v1.1.exe

Download

Download
Final Tankasy v1.1.exe 697 kB
Download
Final Tankasy v1.1.gb 32 kB

Comments

Log in with itch.io to leave a comment.

Bravo à toi, je comptais faire une démo en assembleur sur une machine retro en adaptant mon sokoban. J'ai essayé pendant un temps mais il faut avouer que la tâche est beaucoup plus ardu qu'on ne le pense. En tout cas, ton travail me redonnes la motivation pour m'y mettre. 

Merci et ravis que cela te redonne la motivation. C’est vrai que si il fallait que je me remette dedans après seulement 2 mois j’y passerais également un certain temps. Pas facile l’assembleur, c’est bien pour ça qu’on a fait d’autre langage. 

(1 edit)

Vraiment intéressant, bravo pour ta soif d'apprentissage et merci pour ton partage.
l'assembleur ma toujours un peu intrigué je le vois sur les grandes lignes mais ne le connais pas et faire un jeu avec c'est un bon défi que je souhaite réaliser au moins une foi ;) je n'ai pas encore test ton jeu car ça ne marche pas chez moi
je réessaye plus tard

(1 edit)

Salut, merci de ton commentaire. Effectivement l'assembleur c'est un autre monde mais tellement intéressant. Et l'appliquer au JV c'est top. Sans parler de l’affecte que j'ai avec la Gameboy, c'est top de connaitre aussi ses entrailles maintenant. N'hésite vraiment pas si tu veux me contacter sur Discord (Messij#6194) 

Et quand tu dit que le jeu ne marche pas chez toi que ce passe-t-il ?

Yo copain, super ton jeu ! Je vais le tester je te ferais un retour et vote. Je suis content de voir ton projet, je pensais être le seul à faire un jeu sur un hardware, moi j'ai fait mon jeu de tank sur Megadrive. Je t'ai rajouté car j'aimerais coder sur Game Boy. :)

Salut !! Merci pour le com. Super de t'être mis sur la megadrive. Si tu as besoin de conseil pour la GB n'hésite pas  je pourrais te faire gagner un temps précieux (j'ai vraiment galère pour des chose qui sont plutôt simple quand on a compris). Contacte moi via twitter.

J'ai pas ton Twitter.
Des potos calés m'ont dit qu'il y a la doc GB complète ici : https://problemkaputt.de/pandocs.htm
Et merci pour ta proposition, c'est pas tombé dans l’oreille d'un sourd, car je veux coder sur Game Boy.
Idem de ton côté si tu veux dev sur Megadrive, je vais t’épargner des sacrées sueurs froides lol :)

Ou plutôt sur discord: Messij#6194

Cool cette doc je ne l'avais pas vue mais j'en ai des similaires.  Je décrit a la fin de ma présentation les tutos que j'ai utilisé.  Pourquoi pas la megadrive mais je t'avoue que j'était plutôt partie pour que la SNES ou de la GBA.