Comment vous sentez-vous de créer un jeu pour Game Boy en 2017

image

Tout le monde a eu un rêve d'enfance. Personnellement, je rêvais de créer un jeu pour ma première console: Nintendo Game Boy. Aujourd'hui, mon rêve s'est réalisé - j'ai sorti le premier jeu pour Game Boy sur une vraie cartouche : Sheep It Up!

Dans cet article, je parlerai des outils que j'ai utilisés et des obstacles qu'un débutant a dû surmonter pour créer un projet. L'article est très long, il est donc divisé en deux parties:


Le jeu


"Sheep It Up!" - Il s'agit d'un jeu d'arcade dans lequel les moutons doivent grimper, en collant aux bandes volantes de Velcro. Le concept est simple, mais le jeu devient rapidement assez compliqué: jusqu'où pouvez-vous grimper sans tomber?


Je suis moi-même un collectionneur de jeux, donc je ne voulais pas que les jeux vintage de Game Boy souffrent lors de la création de mon projet. Par conséquent, tout a été créé spécifiquement pour le jeu: carte de circuit imprimé, ROM, coque, étui de protection et même un autocollant! Nous avons également cherché à maintenir un prix raisonnable pour que tout le monde puisse profiter du jeu: 15 $ (+ expédition) . Il fonctionnera sur tous les modèles de Game Boy, du tout premier à GBA SP, y compris le Super Game Boy.


Si vous avez toujours un Game Boy, vous pouvez acheter une cartouche sur le site Web de l'éditeur:

https://catskullgames.com/sheep-it-up

Restrictions sonores


Comme nous l'avons compris dans la première partie de l'article , Game Boy a des limites évidentes de puissance CPU et de graphisme. Mais on peut en dire autant du son. Et en fait, contrairement aux machines modernes, Game Boy ne peut pas lire de musique MP3 ou lire des fichiers audio WAV. Pour créer des sons et de la musique pour le Game Boy, vous devez les générer dynamiquement en utilisant les quatre «canaux sonores» intégrés à la console. Chaque canal a sa propre fonction:

  • Canal 1 - Tonalité et balayage: nous pouvons jouer du son (tonalité) avec une hauteur croissante ou décroissante.
  • Canal 2 - Tonalité: reproduit une tonalité sans effet spécial.
  • Canal 3 - Forme d'onde: peut lire des formes d'onde très simples (encodées en 4 bits).
  • Canal 4 - Bruit: peut générer des sons d'explosions ou de moteurs.

Répétons-le à nouveau: pour jouer du son dans Game Boy, vous devez le générer manuellement, en contrôlant directement ces quatre canaux sonores . Heureusement, c'est assez simple: il suffit de modifier les valeurs de plusieurs registres matériels. Chaque canal sonore est contrôlé par 4 à 5 registres matériels (variables 8 bits) qui déterminent le volume, la hauteur, les effets spéciaux, etc. En définissant différentes valeurs pour les registres qui contrôlent le canal, nous pouvons faire jouer à Game Boy une large gamme de sons. Par exemple, voici trois sons de Sheep It Up! que j'ai créé en utilisant le canal sonore 1, et les valeurs correspondantes des registres matériels:

Sauter



NR10_REG = 0x15; NR11_REG = 0x96; NR12_REG = 0x73; NR13_REG = 0xBB; NR14_REG = 0x85; 

Atterrissage



 NR10_REG = 0x79; NR11_REG = 0x8D; NR12_REG = 0x63; NR13_REG = 0xC8; NR14_REG = 0x80; 

Automne (fin de partie)



 NR10_REG = 0x4F; NR11_REG = 0x96; NR12_REG = 0xB7; NR13_REG = 0xBB; NR14_REG = 0x85; 

Comme vous pouvez le voir, assigner 5 valeurs différentes aux variables nous permet de créer des effets sonores très différents. Vous pourriez penser que pour créer des sons, vous devez passer par des essais et erreurs: insérez des valeurs aléatoires dans les registres jusqu'à obtenir un son agréable. Mais ce serait ennuyeux et inutile. Par conséquent, les outils modernes peuvent nous faciliter la vie . Permettez-moi de vous présenter le générateur d'échantillons sonores GB .


Nous avons d'abord configuré des paramètres pratiques pour trouver le bon son (appuyez sur START pour vérifier le son actuel)

Il s'agit d'un programme pour Game Boy, entièrement compatible avec du vrai matériel. Il vous permet de modifier les valeurs des registres sonores matériels d'une manière pratique pour l'utilisateur. Au lieu de définir des valeurs brutes NR10_REG, nous pouvons spécifier la fréquence sonore, le niveau de volume, la durée du signal de balayage, etc. Vous pouvez considérer cet outil comme SFXR pour Game Boy. Mais pour exporter le son, au lieu d'enregistrer le fichier WAV, le générateur d'échantillons sonores GB affiche les valeurs de registre matériel correspondantes. Autrement dit, pour reproduire le son dans votre jeu, entrez simplement ces valeurs dans le code source.


Ensuite, vous devez appuyer et maintenir A + SELECT pour afficher les valeurs brutes correspondantes des registres matériels

Pour travailler sur Sheep It Up! J'ai utilisé le générateur d'échantillons sonores GB sur Game Boy Advance SP (un écran rétro-éclairé est plus pratique) . Le programme ROM a été lancé sur Everdrive GB . J'ai passé beaucoup de temps à définir les paramètres directement sur la console, et quand j'ai finalement trouvé la bonne combinaison, j'ai simplement copié les valeurs de l'écran GB vers le code source sur l'ordinateur.


Copiez les valeurs des registres matériels dans le code source

Musique Chiptune!


Malgré les capacités sonores limitées, Game Boy est aujourd'hui utilisé comme instrument de musique. De nombreux compositeurs de scènes chiptune talentueux créent des pistes énergiques sur Game Boy en utilisant des programmes tels que LSDJ ou Nanoloop . Par exemple, vous pouviez entendre parler de la légende irlandaise chip chip tuner Chipzel , qui a écrit la musique de Super Hexagon , et du sorcier français Sidabitball , qui a remixé de nombreux succès de la musique pop des années 90 .


Chipzel et Sidabitball

Malheureusement pour nous, développeurs de jeux, l'outil LSDJ utilisé pour composer ces chansons impressionnantes consomme près de 100% des ressources matérielles de Game Boy. Par conséquent, vous pouvez y écrire de la musique merveilleuse, mais vous ne pourrez pas démarrer le jeu pendant que cette musique joue sur la console. Heureusement, il existe des alternatives moins gourmandes en ressources pour créer et jouer de la musique sur Game Boy.

1) Propre lecteur de musique


La solution la plus minimaliste consiste à créer votre propre «lecteur de musique».
N'oubliez pas que la seule façon de jouer des sons sur Game Boy est de définir les valeurs des registres matériels qui contrôlent les quatre canaux de génération du son. Par conséquent, il est assez simple de créer votre propre «lecteur de musique», en enregistrant les «notes» dans un tableau. Chaque «note» est une certaine combinaison de valeurs pour chacun des registres matériels. Si vous définissez le rythme avec lequel nous allons parcourir ce tableau pour jouer des «notes», alors nous obtenons un moyen très simple de jouer de la musique. C'est exactement ce que j'ai fait dans Sheep It Up! Voici une courte vidéo de gameplay avec du son et de la musique pour que vous puissiez entendre le résultat:


En fait, mes «notes» ne sont jouées que sur le canal sonore 2. Oui, les quatre canaux sonores sont communs aux effets sonores et à la musique. Par conséquent, si nous jouons une note dans un canal, elle ne peut pas être utilisée pour jouer simultanément un effet sonore . Et comme chaque chaîne est quelque peu «spéciale», il est parfois préférable d'utiliser certaines chaînes uniquement pour la musique, tandis que d'autres sont réservées aux effets sonores. Par exemple, un son «grinçant» qui se fait entendre quand un mouton s'en tient à un Velcro volant est joué sur le canal 4 (bruit). Comme c'est un son très fréquent dans mon jeu, j'ai décidé de ne pas utiliser ce canal pour la musique. La même chose s'applique au canal 1, que j'ai utilisé pour tous les autres effets sonores. Comme je ne suis pas un grand spécialiste de la musique, j'ai décidé de ne pas utiliser les ondes du canal 3 et de travailler plutôt avec les tons du canal 2.

2) Joueur GBT et joueur de carillon


De nombreux jeux homebrew utilisent leur propre lecteur de musique. Mais ce n'est pas la seule solution. Il existe une bibliothèque appelée GBT Player qui peut convertir des modules de musique (au format Impulse Tracker ".it") pour les lire sur Game Boy. Bien sûr, il existe de nombreuses restrictions sur la taille des échantillons, le nombre de canaux et les effets de note. Néanmoins, la bibliothèque vous permet de composer de la vraie musique sur un vrai tracker de musique, par exemple OpenMPT , puis de la jouer sur Game Boy. Plus important encore, la bibliothèque ne consomme que 7 à 8% des ressources CPU de Game Boy, laissant une tonne de puissance de calcul pour exécuter le jeu. De plus, il est très facile de l'intégrer dans votre code si vous décidez d'écrire un jeu en C en utilisant GBDK ou en assembleur en utilisant RGBDS. Une bonne alternative au GBT Player est le Carillon Player , mais vous devrez utiliser l'éditeur de carillon pour composer de la musique.


Geometrix est un jeu homebrew du joueur GBT AntonioND. Pour la musique, cette bibliothèque est utilisée.

Mise en forme: enregistrement d'un jeu sur cartouches


Après un long travail sur le code, les graphismes et le son, le jeu est enfin prêt. Mais à ce stade, nous n'avons que le fichier ROM. Bien sûr, je peux tester activement sur de nombreux modèles Gameboy différents de ma collection (je les ai tous sauf l'AGS-101) . Mais je ne pensais pas que le projet était prêt: à mon avis, pour être considéré comme «terminé», le jeu devait avoir sa propre cartouche .

Comme je l'ai dit dans la première partie de l'article , l'intégralité de la ROM du jeu Sheep It Up! Il ne pèse que 32K, comme avec les jeux Game Boy précédents comme Tetris et Alleyway . Mais en fait, la plupart des jeux pour le Game Boy sont beaucoup plus grands, de 128 Ko à 512 Ko, et le plus grand jeu Pokemon Bleu et Rouge prend un monstrueux 1024 Ko (1 Mo). Dans les années 90, plus le jeu était grand, plus les cartouches étaient chères en production: pour stocker de gros jeux, des jetons plus chers étaient nécessaires. Mais aujourd'hui, ils sont tous presque identiques. Alors pourquoi suis-je limité à un jeu de 32 kilo-octets?

La réponse est que je voulais pouvoir sortir le jeu sur les cartouches fabriquées aujourd'hui. Comme vous pouvez le deviner, Nintendo a cessé depuis longtemps la production de cartouches pour Game Boy (Game Pak-s) . Par conséquent, pour créer votre propre cartouche aujourd'hui, il existe deux solutions:

1) Modification des cartouches (Cartmodding)


La première option, appelée "cartmodding", consiste à recycler les anciens jeux Game Boy. Les jeux sortis pendant l'ère commerciale de Game Boy étaient stockés sur des cartouches non réinscriptibles. Par conséquent, afin de remplacer le jeu qui y est stocké, vous devez les ouvrir, retirer la puce de mémoire et la remplacer par une autre puce de mémoire, sur laquelle la ROM de votre jeu est chargée. Cette solution vous permet de créer des jeux de toute taille. Mais en tant que collectionneur de jeux, je ne voulais pas détruire les cartouches Game Boy existantes pour la production de mon jeu.


Un exemple de modding de carte. Une nouvelle puce mémoire avec un jeu homebrew est soudée dans une vieille cartouche

2) Propre cartouche


La deuxième option consiste à créer une nouvelle cartouche à partir de zéro. Comme je ne suis pas un expert en électronique, j'ai commencé à rechercher sur Internet des personnes capables d'assembler des cartouches Game Boy. Après plusieurs tentatives infructueuses, j'ai eu la chance de trouver Catskull. Il s'agit d'un assistant électronique incroyable, il crée et vend beaucoup d'équipements liés à Game Boy dans son magasin d' électronique Catskull . Entre autres choses, il a développé un appareil pour connecter Gameboy à l'interface MIDI, qui permet aux musiciens d'utiliser le Game Boy avec de vrais instruments et synthétiseurs. Il a également développé sa cartouche Game Boy. Tout a été refait pour cette cartouche: la carte de circuit imprimé, les puces, les coques, même les autocollants et les nouvelles pièces - rien n'a été pris des jeux précédents. C'était la solution parfaite pour moi.


PCB original conçu par Catskull que j'ai utilisé pour Sheep It Up!

Mais tout s'est encore amélioré: après une courte correspondance, Catskull m'a dit que je voulais depuis longtemps créer une société pour éditer des jeux homebrew, et que mon jeu serait une belle opportunité pour ça! Par conséquent, nous avons uni nos forces: je fais du logiciel, il est engagé dans le matériel . La seule limite de cette solution est que seulement 32 Ko peuvent être stockés sur une cartouche Catskull Game Boy . Pourquoi?

Initialement, la console Game Boy était censée avoir accès à seulement 32 Ko de données ROM. Pour créer des jeux de plus de 32 Ko, vous devez parcourir toutes les données de la cartouche, tout en ayant accès à une seule sous-section de toutes les données ROM. Cette méthode est appelée changement de banque : toutes les données ROM sont divisées en banques de 16 Ko chacune, et nous pouvons basculer entre elles à tout moment (avec certaines restrictions). Cependant, pour effectuer le changement de banque, la cartouche doit avoir une puce supplémentaire : «Memory Bank Controller» (MBC). Il existe plusieurs puces (MBC1, MBC5, etc.) qui augmentent la taille de la ROM, vous permettant d'utiliser la RAM pour enregistrer des jeux alimentés par batterie, etc. Malheureusement, il n'existe pour le moment aucune solution toute faite pour créer de nouvelles cartouches avec une telle puce à partir de zéro.

Par conséquent, les personnes qui créent des jeux homebrew supérieurs à 32 Ko utilisent généralement le modding de carte pour utiliser la puce MBC de l'ancienne cartouche Game Boy, qu'ils «recyclent». Une autre solution consiste à acheter de fausses copies de vrais jeux Game Boy, suivies d'un clignotement. Il y a de nombreuses années, les fabricants chinois ont appris à «cloner» une puce MBC pour créer des copies piratées de grands jeux comme Pokemon . Et comme ces cartouches piratées utilisent des puces EEPROM au lieu de puces ROM d'anciens jeux, elles peuvent généralement être «reflashées» pour remplacer le jeu stocké sur la cartouche. Pour ce faire, utilisez un enregistreur flash à cartouche tel que le Joey de BennVenn . Plusieurs jeux homebrew supérieurs à 32K ont utilisé cette approche.


Une cartouche pirate fabriquée en Chine. Vous pouvez le reflasher en y écrivant votre jeu, mais certains autres ne peuvent pas être reflasher (plus à ce sujet ici )

Pour faire Sheep It Up! Je voulais créer des cartouches complètement nouvelles pour éviter de détruire les jeux Game Boy originaux. J'ai eu beaucoup de chance de m'unir à Catskull, qui produit ses propres cartouches, malgré le fait que j'ai dû me limiter à 32 Ko de mémoire partagée.

Cartouches de cuisson!


Alors, comment fabriquez-vous vos propres cartouches? J'ai demandé à Catskull de prendre des photos des étapes d'assemblage de chaque cartouche. Comme vous pouvez le voir, chaque cartouche est assemblée manuellement:

1) La carte de circuit imprimé est insérée dans le matériel.


2) Un pochoir en acier inoxydable est appliqué sur la carte de circuit imprimé pour appliquer la pâte à souder. Cette pâte vous permettra de souder la puce mémoire à la carte.


3) Habituellement, je fais des lots de 18 à 20 cartouches à la fois. La pâte à souder a déjà été appliquée à ce lot.


4) Je sais sélectionner manuellement les condensateurs et résistances et les placer sur les cartes. Ensuite, je mets des puces flash sur chaque carte.



5) Les planches sont disposées sur la grille du four de refusion. Nous «cuisons» littéralement chaque carte pour y souder une puce. Maintenant, je peux prendre chacune des cartes et écrire la ROM du jeu sur la puce mémoire.



6) Ensuite, la carte est insérée dans la coque de la cartouche de jeu avec un bel autocollant réalisé sur une imprimante professionnelle.



7) Après un contrôle approfondi de la cartouche sur du matériel réel, le jeu est prêt à être envoyé au joueur qui l'a commandé!

Réalisation d'un rêve d'enfance


Après toutes ces informations techniques, je voudrais partager un sentiment plus personnel sur ce que ce projet signifie pour moi. Afin de comprendre le contexte, je vous conseille de regarder la vidéo la plus inspirante de ma montre «Réaliser vraiment vos rêves d'enfance» de Randy Posh. Je vous recommande fortement de le voir. C'est une grande leçon sur la façon de percevoir la vie avec un sentiment de miracle, même dans les jours les plus difficiles. Pour vivre une vie pleine, Randy Posh suggère d'essayer de réaliser les rêves des enfants et d'aider les autres à les réaliser.


Au sommet de ma liste personnelle de rêves d'enfance se trouvait la création d'un jeu vidéo pour la Nintendo Game Boy. Game Boy a été ma première console de jeux vidéo, et elle occupera toujours une place importante dans mon cœur. Pendant de nombreuses années, je me suis dit qu'un jour je créerais un jeu pour elle. Mais j'ai toujours eu «des questions plus importantes», par exemple, travailler sur un projet qui m'a rapporté de l'argent. Enfin, un jour, je suis tombé sur une confiture de jeux BitBitJam dédiée à la création de jeux pour le fer rétro. Puis je me suis souvenu des paroles du sage Randy Posh: et si au moins une fois j'essayais de terminer un projet sans rien attendre d'autre que la réalisation d'un rêve d'enfance?

Par conséquent, environ un mois avant le début du jam, j'ai commencé à étudier différents outils pour créer des jeux pour le Game Boy. Puis, déjà pendant le jam, j'ai passé une semaine entière (j'ai eu des vacances) pour créer un prototype Sheep It Up! Après le jam, j'ai continué à travailler sur le jeu, à le polir, à l'améliorer, à l'optimiser et à le redessiner ... jusqu'à ce que je sois satisfait du résultat. En attendant, je cherchais des moyens de créer de vraies cartouches pour le jeu. J'ai eu la chance de rencontrer Catskull, qui s'occupait de leur fabrication, et rêvais secrètement de créer ma propre entreprise pour publier des jeux homebrew. Au final, j'ai créé et sorti un vrai jeu pour Game Boy, vendu sur cartouches physiques. Mais pourquoi les cartouches sont-elles si importantes? Ne pourrais-je pas m'arrêter sur la distribution de la version électronique du jeu en ligne, comme le font de nombreux autres développeurs de jeux homebrew?

N'oubliez pas - mon véritable objectif n'était pas la sortie du jeu, mais la réalisation d'un rêve d'enfance. Et dans mon rêve, je pouvais jouer avec une cartouche que je fabriquais moi-même sur un vrai Game Boy , comme ce fut le cas avec tous les autres jeux que j'ai achetés enfant. Voici une vidéo de la façon dont je teste le jeu sur un vrai Game Boy, acheté par mes parents pour Noël, quand j'avais neuf ans:


Comme vous pouvez le voir, la console de mes enfants en a vu beaucoup: de nombreuses colonnes de pixels ne s'affichent plus à l'écran, les boutons sont usés et l'écran présente une énorme rayure verticale. Mais elle travaille toujours. Je ne peux pas exprimer avec des mots les sentiments qui ont surgi pendant le jeu sur la console dans la cartouche créée par ME. Tout ce que je peux dire, c'est qu'en ce moment même de neuf ans, j'étais très fier de l'adulte qu'il était devenu. Et ce sentiment seul était le meilleur résultat que je pouvais obtenir d'un tel projet.


La console fonctionne toujours après 25 ans, et a pu lancer un jeu dessus sorti en 2017!

Je partage un rêve: les avis des joueurs


Donc, créer un jeu principalement pour votre propre plaisir est le meilleur. Mais la joie peut devenir encore plus grande si d' autres personnes peuvent y jouer . À la fin du projet, je connaissais Sheep It Up! s'est avéré être un jeu simple, donc les attentes n'étaient pas très élevées. Mais les retours reçus des joueurs m'ont toujours surpris!

Malgré (ou grâce à) la simplicité du jeu, les joueurs ont beaucoup aimé . Le gameplay est assez simple pour le comprendre en quelques secondes, mais emporte rapidement - "un de plus, le dernier jeu à battre votre record." Soit dit en passant, mon record actuel est de 147 points ! Mais ce que j'aime le plus dans la communauté des rétrogameurs, c'est que l'amour est le principal moteur de la plupart des joueurs. Et cela peut conduire à de curieuses surprises.

Pour commencer, certaines personnes se sont plaintes que le jeu n'était pas à vendre dans une version en boîte. Comme je collectionne les jeux rétro simplement dans des cartouches (pour économiser de l'argent et de l'espace sur les étagères) , au début je n'ai pas pensé à créer une version boîte. Mais maintenant, je me rends compte que ce serait bien d'offrir une telle option aux personnes qui en avaient besoin. Mais l'un des fans du jeu, Cyph, est allé encore plus loin et a créé sa propre boîte de jeu en remodelant la boîte à bijoux de la cartouche Nintendo DS. Je ne sais pas pour vous, mais le résultat me semble étonnant. Si cela vous intéresse, vous pouvez également créer votre propre boîte. Tout ce dont vous avez besoin est de prendre le coffret à bijoux de la cartouche Nintendo DS, de couper deux petites pièces en plastique à l'intérieur et d'insérer cette belle couverture créée par Cyph .


Belle boîte faite maison pour Sheep It Up! créé par Cyph à partir de la boîte de cartouche Nintendo DS!

Un autre détail amusant sur le jeu est qu'il a été démontré lors d'une des plus grandes expositions de jeux vidéo au monde : Paris Game Week (300 000 visiteurs - plus qu'à l'E3 et au Tokyo Game Show) . Comment un jeu amateur sorti pour Game Boy est-il arrivé au même spectacle avec les derniers jeux AAA de l'industrie? Pour cette opportunité, je remercie OrdiRetro . Il s'agit d'une association française dédiée à l'histoire des jeux vidéo, en particulier les nouveaux jeux sortis pour les anciennes consoles et ordinateurs. Lors de cette exposition, ils avaient un stand avec plusieurs jeux. Grâce à mon ami Julian Alvarez, ils ont découvert le jeu et m'ont proposé de me montrer à l'exposition.


Sheep It Up!, Lancé sur Super Game Boy pendant la Paris Game Week 2017 - merci, OrdiRetro !

Mais une telle opportunité peut se présenter sans la présence de liens. Immédiatement après la sortie, le jeu a été acheté par deux fans de Game Boy en Allemagne engagés sur le site DMGpage . Mais ils ont non seulement acheté le jeu, mais l'ont également montré lors de la conférence des rétrogameurs de Retro-Börse en Hesse. Donc, grâce à deux fans de Game Boy, les joueurs ont réussi à jouer mon jeu sur le Super Game Boy et à la conférence allemande - je leur en suis également très reconnaissant!


Sheep It Up! présenté sur Super Game Boy lors de Retro-Börse en Hesse - merci, DMGpage !

Conclusion


Les jeux Homebrew pour consoles rétro ne sont pas faits pour l'argent ou la popularité.Habituellement, très peu de copies sont faites. Vous pouvez espérer un public de plusieurs dizaines de personnes, au mieux quelques centaines si votre jeu est vraiment bon. Mais vous pouvez être sûr que ces gens s'intéressent sincèrement à votre jeu. Ils sont animés par le même amour du fer rétro que vous. Parfois, leur amour peut être encore plus fort que le vôtre. Et si vous avez aimé ces deux parties de l'article sur la création d'un jeu pour Game Boy ces jours-ci, pourquoi ne pas essayer de le faire vous-même?

Comme indiqué dans la première partie de l'article, Il existe de nombreux outils faciles à utiliser pour créer des jeux pour la console portable la plus populaire de l'histoire. Oui, cela ne vous aidera pas à devenir riche, mais vous obtiendrez beaucoup de plaisir en conséquence. Ou peut-être pouvez-vous aussi faire plaisir à d'autres personnes jouant à votre jeu!


J'espère donc que vous avez aimé ce post mortem et qu'il vous encouragera à développer un jeu rétro. De plus, si vous avez un Game Boy quelque part, n'oubliez pas que vous pouvez acheter une merveilleuse cartouche Sheep It Up pour seulement 15 $ sur les jeux Catskull. Chaque cartouche est assemblée à la main!

Source: https://habr.com/ru/post/fr418193/


All Articles