Just as my kids’ favorite school song “Everyone is Different” alludes to, each aspiring game developer is unique in their own way. The following is only my humble and subjective opinion based on personal experience as somebody with very little software engineering experience. That said, here are my top 11 tips on how to become an indie developer or indie game dev:
1. Learn it while doing it
First of all, if you want to learn how to become a game developer, you can’t just simply “read the manual.” I know people who bought books on programming and game design, and they got overwhelmed before writing a single line of code. To keep it fun and engaging, simply create a sandbox project, set tiny goals, and solve them one at a time.
You can follow these steps:
- Download Unity3D (or any other game dev engine, but for this example, I’ll use Unity)
- Find some tutorials on coding basics in C# (here is a good one by Unity) or find a tutorial on YouTube that interests you. For example, you find a tutorial on “how to make a bouncing ball in Unity“. Create a sandbox project in Unity. Follow the tutorial step by step. Once you reach your goal, try repeating the steps without looking at the tutorial.
- Then duplicate the sandbox project and start making changes to it. Set a small goal and try to accomplish it. (e.g. apply a texture to the ball, add a skybox, etc.)
- When you have questions, ask Google or YouTube.
- Don’t spend too much time on your sandbox projects and move on to your first project as soon as you feel you’ve got the hang of the basics.
2. Start small
There are so many indie game developers out there with incomplete projects for a variety of reasons such as:
- feeling discouraged because the project takes forever
- feeling frustrated by complexity & mistakes in the code
- day job and family takes most of their time
- things they go through in their personal life
- etc..
So, please do not start on your “dream game” as your first project. Start small with a basic game with simple mechanics. Keeping your first game simple will mitigate, if not altogether avoid the potential pitfalls mentioned above.
3. Don’t get hung up on perfection
Remember, there is no perfect game—only a game with the least bugs.
You will not get everything right. Your code or game aesthetics won’t be perfect. That’s okay. Try to enjoy the ride and take every hurdle as a learning opportunity.
4. Be patient
It’s going to take time because you have so much learning to do. In your first 6 months, you’ll spend most of your time on developer docs and tutorials. That’s okay.
5. Be humble and open minded
Don’t shy away form showing your incomplete game. You can use social media (Twitter, Reddit, etc.) to get feedback on your work-in-progress game. Don’t forget to do so on Saturdays and tag your posts with #screenshotsaturday.
6. Set clear goals
Even if it’s a small project, if you are not setting some guards around your goal, you can easily end up adding more features to the game which is also called “scope creep” in product development world. Once you have a concept, stick to it. Minimum Viable Product (MVP) principle can also help you stay focused on the most critical features of your game. This way when you have new ideas you can treat them as “v2”, which brings me to my next advice…
7. Track your features/bugs
It doesn’t matter whether you are using a to-do list, a doc, a spreadsheet, or a project management software like JIRA. Just make sure to use something, even for your starter project. This will help you build the necessary habit. The main principle is this: When you have a feature idea or discovered a bug, note it on your tracker immediately (or you’ll forget it). Each time you sit down to work on your game, review and triage the features and bugs: see which ones are MVP and which ones can be v2 and tag them accordingly. Then get started with your MVP items.
8. Understand the code you copy/paste
Newbie developers sometimes treat the StackOverflow code snippets like they are holy artifacts. They don’t dare try to understand the code. Unfortunately this doesn’t help them grow.
Instead try to understand the general idea behind the code snippet and “talk to your code” by adding comments in to it. For example:
// I think this is where we set the collision method
// Hmm... I don't know what it does yet. TODO: Research this more when I have time.
You don’t always have to understand what the code does in one sitting. You can add a “TODO” comment for yourself to research it more later. Or perhaps next time you come across it, you’ll already be seasoned enough to understand what the code exactly does.
9. Learn git (or another vcs)
A version control system (vcs) lets you create “snapshots” of your project files. So you can always go back to specific changes (commits) in a historical log. This way you don’t have to create manual backups of your files. You can use Git via Terminal/Command line. Here is a simple newbie guide to Git commands that I personally like a lot. If you like things more visual, I recommend Sourcetree app (free).
10. Don’t quit your day job (yet)
Game development is supposed to be fun. You don’t want to put your financial responsibilities at jeopardy. Such stress can also negatively impact your development process and overall enjoyment of life.
11. Be grateful for the indie dev community
Indie dev community is full of people like yourself and everybody tries to help each other out. So be appreciative of this camaraderie and return the favor by giving helpful devs thumbs-ups/reps and help someone out when you can.
Hope you enjoyed this article. Please subscribe to our newsletter so we can email you when we have more useful content that may be helpful to you in your indie game dev journey. 🙌