How I Want to Make Games

I want to make games. I don’t want to make them just as a hobby, but I also want to have fun while I do this. What’s the point of going into business for yourself if you aren’t having fun?

I want to use Free and Open Source Software. People tend to get confused about the concept of Free Software. To make sure you, the reader, understands, I suggest you read some articles about it:

Regarding that last article: people think “Software Should Be Free” means giving away your hard work for no compensation. It doesn’t. If up until now you thought this was the case, I again urge you to read those articles. Free Software is about Freedom, not about getting a free lunch. You may be surprised to find that Free Software isn’t the evil you heard it was. If you don’t care to actually learn about the Free Software concept, that’s fine, but please don’t start arguing against it because you can’t be taken seriously. How can you argue against something you don’t know or understand? Question it, be skeptical about it, but don’t presume you are an authority on it when you aren’t.

I also want to focus on making games for the Gnu/Linux system. I understand that it is likely my main revenue streams will not come from it, so I also want ports to the Win32 and Mac platforms. But I’m tired of seeing games ported to Gnu/Linux months after the fact. So when I say I am focusing on Gnu/Linux, I mean that it won’t be an afterthought. Ideally, using open standards and a solid code base, I can release for the three platforms at the same time, with minor tweaking at the most.

Some people think that there is no money here. I don’t believe that is the case. For example, I read that A Tale in the Desert 2 does very well among Gnu/Linux users. The conversion rate is incredibly higher than for Windows or Mac users. Granted, it is a MMO game, but still. Loki apparently didn’t go out of business for lack of sales so much as bad management. There are no stats that say that Gnu/Linux games will sell well, but no stats that suggest they won’t either. I’m willing to find out how well sales could be for the platform.

My Ability to Create

Within the past year, I realized that I could not only start my own game development business but also be quite successful at it. I was partly inspired by Steve Pavlina and partly by other people who have already gone into similar businesses for themselves. It’s a lot easier to see where you can be when you receive a souvenir from someone who has been there. In this case, Steve has written a number of articles on subjects ranging from running a successful indie business to marketing to product development. My favorites are the personal productivity articles, the ones that let me know that I can do so much more than I was letting myself believe.

He wrote about his college experience. He wanted to get through school as quick as he could so he could start on his business, something he knew he wanted to do. So rather than take the average course load, or even just an extra class, he took multiple extra courses. The average college student has problems completing assignments on time for a normal workload, citing a “lack of time” as the main culprit. And here’s Steve Pavlina not only taking multiple course loads at once, but doing extremely well at that! He got amazing grades, a healthy amount of sleep, and a social life to boot.

And so began my study for time management. Eventually I learned that it was also life management. This was an amazing concept for someone who had never thought about how his life has been managed. Looking back, I pretty much coasted from day to day. Sure, some days I had inspiration, but it wasn’t consistent. These days, I am doing much better. I at least have a clearer picture of my future and how I want it to be. I’m still working on it.

Anyway, another of his articles is titled If No Independent Developers Are 100 Times Smarter Than You, Then Why Do Some Get 100 Times the Results?. It outlines the seven critical success factors in shareware. “To the degree to which you fail to master any one of these skills, that is the degree to which you limit your own success.” The factors he writes about are:

  1. Decide
  2. Create
  3. Promote
  4. Sell
  5. Serve
  6. Measure
  7. Improve

I rated myself in each category. Then I rated myself again, this time trying to question whether or not I was being overly optimistic in any area. That’s when I pinpointed my number one issue: my ability to create a product is almost nonexistent.

I can program. I’m not some master hacker, but I can write decent code. At least, I believe I can. Unfortunately I haven’t had much experience working outside of the classroom. It may be that the classroom is totally different and impractical in real life. I’ve read books such as Code Complete and Game Architecture and Design. I just haven’t given myself the opportunity to use what I’ve learned.

For years I’ve studied game development articles and books. I have quite the collection. Still, the last game I successfully created was a Pac-man clone in QBasic. And that was in 1998, before I knew how to code properly. It’s all spaghetti code! I know I can do a better job these days.

I used to think I was way ahead of the average newbie who posts “I WANT TO MAKE TEH BEST RPG EVAH!!” Turns out that I am only one step ahead: I know better than to think I can do something like an RPG with the lack of experience and skill I have. But what made me think that I can do something like a Tetris game right now?

When I asked myself that, I found out that I couldn’t. My ability to create a product I could sell was essentially nonexistent.

So I set myself to work on that issue. I wrote down a number of skills that I would need to learn to improve my ability to create. I needed to learn how to program, and properly. I needed to learn how to use development tools such as Gnu Make, Subversion, and the Gnu Debugger. I needed to become familiar with the STL (I am using C++), SDL, and any other libraries that will help me build programs.

It’s almost a month later. My C++ knowledge has defintely improved, and with it came the use of tools like Make and Subversion. The standard template library is definitely not the mystery they made it seem like when I took C++ at DePaul years ago. I haven’t messed with the debugger much, and I’m finding that there haven’t been many compelling reasons to use it.

Still, I can’t say that my goal of making my ability to create a 5/10 has been accomplished without being a very bold liar. I might be able to say it is a 2/10, but I would have to be a bit generous. The main reason why I have failed to improve much: time. But at least this time I know it isn’t some vague Outside Thing that is acting on me. I know the blame lies squarely on my shoulders. I didn’t give myself the time I knew I needed to work on these skills. I work as an intern for 40 hours a week, go to graduate school full-time (two night classes a week), and I commute about 10-20 hours. I have a social life. I sleep. I know I could make room for my skill development, but I also know that something needs to give. I originally thought I could just time manage my way through it, but it’s more than that. I need to set my priorities.

So now I am questioning the wisdom of my previous decisions: why grad school? why the non-software development internship? I realized that while I had learned how a lot of my situations are the result of my decisions, it hadn’t occurred to me that I found myself in a situation I didn’t want to be in. Robert Tracy had a line that repeated in his books a lot that went something like: if I wasn’t doing it today, knowing what I know now, would I start doing it? If not, don’t do it anymore!

So I’ve given myself some things to think about. I’ve identified some things I could do to help improve my skills, such as reading more source code (open source is great for providing Freedom #1). I’ve identified some things that are slowing me down, such as school. The question is: what’s my next step?