Friday, May 29, 2009

What motivates me?

I've been programming computers for almost thirty years. After doing so for so long, I felt that I could pretty much program anything. Sure, domain-specific things like medical imaging or physics simulation might require me to go learn more than my high-school knowledge of sciences, but other than that (and NP-complete problems), I can code pretty much anything.

This makes me curious when I see an impressive piece of software, either something that's running very efficiently, or something large scale. As I use such software, my mind tends to drift to thoughts of how I would write it.

The most prevalent case of this was while playing Ultima Online. It would usually start with a bug in the game -- some item not working correctly, or even a loophole or exploit -- and I would think about how that portion of the game must have been scripted to allow the bug; I would be debugging the problem without the code itself.

This thinking leads to thoughts about the general algorithms behind the game, about how combat must work, or how crafting works, or how it makes no sense at all that the 8x8 macroing method should work. And eventually, while thinking about how all of these subsystems of such a large-scale system must work, I got thinking about the underlying structure of the game engine.


This led me to think, "could I write a general-purpose massively-multiplayer engine"? Of course, I expected the answer to be "yes", since I can program anything, remember? Thus the MMORF project was born. The primary goal was to see if I could write all of the subsystems of a generalized game engine, and the secondary goal was actually using that engine to make a game, the test-case being whether I could implement Ultima Online in what I wrote.

I wrote a dozen or so posts on the blog, started working out some design, but over a year and a half, it was progressing slowly, and eventually, I discovered Metaplace. Interest in the platform took my available time for such pursuits, especially once I got into the alpha-test program.

It was a nice surprise, then, that once I got into alpha, I discovered that the backend of Metaplace was VERY similar to how I would have written MMORF; I'd say that my vision for MMORF and the Metaplace design are about 90% related. That other 10% would make for an interesting future post...

With an engine already made, very close to what I had envisioned, my goal has now changed to seeing whether or not my vision would have worked: could I have written an Ultima Online clone with what I had thought up? And that still remains my primary goal with Metaplace, answering the question of whether UO could be implemented on the Metaplace platform. My notes so far on this can be found on my user page on the Metaplace wiki.


So, this is why I'm part of Metaplace. Of course, in the last year-and-a-half that I've been an alpha- and beta-tester, I've done a lot more than work on a UO clone (which should be obvious, considering how far I haven't gotten). I sit in the global chat as often as I can, helping out old and new testers alike, as I like to think that I'm one of the most knowledgeable users out there, and have always enjoyed teaching and sharing knowledge. I try to make demo worlds to show off new features, such as the effects system. I get convinced to write little code snippets for people, when it's either quick-and-simple, or a problem that challenges me. I get side-tracked with thoughts of "I wonder if I can get Metaplace to do this", and then attempt to prove that it can, whether or not it was ever designed to. And every so often, I even publish a module for others to use, actually finishing something! Oh, and I suppose I've "finished" two worlds: a game, Sniper, and a chatroom, educhat.


I still think, every so often, about the MMORF project, and how successful I would have been. While I'm testing the design of it by testing Metaplace, it still doesn't answer the question of whether I could have done it. And some day, after Metaplace has released, the global chat has become too unwieldy to reside in, and the Metaplace Marketplace becomes so large that every possible module is available, I shall go back and see.

But until then, I'll continue working away at Ultima Online...

No comments:

Post a Comment