Author: Eric Saar

The allure of one-button games for developers is clear: it’ll be easy! Easy to:

Build quickly

Onboard users

Both of these can be true, but there’s something missing: developers also want their games to be good. With that pesky requirement, suddenly we’re trying to:

Build something fun quickly

Onboard users and keep them playing

The result: there are lots of one-button games, particularly on mobile, but few that succeed.

We started building Ready Set Goat as part of a one-button game jam in late 2019, lured by the siren’s song of a quick and easy project. Many months later, we’ve built something we’re proud of (and can’t stop playing), but only after a series of detours. In the process, we collected some tips to share with the next one-button victims. Of course, many of these apply to all styles of game:

Ready Set Goat in action…note the Gondolas for tip #3

One button doesn’t mean one action. In Ready Set Goat (aka RSG), you can tap to jump, double-tap to double-jump, and long-press to jump a little higher, all with a single jump button.

Make your actions context-specific. Press jump when on the ground? Do a ground jump. Already in the air? Do an air jump. After you squash an enemy? Bounce off for an extra jump. Chain together three hits in a row? Something special happens, but I won’t spoil the surprise.

Automate everything that isn’t your primary action. In RSG, we used our one button for jumping, so our goat-agonist moves forward automatically. When the goat hits a wall, it reverses direction and heads back the other way. To add control, we placed two gondolas on the map that you can hit to reverse direction. Voila, the jump button now grants some directional control.

Optimize for performance and fast re-plays. Most successful one-button games are going to be arcade-y. This means fast action and careful timing. If you want players to get hooked, it has to perform smoothly on your chosen platforms, and it has to be easy to replay over and over again. Don’t put unnecessary features or obstacles in your game flow that will slow players down.

Avoid glitch frustration. You face stiff competition for players’ attentions, and with this type of game, early frustration for perceived unfairness is a killer. In RSG, this meant lots of jump forgiveness and careful tuning of the hitboxes.

Script the early game. New players should be able to learn and improve quickly, and at least one scripted early stage helps. Many one-button games end up being “endless” style games with randomized challenges, but this can really frustrate new players.

Show the player how they’re improving. In RSG, we save your high score, congratulate you on every new one, and have a leaderboard. All pretty standard stuff. One less-common piece we added: your average score. Even though you won’t set a new high score every run, you can see your average tick up over time as you improve. Very satisfying.

Make sure you can play for a few minutes or a few hours. One-button games are often used as a quick diversion, but not exclusively. Your game needs to be fun for 5 minutes on your lunch break, 15 minutes on the bus, or three hours at home on the weekend. If you can’t check all of those boxes, you will struggle to attract long-term players.

Hidden depth for more advanced players. New players should feel like they can master the game quickly, while advanced players should constantly find new ways to edge up their scores. This requires hidden layers of strategy that emerge as you improve. In RSG, we included a number of subtle ways to move around the map and combos that become essential to progress. The higher your scores go, the more hints we drop about advanced play.

Cut features early and often. If you want to build a simple game, keep it simple. Avoiding scope creep is key to any kind of product development, but especially so for a one-button game. An example: we toyed with a wall-cling feature early on, but quickly discarded it when the first few iterations just weren’t fun.

Cute art. Well, it made sense for us: RSG is a game about a cute goat. Make sure your art style matches the gameplay, but for broad-appeal you can’t go wrong with cute.

Every indie game you’ve played is a survivor. For each success there are a hundred failures, and for every failure, another thousand left unfinished. Maybe 10,000. The reason: everyone who loves games wants to make one, but they are the hardest art form to make well. They are interactive and interdisciplinary and asymptotic. They are deeply engaging and endlessly frustrating, to build and to play. Players are unforgiving and the market is saturated. And yet we keep trying, because our love for games blinds us to the odds, the logistics, the costs, and the doubts.

The lucky few that launched…

So, you’ve been working on that dream project but launch seems impossibly far away. Forget a success; how can you escape the fate of the countless that never even finish? I generally eschew one-size-fits all advice, but there is one golden rule that I believe every successful game developer follows:

Play your game, all the time, every day.

Play it constantly. Play it to the point of exhaustion. Play it until your friends and family intervene. Play it some more.

Play until your eyes bleed. Figuratively.

There are three big questions that explain why:

1. Is it fun?

You’ll know based on how much you want to play. If you’re spending hours playing and it’s not fun, you’ll be motivated to keep tweaking or pivot. Are you running out of things to do? So will your players. Are you getting bored? Your players are asleep. Hoping to get friends to help to build, test, launch, or share it? Good luck, unless you have a serious bankroll. The truth is, if it’s not fun, you won’t even want to finish it yourself. You need to keep iterating on your gameplay until you want to play it all the time, every day. The only way to know that you’ve arrived is by playing it again, and again, and again.

2. What should I build next?

The more you play, the more you’ll focus on what works and what doesn’t, and the better ideas you’ll have. Play the game for a few hours and you will find yourself wanting a few specific things. Those things should be the top of your priority list. Skip playtime for a few days and you’ll find yourself wasting time on non-essential work that derails the project.

3. Is it working?

You can’t rely on others for deep testing. Any tester can tell you if something works, but only you will know if the game works asintended. Of course, the best way to test is to play the game, all the time, every day. You need to know the quirks, the bugs, the rough patches, and the holes so that you can prioritize your work and (probably) cut scope down to what is essential for a launch-able product.

Suggestions

So, how do you follow the golden rule? A few suggestions based on my experience over the last decade in both game and non-game software development. (Note: these generally apply to any type of product development, but I’m focused on game dev.)

Ease of Access: Make sure your game is accessible to you. Whatever your target platforms, you should be set up for easy and frequent deploys of your latest work. There should be no friction for you to play your game any time.

We also prioritized offline play early so that we could pick up the game any time/anywhere.

Schedule Play: It’s not a break or a luxury, it’s a necessity. Expect to have several hours of playtime built in to every full day of work, for everyone on the team.

For Ready Set Goat, we started and ended every day with rounds of play. We also took the game on vacations where we’d have no cell service, ensuring we’d play the game for lack of anything else to do. When addiction to the game started really eating into dev progress, we knew we’d hit on something.

Prioritize Fun: When choosing what to build each day, focus on things that are going to make you want to play more. Forget platform support, art pipeline, optimizations, matchmaking, tutorials, or anything else that isn’t going to make your daily play more fun. All that will come later once you’ve got the fun part down and you’re hooked on the gameplay.

On Ready Set Goat, hours of play revealed too many unexpected deaths for our goat-agonist. The feeling of the game being “unfair” was really frustrating, so we scrapped feature additions and platform expansion to focus on something specific: the hitboxes. My dev partner Jimmie detailed the solution here, and without that investment we’d have wasted time expanding a sub-par game to multiple platforms, surely to fail on all of them.

Following this golden rule won’t guarantee you a good game, but I do believe this is the safest guiding principle for getting a game finished. For those who made it this far, I’d love your thoughts and feedback at eric@subpixel.net.

Welcome! We’re a new studio building games. We’ve worked together in gaming and non-gaming over the past decade, and it turns out games are more fun. We’ve got two projects in the works:

Ready Set Goat: A free mobile platformer that’s not quite like anything else you’ve ever played. Click here for more details; live in early 2020!

Secret project: A massive adventure of a 2.5d side-scroller with strategic combat, original platforming puzzles, and layer upon layer of mystery. Occupying a giant 100 story skyscraper, you’ll unravel the mystery as you explore every floor and squeeze every ounce out of your abilities. This is a game we can’t wait to play, so we’re working fast to get an early alpha ready in 2020.

We’ll be looking for collaborators in art, programming, and beta testing, so reach out (contact@subpixel.net) if you’re interested or just want to say hello!