Tales of the Rampant Coyote
Adventures in Indie Gaming!


(  RSS Feed! | Games! | Forums! )

Friday, February 06, 2009
 
Frayed Knights: Little Victories
I was about thirteen when I got a Commodore 64.

I'd learned to program in BASIC on a Sinclair ZX80 earlier that year. The Sinclair had 1K of memory. Programming games on that thing was nigh unto impossible. A random game of tic-tac-toe was about the extent of its capabilities. Going from that to a whopping 64K of RAM (48K actually usable) was like heaven. Why, with that much memory to play with, I could make ANYTHING!

But there's a difference between having the technical capabilities of making something, and actually knowing how to make it. Naturally, I wanted to make RPGs. Or adventure games. There really wasn't much of a delineation back in those days. But I had no clue how to do it. After searching for inspiration in David Ahl's Basic Computer Games and More Basic Computer Games, I had some idea of how to drive a semi-data-driven interface so I could have a webwork of connected rooms that I could walk through with a text interface of directions like "north," "e," and "up."

I got it working at about 11:00 one night. I was exultant, but I had to refrain from cranking my music up and dancing a victory dance to avoid waking up my parents. They wouldn't understand. It was a Black Triangle moment. Anybody else looking at it would say, "Huh? What's the big deal about that? People have been doing that in adventure games for years."

But for me, personally, it represented a big step. I was able to walk around a virtual 12-room text-based world. I had found "The Way," and it would later provide the foundation for a few adventure-like games I wrote in my spare time (no, none were ever released to the public). I was able to see that.

When programming, there is roughly 10,000+ different ways of doing something. The trick is trying to figure out "the right way." The way that won't disintegrate into an unmaintainable mess when you realize you missed a critical feature and have to shoehorn it in. The way that won't make your life harder as it goes from exercising test data to using real data. The way that will probably STILL get completely overhauled once you've finished it and realize how you could have done it better.

And yet the average person will not appreciate it in the least. For example, doing UI stuff. Which I am STILL working on. For the average player, the amount of work that has to go into making a working drag-and-drop inventory is probably going to be completely lost on them. They just know that it should work.

On the design and coding side, there are a lot of issues to take care of.

Like what happens to the object - logically - when it is picked up from one an inventory and dragged across the screen? Does it remain in the original inventory, but hidden in the interface? Or do I remove it from the original inventory the moment it is picked up, but before the player has chosen what he's going to do with it? What happens if he tries to shut down the inventory screen or bring up the option screen with a keypress while holding an item with the mouse? If I bring up a pop-up screen of the items stats when the player hovers the cursor over an item's icon, should I still do it if he's dragging another item around? Will that be confusing? And what if I don't WANT to move the item, but simply want to activate it?

For what seems like a simple behavior, there are a ton of questions that need answered, code that needs to be written to deal with exceptional cases, and bugs that need fixing. Or I end up walking around with a wand icon stuck on the screen and my fireball wand permanently missing from my inventory, as happened in the picture.

All these elements all have to work together consistently. Otherwise, it feels clumsy to the player. As the first iteration of many UI elements did for a lot of players who tried out the pilot. I can't guarantee this new stuff will be a huge improvement, but it will be an improvement.

It's all boring, black-triangle-y stuff, yet I find myself feeling all excited and exultant when it works. Just as I was when I completed the rudimentary system to walk around a 12-room text-based world when I was thirteen.

But really, I'm just looking forward to it all working perfectly so I can FORGET ABOUT IT and just have it work for me so I can move on to bigger things.

Labels: ,



Did you enjoy this post? Feel free to share it: del.icio.us | Digg it | Furl | reddit | Yahoo MyWeb

Comments:
I sympathize, Coyote. I revamped (to some degree) the "To The World Tree" UI four times, and at least one more is needed before I make a real game out of the platform. I think UI is particularly tough because you can't really tell how it's going to "feel" until you actually have it working.

Geoff
 
This is true - it gets very tempting to just find the best non-sucky interface out there that is closest to what you are trying to do, and then clone it. Warts and all. Because especially with UIs, what looks and sounds great on paper just won't "feel" right in practice.
 
I've been going down that same road, Coyote... except I'm still on the vintage system. :)

I finally got back on my vintage CRPG project, working on the dreaded combat engine... and wow it's a lot of work. Especially in 100% assembly language. :P

And needless to say, I'm pretty much alone as far as empathy and understanding goes. Non-coders are just confused, and coders usually ask the inevitable "Why not write it for a modern system? Why waste time on a vintage platform?"

Working in assembly makes you kinda weird about UI as well. You start to resent the user because you have to coddle him by displaying crap on the screen, valuable bytes that could go elsewhere... :)
 
Yeah, that is a whole new set of problems. Doing a game for a vintage platform would be kinda cool (and I've done it before) - but I wouldn't put the kind of effort into it that you are. It would be more of a "game in a day" thing to see what I could come up with.

But I do think it's pretty cool. And as a game developer who cut his teeth on the C-64, I feel for ya. I taught myself 6502 assembly for that machine, though I usually reserved it just for some speed-critical subroutines.
 
Gosh this post brings back some memories. My first computer was a TRS-80 CoCo with 16K of RAM. I remember trying to write my first adventure game on that thing. I was so excited when I was able to get a 3x3 grid of rooms interconnected and I could freely walk around it (my black triangle moment).

I spent the better part of a day after that rearranging the rooms, adding rooms, add upper stories and such and then wandering around them. After that I was off to implement my wandering orc so I had something to fight in the game.

My second computer was a C64 too. Learning ASM on that was almost a necessity as you basically had to deal with peeks and pokes to access any graphic modes let along enable sprites. As a matter of fact I got pretty good at writing little routines to clear the screen, point to a different (pre-made) character set and the like. To bad I never got into serious game development with it but alas, when I got my Amiga the C64 went into the closet and I stopped programming for a very long while.
 
Post a Comment

Links to this post:

Create a Link



<< Home

Powered by Blogger