‘‡Ž‘—ฟŠู

•ฤŒ๖ŽฎƒTƒCƒg`Team Comments
yVaxhacker [2000/11/17] z

2000”N 11ŒŽ 17“๚

Hey all,

Vaxhacker here, a.k.a. "the server guy". Since this is the first one of these letters I've done, I guess some introduction is in order.

A long time ago, but in a nearby galaxy, I graduated from MIT with a bachelors in computer science. Then, finding the job market not to my liking, and with student loans that badly needed deferment, I decided to spend even more time in college, eventually getting my masters from Binghamton University (in upstate New York). As it turns out, delaying entrance into the "real world" was a good move, because right about then I got a call from a friend of mine who was starting a game company on the west coast. Naturally, I jumped at the offer to join it. Thus, I was able to still avoid entering the real world, a status I maintain to this day.

Coincidentally enough, that company produced an online RPG that went by the name of Underlight. Not too surprisingly, I was the server programmer on that project. Which brings us to the present, and Origin.

I've been lucky enough to be on Origin pretty much since its inception. This means I've seen it develop from the very beginnings - from when we had no server, to a very simplistic prototype, to the complex multi-server architecture that is in place today. And, that's what I'm going to talk about for a bit.

For a game like Origin, what most people view as "the server" is not a single entity. Rather, it's a bunch of different processes, running on multiple computers (typically very powerful ones), cooperating together and presenting an illusion to the client - that of a single, seamless world. There are a number of different kinds of servers, each doing their part. The three primary server types that Origin employs are "user" servers, "area" servers, and the database.

User servers are what the client connects to, and all client communication first passes through a user server. Area servers own a portion of the game world, and run most everything related to game simulation - characters exist there, as do all game objects, monsters, etc. The database, of course, is where game data is stored. User and area servers are fully connected; that is, every user server can send messages to every area server, and vice versa.

You might wonder why have user servers; after all, clients could connect directly to an area server. This is technically true, but for various reasons, having a "front line" of user servers is a good idea, and many online games utilize this general principle (so I'm not giving out any secrets here). Primarily, they shield the client from having to deal with switching server connections, as you move around and change area servers. In addition, they act as the first line of defense against exploits - the user servers are responsible for a good deal of client packet validation.

That's it for the server architecture introduction. I hope it wasn't too boring, and maybe I'll be back later to discuss things further, if there's any interest. In closing, I'd like to present a short list of the coolest things that I've experienced during development (so far). Keep in mind, I'm a server guy, so I have to throw in some geeky items. (Alright, alright, so most of them are geeky.)

Vaxhacker's Current Top 10 Cool Things About Origin

011. The day I got hired. Good choice, if I may say so myself.
010. The day that the client and server connected.
007. The day that you could see other people moving around. (Multiplayer!)
006. The margarita machine at milestone parties.
005. Booting a client off the server for the first time. (That client was me. J)
004. The day that seeing objects across server boundaries worked.
003. The Yew Tree. Simply awesome.
002. The day that crossing server boundaries worked.
001. Cloud Room!
000. The amazing, great team I'm part of.
Until next time,
Vaxhacker
Lead Server Programmer



Origin, Ultima Online 2, Ultima Worlds Online: Origin, and the Ultima Online 2 logo are trademarks of Electronic Arts Inc. Game content and materials copyright 2000 Electronic Arts Inc. All rights reserved.
Translated by Kusa,shiro3,Himajin
(C)2001 UWNN