[MUD-Dev] SMOG - small multiuser online game

Byron Ellacott bje at apnic.net
Fri Jan 30 11:20:19 CET 2004

On Thu, 2004-01-29 at 20:59, Crosbie Fitch wrote:

> This provides the ability to create a fairly colossal virtual
> world (albeit static), with up to 16 players per file (sharded as
> necessary).

This provides a solution for transferring the static data of a world
around, but not a solution for the more immediate communication of
those sixteen players.  If Player 1 says, "Hi!" and Player 2 is
nearby, Player 2 should hear it.  It would be uncomfortable to wait
for a filesharing network to propagate a snippet of conversation. :)

And, if you can arrange a connection for Player 2 to hear Player 1
in near-realtime, you can use that connection to transfer the static
world data also.

A more difficult aspect of the problem is establishing an
authoritative view of the world.  If Player 1 thinks they're at
(244,321) but Player 2 thinks they're at (240,380), right where they
planted a land mine, who is correct?  How do you resolve the
difference?  Also, Player 2 could claim they'd planted a land mine
at (244,321) and Player 1 is wrong in thinking there's no such land

I toyed around with a non-brokered peer to peer network to solve
some of these problems.  If each peer maintains a set of connections
to other peers, and each message is propagated in a broadcast
fashion, you get two things: first, you can detect anomalous
information; if Players 2, 3 and 4 say Player 1 is at (240,380), but
Player 1 says they're at (244,321) ... well, majority rules.  Player
1 is out of synch.  Second, you can get localised broadcasts.  As I
move through the virtual world, I replace connections to more
"distant" peers with connections to "closer" peers.  I thus hear
about events from my closer peers sooner than from remote peers.
Add a short number of hops-to-live on each message, and they will
naturally die out as they move too far away from their source.

MUD-Dev mailing list
MUD-Dev at kanga.nu

More information about the mud-dev-archive mailing list