My son Otis wants me to help him make a video game. When he says “we should make a game”, he means “me” because despite a lot encouragement from his parents he hasn’t shown interest in coding classes. I also have a lot going on with the whole “starting a company” deal, so I was hesitant to pick up another big project… but he’s persistent and I’ve been in the mood to make a video game.
We sat down one evening to write out a game design document. After capturing the who, the what, the when, the where, and the “how it’s fun” we had a rough idea for an open world 3D game that was like Breath of the Wild but Link is a dog and it has online co-op.
A summary of our scope document:
- Who: Dog and Cat
- What: Walk around in a 3D open world, get weapons to fight bad guys, find items and easter eggs, solve puzzle, get money to spend at a shop and buy potions, and there are NPCs that are animals and have dialog.
- When: Fantasy realm: kings, queens, knights.
- Where: On an island with 5 biomes (forest, water, fire, stone, swamp) that have dungeons and three towns (Opal, Flint, Amethyst)
- How is it fun? You get to touch virtual grass: you explore, you fight, you find stuff.
It’s a variation on a game that he’s been brainstorming with his friends for at least three years called “Bubbles and Meep”, but this time the heroes are our actual dog and cat “Rudy and Moogs”. I suspect this was a change he made to get executive buy-in. But I had to crush his dreams and say “No.” I was
brutally honest radically candid with him that game would be done in about 5 years. I bear the shame of not meeting the impossible dad standards set forth by super-parent Bandit Heeler, but there’s no way I have enough spoons to code Breath of the Wild by myself.
However, my son —a natural born middle-manager— had effectively nerd sniped me. I spent a couple nights watching videos on how to make open world games in Unity. It seemed like a lot of effort to get an open world game in Unity to work. I had just about thrown in the towel on this whole project until…
Last week I read a great editorial article on the GitHub blog called “Open source is democratizing video game development”. They listed off a bunch of open source game development frameworks, some I’ve used before like Phaser, but what stood out to me was a mention of a “drag n’ drop” app called GB Studio for making Gameboy games. Not just pixel art games, but actual games that can run on an actual Nintendo Gameboy.
Okay. I’m interested.
I downloaded GB Studio and tinkered around with the sample project a bit. Using the “parts” provided in the sample project, I wired up a prototype of our game.
If you can zoom-in, you’ll see 5 biomes and 3 towns all wired up. The player character can walk around and traverse between scenes. The character is not a dog yet, but… that should just be a simple sprite swap.
What I learned from the prototype
Piecing together my little sample project, I’ve got a good idea of what’s possible and how long it’s going to take, or —more accurately— how I can accomplish this given the limited resources we have available (my time). If we cut some scope, we might be able to get this done before he’s a teenager.
- 👥 Players
- 🐕 Dog
- 🎮 Gameplay
- 🔎 Find stuff
- 🗡️ Items (x5) → 👹 Bad guys
- 🧩 Puzzles
- 🥚 Easter Eggs (x10)
💰Money → 🛍️ Shops → 🧪 Potions
- 😺 NPCs → 💬 Dialog
- 🔎 Find stuff
- 🌎 World
3️⃣ 3D→ 2️⃣ 2D
- 🌋 Volcano (x1)
- 🏞️ Biomes (x5) → 🐉 Dungeons
- 🏘️ Towns (x3)
Removing the online multiplayer is a massive reduction in complexity. Shelving the loosely defined in-game economy makes the game a lot simpler. And if we surrender the 3D constraint, I’m pretty confident we can make a 2D Zelda-like game that he and his friends can play in a browser or we could load it onto a cartridge that plays in an actual Gameboy.
Going full retro handheld has other advantages: it allows my son to help more in the process. He’s a pretty good pixel artist and MIDI composer, which GB Studio has an awesome (and familiar to him) piano roll composer tool. I should be able to say “draw this” or ask him to riff on some biome/dungeon music tracks. It’d be great if he could put his thumbprint on it.
The hardware constraints of the Gameboy also provide some incredible guardrails against scope creep. 4096 KB max cartridge size constraints, map size constraints, tritone color constraints, number of NPC “actor” constraints, and variable constraints narrow your focus down to what you want the game to do. Each scene of GB Studio has a counter for how many objects you have left. Your graphics can only be three colors (black, white, dark green) and I saw somewhere you only get 132 variables, which is a wonderful forcing function. If a feature is getting too complex, I can say, “We literally don’t have enough variables to make that idea.”
Next step is to add a little more fidelity to the prototype so I can get reverse buy-in from my key stakeholder (my son). That will include small town and biome maps for a simple walkthrough and some single screen dungeons to pick up items that unlock the next area. I think with these main pieces blocked out, we can —as Shigeru Miyamoto says— “get the fundamentals solid first, then do as much with that core concept as our time and ambition will allow.”
If we get a basic map, dungeon, and item progression system then we can move on to how other systems like combat and dialog will work. With those done, then we iterate on each scene (town, dungeon, or overland). We can blow out each scene as we have time and ambition. From a tactical standpoint, if we have a clear idea for a scene, I can throw myself at a single scene per night and I think we stand a chance at finishing this game.
Hopefully, the boss man agrees to the changes.
Here take this…
Some helpful tools, tutorials, and assets that I’ve picked up to help me in this quest.
- GB Studio and their great docs
- Tiled for building out sprite-based backgrounds
- Aseprite for making sprites
- Robert Dorman - Good tutorials on GB Studio.
- Pixel Pete - Good tutorials on creating Gameboy compatible sprites for GB Studio.