Lessons learnt from building first game, Potato Cop
Building my first game, Potato Cop, was a wild ride, mostly because I had no clue what I was doing at first. If you are thinking of diving into game development as a web dev (or as someone who has some coding experience), here are some valuable lessons I picked up along the way.
1. Use version control - seriously
This has been said by multiple people time and time again on online forums, and I can’t stress this enough as well. If you're doing any sort of work on your PC, use version control. As a web dev, I am all too familiar with Git, but somehow I skipped it when building Potato Cop.
My game was initially an impulse project and was never meant to be completed. So, I thought I could just wing it. It was also my first time coding in a game engine instead of using all the tools I'm familiar with at work. So it slipped my mind to use version control at the start.
Long story short, Potato Cop took way longer than expected, for many different reasons - burnout, life crises and worst of all: constant blue screens on my laptop. Thankfully, the game engine had an autosave-recovery feature (thank you ComiGo) and I was able to throw the game files into a dropbox once I finally bought a new machine.
In hindsight, version control would have saved me so much pain. Don’t be like me. Set up Git from the get-go, even if your project is just a side hobby like Potato Cop.
2. Keep your tools updated (or not?)
Here’s another lesson learned the hard way.
Most of you probably would not encounter this but Potato Cop took a long time to complete. I started developing Potato Cop with ct.js 3.2. When I picked the game up after a particularly long hiatus, I found that version 5 was almost out. By the time I got a new laptop, it was already here but I decided to stick with version 3.2 to avoid rewriting parts of my game at the expense of missing out on possible DX improvements.
I tried to read the docs again as a refresher, but the whole world was already preparing for version 5. So, my advice: keep your tools updated, unless you really have a reason not to, especially when working on something like Potato Cop.
3. Prepare to spend (time, effort and money)
If you're here, you're likely a solo indie dev with no budget. Game dev is not just coding, it is a beast of a process that requires you wear many hats. Here’s a short list of the things you have to do.
- Ideation
- Project management
- Programming - game loop, physics (?), special effects and more
- Asset creation
- Sound design (SFX)
- Sound design (Music)
- Voice acting (maybe)
- Play testing
- Marketing
- Admin (publishing, taxes etc)
And the kicker? It’s not a one-and-done deal. You'll most likely go back to the drawing board a couple of times if you happen to catch that a particular feature will not fit into your game well, or if the changes require re-thinking of some of your gameplay, or maybe you need more assets.
Burnout is almost unavoidable. So, if you can offload some of these tasks (or get help), do it. It does make things a lot easier, and having lesser things on your plate means you can focus on the things that matter
4. Prepare your storefront early
Building your game is one thing, but launching it is a whole other challenge. Me leaving Potato Cop's storefront to the last minute was a risky decision. The moment you have a game that looks solid and even if the current version is marketable, start building your storefront and preparing your capsule art. Start creating noise, getting traction and publicity early to let it grow over time.
5. Get playtesters
One of the most eye-opening parts of game development is watching others play Potato Cop. At first, I thought the game was pretty balanced. I had played games like Dark Souls and Monster Hunter (both are punishing!) so I didn’t think that Potato Cop was all that difficult. I changed my mind pretty quickly, after observing my friends (who were newer to gaming) play my game.
Having thousands of playtime on games of different genre and on different platforms, Potato Cop's control felt just like home. The movement was heavily inspired by Turnip Boy and I had no problems playing that game either.
- Some struggled with basic WASD and spacebar controls.
- Others found enemies too hard and the lack of knockback too punishing.
- A few thought projectiles were way too hard to dodge.
Meanwhile, my experienced gamer friends could clear the game within minutes (before the final version). Playtesing Potato Cop with a variety of gamers showed that “easy” to me might not be easy for everyone. Not to mention, I found bugs I never would have caught on my own. Get playtesters and watch how they interact with your game!
6. Don't playtest too often!
I know this might sound ironic, after I just mentioned to playtest. However, do not playtest too often. While your friends might be excited to try your game, if your game has a short gameplay (which Potato Cop has), they're going to get bored after a few rounds.
Space out your play tests and make sure there's new content for them to get excited about or fixed previous issues. Take notes on their previous playtests and ask them for feedback on what has improved and what still needs work.
7. You are your harshest critic
Lastly, there will always be someone better and there will always be stuff that you can't implement. There were moments when I looked at Potato Cop and feel like it is not good enough. It’s natural.
But I also learned that some of the things I was unhappy with Potato Cop did not even register with some of my friends.
One playtester in particular spent MINUTES just exploring each of Potato Cop's already tiny maps, enjoying every little detail, like how the character’s hat jiggles. It was a reminder that, while I was stressing over every little flaw, others were having a blast just playing the game.
Building a game isn’t easy, especially if you’re juggling a day job. But these lessons were crucial in helping me get through it.