Game Dev: How to prioritize?
This article is another one that came out of my recent āsummer of game jamsā. I participated in 10 game jams, which was indeed stressful and a lot of work, but also taught me a lot.
One major aspect of a game jam, of course, is the time restriction. You only have 2 or 3 days to invent some idea (related to a theme) and completely build and ship it. In fact, the rare game jam that lasts 5 or 7 days felt like an undeserved luxury sometimes ;)
Iāve made enough games the past 10+ years to know how long every step will take, roughly speaking. This means that I had no trouble almost perfectly lining up my to-do list with the time I had left. All my games were done a few hours before the deadline, as planned, and none had any bugs or missing parts or whatever. (All of this while leaving enough time for exercise, sleep, going to the beach, etcetera.)
Thatās nice, I recognize that.
But doing something in the time you planned for it ⦠does not mean you actually spent the right amount of time on the right things.
After doing all these game jams, I realized I was horrible at prioritizing the right things. Iād lose several hours on a few bugs that were, in hindsight, only tiny hindrances. Then Iād only spent ten minutes on coding the core gameplay loop, which meant the shoddy original code gave me some headaches later.
I mightāve created some very nice marketing images and graphics for the game in one evening ⦠while only spending an hour in the afternoon on the actual gameplay, making the game ālook good but not really be that funā.
In the end, this made games very lopsided in certain aspects. I was scrambling to find solutions to pretty core questions that plagued the game, while less relevant details such as a particle effect for 1 out of 10 powerups was already done.
I experimented with planning, trying some new approaches for every game. I looked up what others were doing, perhaps digging into their source code (if they decided to share that on GitHub).
And I learned the following one-liner.
Spend most of your time on the things the player will be repeating the most.
Thatās it. Thatās the article. Go forth and make better games! ;)
Just kidding, letās look at some practical examples of this.
Some practical examples
A puzzle game
Say you make a puzzle game. Thereās a player character that moves on a grid, and you need to collect X or reach the finish in Y moves.
What is the player going to repeat most often? Trying a move. (And perhaps undoing it, if you support that, which I highly recommend by the way.)
As such, you should probably spend more time (than you think) on making this single movement as rewarding and flawless as possible. Give it a juicy animation, great (and varied) sound effects, make it exactly as long as the player would want, make the code for it really solid and easy to work with.
The same for the undo. You often want this to be much faster than the do. You want it to give clear feedback about how much it has undone, otherwise the player might go back too far or make other annoying mistakes.
Spend most of your time here. Because itās the thing the player will actually be doing the most.
Anything else can receive lower priority.
- Special grid cells with special actions? Less important. (The player will only use each special cell a fraction of the time.)
- Different backgrounds for the different worlds? Less important. (If there are multiple worlds, the player will by necessity not repeat the same background 100% of the time.)
- The game over (win/lose) screen? Less important. (For every game over screen the player sees, theyāll have done 5ā20 moves first. So itās less repetitive than movement.)
A tower defense game
Two of my game jam games were similar to tower defense/survival games. Again, I made the mistake or prioritizing the wrong thing.
Iād finished images of all enemies before Iād even tweaked and finetuned their exact stats. As a result, with both games I was tweaking numbers and running around asking someone to playtest it quickly ⦠only hours before the deadline. Because the game looked great and was bug-free, but it was actually way too easy to play because I hadnāt perfected the numbers.
I sometimes had animations or images for quite rare situations. (Such as an enemy that only appeared in the final waves and moved by jumping instead of walking.) At the same time, the thing the player repeated all gameāplacing defenses and killing enemiesāhad barely been tested and finetuned.
Not great.
Iāve already given away the answer here, but letās ask it anyway: what will the player repeat most often in such games?
- See enemies
- Place defenses
As such, make both these things as perfect, and rewarding, and finetuned as possible. Donāt start on graphics, or later stages, or a main menu, until it feels great to plonk down a defense and see an enemy die by its hands. Because thatās what you will do, thousands of times, as you play the game for a few minutes.
(Seriously, one of my games tracked stats on how many ghosts you killed, displaying them once you died. To the surprise of both me and my playtester, ~7 minutes of gameplay already meant hundreds of ghosts had died :p Thatās how often this action repeats in a wave/tower defense survival game. So prioritize that repetitive action over all else.)
A platformer
Hopefully you immediately said the answer to this one. What will the player repeat the most? Move, jump, land.
When I was younger, I could honestly get quite frustrated when I saw a devlog of someone making a platformer game. Theyād sometimes spend multiple videos just perfecting the jump, adding particles for it, tweaking the movement code again. I was like: āMake the actual game! Not a jumping/walking simulator!ā
I realize now that they were on the right track. They knew the soul of a platformer was that simple action: move, jump, land. Thatās all the player would be doing for thousands of repetitive cycles.
And so the very best way to spend your development time, if you had to prioritize (and most of us do, lacking infinite time and money of course), is to put it into that mechanic.
Perfect the jump height, hang time, gravity, friction, everything. Add nice frames/animations, some dust particles upon landing. Add some tiny rules for corner cases, such as the famous ācoyote timeā. (Allow the player to still jump for a few frames after their feet have left the ground. Even if not realistic, this feels better than missing your jump by a single pixel and just falling to your death.)
If I were to make a platformer for a game jam, Iād probably spend the entire first day on this alone. It feels wacky. It probably means I wonāt have time for lots of other content or polishing.
But thatās fine, because that missing sound effect isnāt going to annoy the player every single second of the game. Only at that single time it might have played, if the player even notices at all. No, the thing that will annoy them is that the jumps theyāll be doing every second feel floaty, bad, imprecise, or whatever.
Conclusion
Itās quite a simple and intuitive principle. Still, I wanted to write this article about it to help others and burn it into my own brain. Itās such a simple thingāspend most dev time on the thing the player will also spend the most time withāyet we forget all the time. Or, at least, I do.
I think this partially has to do with our tendency to focus on ācontentā. I feel like, in modern times, things have to have more and more content. Just making a simple 5 minute enjoyable experience isnāt enoughāno, it needs 50 enemies, and 25 maps, and 20 spells, all in an effort to pretend the game is great and the player will get 500 hours of playtime from it. In reality, the focus on content means the actual game is shit, and the player wonāt even see 1% of it before they quit.
It reminds me of this thing that the guy from GMTK said in one of his āDevelopingā videos. He noticed that he kept adding content to the game, and it just forced him to extend deadlines all the time, and it never made him actually feel good about the game. Then he said: āI wasnāt making the game better, just longer.ā
Thatās a great way to look at it. Prioritize making the game better, not longer. Focus your dev time on making the actions the player will certainly repeat all the timeāthe core of the game loopāas great as possible. Instead of adding more and more extra content, which amounts to rare actions that the player will only see or experience a fraction of the time.
I also think asking this question is just a very good exercise. Whenever you have a new idea, ask yourself this first: āIn my idea, which action will the player repeat most often? What thing will the player see/hear most often?ā
If you canāt pinpoint that, itās a good clue that you donāt really have a game idea at all. The specific second-to-second gameplay is too vague, the objective too vague, to answer this simple question of what the player will actually be doing.
If you can answer it, now you have a clear vision and guideline for the development process of the game. Focus 50% of your time on that repetitive core action. Use the other 50% for eeeeverything else, accepting theyāre of lesser importance and can be rushed/missing/badly executed.
A player will enjoy your game and keep coming back for that satisfying core, doing it over and over. The rest is of much lesser importance, and your development schedule should probably reflect that.
Those were my thoughts, keep playing,
Pandaqi