On February 1, 2017, I released my first "complete" Unity game The Gap. I put quotation marks around the word complete, because I have technically completed other Unity games before; however, those previous titles were either student projects or game jams. The Gap is the first game I've released using Unity that I created and released on my own terms and it was an amazing experience!
When I started out making The Gap I wasn't very comfortable with the Unity engine and I barely knew how to do anything in C#. It's why I decided to keep the gameplay relatively simple in the game. It was a way for me to get used to the Unity engine and learn how to program in C#. Despite the scope of the game being so small, I couldn't help but explore and create aspects to the game that involved a little bit of everything (physics, audio classes, animations, user save data, etc.). The effort was well worth it as the game is solid (for what it is) and I learned enough that I feel comfortably ready to dive into the another project.
For those of you that haven't followed my very early journey into indie game development, I still have so much to learn; especially, when it comes to learning programming. Between this and the fact that my life currently doesn't allow me very much time to work on my craft, I have decided to switch gears with my future projects.
My goal is to develop very small games that focus primarily on one programming aspect. If I want to learn how to create dynamic dialogue text that scrolls across the screen then I may make a tiny narrative game. If I want to learn how to effectively use arrays and lists, I may make a tiny asteroids style game. If I want to learn how to create an inventory system, I may make a tiny point 'n' click escape game.
You get the idea.
Given my limited time I think focusing on learning one key programming concept, and building a tiny game around it, will be the most beneficial way for me to learn how to program games in C# in Unity. By focusing on one core programming concept, it will allow me to fully understand how it works, while I shape a game mechanic around it. By keeping the games super short and simple, it will allow me to finish the project in the shortest amount of time possible so that I can move on to the next programming concept I need to learn. It's a win-win strategy. Sure, the games may end up being very simple (and potentially not fun as a consequence), but I believe it is the best way to advance my career as an indie game developer at this point in my life. By doing all of this, I will be excellently equipped with all of the necessary skills when I do finally have the time to commit to a full scale project.
Or who knows. Maybe I'll stumble onto something amazing and will be unable to resist the urge to expand on it.