This was also about the time that Javascript had gained a reputation as a not-altogether-useless language among programmers. I had not used Javascript much beyond simple user input forms stuff and so I thought why not combine learning a language with writing a fun game? But what type of game should I make? Why, an MMORPG of course.
At this point we will pause to allow you to finish laughing. An MMO? In one month? In your spare time? On an untried platform? In a language you barely know?
Pictured: me |
I was in over my head. My first hopes sprouted when I tried a simple test using a new-fangled (to me) technology called Ajax to send and receive data without reloading the page. With it, I was able to send position data between two clients in real-time over HTTP! My dots could see each other move!
All games start as dots |
So I had the hard part of making an MMO (the networking) working after only one day. At this pace I would have a working game in no time, right? Right? Answer: this is not right.
There is an exhausting list of hurdles to overcome when building an MMO and I won't bore you by listing them all here. By dumb luck and willingness to burn the goodwill of my wife an kids (sorry guys) I would sit up late every night after work and successfully solve one problem. Player inventory, map loading, camera panning, zone boundaries, player chat, mob AI, and so on each day I would cross one more off the list. My saving grace was that I solved the biggest problems facing MMOs, namely latency and synchronization, by punting. I set my latency target at 2 seconds (note: I didn't say milliseconds) and designed the game around that. This does not result in an action-thriller.
More exciting than my game. |
Players move like they are swimming in tar. But at the end of the month, I had an honest-to-goodness little MMORPG.
In all her glory |
It has zones, mobs, loot, player classes, boss mobs, NPCs, spells, scripted AI, inventory, leveling, melee, player equipment, chat, two teams, player cooperation and even PvP!
Was it a good game? Not really. But it was a complete game which is as much as I could have realistically hoped for. I spent many evenings after releasing it playing with random players. What a feeling to see people playing, chatting, and being entertained in a little world that I created!
The game quickly waned in popularity and unfortunately changes to Google App Engine have now broken much of the functionality. A burned up hard-drive containing all the server source-code means there is no fixing it. In any case, for a very brief time I could look at all that I had made and it was good! (well, to me anyway)
A special thanks to all of the great artists who made the graphics and sound for Assemblee. Especially dbb and oryx.
No comments:
Post a Comment