Two weeks ago, a week after my last exam at university, I disappeared from my social life. No lunches together, no meet-ups, no IM, no facebook. Just hermiting it on my little netbook. I would wake up close to noon, turn on the computer, bang away for 24 hours straight into the night and morning and then sleep until the next cycle. Repeat several days in a row. It’s a horrible experience that I don’t want to experience again, and it was all to do some programming.
I will never try that again, and I will probably never be as motivated to do that again ever. But when I was in the cycle, it was so… addicting. Almost as addicting as a playing a really, really good game.
Over the course of my last year in university, I got my foundation in Java and mySQL (and thus a bit of PHP as well), and now I’m looking at Game Maker Langauge, the language for a 2D game-making suite called Game Maker 7. I set my sight on writing a 2D turn-based combat engine similar to Final Fantasy-style battles. Not that it was any original, althought I had thought of a few new mechanics, but it was good to practice using the engine I had designed other games for.
I would wake up fresh from dreamless sleep. With new eyes, I would try to think of a solution to a problem I was having the day before. I reminded myself that I still have had a feature to implement, like different character classes or a tool-tip style mouse-over. Worse of all, I would take a look at bugs and glitches. I would think over the data structure and how variables would pass between objects and how game maker would accept one syntax over another.
So I’d make the necessary modifications to the code. I’d type for about half an hour. Once I was satisfied with my code, I’d try to compile and run the game to see if my new feature would work. It never does the first time, so I’d go hunt down what I’m doing wrong. I would look again at the manual. I would look again at the code.
Eventually something like a working feature would emerge. I would go like, that was cool, but what if it also did something else which was cooler. So I’d get back to modifying the code, and trying out again. Repeat several times, with each cycle taking 2-3 hours until I was too frustrated or too tired to code any more, where I would grab something to eat and go back to sleep.
What was really getting to me was how it is like playing a really good game. In a good game, there would be multiple ways to defeat the current level. In a sandbox-styled game, you would set your own objectives and try to achieve them. Programming a game by myself is very similar: I would set the objective of implementing an objective, and find a solution within an uncertain environment.
When it would actually work, it was such a relief; I’d feel like I had achieved something. Not just a gaming achievement, but something I was proud to learn to do in real life. So I’d try to pick up on something else that could potentially work. And I was stuck in this risk-reward structure for DAYS.
After about a week and a half of embarking on the project, I finally decided this was a terrible way to live. I was completely obsessed, and I was not eating, exercising or talking to people. Suddenly, I began to sympathize with computer science majors and its perceived that they lack social skills. I’m not saying that every single one of them do, but I now I can certainly see why the nature of what they do tends to make them lose social skills.
It’s just so rewarding to program and have immediate results, and that cycle doesn’t need human interaction. As a political science major and an participant of organization, human interaction’s not always as great as we think it is. All activists and organizers know that to get what they want, they have to beg, wheedle, and politick their way to where they want to be. Why do that, when the computer can offer you meaning without giving you lip?
I have a small little program now. My non-programmer gamer friends look down at it, and they don’t appreciate how many tears and hairs I’ve torn out from my head just to get it where it is. On the other hand, they’re completely right: a lousy game is not worth playing.
What have I learnt from this? I have a newfound respect for programmers and hackers now. They have an intuitive sense of the logic that a cold, unyeilding machine poses and tames it, shapes it and builds it into something beautiful. I’ve quit working on that program for the moment, going back to my political science roots to research and write an article I’ve been meaning to write for some time. I’ll probably not work on the turn-based battle for some time. But I have been dreaming about another game…