And doing it so much faster… sort of

4 minute read

I’ve written before about how making video games made me a better programmer, and I’d like to continue that work. I’ve also written about how I lost all the code for my game and many other projects. If I want to work on my game, I’ll have to recreate it from the ground up – and that’s exactly what I’m doing!

TL;DR:

  • The good: I’ve grown *a lot as a programmer.
  • The bad: my life is a lot more complicated these days.
  • The same: I still like playing games more than making games.

I know a thing or two because I’ve seen a thing or two

I’ve got roughly 10 years of professional experience and more like 20 years if you include all my personal programming time. Sure, a lot of it was spent programming business software, but those skills still translate to games.

When I was young and first working on my game, I had to look up how to do every. Single. Thing. Small development tasks took way too long because I was spending more time learning than doing. I wasn’t sure how to structure my code (nor did I think it through as a younger programmer), so I had to break and refactor things all the time. Now I crank out code in an hour that would’ve taken me a week of research and experimentation. Why? Because I’ve done it before!

I’ve also learned not to fall for the classic trap of thinking I have to make everything myself. Earlier on, I wouldn’t use open source libraries or game engines because I thought I had to do it all. This time, I’m making my game in Unity. I’m not having to figure out how to make hitboxes or handle physics because Unity handles that for me. I’m not wasting time reinventing the wheel, and Unity’s “wheel” is likely better than what I would’ve made anyway!

Taken together, this means that I’m really productive when I work on my game. However…

Youth really is wasted on the young

…when am I supposed to work on my game? I have a full time job that – like many of us – keeps me occupied beyond the usual business hours. My wife and I want to spend time together, and watching me write code isn’t exactly an exciting group activity. My kids need help with homework. My kids have friends they want to hang out with and can’t drive themselves, so I have to do that sometimes. Doctor’s appointments, parent-teacher conferences, dishes, laundry, taxes, and all that other adulting stuff.

In my 20’s, I had so much free time. I could’ve done so much more, but all I wanted to do was have fun. I wasn’t in a hurry to finish my bachelor’s degree (much less get a master’s), I wasn’t as concerned about my physical health, and I thought I’d have plenty of time to finish making a game. I put a lot of important things off, and now I don’t have all that free time. I’ve got all these important things to do, but I still want to have fun.

That’s exactly why, when I do work on my game, I fall back into a bad old habit.

Games are fun! Too fun…

When you change software, it’s important to test that it works. You write code to add a button, run your code, go to the changed page, try clicking your button, make sure input is validated, etc etc, and then you go back to coding. But what happens when the change you made is creating a new laser weapon?

Man, this looks cool. I wonder if I added more particle effects? Five minutes go by. All these particles are awesome. I bet they’d look killer in slow motion! You set the game speed to 25%. Ten more minutes go by. Okay, now what if the laser is green? No, purple! Let me try all the colors! Before you know it, you’ve wasted an hour playing with your new feature.

This is the one thing that hasn’t changed. I have probably spent more time playing my games than actually creating them. I also like to do, ahem, “market research”. I’ll go play a bunch of other games in the same genre for “inspiration”. I’m not just playing games, I’m analyzing how they work and gathering ideas! Sure you are, Noah. Keep telling yourself that.

Closing

All that aside, I still want to work on my game. I don’t have a ton of free time, and the urge to play games is really hard to fight, but I’m going to make it happen. I’ll try to – like with this blog – commit a little bit of time throughout the week to tweak things. Importantly, I’ll save the source code so that I can keep working on it long-term. Maybe one of these days I’ll have a finished game.

But not anytime soon – I’ve got a lot of “market research” to do first! 😬

Updated:

Leave a comment