From ebab858d1f11e5660cbf4de0971b7fb5c2bcba9e Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Fri, 10 Aug 2001 01:23:22 +0000 Subject: [PATCH] Initial design notes for Whirled. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@210 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- docs/whirled/design.txt | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 docs/whirled/design.txt diff --git a/docs/whirled/design.txt b/docs/whirled/design.txt new file mode 100644 index 000000000..a5f02bfa2 --- /dev/null +++ b/docs/whirled/design.txt @@ -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