[MUD-Dev] DGN/TECH: Implementing server side spatial partitiongwas:(exploiting/hacking in MMOGs - sources of info?)

John Buehler johnbue at msn.com
Thu Sep 30 20:02:58 CEST 2004


Alistair Milne writes:
> On Wednesday, September 29, 2004, 3:38:19 AM, William Leader wrote:

>> As far as how to implement the partitioning algorithm, I do have
>> and Idea about that I imagine that most server currently spew out
>> a constant stream of data about players, mob, objects, ground
>> spawns, etc. I bet these are usually broadcast packets (but that
>> will have to change). Instead you take the current servers, and
>> pipe all that data to a Line-Of-Sight (LOS) proxy server.

>> The LOS server has the 3d map loaded in memory (no textures, just
>> planes).  For each packet that comes in, it does a line of sight
>> check between the player's location and the location of the
>> object in the packet. If the client can't see it, it changes the
>> packet to tell the client the object has disappeared. Worst cast
>> the client still knows the last known position, but that's not
>> unrealistic. This setup allows all the partitioning 3d
>> calculation work, can be unloaded onto a separate processor. The
>> client gets only what they need. They know what was behind door
>> number 1 last time they looked, but there is no what to know what
>> is there now, or was there before is still there.

> The problem with this LOS calculation is that when an player moves
> so that an object appears around a corner, for the first few
> frames it will be invisible until the LOS server catches-up with
> where the player is located and starts sending the new object with
> the update packets.  This "pop-in" is exactly why servers send too
> much information, so that the client can fill-in the gaps and keep
> the graphical experience consistent.

An alternative is to have the server drive the character movement
instead of the client.  Then the server can send the visibility
information lockstep with the movement.  Not to mention making it
possible to do things such as accurate collision detection between
moving objects.

This changes the player operation of the character, of
course. Instead of players driving a character around in the model
of Everquest, they would issue directives to the character and hope
that the character does what they want, in the model of Diablo.

It also takes one more degree of control out of the client, further
reducing the hacking that players can commit.

JB
_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list