Making a Game Boy game in 2017: A "Sheep It Up!" Post-Mortem (part 1/2)

Dec. 7, 2017
protect

Everyone has childhood dreams. Mine was to make a game for my first console: the Nintendo Game Boy. Today, I fulfilled this dream, by releasing my first Game Boy game on a actual cartridge: Sheep It Up!

In this article, I'll present the tools I used, and some pitfalls a newcomer like me had to overcome to make this project a reality! Due to it's length, this article will be split in two parts:

 

The game

"Sheep It Up!" is an arcade game where a sheep has to climb up by hanging himself to flying velcro straps. The concept is simple, but the game rapidly gets quite challenging: how high can you climb without falling down?

Sheep It Up! gameplay

As a game collector myself, I wanted this game to be produced without sacrificing any vintage Game Boy titles. So everything is manufactured specifically for this game: the pcb, the rom, the shell, the protective case and even the sticker! We also tried to keep the price reasonable, so everyone can enjoy the game: $15 (+shipping). It will run on any Game Boy model, from the first one to the GBA SP, including the Super Game Boy.

If you still own a Game Boy, you can buy a cartridge on the publisher website:

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

 

The tools : thanks 2017!

In the 90's, creating game for a 8-bit game console was a real challenge, and required a team of highly trained professionals. Designers, artists and developers from this era are real heroes to me: to be able to produce such wonderful games with the limited tools they had compared the ones we have today.

In 2017, it's still a lot of work to make a game for a 8-bit console. But, thanks to the wonderful homebrew communities, we now have a lot of tools to make our life easier! Without them, an hobbyist like me could never be able create a Game Boy game on his own. So, what are those tools?

For starter, the programming language. Back in the day, all dedicated gaming hardware was programmed in Assembly. It's still possible (and even recommended) to use Assembly today. But it's no longer the only option, as many devkits for 8-bits and 16-bits consoles are based on the C programming language. For the Game Boy, this awesome tool is called Game Boy Developers Kit (GBDK).

Then, to make art and level design, you no longer need to use graph paper and a hand scanner. Hopefully, you can now use two complementary piece of software:

  • Game Boy Tile Designer (GBTD). It will allow you draw sprites and tiles, and to export them in a binary format that can be read by a Game Boy.

  • Game Boy Map Builder (GBMB).  This one will let you build level and background image using the tiles drawn with GBTD (it's kind of like Tiled, but for Game Boy).

Last but not least, we also need a way to test our game. This is where modernity is key. While in the 90's developers had to use expensive ICE boxes, today we have powerful software emulators that can run on any computer. To test your own game, the best choice is BGB. It's a very accurate Game Boy emulator that comes with a powerful debugger, the one tool you'll need to create a working game!


The game is in top-right corner, all the other scary windows are the various debugger tools!

But to be really sure your game is working, you will also need to test it on real hardware. In the 90's, people were burning their program on a EPROM chip, and used some special cartridges to plug this chip into an actual Game Boy. While efficient, it was quite a lengthy and expensive process. Today, we have what are called "Flashcarts": cartridges where you can plug a SD card with your game ROM to play it on an actual Game Boy. The idea is the same, but the tools are more easily accessible and faster to use. Several Game Boy Flashcarts exists, but the best one is arguably the one built by Krikzz: The Everdrive Game Boy. A newer and improved model was released this summer, but I used the old version that I bought some time ago.

   
A flashcart from the 90's vs one from the 2010's

Despite these great tools available in 2017, making a game today for a 1989 game console is still a challenge. Especially for people who have been trained to use "modern tools", such as Unity, Unreal Engine or Godot. Here are the main challenges I faced during the development of Sheep It Up!, including the things that surprised me about how a Game Boy is actually working.

 

Technical challenges

Size limitation

Let's start with the obvious one: Sheep It Up! is a rather simple game. One factor that explains this fact is that the whole game weights only 32KB. Yup, the code, the images, and even the sounds are all fitting in a tiny 32KB space. To give you a point of comparison, 32KB is the size of the Wikipedia logo in a very tiny resolution:

                    
           Full Game: 32KB                            160x146px (PNG-24): 32KB 

Of course, not every Game Boy game fits in 32KB. For me, it was a technical limitation to be able to release the game on an actual cartridge (more details in part 2). The best and most famous Game Boy titles are actually way larger than that :

  • Pokemon Red / Blue are 1024KB (so huge!)

  • Wario Land and Zelda Link's Awakening are 512KB

  • Kirby Dream Land is 256KB

  • Gargoyle's Quest is 128KB

In reality, few Game Boy titles are only 32KB. Most of them are from the early life of the console. For example, both Alleyway (one of the Game Boy launch title in Japan) and Tetris (launch title in US and Europe) are 32KB games. These are both excellent titles, but due to their tiny cartridge space, they are also somewhat "limited" in scope: single screen, few different graphical and audio assets, etc.

      
Alleyway and Tetris are 32KB games, like Sheep It Up!

CPU: playing with Portable Power!

The Game Boy is powered by a 4MHz CPU, custom built for the console (it's a mix between Zilog's Z80 and Intel's 8080 processors). All in all, Gameboy processing power is comparable to a NES, and even a bit more powerful due the reduced screen size and colors to display (more on that latter). Despite a mere 4Mhz speed, all the Game Boy games are displayed in

JikGuard.com, a high-tech security service provider focusing on game protection and anti-cheat, is committed to helping game companies solve the problem of cheats and hacks, and providing deeply integrated encryption protection solutions for games.

Read More>>