Text Tumble: Getting Started

Text Tumble: Getting Started

It's a tough thing, moving between web development (a world which is dominated by scripting languages) and game development. I've been programming computers since I was 16, and for the majority of that time, I've been /paid/ to develop webpages, and /dreamed/ about developing video games.

Now, here I am at 28, finally doing that. While I've worked on video game mods in the past, those really aren't quite the same thing as doing a from scratch video game. (Even one that, were it not my own, I would think of simplistic - embarrassingly so, when compared to other games) And, while I certainly can make my way among the major points of a more explicit memory management language (additionally, where resources may be constrained, though saying that the iPhone is memory constrained may receive different reactions from different developers), it's rather like saying I can speak Spanish. I've been trained to do so, and have been able to in limited situations, but my day to day usage is far different- (see, Ruby, JavaScript, Python, et al)

So getting started on iPhone development, while not impossible for me, introduced me to a different set of problems than I'm used to solving in web based apps.

  • OpenGL: I've played with OpenGL in trivial apps off and on for years, always swearing I'd do a better job learning it, then never getting around to it. Now that I actually AM using it, I feel like I have a lot to learn when it comes to how colors combine when objects are rendered over each other, or image bit alignment. These aren't things I need to know in the simple case, but I can see how becoming much more familiar with these things in the future will open a lot of graphical options to me.

  • Data structures: Believe it or not, this one actually bothers me quite a bit. I've spent a lot of time thinking about how to represent a list of entities in memory where my primary method of access would be spatial. It may be naive, but I've been constantly thinking about how a "spatial hash" may work, and be implemented. I'm kicking myself now for my silly list style representation, when I could have spent just a day looking through the Algorithms book beforehand and implemented a balanced interval tree instead. This is a common thing for me, working with real time "physical" objects now - learning to reference my books and the internet FIRST, not after the fact.

  • Appreciation for physics: I feel like knowing and learning more about physical simulation will change me from being an average developer to being a /good/ developer. While I don't think I'll ever author a paper on a topic, being more aware of where to turn for an equation that describes some physical phenomenon that accomplishes what I need (and being comfortable in how to translate that to actual code) will be invaluable.

  • State : This is infuriating for me, as I should have known better. Maintaining state, changes to state, and centralizing access to this information is something I should have known right from the beginning of TextTumble. While the code is by no means unmaintainable, I see now the bad habits forming through independent has_done_x state flags littered through the code. Surprisingly (to me), abstracting all this not only would reduce the noise in source code, it could also lead to efficiencies in rendering by abstracting the state change facility of OpenGL. Only sending state changes to the hardware when they are necessary (obviously in retrospect) leads to an increase in framerate, which will obviously pay off later on.

    There's more of course, but the sum is: I really couldn't be any happier than I am right now, (re)learning things and finally making a game.

comments powered by Disqus