Zo maak je een echte Game Boy Advance-game met AI (en speel je hem op echte hardware)
Ook in: English · Español · Deutsch · Français · Português · Italiano · Svenska · Norsk · Bahasa Indonesia · Türkçe · Polski · Tiếng Việt · Русский · 日本語 · 한국어 · 繁體中文
Om een Game Boy Advance-game met AI te maken, open je Shiny Gen (in een browser op shinygen.ai/play, of de app op iPhone, iPad en Android), begin je een nieuwe game, kies je de GBA-engine en beschrijf je de game die je wilt. De AI-agent schrijft de game, compileert hem tot een echte GBA-cartridge, speelt hem om bugs te vinden en te repareren, en jij downloadt de .gba-ROM, waarvoor één willekeurige aankoop nodig is, vanaf een starterspakket van $2.99. De ROM draait in GBA-emulators en via een flashcart op een echte Game Boy Advance.
Deze gids loopt het stap voor stap door, en behandelt daarna welke soorten games goed werken, de eerlijke beperkingen en de vragen die mensen het vaakst stellen.
Wat de GBA-engine is
De GBA-engine is een engine die we zelf hebben geschreven en die nieuwe games compileert uit je prompt. Het is geen emulator en geen ROM-lader: de GBA-, GBC-, N64-, GameCube- en DS-engines compileren games die je in Shiny Gen maakt, en kunnen geen commerciële ROMs of ROMs van derden spelen.
Je game is geschreven in een kleine C-achtige taal (het bestand is main.sgba). Shiny Gen compileert hem op je eigen apparaat naar ARM-machinecode, stopt je art en geluid in de cartridge en speelt die cartridge. Er is geen aparte previewbuild: de game die je in de app speelt, is de cartridge zelf.
Wat je nodig hebt
- Een moderne browser, of de Shiny Gen-app uit de App Store of Google Play.
- Een gratis Shiny Gen-account. Nieuwe accounts beginnen met gratis edelstenen, en dat is wat de AI uitgeeft.
- Om de ROM te downloaden: één willekeurige aankoop, vanaf een starterspakket van $2.99.
- Om op echte hardware te spelen: een Game Boy Advance en een GBA-flashcart. Emulators hebben verder niets nodig.
Stap voor stap
1. Begin een nieuwe game en kies de GBA-engine
Druk op de knop +. Kies onder Agent in de app voor Nieuw. Het volgende scherm vraagt je: Kies een engine: kies GBA-engine.
Er opent een nieuwe GBA-game in de editor. Die begint expres als lege cartridge, met een lege init() (draait één keer) en frame() (draait zestig keer per seconde), zodat de agent bouwt wat jij beschrijft in plaats van een sjabloon aan te passen waar je niet om vroeg.

2. Beschrijf de game
Open het tabblad Agent onderaan in de editor en typ wat je wilt in de weergave Chat. Een nuttig eerste bericht zegt wat voor game het is, wat de speler doet, de bediening (de GBA heeft een D-pad, A, B, L, R, Start en Select), het doel en het uiterlijk.
Bijvoorbeeld: "Maak een top-down avontuur op de GBA. Een vos verkent een bos, praat met dorpelingen in tekstvakken en verzamelt vijf lantaarns. D-pad om te lopen, A om te praten, Start om te pauzeren. Sla de voortgang op als de speler uitrust bij een kampvuur."
Met de knop naast het invoerveld kies je het model, en de ingebouwde agent wordt in edelstenen afgerekend op werkelijk gebruik.
3. Kijk hoe de agent hem bouwt en test
De agent weet dat hij aan een cartridge werkt. Hij leest de taalreferentie voor de GBA, schrijft de code en bouwt hem. Als de build mislukt, zegt de compiler wat er mis is en waar (regel, kolom en wat je in plaats daarvan moet schrijven), en de agent repareert het. Daarna speelt hij de game zelf:
- Start de cartridge en leest het buildrapport, inclusief hoe vol de cartridge is.
- Maakt screenshots van het scherm van 240 x 160 om te controleren wat er echt getekend wordt.
- Drukt op de knoppen (A, B, L, R, Start, Select en de D-pad) om te spelen wat hij gebouwd heeft.
- Leest waarden terug die de game doorgeeft, zodat hij kan zien dat de held bewoog of de score omhoogging in plaats van te gokken.
- Repareert wat kapot is en gaat opnieuw.
Hij kan ook de art en het geluid maken: sprites, achtergronden en muziek, die op naam in de cartridge komen. Assets genereren kost edelstenen.
4. Pas hem aan door ermee te praten
Als de eerste versie draait, ga je verder in dezelfde chat. Kleine, specifieke verzoeken werken het best: "Voeg een titelscherm toe", "Maak het tweede gebied een grot met donkerdere kleuren", "Het tekstvak blijft open als ik wegloop; sluit het." Zeg wat je zag in plaats van naar de oorzaak te gissen; de agent kan het nadoen door de game te spelen.
Je kunt ook de weergave Code openen en main.sgba zelf bewerken. Code met de hand bewerken kost niets, en een build zet de nieuwe cartridge erin zonder dat je je save kwijtraakt.
5. Speel hem in de app
De game speelt meteen in de editor en vanaf de kaart van je game. Op een telefoon of tablet staan de knoppen op het scherm: een D-pad links, A en B rechts, en L, R, Start en Select eromheen. Op een computer speel je met het toetsenbord: pijltjestoetsen, Z voor A, X voor B, A en S voor L en R, Enter voor Start en Shift voor Select. Een gamecontroller werkt ook, en je kunt de knoppen ervan anders indelen in de controllerinstellingen.
De game slaat op in zijn eigen batterijsave, zoals een cartridge dat doet, dus je kunt weggaan en terugkomen waar je was.

6. Download de ROM
Druk op Delen en dan op Export .gba ROM. Voor exporteren is één willekeurige aankoop nodig, vanaf een starterspakket van $2.99; elke eigenaar ziet de knop, en zonder aankoop brengt hij je in plaats daarvan naar de winkel. De knop staat er bij games die van jou zijn.
Voordat je het bestand krijgt, bouwt Shiny Gen de cartridge opnieuw als er iets veranderd is, start hem dan in een verse emulator en controleert dat hij opkomt. Je krijgt een .gba-bestand met de naam van je game. De ROM opent met een kort Shiny Gen-startscherm, en je save zit er niet in, dus een kopie die je aan iemand geeft, begint opnieuw.
Waar het bestand terechtkomt, hangt af van het apparaat: een gewone download in een browser, en het venster Bewaar in Bestanden in de app voor iPhone en iPad. De Android-app kan het bestand nog niet opslaan; open de game op shinygen.ai in een browser op je telefoon of computer om het te downloaden, en daarvoor is dezelfde ene aankoop nodig.

7. Speel hem op echte hardware
Een flashcart is een GBA-cartridge met een sleuf voor een geheugenkaart in plaats van één vaste game. Je kopieert ROM-bestanden naar de kaart, en de cart toont er een menu van als de console aangaat. We hebben ROMs die zo gemaakt zijn gespeeld op een echte Game Boy Advance en een Nintendo DS Lite, saves inbegrepen.
De algemene stappen (de handleiding van je cart heeft de precieze):
- Kopieer het
.gba-bestand naar de SD- of microSD-kaart van de cart. Sommige carts hebben eerst ook hun eigen systeembestanden op de kaart nodig. - Stop de kaart in de cart en de cart in de Game Boy Advance.
- Zet hem aan en kies je game uit het menu van de cart.
Sommige carts vragen per game om een savetype. Onze ROMs gebruiken saves van 128 KB (1 Mbit) flash en zeggen dat in de ROM zelf, en zo herkennen flashcarts en emulators het meestal vanzelf. Als je cart erom vraagt, kies je 128 KB of 1M flash. Saves werken dan op de cart zoals op een originele cartridge.
Om zonder hardware te spelen, kan elke GBA-emulator het bestand openen: bijvoorbeeld mGBA op een computer of Delta op een iPhone.
Welke soorten games goed werken
De GBA-games in onze catalogus laten zien wat er kan. Je kunt ze allemaal gratis in de browser spelen, en ze stuk voor stuk remixen tot je eigen kopie om met de agent aan te passen:
- RPG's waarin je monsters verzamelt: Shiny Monsters Advance, met een stadje, tekstvakken en monstergevechten. Hij ruilt en vecht via internet monsters met de andere Shiny Monsters-games.
- Racen op een draaiende "Mode 7"-vloer: Shiny Kart Advance, acht racers op drie banen.
- Arcade: Shiny Pinball, een flipperkast in de ruimte.
- Actie en overleven: Shiny Swarm, waarin wapens vanzelf vuren en jij standhoudt tegen golven vijanden.
- Kleine, rustige games: Spark Garden en Ember Courier.

Over het algemeen werken games die bij de machine passen het best: top-down avonturen en RPG's, platformgames, puzzelgames, shooters, racen op een draaiende vloer, en alles wat uit tiles en sprites bestaat. De engine ondersteunt scrollende lagen, sprites die draaien en schalen, doorzichtige effecten, tekstvakken, muziek en geluidseffecten.
Beperkingen
De GBA-engine heeft dezelfde grenzen als de echte machine, en een paar dingen zijn nog niet gebouwd:
- De grenzen van de machine zelf. Een scherm van 240 x 160; tot 128 sprites tegelijk, elk maximaal 64 x 64 pixels; kleuren in paletten van 16; 256 KB werkgeheugen voor de data van je game. Er zijn geen drijvendekommagetallen, dus posities gebruiken vastekommagetallen. Elke build meldt hoe vol elk budget is, zodat je een grens ziet aankomen voordat je hem bereikt.
- Geen 3D. Een GBA tekent 2D-tiles en -sprites. De "Mode 7"-vloer geeft racegames een 3D-uitstraling, maar het is een gedraaide en geschaalde 2D-afbeelding.
- Alleen nieuwe games. Hij kan geen ROM openen of spelen die iemand anders gemaakt heeft, en je kunt geen ROM importeren om te bewerken.
- Nog geen linkkabel op hardware. Ruilen en gevechten tussen de Shiny Monsters-games werken via internet binnen Shiny Gen. Spelen via een echte linkkabel tussen twee consoles is niet bewezen, dus dat beweren we niet.
- Saves blijven bij jou. De ROM bevat je voortgang niet, en Shiny Gen bewaart je save uit de app in je account.
- Downloaden vereist een aankoop, en de Android-app kan het bestand nog niet opslaan. Voor het exporteren van de ROM is één willekeurige aankoop nodig, vanaf $2.99; op Android download je hem in een browser.
De andere retro-engines
GBA is een van de vijf retro-engines die we geschreven hebben, en ze werken allemaal hetzelfde: kies de engine, beschrijf de game, en de agent bouwt en test hem. GBC maakt een Game Boy Color-ROM, N64 een N64-ROM, GameCube een .dol-bestand en DS een .nds-bestand met twee schermen, en voor het exporteren van elk ervan is dezelfde ene aankoop nodig, vanaf $2.99. Wil je liever een moderne 2D- of 3D-game, dan is de Godot-engine de zesde keuze op hetzelfde scherm. Zie hoe Shiny Gen zich verhoudt tot andere AI-gamemakers.
Veelgestelde vragen
Kan AI een Game Boy Advance-game maken?
Ja. In Shiny Gen kies je de GBA-engine en beschrijf je de game; de AI-agent schrijft de code, compileert een echte GBA-cartridge, speelt hem met de knoppen om bugs te vinden en repareert ze. Je kunt de .gba-ROM na één willekeurige aankoop, vanaf $2.99, downloaden.
Is het een echte GBA-ROM?
Ja. Het is een standaard .gba-cartridge-image, gecompileerd naar ARM-machinecode, met een geldige cartridge-header. Shiny Gen start elke ROM in een verse emulator voordat je hem krijgt, en we hebben deze ROMs, saves inbegrepen, gespeeld op een echte Game Boy Advance en een DS Lite via een flashcart.
Kan hij Pokemon of andere commerciële ROMs spelen?
Nee. De GBA-engine is geen emulator en geen ROM-lader. Hij compileert nieuwe games die je in Shiny Gen maakt en kan geen commerciële ROMs of ROMs van derden spelen.
Moet ik kunnen programmeren?
Nee. Jij beschrijft de game en de agent schrijft en test de code. Als je wilt, kun je de code lezen en bewerken in de weergave Code; met de hand bewerken kost niets.
Mag ik een GBA-game die ik gemaakt heb verkopen?
Ja. Wat je maakt is van jou, en Shiny Gen neemt geen deel van de opbrengst (Servicevoorwaarden, artikel 4). Je mag het ROM-bestand zelf verkopen; voor exporteren is één willekeurige aankoop nodig, vanaf $2.99.
Op welke apparaten werkt de ROM?
GBA-emulators, zoals mGBA op een computer of Delta op een iPhone, en echte hardware via een flashcart. We hebben hem getest op een Game Boy Advance en een Nintendo DS Lite, saves inbegrepen, en hij zou moeten werken op elke console of handheld die GBA-cartridges speelt, zoals de Game Boy Advance SP.
Welk savetype kies ik op mijn flashcart?
128 KB (1 Mbit) flash. De ROM geeft het aan, dus carts en emulators pikken het meestal op zonder te vragen.
Is het gratis?
Games maken, spelen en delen is gratis. AI-generatie en de ingebouwde agent gebruiken edelstenen, en nieuwe accounts krijgen gratis edelstenen. Voor het downloaden van de ROM is één willekeurige aankoop nodig, vanaf een starterspakket van $2.99. Het volledige overzicht staat op de prijspagina.