How to make Games for Gameboy

The Nintendo Gameboy may be over 30 years old, but it’s far from dead. This is the master page for my “How to make a gameboy game” tutorial series. I’m going to break down the gameboy game creation process into multiple high-level steps. Each step will have it’s own tutorial page. Also, each step will be included on this master page for easy access. I hope you find this series helpful and interesting.

Quick Background

In around February of 2021 I started learning how to make a Gameboy game. Major credit goes to GBDK 2020, and Gaming Monsters on YouTube. GBDK 2020 is “An updated version of GBDK, A C compiler, assembler, linker and set of libraries for the Z80 like Nintendo Gameboy.” It allows developers to create Gameboy games in C, rather than Assembly. I do not personally know Gaming Monsters on YouTube, but he produced a very helpful “Learn how to develop your own gameboy games” playlist. I still reference that playlist to date.

NOTE: Jack Tech has an interesting video about the Gameboy on YouTube. In their video, they also go over the complexity of programming in Assembly.

I’m not an guru at how to make a Gameboy game. But I have learned SOME things in my time, that I feel might help others. With that said, let’s get started shall we?

Who else is making Gameboy games?

You might think you’re alone when it comes to making games for the gameboy. However, that is far from true. There are many individuals who are developing games for retro consoles. This isn’t just for gameboy. People are still making games for NES, SEGA, Dreamcast, and more. I hope to review and feature some gameboy game developers on The Junkyard.

If you have made any Gameboy games, please feel free reach out to [email protected] regarding being listed.

The Basics

These 5 basic tutorials are going to teach you the basics of making gameboy games with GBDK and the C programming language. If you are not familiar with C, there are some basic tutorials here: https://gbdk-2020.github.io/gbdk-2020/docs/api/docs_coding_guidelines.html#docs_c_tutorials

Firstly we’ll get started with a minimal template, and teach you how to compile your gameboy .gb file. Next, you will learn how to use backgrounds, which take up the whole screen and move as a whole. Thirdly, you will learn how to use sprites. These 8×8 or 8×16 objects can move around freely as individuals. Sprites can even be combined to represent bigger objects. Once you have a sprite on screen, you will learn how to move that sprite around using joypad input. Finally, you’ll learn how to play music and sound effects.

Those 5 steps should get you started on the gameboy game development process.

#1. Getting Started with 2020 GBDK

Getting started with the 2020 gbdk.In this first tutorial you will get your computer setup and ready for Gameboy game development. This is required before we can get into gameplay mechanics or Gameboy GBDK concepts.

Check out Getting Started With 2020 GBDK

With your basic project setup, now we move onto actually doing things with our gameboy. This includes drawing & moving backgrounds and sprites, handling input, and playing sounds. If you want to better understand what goes into a minimal GBDK 2020 project, check out Looking at a minimal GBDK 2020 Project

#2. Drawing on the Background and Window Layers

How to show a background in gbdkEvery game needs graphics. The next step in this tutorial is to show a background. Part 2 will extend from the minimal template used in Part 1.  Besides during gameplay, backgrounds can be used as splash screens, large bosses, and even for menus.

Check out Drawing on the Background and Window Layers

 If you you want to take a deep dive into graphics on the gameboy, check out Gameboy Graphics: The Background, Window, and Sprites

#3. Drawing & Moving sprites in Gameboy Games

Drawing and Moving Sprites in GBDKAlong with backgrounds, every game needs sprites. These sprites can move around freely. Part 3 will extend the minimal template used in Part 1.

Check out Drawing and Moving Sprites in Gameboy Games

Now that you’ve learned about both sprites and backgrounds, maybe you’re interested in how they are stored. If that is the case, check out this post on  Sprites and Backgrounds in GBDK 2020 . Otherwise move onto step 4: Handling Joypad Input.

#4. How to handle Gameboy joypad input

How to handle joypad input in GBDKPlayer input is an important part of games. It’s what separates games from videos. In step 4, we are going to draw a sprite to the screen and give the player control over that sprite.

Check out How to handle Gameboy Joypad input

#5. How to play a sound on Gameboy Hardware

How to play sounds in GBDKGames would not be complete without proper sound. Good sound & music bring games to life. In this final part, we are going to go over how to play basic sounds in GBDK. This step will build on Part 4. Once you’ve completed this step, you’ll be ready to make ACTUAL gameboy games.

Check out How to play a sounds on Gameboy Hardware

How to make ACTUAL Games

Everything up until now has been very generic. This is intentional. There is a lot of knowledge that isn’t specific to any one game or genre. However, below will be Sub-Tutorials that build upon this knowledge. These tutorials will focus around specific popular games.

Space Invaders Tutorial for Gameboy

How to make space invaders for gameboy.
Space Invaders is a classic video game. It’s simple, but fun mechanics have entertained many generations on virtually every gaming platform. In this tutorial, we’ll remake the black and white Gameboy version of space invaders. This tutorial utilizes The C programming language and GBDK 2020. If you are not familiar with GBDK-2020, check out my other...

How to make Flappy Bird for the Nintendo Gameboy

How to make flappy bird for gameboy.
Flappy Bird was a popular hyper casual mobile game released in 2013 by Vietnamese video game artist and programmer Dong Nguyen. Flappy Bird is a simple side-scrolling game where the player controls a yellow bird. The objective is to fly as far as possible. During such, random set’s of green pipes will attempt to obstruct...

How to make Pacman for Gameboy

How to make Pacman for Gameboy
In this tutorial you will learn How to make Pacman. It will be based around a “starter repository“, which will have all files, variables, and method declarations already created for you. If you want to see the completed version, the source code is also on github here: https://github.com/LaroldsJubilantJunkyard/pacman-gameboy This tutorial may look very large, but...

Brick Breaker Tutorial for Gameboy

Brick Breaker Tutorial for Gameboy
Brick Breaker is a classic arcade game, and excellent beginner project. This break breaker tutorial is part of my Re-Creating popular Games for the Gameboy tutorial series. In this tutorial, you’ll use the 2020 Gameboy Development Kit (GBDK 2020) and the C Programming language to recreate the classic Bricker Breaker Game: Alleyway. If you are...

How to make Tetris for the Nintendo Gameboy

How to make tetris for gameboy
Tetris is an iconic puzzle game. Players must position and rotate “tetrominos” to avoid overfilling the playing area. This is going to be a sub-tutorial for the How to make a Gameboy Game in 2021 series. A lot of it’s content will build upon that original series. The topics covered in that series are generic....