Initial design notes for Whirled.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@210 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
Whirled Design -*- mode: outline -*-
|
||||
|
||||
* Overview
|
||||
Whirled builds on top of the Cocktail platform and provides a framework
|
||||
for building a virtual world made up of a node network of individual
|
||||
scenes. In the abstract, scenes contain only exits to other scenes and the
|
||||
world is one big directed graph. This is not unlike the structure of MUDs
|
||||
where one classically thinks of rooms and exits. We've chosen the term
|
||||
scene to avoid implying that we're indoors.
|
||||
|
||||
Whirled provides a means by which clients can move from scene to scene,
|
||||
and to different locations within the scene (though restricting clients to
|
||||
movement only to a pre-defined list of locations within the scene is
|
||||
optional).
|
||||
|
||||
The scene information needed by the client may differ from that needed by
|
||||
the server. Specifically, the server may need only know about exits to
|
||||
other scenes, whereas the client will need to know how to render a scene
|
||||
which may involve substantially more information (tile lists for top-down
|
||||
and isometric renderings or a 3D scene model). To this end, Whirled
|
||||
provides services for building static scene bundles that can be included
|
||||
with the client and then updated over the wire if the client enters a
|
||||
particular scene and needs updated scene information. Using these
|
||||
services, the world can change and evolve and the client can be sure to
|
||||
always have the correct scene information. Excessive downloading can be
|
||||
avoided by seeding the client's scene database with a snapshot of the
|
||||
system at the time the client is delivered, and subsequent snapshots can
|
||||
be provided periodically to bring all clients into sync with the runtime
|
||||
scene database, from which they can then continue to mirror updates as
|
||||
needed.
|
||||
|
||||
* Notes
|
||||
Reference in New Issue
Block a user