[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
mine!
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.
--
bje
_______________________________________________
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