Game Development

Chicago Indie Gamer Meeting for April

Today was the Chicago Indie Gamer Club meeting for April. I was not able to accomplish my goals for this month before the meeting.

As bad as I may feel for failing, I’m really glad this meeting exists. In the past, I’ve had spurts of game development between periods when I didn’t do anything. Without the deadline this meeting imposes on me each month, I may not even notice that I’ve spent a week or two not working on my projects. I probably would coast into May without realizing how much time has gone by since I last coded.

I know I had setbacks at the beginning of this month. The hardware failures and reinstallation of my main computer required that I take some time to recover to get to the point where the system was usable again. I had a couple of games to review. I was updating my resume. I wrote some scripts to help with automating backups.

But even with those excuses, I clearly failed. I never made programming the priority that it should be. I should not be trying to squeeze in some coding time around the rest of my schedule. Instead, I should dedicate blocks of time to coding and have everything else fall around them. For example, I just reinstalled Kyra on my system this past week. My computer has been operational since the beginning of the month. So why the delay? I wasn’t programming, so I wasn’t using the library. I didn’t need Kyra installed if I wasn’t using it, so I never noticed that it was not installed until recently. So when I was ready to code the other day, I had to spend some time installing a library that should have already been ready to use. I spent the little time I had spared just getting the system ready, and it resulted in lost practice time.

I plan to rectify these issues with the goals I set for next month. Even though I never mentioned them at the meeting, I’ll list them here:

  • Block out time for regularly scheduled programming
  • Continue to practice programming for 5 hours per week
  • Make a simple game by the end of the month
  • Setup an automated build system by the end of the month
  • Setup a cross-complier on my system by the end of the month

The first goal is kind of a metagoal. It is primarily to help me accomplish the next goal. If I have regularly scheduled programming practice, I can’t possibly miss my goal of programming so many hours per week. The third goal is likely going to be worked upon during my practice times. While I could work on anything to satisfy the second goal, I can also be efficient and kill two birds with one stone.

The last two goals are important. The automated build system will make the process of building the project from scratch incredibly easy. I don’t manually compile my code at the moment since I use GNU Make, but I have to manually invoke make each time I want to use it. That option is nice to have, but I can easily miss something in the full build. I don’t want to create a demo download that won’t actually install on a potential customer’s computer because it was missing a file. Automating the builds will help by removing the concern to do testing and builds from my mind. I can discover the results and work from there rather than worry about the correct steps to carry out.

The cross-compiler will make it possible for me to use a single code base on a single system and build for multiple platforms. I can currently compile for Linux-based systems, but I would like to compile my projects as Windows applications as well. Rather than copy the code to a Windows machine and run a Windows-based compiler, I can use a cross-compiler on my Debian machine and make it compile a Win32 binary. I will need to test it to verify that it works obviously, but I would be testing the native binaries as well.

I don’t believe my goals are overly difficult or ambitious, but even if I don’t accomplish everything, I know I can accomplish at least some of them. By the end of May, I hope to have great, tangible results.