16 Oct 2023 - Colin Miller
I’ve been programming for almost 2 decades now. The first half of that work was server-side Java/Scala work, and the second half was Android work. I’ve done a lot of work on Android cameras and worked on many large projects for major companies that you almost certainly have used, which is a great source of pride for me. However, the work isn’t personally fulfilling as it’s always doing something for someone else that isn’t what I’d generally want to make myself.
Games have been my passion since I was a child. Board Games, Card Games, and especially Video Games. I grew up on DOOM and old Sierra point and click adventures. Online MUDs such as DragonRealms was out I gained most of my social interaction living in rural upstate NY in the late 90’s. In college, I was having LAN parties in the dorm lounge playing Halo on the original Xbox along with Unreal Tournament on PC. I’ve owned every major console since the release of the Dreamcast. Before that I was mainly a PC gamer outside of the NES and Genesis. In essence, I’ve liked games for a long time, and it’s been a prime passion of mine. However, it’s never been something I’ve made myself.
Originally in my career I think I was interested in game development; however backend work seemed a lot easier to get into and paid quite a bit better. Then when phones took off, going into Android seemed like a safe bet. Ultimately, I think those decisions were the right ones for me. They may not have been ultimately as satisfying personally for development, but they were a lot less stressful and more lucrative than game development is. I’ve heard it can be a bit rough.
One of my other passions has always been programming. Combining that passion with my passion for games does seem like a natural fit. While doing it for a living sounds like a way to hate something I love, doing it for myself sounds like a nice way to combine two things I enjoy. I’ve tried to get into game programming a few times, but I’ve not had the motivation to keep going into it. I think one of the issues I’ve had is that I don’t have a solid goal in mind. Saying “to make a game” is fine, but what game? What engine do I learn? How do I get art or music? All the pieces need direction. And when you don’t have a solid goal or plan, it’s easy to just forget about it.
I’ve tried a few tutorials for various engines. I’ve experimented with Unity (was meh) and Unreal (I liked it more). Recently I’ve also thought about trying out Godot. The issue with tutorials though is they don’t really teach you much. Sure, you make a project, but a lot of it is just copying what an instructor is doing. You don’t really learn that way. You don’t retain knowledge when someone else gives you the answers to the thing. I’ve been thinking a different approach is in order.
I stumbled upon a website called the 20 Games Challenge which challenges you to make 20 complete games. It does this not by giving you a tutorial of 20 different games, but rather suggesting a series of games of progressively greater complexity that you can create yourself. These games are games that already exist, so you’re essentially trying to create something you’re already familiar with. The idea being, finishing a game and looking up details on how to do that is the best way to learn. If you have a problem you need to solve, like “how do I make a save button and save my game state?” and you look up in the docs and cobble together your own solution, you’ll retain that style of knowledge more than downloading a tutorial project and watching a video and copying and pasting some of their code without really knowing what it does.
So that’s my new plan. To create some small games. The challenge starts out with either Pong or Flappy Bird, but I don’t know if I’ll even start with those. I might just come up with my own idea and try to drastically limit its scope until there’s something I can make within a month or two. After that, I can either add more features to that starter game or make a new one with a similarly small (though slightly larger) scope. My plan is to post on here my ideas and progress. We’ll see how it goes, but it’s something I’m excited to try out as I continue with my day job.