What Makes Game Programming Awesome
Posted by Rampant Coyote on July 29, 2010
It was the summer of ’83. Or so I think. Up late on the Commodore 64, music turned low so as not to wake my parents. After making a few little Space Invaders and Missile Command clones, I was going to tackle something in the adventure / RPG genre (the two weren’t quite so separate back in those days). I was having to figure out how to do it from scratch, using some generic data structures rather than hardcoding each room and command in code in this text-adventure-y thing. It was all in BASIC, and I’d studied some source code from games like Wumpus 2 and Nomad (from Creative Computing’s “More Basic Computer Games“) and had some ideas on how to build a generic world.
It was Black Triangle work, all the way. But around midnight, things ran correctly for the first time. I was able to walk around, adventure-game style with commands like “N”, “S”, and “D” (North, South, and Down), and look around at the crappy room descriptions I’d created. I had something like 8 rooms in my little world, but I realized what this meant. I could create entire worlds. With HUNDREDS of locations. I mean, hey, I had a floppy disk drive with 256 K of disk space — that was almost UNLIMITED!
I rode a high made of a cocktail of emotions. First of all, there was the the source of programmer’s satisfaction: Not only coming up with a solution to a problem, but building a device to solve an entire class of problems. Secondly, there was the surge of megalomaniacal euphoria realizing how I had tools to build entire WORLDS out of this thing! I could even store it on disk – 256 KILObytes of storage space! Practically unlimited. And – perhaps the coolest of all – was being able to play with the results of my labors.
I’d built something cool. Even if it was only cool in my own mind.
I never actually created a full game out of my little 8-room world I built that night, but I remembered the feeling I had when I saw it finally work. The black triangle was live. This was how game programming SHOULD feel. I think in some ways, my career has been about trying to recapture that feeling. Sometimes I get it. Sometimes I’m there. Sometimes I’m not quite there, but I get a piece of it. Like last night. It wasn’t anything earth-shattering … just a significant refactor of how equipped magical items in my latest RPG work and are incorporated into the game rules.
But then seeing it all work, seeing it on the screen, seeing the Helm of Minor Awesomeness take effect properly when worn and mixing with other spell effects exactly as it should to make the Rules of the Game World all mesh together in a complex but predictable way. I felt that familiar feeling of Awesome again. I’d built something cool. Or possibly it was the virtual effect of the helmet on me late at night. But I’m gonna assume it was the former.
Game programming can be a lot of butt-in-chair work. It can be slow, painful, and not particularly exciting. But moments like that are what I live for. They take me back over twenty-five years, and remind me why I love it.
Filed Under: Programming - Comments: 9 Comments to Read
Adamantyr said,
Totally with you, dude. I get that every time I progress a little further with my vintage CRPG… (Still working on it! 5 years and counting…)
What’s really exciting is when you see systems you’ve built actually interact with one another and work correctly. It’s like you just completed a building and have seen the framework and structure take a hit from a car and not crumple.
Greg Tedder said,
I don’t find this limited only to game programming. Programming is like a 1000 piece puzzle where all the pieces are the same and there is no picture on the box. Seeing a program come to life is always exciting, and a huge confidence boost!
Ichiro Lambe said,
You know, Jay, I think back on those days fondly. While I’m lucky enough to develop games for a living, I rarely get back to that feeling of magic that you describe.
I wonder if it’s because the games are so bloody complex nowadays? The last time I remembered what things were like back in my Atari 800 days was when I saw http://twofoldsecret.com/games/sanctuary-17, and it weren’t just for the chunky graphics.
Shaf said,
The C64 1541 Disk Drive was 170K not 256K. I still remember the vintage game like the Apshai series.
Rampant Coyote said,
Was it? How easy it is to forget. Back when hard drives were new, I used to multiply the number of megs (back when their storage was measured in megabytes) by 2 to come up with the equivalent number of C64 disks (‘Cause you could punch a hole in the opposite side and use ’em double-sided, even if you weren’t supposed to…)
Spaceman Spiff said,
I am so with you. Back in ’83 I actually completed and *sold* a dungeon crawl-type game for the Atari 800. About 90 rooms (screens) in size. Reprogram fonts provided much of the graphics.
I also did a graphical adventure with 75 or so “screens” of 80×40 resolution pictures a friend drew up. We had Display list interrupts, so some of them had 10 or more colors in them from the Atari’s 128-color palette. That too got sold – locally by consignment in a big Detroit-area computer store, and a 1/9th page age in the back of Analog magazine. Sold maybe 30 copies in all.
*sigh* It’s a magical high that has propelled me to this day.. in many ways it’s still a greater high than I’ve ever gotten from that PC game that’s over 20% my code, and sold 10M+.
Ottomobiehl said,
This post brought back some memories.
I stayed up many a night writing BASIC code for text base adventures on my C64. I also remember how gratifying (for me; my family didn’t seem to understand) it was to solve a series of problems and have your game work almost perfectly as intended.
adorna said,
I feel strange commenting since I’m not a game programmer – but I did the coding part of a rpg/adventure in BASIC thing too and never forgot how it feels. Its magical.
No other tool makes you able to create living breathing worlds on your own.
Even though I lack most of the skills I still toy with the idea of starting to deveop some simple game once again. I guess taht old feeling is addictive.
Katy said,
I love the feeling of accomplishment I get from creating something out of nothing. It doesn’t have to be an entire game system either — programming a print engine and getting something to print properly can be just tremendous.
I get that from some crafts too — taking two sticks and a piece of yarn, and making a hat someone can wear generates the same sort of feeling.