Unity is great, and its ability to let anyone make anything and push it to any platform is a very important part of diversifying the industry.

However, there’s a lot to be said for working under restrictions. I feel that this is when true creativity shows itself.

The Game Boy was a very important step in gaming. It was highly innovative and incredibly influential. It was also heavily limited in its abilities. The Game Boy Color came out as a response to one of these (lack of color), and this led to some very creative thinking.

Let’s take a look at Magi Nation.

Released in late 2000, the aim of the franchise was to capitalize on Pokémon’s success. Card game, anime, video game, the parts were all there, and I don’t know why it didn’t take off.

The developers of the videogame did a lot with what they had, and it shows. Here’s a basic sprite of the game’s protagonist, Tony Jones:

What’s so special about this? For one thing, the Game Boy could only handle up to 8x16 pixels per tile, and this little guy’s 16x24. The software handles this as six different sprites, each sized at eight pixels by eight, and every time Tony moves, those eight are changed independently but kept together in a cohesive whole:

Each tile can only store four colors, and one of those colors is reserved for transparency (so you can see the background under the sprite), leaving us practically with three colors.



For example, his hair never overlaps with his torso, so they can use that palette entry for shirt color, and neither hair nor shirt nor hands overlap with his legs, so they can use brown and grey instead of red and pink.



Tony’s face breaks this rule:

Those clever devs made Tony blond so they could double up on the fourth color: flesh tone and hair highlights.

Here’s an example of tile storage and switching, using BGB’s VRAM Viewer tool:

Let’s break down what we see here: About a sixth of the video ram is used up by Tony, and another sixth to another NPC with a comparable art breakdown.

The bottom third is full of background tiles which each get used multiple times, as seen a bit later on.

About two lines in the right half are dedicated to individual letters. Interestingly, to save space, only the letters that are needed for a text entry are written to VRAM, and these same tiles are used over and over for each entry. Often letters that are used multiple times in one entry will only be represented once here but drawn to the screen as many times as needed.

Under the text are the several tiles that make up Tony’s face during speech, and below that a rare buffer of blank tiles.

Below the gray NPC tiles are some tiles left over from a fight simulation and haven’t been re-purposed yet.

Just below that is a (by now) ancient grouping of tiles left over from the initial splash screens, specifically the MusyX audio playback tool the game uses.

In the background layer, the zone is too big for the game’s video ram storage. Let’s watch what happens when Tony runs his view rectangle off the area of already-loaded background tiles:

As the software needs them, it’s re-purposing old tiles and drawing the new ones in. Turn around and run the other way, and the game draws the old ones back. Pokémon does a lot of this, as you can generally walk from town to town without having to stop and load new area data.

That’s pretty cool!