Plan for Josh Ritter
by Prairie Games · 11/29/2004 (9:44 pm) · 12 comments
Distributed Massively Multiplayer Framework
I am in the process of writing the distributed server framework for the "massively multiplayer" part of the show... It could be described as the BitTorrent of massively multiplayer... if you are rolling your eyes over another tiny company trying to make a MMORPG, you needn't... this is quite different... and cool...
There'll be a test release of "The Overseer" server control applicaton quite soon... "The Overseer" allows you to quickly snap together server configurations of the form:
These configurations can be persisted and can span machines... it's very important for our success to quickly and easily launch/connect/configure servers...
I have also written a really cool role, permission, avatar, ghosting, SQL system... come to think of it, I am finally having fun working on games again!!!
I want to distribute the "The Overseer" test via the live patching system to give it a workout too... I have to add http support to the download client before we do this... so, we'll see...
Here's a quick sketch:
I am also taking hints from the MUD systems of old:
One thing that I am quite keen on is arbitrary extension of the 3d enviornment... basically, allowing people to tack their own zones onto live worlds via a "Builder" role... this will allow people to make their own dungeons, houses, castles, forests, mountain ranges, etc... and then attach them to their own or other people's worlds... the distributed nature of the server framework means that there is NO LIMIT to the size of the world...
The Builder role can be toggled or password protected... so if you want to control your world's extension or lack thereof...
Our technology supports discrete zones... there are triggers that transport you from one zone to another... now, the question with "Builders" adding zones to a world is how to interface the new zones to existing zones...
In a text mud this is simple because the room data is on one server and there isn't any 3d trigger that has to be laid out in existing level data... What I am thinking is that zone exits will popup a multiple choice dialog for zones that have been extended... this will give the player a choice of zones that "Builders" have tunneled from the zone... later on, there could be a better system for extending the game world... perhaps some kind of trigger layout tool in the actual client that builders can use...
Of course, zone connections can be handcrafted to be precisely laid out in the level editing software... but, allowing people to tack on zones arbitarily is easy to do and while developing the game this feature is handy... so I want to support it...
Thank you for reading this ramble...
-Josh Ritter
Technical Director
Prairie Games, Inc
I am in the process of writing the distributed server framework for the "massively multiplayer" part of the show... It could be described as the BitTorrent of massively multiplayer... if you are rolling your eyes over another tiny company trying to make a MMORPG, you needn't... this is quite different... and cool...
There'll be a test release of "The Overseer" server control applicaton quite soon... "The Overseer" allows you to quickly snap together server configurations of the form:
Master
World(s)
Region(s)
Zone(s)These configurations can be persisted and can span machines... it's very important for our success to quickly and easily launch/connect/configure servers...
I have also written a really cool role, permission, avatar, ghosting, SQL system... come to think of it, I am finally having fun working on games again!!!
I want to distribute the "The Overseer" test via the live patching system to give it a workout too... I have to add http support to the download client before we do this... so, we'll see...
Here's a quick sketch:
--- Prairie Games Master Server ---
Our Games:
Superhero Game -> Add World
***World List, see MoM example below***
Vampire Game -> Add World
***World List, see MoM example below***
Minions of Mirth -> Add World
Minions of Mirth World Servers:
Joshs World Server -> Add Region, Make Connection
Region Server 1 -> Make Connection
Zone Server 1 -> Make Connection
Zone Server 2 -> Make Connection
Zone Server 3 -> Make Connection
Region Server 2 -> Make Connection
Zone Server 1 -> Make Connection
Zone Server 2 -> Make Connection
Zone Server 3 -> Make Connection
Barrys World Server -> Add Region, Make Connection
Region Server 1 -> Make Connection
Zone Server 1 -> Make Connection
Zone Server 2 -> Make Connection
Zone Server 3 -> Make Connection
Region Server 2 -> Make Connection
Zone Server 1 -> Make Connection
Zone Server 2 -> Make Connection
Zone Server 3 -> Make Connection
--- Local Servers and Connections ---
My Servers (Worlds, Regions, and Zones):
Server (name) (hierarchy)
-> Status (Process ID, running, metrics)
-> Information (Name, roles, avatars, tables)
-> Live Connections (connections TO this server) ... disconnect/ban IP
-> Process -> Spawn, Shutdown, Restart
-> Enable/Disable
-> Configuration -> port, auto-spawn
-> Make Connection (username, password, role) (shortcut)
-> Delete Server (and all child servers)
-> Child Servers (which can also have children)
-> Add Child Server (Region or Zone)
-> Remove Server (Region or Zone)
-> Edit Server(Region or Zone)
-> Users (username, password, roles)
-> Add User
-> Remove User
-> Edit User
My Connections:
World Connections
*** Connections ***
Region Connections
*** Connections ***
Zone Connections
*** Connections ***
Connection (username, password, role):
-> Status
-> Configuration: port, auto-connect
-> Enable/Disable,
-> Connect/Disconnect
-> Delete
-> Notebook with Avatar tabs
-> Admin Avatar (control server process remotely, etc)
-> Database Avatar (edit tables tied to Connection role)
-> Builder Avatar (extend 3d environment arbitrarily)
Roles:
Admin - has access to all avatars of server (shutdown, restart, etc)
Immortal - full access to DB (other than admin stuff, server settings, etc)
Game Master - player + privledges
Character - a player character
Builder - can extend environment...I am also taking hints from the MUD systems of old:
One thing that I am quite keen on is arbitrary extension of the 3d enviornment... basically, allowing people to tack their own zones onto live worlds via a "Builder" role... this will allow people to make their own dungeons, houses, castles, forests, mountain ranges, etc... and then attach them to their own or other people's worlds... the distributed nature of the server framework means that there is NO LIMIT to the size of the world...
The Builder role can be toggled or password protected... so if you want to control your world's extension or lack thereof...
Our technology supports discrete zones... there are triggers that transport you from one zone to another... now, the question with "Builders" adding zones to a world is how to interface the new zones to existing zones...
In a text mud this is simple because the room data is on one server and there isn't any 3d trigger that has to be laid out in existing level data... What I am thinking is that zone exits will popup a multiple choice dialog for zones that have been extended... this will give the player a choice of zones that "Builders" have tunneled from the zone... later on, there could be a better system for extending the game world... perhaps some kind of trigger layout tool in the actual client that builders can use...
Of course, zone connections can be handcrafted to be precisely laid out in the level editing software... but, allowing people to tack on zones arbitarily is easy to do and while developing the game this feature is handy... so I want to support it...
Thank you for reading this ramble...
-Josh Ritter
Technical Director
Prairie Games, Inc
#2
11/30/2004 (12:33 am)
So is this, in essence, a distributed system of servers? or is it truly distributed such that the clients are actually responsible for part of the gamestate processing?
#3
-Josh
11/30/2004 (2:25 am)
Distributed system of servers... and client machines can be configured to dynamically serve regions/zones... so in essence, both are true...-Josh
#4
Very interesting and I am following it quite closely to see how it goes...
One question, how are you going to handle the issue of people who would attach pornographic or racist extensions to your levels? You can lock the feature, but that simply means that no one can use it. If you open it you may find yourself painted with the same brush as those who are abusing your system - in fact, you may find yourself being accused of "aiding and abetting in the distribution of pornographic or racist materials." Which is, I am sure a violation of the law somewhere...
Not sure a statement on the EULA will let you out of it on this one. I am sure there is a statement on the Eula of City of Heroes that enjoins you not to deliberately attempt to create any existing comic book hero. Didn't keep Marvel from suing.
11/30/2004 (5:54 am)
Josh,Very interesting and I am following it quite closely to see how it goes...
One question, how are you going to handle the issue of people who would attach pornographic or racist extensions to your levels? You can lock the feature, but that simply means that no one can use it. If you open it you may find yourself painted with the same brush as those who are abusing your system - in fact, you may find yourself being accused of "aiding and abetting in the distribution of pornographic or racist materials." Which is, I am sure a violation of the law somewhere...
Not sure a statement on the EULA will let you out of it on this one. I am sure there is a statement on the Eula of City of Heroes that enjoins you not to deliberately attempt to create any existing comic book hero. Didn't keep Marvel from suing.
#5
11/30/2004 (8:09 am)
I had an idea like this for a distributed MMO FPS where it would also use geography of the server as something to consider. So say you are from CA, you join one of the CA servers, you run around there, but if you want to battle someone else, you will battle someone who is close to you geographically, since real geography maps to virtual geography. In theory, this would mean you are always playing on servers which are geographically close to you and therefore better with regard to ping time. I dunno if that made any sense because I just woke up. Ugh,
#6
@Pat: Yeah... that's something at that could be done pretty easily with the server hierarchy... and there would be very little RPG element to mess with...
11/30/2004 (8:58 am)
@David: If we decide to run official servers, we will not allow extension to them... otherwise, they wouldn't be official... What people do with the game beyond that is not under our control... or our liability... see "Aliens" and "Stargate" mods..@Pat: Yeah... that's something at that could be done pretty easily with the server hierarchy... and there would be very little RPG element to mess with...
#7
EDIT: Moved the sketch to the .plan
11/30/2004 (2:14 pm)
Here's a sketch... note that the single player component uses a hidden server hierarchy on localhost... EDIT: Moved the sketch to the .plan
#8
11/30/2004 (3:27 pm)
He's a man possessed!
#9
Sounds really great though. So this will be open sourced as well?
11/30/2004 (4:08 pm)
Just an idea, but you could have a signpost when the player leaves a region. Points to all the other regions and they click on the 'direction' they want to go.Sounds really great though. So this will be open sourced as well?
#10
11/30/2004 (7:52 pm)
I really like the signpost idea... nicely themed...
#11
Easier than signposts, cus its just text for him to speak.
12/01/2004 (12:39 am)
Have a teleport mage you have to talk to at each exit. Pay him some fare and he asks you where you want to be teleported. Easier than signposts, cus its just text for him to speak.
#12
Zorak the Green asks, "Where do you want to go today: [Eugene], [Wishek], or [Laos]"?
> Laos
Zorak gestures for you to stand perfectly still. As he begins to mumble to himself, you feel very dizzy...
... ZONING ...
You have entered Laos.
>
12/01/2004 (12:51 am)
Hey, that's a good idea too... Zorak the Green asks, "Where do you want to go today: [Eugene], [Wishek], or [Laos]"?
> Laos
Zorak gestures for you to stand perfectly still. As he begins to mumble to himself, you feel very dizzy...
... ZONING ...
You have entered Laos.
>

Torque Owner Jason "fireVein" Culwell
-Jase