Saturday, August 15, 2026

Rules of Retrobility: Tips for Making 8-bit Video Games

THE RULES OF RETROBILITY
Tips for designing games on 8-bit consoles

Want to make your own classic video games? Here are some handy hints from someone who's made a few.

Black is beautiful for backgrounds
You can capture that old-school arcade feel, save resources, and squeeze a free color out of sprites by using black backgrounds. Sparse background details like twinkling stars cost you fewer tiles, while catching the player’s attention.

Show, don’t tell!
Endings and key plot points are better expressed with illustrations and animation rather than text. Few things were more disappointing in the late 1980s than to reach the end of a tough NES game, only to be met with “CONGRATURATION” on a blank screen, instead of a satisfying conclusion.

Maintain control
Tight control is critical when designing a video game. If you’re falling off platforms even with one foot on the edge, or struggling to climb a nearby ladder, you’re not enjoying yourself, and isn’t that the whole point? Make sure movement in your game is both responsive and consistent.

Better physics make better games
Jumps with smooth arcs and convincing gravity make for better looking, better playing games. Don’t skimp on this… when a character stiffly jerks up and down during a jump, players will notice, and they won’t like what they see. Play a Color Dreams game on the NES, then do the opposite of that.

Pretty sneaky, sis!
Tons of shooters, both top down and single screen, make the mistake of having tons of enemies that drop straight down. It’s boring; don’t do this. Making your enemies smarter makes your game more challenging, and rewarding. Try having them move in pre-determined patterns.

Jammin’ with VRAM
When you swap graphics in VRAM rather than directly on the screen, all onscreen objects using these graphics will change. It’s a great way to animate large portions of the screen easily, and make key items stand out from the rest of the playfield.

Less BASIC than advertised
BASIC interpreters in the 1980s were slow and lacking in features. BASIC compilers now are fast, feature-filled, and more than suitable for designing professional quality games for classic consoles. CVBasic is a personal favorite, supporting over a dozen systems and with all the punch an intermediate game designer could need. 

“Just good enough” just isn’t good enough

Presentation is everything in a video game. Well, the gameplay is most important, but presentation is a close second. A merely functional game without any artistic flourish won’t hold a player’s attention for long. Go for the gold with little details! The players will notice.

Broaden your horizons
Extra play mechanics are always welcome in a video game, as long as all the ideas work well together. Giving the player two distinct abilities, rather than one, expands the technique and keeps boredom from creeping in after a few minutes.

Two heads are better than one

Games tend to be more fun and less predictable when two players can play them together. Not all game types lend themselves well to two player action, but arcade games from the 1980s are almost always better when a second player can jump into the action with you.

The palette is your pal
Just because you’ve picked a color palette for your game doesn’t mean you have to stick with all the colors in the palette. Palette swapping is an easy, resource-friendly way to animate onscreen objects. Make power ups glisten by switching between gold and white! Pulse the maze with electric blues!

Every sprite has its place
Early game systems can only hold so many sprites on one horizontal line. Eventually, something will give, and one or more of these sprites will flicker. Keep sprites on separate scanlines to prevent this. Also keep the sprite limits of the target system in mind whenever you set characters onscreen.

Make time for timers
Make an animation variable that counts upward every frame, then returns to zero after six or twelve frames. Every third frame, swap the graphics in VRAM or change palette colors for an onscreen object for a smooth, eye-pleasing animation that doesn’t interrupt the action.

Pick the right tool for the job
Early game systems were restricted by the technology of the time, leading to lopsided designs where a system will excel in one area, but flounder in another. Play to your target system’s strengths, and avoid making games for systems that are ill-suited to them. (Don’t make Doom for Neo-Geo. Just… don’t.)

Code once, test twice
The larger a game gets, the more likely there will be bugs and other issues in that growing pile of code. When coding, save your progress frequently, and playtest JUST as frequently. Also, experiment as you play… go where you shouldn’t go, do what you shouldn’t do. Leave no stone (or glitch) unturned.

Take things piece by piece
Components of a game should be built as separate programs, before being combined. This has two advantages: you can thoroughly playtest each individual program before folding it into the finished game, and you can hold onto specific programs (say, production logos) for later projects.

Everybody loves a show
Intermissions, Coffee Time, cut scenes… you can call them whatever you want, but don’t skip them! Intermissions add personality to your work and expand on the in-game lore. Donkey Kong was hurt when its intermissions were dropped from the home versions. Don’t make the same mistake!

Epilepsy: The choice of no generations
Old-school arcade games tend to be loud and flashy. It’s just the nature of the beast, be it a carnival duck or a flying ostrich or… whatever Q*Bert is. However, do be aware that sensory overload can be overdone, prompting annoyance from some players and seizures from a few.

Can’t beat the real thing
Testing your game on an emulator doesn’t tell you the full story… emulators rarely reproduce the behavior of a game system perfectly, and code that works perfectly well in, say, a ColecoVision emulator may crash an actual ColecoVision. (Trust me, I speak from experience.)

Look beyond yourself
One lesson you learn with age and experience is that you’re not always right. Let others test your work, and pay attention to the advice that they give. Maybe their suggestions aren’t what you want for your game, but then again, maybe they could improve it.

Make a sound investment
Sound is a must for a professional quality game. Sound effects keep the player engaged and add pop to key actions… the creaking of a door, the spring of a jump, the growl of an approaching monster. Also, include music if you’ve got the talent to make it, and room for it on the cartridge!

Best served with a twist

Games like Snake, Pac-Man, and Space Invaders have been done a million times over. Instead of a rote reproduction, take those core concepts and expand on them. Introduce refreshing new ideas to the formula. Example: Eyes is like Pac-Man, but with shooting, and it profoundly changes the gameplay!

Take baby steps
If you’re kicking the tires of an unfamiliar game console, don’t jump straight into designing a game! Get comfortable with the hardware and the development environment first. Make some simple demos, then a more involved program, then the game you wanted to make.

Never underestimate the power of tiles
Sprites (objects that move independently from the background) move more smoothly than background tiles, but tiles are still plenty useful! You can use them to build large characters without flicker. It’s how many of the gigantic bosses in Mega Man were designed.

Ace your sprites
There are a variety of tools you can use for designing sprites and tiles. Some are free and some cost money, but Aseprite is worth every penny. It keeps your art exactly as it will look on the target system, and grids can be dropped to ensure that each tile obeys the rules of the system’s GPU.

I before AI
Resist the temptation to use AI to make games. There’s a world of issues with generative AI, but beyond all that, in what sense is it your game if you make a computer do it for you? Modern BASIC compilers have made game design easier than ever. You don’t need AI, and you shouldn’t use it.

Don’t forget to wipe
...the screen. I meant the screen. Instead of a boring CLS statement, mark stage transitions with a stylish screen wipe. A brief pause after every erased column or row results in a subtle but eye-pleasing animation. You can also draw the screen row by row for added panache.

Make the most of what you’ve got
Old game systems often have unique hardware features which help define the experience… for instance, Mode 7 for the Super NES, and sprite resizing on the Atari 2600 and Intellivision. Use these features! Think of new ways to use these features! It makes the experience more authentic.

Get paid
Nobody’s getting rich from making indie games, let alone indie games for long dead game systems. But if you want your games to make money, make payment mandatory, not suggested, on sites like itch.io. Internet users absolutely will not pay for software online unless you force the issue.

Keep a pen and paper handy
It’s a smart idea to plan out games with a spiral notebook, jotting down new ideas and writing out code by hand so you can put it in the game later. You can also rough out character designs if you’re an artist, and arrange notes if you compose music.

Use what works best for you
There’s a wide variety of development tools for the most popular retro consoles. BASIC compilers are a strong foothold for beginning and intermediate programmers, but C will provide more power to the user… and ASM even more so, at the cost of added effort and lost hair. Use what YOU like best.

Show some love to your favorites
When it comes to game systems, everybody has a favorite. You’re encouraged to develop software for the machine or machines you like best. Your enthusiasm for those systems will provide ample motivation for finishing projects… and soon, the system you like best will have one more game. YOUR game!

Know your limits
Early game systems have set hardware limits to keep them affordable, at a time when technology was expensive. Be aware of these limits, so you can work within the boundaries comfortably. Streamline your designs to fit that system’s media, and don’t do anything the system can’t reasonably do.

Easy operation!
Early arcade games are known for their pick up and play nature. They’re extremely intuitive, and it’s a goal you should shoot for with your own games. Make sure the player can understand the objective, which items are safe to touch, and how to deal with approaching enemies.

Kaizo? Heck no!
Challenge in a video game is good! Too much challenge will frustrate players and turn 99% of them away. Respect the player’s time and blood pressure by making stages tantalizingly trick, without being outright abusive.

The player’s time is a terrible thing to waste

Intermissions and cut scenes are great! An intermission you’ve seen twelve million times already and can’t skip is not so great. Give the player the option to fast-forward through cut scenes and long sections of dialog so they can get to the meat of the game and stay engaged.

No comments:

Post a Comment