How you can finish your first game while working full-time
Update: This blog post hit #1 on Hacker News!
See the discussion here (opens in new tab).
If you're a game developer who's working on a game on the side, it might feel like adult life just gets in the way.
Maybe you need a job so you can buy groceries, and pay rent.
Maybe you have relationships that you need to maintain.
You might see all the awesome stuff that people post on the Unity3D subreddit, and think: "That's so cool, I want to do that. I want to be that person making that awesome-looking game."
But more often than not, you're flat out too tired to do game development after a long day at work.
If you empathize with that situation, know that I do too.
I work full-time as a software engineer, and while I've made a bunch of wacky game prototypes over the years (particularly in PICO-8), none of them ever got off the ground.
It took me years to figure out how to successfully scope and finish projects.
But I'm going to let you in on a little secret.
This past Wednesday (October 27, 2021), I silently fulfilled a lifelong goal. I released my first, completed game ever – Pocket Pong AR – to the iOS App Store:
No, it's not the best game in the world, nor will it win any awards.
But I made it myself.
I did the game design. I prototyped the game mechanics. I tweaked things when it didn't feel right. I designed the UX flows. I did all the programming work. I uploaded the game to the App Store, and I created the landing page.
Most importantly, I saw the game through to completion.
And in the rest of this blog post, you'll learn the 3 skills that I took away from my experience, so that you can take your game projects to the finish line too.
1. You need a plan
At the core of any large project, be it:
- making a movie
- writing a novel
- building a house
- building a skyscraper
- publishing a blog post
- producing a YouTube video
- building a profitable business
- building a successful indie game that everyone loves to play
There's a process that is carried out in order to achieve the end result. A plan.
As such, you should define what the plan looks like for your end result: shipping a video game. Without one, you'll very likely fail.
At the beginning of Pocket Pong AR, I thought the plan would go like this:
They say your first 10 games will suck, and it's because of this reason: my plan was only a wild guess because I had never finished a game before. I didn't have a solid reference point for how things would go.
In practice, it turns out that some parts of the plan are more important than others:
- Your game's hook must catch your audience's attention. Otherwise, no one will play it.
- Things will change rapidly once you get something working, so build a working prototype (core game loop) as soon as possible.
- Record more GIFs early in development, since it's a good way to gather feedback on social media.
- Game juice and polish are far more important than content. Players shouldn't see half-baked game mechanics.
But that's okay. What's important is that you have an initial plan at all, and that you're open-minded enough to change your plan as you gain experience.
Game development is actually the skill of understanding what plan yields the best game.
You now understand the map of what you need to do, so now you just need to do the work.
But making a game is a lot of work, and like any large task, it's best to pace yourself, set achievable milestones, and celebrate your small victories to have the best time.
Which leads to my next point...
2. Build your productivity engine
In his postmortem talk about how the game A Short Hike was developed, Adam Robinson-Yu mentions that he employed a lightweight version of scrum during the game's development.
But... what is scrum?
Scrum is a mental framework for organizing your work, so that you not only get stuff done, but you also get the most valuable stuff done for your players.
In practice, I found that the idea of a weekly sprint helped focus my efforts over the course of a week. Whereas the act of task estimation in terms of weeks helped set expectations for how long something would take:
Maintaining a task log helped break large chunks of work into bite-sized, achievable tasks:
And creating a morning routine of getting straight to work helped me reliably complete tasks over a long period of time.
When you work full-time already, your time is at a premium. As such, you need to focus, scope right, relentlessly break work down into bite-sized tasks, and create a rock-solid habit of getting things done.
If you can master those 4 skills, you can make effective, consistent progress on your game – and even be happy with your productive output.
3. Find the intrinsic motivation in your work
Breaking your project into bite-sized tasks is great, but what if you start procrastinating on those tasks?
What if you think those tasks are actually... kinda boring?
The solution is to find the intrinsic joy in your work.
Look for the activities in your project that give you a dopamine hit:
- checking off tasks
- fixing a tough-to-crack bug
- automating your workflow with a script
- perfecting game design values in your game
- ensuring your code-rebuild-test development loop is snappy – it feels amazing to have tools that work fast, and get out of your way
During the development of Pocket Pong AR, I found that it was most motivating to work on game juice.
When I added sounds and made things squish and pop, it felt like my game started to come to life. And nothing is more satisfying than bringing something to life.
Additionally, with enough game juice, you can start to record GIFs of your game to share on social media.
If your GIF is good (and gets likes), that external approval serves as further motivation to keep working on your game.
At the end of the day, game development is a grind. But making the activity of game development innately rewarding ensures that you'll have no trouble getting straight to work.
Make it sustainable
Finally, it can't be stated enough: take care of yourself.
Eat right. Go outside. Do stuff with friends. Take breaks from computers every now and then.
Unless you can afford it, don't quit your job to work on your dream indie game. You don't want the dread of financial instability hanging over your head.
Make game development a sustainable habit for you. Because you'll find that shipping a game – while fantastic – is only momentarily satisfying. (Heck, a game is never truly finished either. There's always more bugs to fix, more features to add.)
It's more satisfying to look back and reflect on how much you've grown as a game developer. And to look forward with optimism, and think about how you can improve your process to make better games.
While cliché: it's the journey, not the destination.