6 min read

🛠 5 features I include in all my games

Work faster and smarter!
5 Features For All Games

Every single game I make has a few features in common. I add these features to make my games faster to work on and easier to ship. They are:

1) Speed Features

In most of my games, you control a character to move around the screen. By default, they walk at a reasonable pace, which can feel too slow when you're trying to quickly test out a large level.

So one of the very first things that I do is add a run (or running) mechanic. These specific words are often used for other things in the context of programming (e.g. "running your application") so in Pixel Washer I call it sprinting.

You might use dash, or rush, or whatever floats your boat.

Alex is right! That's why this tweet is here!

This can be as simple as holding down a button to move faster. In Pixel Washer, you hold the shift key on the keyboard (or Left Bumper on gamepad) to sprint.

Walk to the right, run to the left.

Earn BONUS POINTS for doing these things:

  1. Increase your character's running animation to match the faster movement.
  2. Add footstep sounds that increase in speed as you run!

If your game doesn't have walking or running (say if it's a puzzle game or a narrative game), then to get this development speed boost, add something that makes the text scroll quicker and/or lets you skip sections entirely!

Like old Final Fantasy games had "message speed" options that let you decide if you want dialogs to display slow, fast, or chunked so that you could breeze through them just by smashing buttons.

2) Screenshot Feature

You're gonna need screenshots! Ya know, for Steam, and press kits, and to post on #screenshotsaturday for 7 people like I do. Here's how I did it in Pixel Washer:

First I turn on debugging, then I hold down control, and press a number which represents the scale of the screenshot.

When I press control+1, it generates a 1x1 screenshot at just 512x288 pixels. When I press control+2, it generates a screenshot at 2x2, scaling it up to 1024x576, and so on.

Here's another tip: add a way to hide the user interface (UI) for screenshots. You're going to want to include the user interface in your screenshots for Steam, because Steam players want to see that kind of stuff so they get a better idea of how to play your game. But you might want to remove the UI for other contexts like press kits, generating screenshots to use as background images, and so on.

"I love including UI." -Chris Zukowski (timestamped link)

3) Saving & Loading Game State

The longer you put this off the bigger pain it is to implement it, so I recommend during it early on. For my "serious" projects I do this almost immediately.

You want to be able to save your game state, and load it up again flawlessly.

Ben is correct! That's why this tweet is above these words!

Your players will want to be able to save and load their games. Beyond that, saving & loading can be super helpful when debugging your game! Sometimes you might need to test a very specific set of situations that would be time-consuming to reproduce by playing the game over and over. If you can instead simply load the state in question, you can zap that bug much faster.

BUT! Be careful that this feature doesn't slow you down right out of the gate. First find your baseline for your game, find the fun, and then set the stage for how data is saved and loaded.

Pixel Washer uses an entity component system (ECS). Weirdly, in this system, I can save and load absolutely everything, even the state of the menus, the UI, particles, every single thing. That's because in my ECS, every game object is essentially a bundle of component data. This lets me easily store the state and rebuild it later.

Your game engine is probably a lot different than mine, so you might have to save certain pieces of data, then rebuild your game objects based on that.

4) Debugging Entry Points

One super useful thing I add to my games is a collection of various entry points into what I call debug code. This includes:

  • Shortcut keys
  • Menu Items
  • Entire debug menus
  • In-game debug objects

As an example: when debug mode is on in Pixel Washer, I can access the debug menu, and from here I can "win" any level instantly.

In my other game Witchmore, I've added a collection of equippable debug items that I can pick up and perform almost any task you can imagine, such as spawning monsters or teleporting.

5) Playgrounds

Here's an excerpt from my book How to Make a Video Game All By Yourself:

One kind of tool that I like to build for myself for almost every game I work on is a playground. A playground is a hidden area in the game, available only to you as the developer. It's a quick entry point you can use to test new content, figure out bugs, and feel at home.

So my playground in Pixel Washer is really a whole zone, which is a collection of levels. There's a generic debug level where I can add anything I want without breaking anything, and a level with only one object to clean that lets me test the level completion code quickly.

Pigxel the pig power washing an outdoors level next to the title PIXEL WASHER.
If you like what you see, add Pixel Washer to your Steam washlist.

Then I've got some promotional levels such as the PitchYaGame level, and a level that shows the title of the game that I can use in GIFs and for other promotional purposes.

The playground should be cut off, isolated, and unable to cause bugs in other parts of the game. Think of your playground as a laboratory where you are a powerful mad scientist, capable of creating or destroying entire worlds. Here you can perform focused experiments to zap bugs, or go wild and throw things together just to see what happens.
MAKE A PLAYGROUND: Messy or clean, however you like it.
From How to Make a Video Game All By Yourself.

Summary

So those are the 5 features I add to just about every single game I work on:

Speed features, a screenshot feature, saving & loading game state, debugging entry points, and various playgrounds. Try one out and see how it fits! You might love it.

Got any tips of your own? LMK in the very chill Valadria Discord.

Coming soon: marketing advice from me, a guy who struggles with marketing. Huzzah!