From 17281a9db3296e218492c6e0ca7b8b674b63038f Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Tue, 13 Nov 2001 00:12:20 +0000 Subject: [PATCH] We love to document. Provided an initial description of what services the whirled.spot package will provide and created a Log class for the package. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@617 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- src/java/com/threerings/whirled/spot/Log.java | 38 ++++++ .../threerings/whirled/spot/images/scene.dia | Bin 0 -> 2000 bytes .../threerings/whirled/spot/images/scene.png | Bin 0 -> 12994 bytes .../com/threerings/whirled/spot/package.html | 108 ++++++++++++++++++ 4 files changed, 146 insertions(+) create mode 100644 src/java/com/threerings/whirled/spot/Log.java create mode 100644 src/java/com/threerings/whirled/spot/images/scene.dia create mode 100644 src/java/com/threerings/whirled/spot/images/scene.png create mode 100644 src/java/com/threerings/whirled/spot/package.html diff --git a/src/java/com/threerings/whirled/spot/Log.java b/src/java/com/threerings/whirled/spot/Log.java new file mode 100644 index 000000000..698d14142 --- /dev/null +++ b/src/java/com/threerings/whirled/spot/Log.java @@ -0,0 +1,38 @@ +// +// $Id: Log.java,v 1.1 2001/11/13 00:12:20 mdb Exp $ + +package com.threerings.whirled.spot; + +/** + * A placeholder class that contains a reference to the log object used by + * the services provided by this package. + */ +public class Log +{ + public static com.samskivert.util.Log log = + new com.samskivert.util.Log("whirled.spot"); + + /** Convenience function. */ + public static void debug (String message) + { + log.debug(message); + } + + /** Convenience function. */ + public static void info (String message) + { + log.info(message); + } + + /** Convenience function. */ + public static void warning (String message) + { + log.warning(message); + } + + /** Convenience function. */ + public static void logStackTrace (Throwable t) + { + log.logStackTrace(com.samskivert.util.Log.WARNING, t); + } +} diff --git a/src/java/com/threerings/whirled/spot/images/scene.dia b/src/java/com/threerings/whirled/spot/images/scene.dia new file mode 100644 index 0000000000000000000000000000000000000000..05760b012cd3bd8ee23ce20ec1a61fe414cc739c GIT binary patch literal 2000 zcmV;>2QT;^iwFP!000001MOW)Z{s!)zWY}g-b)L(wD^!ntv6X<_qsp}w0DEHxwcwa zG9-DET>9HfQqDTo!w=Ck9G3wSMaqEVq2`+hIm3MV{Je_$KSY*CY4R|Dz#Dvi?0uR? z{Gbx?+<8m?(@X6~;oX=otn?Y=wL1vplluy=aR%ARX>P)6-8VjD3e2Q!%y7S3rJeI0* zND$b4^zTtoq(?sgcOK`b2v9!$iJWs$xX7aUVG!<7w2bl;&5Pya`OtKE!0$d`<@hhw z#{UuJ(KHrK5=2R1{Jvj@e=!{1^j&YFxyX;a?R}b-k(OJs(J{fRbf-#CKB_n=%_8P6 zBHIrCW#^vy+d19>|II9<)4#>6*oyaO!IL@9=KbILU()Bn&bfMnel&j={O;{fPgNi} zm^47O`B|sC_lSW%gz&94w!O_Z2GePE{7g!~lSM3k@*sicA}?defRE*!uP)uVidd{B zvouTU?)Gw`X(k%Ub@5(NY%=sxM2lt7J~rt#_B74rB0KiMJ>b!9JvEUFwtvRTz^&^bfTdA^KAvN$|H9jCw4%1OrO(I!7M{xQ`lAC}gjvw47~ z=7A2GMZ*w)&>vFyV~h##{2`Jy!Kz8-~lCPpYAQVX$K4UmC9B(_me zm8c0g3K!Vn;%;#fTqdIOEk{&DLPJMXzJ$hAA}arQL`57f?iLsH61h0By@Xt5;~2;b z*=6HIts;{vWaH$B_t5z`aTvK%j4)G-AQfI9&nikJ528>a*{JInF@P0H5Y$)8C~1(e zfr!aZ<4|&^C<%>G5?aRyE45U{SSVD#LiKrdEhG*Y_X-T-9cm1<+FAsLL_?_kgan5Cp+RCD7*(m7NIHw{fN}f4K$i%m z@D)NS?J-K{aRrZ2ld6Tp0pnhQfiIJZ<7?#MNbdyh@^Gwo0n_kKrGFIItOUM7;opAy$t5)NFY#P7siyhn zGy(yoXb2gg9-%fj9VA>CQ;a-Dbp;@Ws;+|pChxm3F4VMC*jAewDl~1cS9gc)(N&ts zzHFj+E`MujCp*v<($)x+CPfoN^?Xb6HQi*9MB>PVPYn=_rj(g6+1IkOG_4Ce-GkV~ z@NILVr@zb?@i8jI%-cL+7Lz*u!&#@qCW*zRbNfm~QNw7jkfXg6llff)(q zeAq>O7`;FWQd$-QkX;|9S}Iss{G@!C%+pIBMgVp`?0?|HS~bo2Fq=N?0_6fjjMT!!5D|5;>czT?<@zyQKj!=C$7~B7j4LE$py}bVFAdVbW_PA^8IVyK zJIKlLL#p~17=}6w#q$34V~4NtCT~AY#f1*X(%&{sbD@Jx6M;PQoj-tB5GdzPp~oz5 zbl{LFPF{$q%7s0KiMnU<-kFGd&o0_D&6x&;3PQVmpne$W^+`%S zG*)bhSF-JD9!@WmXq2(3c@%h>j&$Cnwo)^pb8>473%5~`;onKw62k8Vkv?F)Zpj7| zVWJU<6+#sv{oqz0833s1d;s4eBm)P@8-S#7l@x*i!7{e72}#KYGSwL_gJ$aCvCO(L zm5@}yG_v2;*C=G;PLqZtLLhKX(jl@7BK-?ENq@-f)_!>9k%b5DJzfILhLRM(S{}5b3)6cV#8Sb0l9(+Dqj9 zvX{?9;_O7{{mY8hIV)k)N?`MUXtO=W#`fv8%23GsQ->2O4^@UjrhwkNG!%KdafZUQ iT(Yis&Q_deE6RKQud*I{d;d%8vG*T@-)mu3asUAI8r1jz literal 0 HcmV?d00001 diff --git a/src/java/com/threerings/whirled/spot/images/scene.png b/src/java/com/threerings/whirled/spot/images/scene.png new file mode 100644 index 0000000000000000000000000000000000000000..80b5b82b8635f41150e0e7aa88285c7340bc6c2e GIT binary patch literal 12994 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 + + + + + + + Extends the Whirled services with the notion of locations, clusters, + coordinates and orientation. + +

The basic Whirled services facilitate a game that provides a + connected set of scenes and the ability for the bodies to move from + a scene to its neighboring scenes. The Spot package extends those + services by providing the notion of locations within scenes which a + body can occupy and which, while occupied, cannot be occupied by + other bodies. +

+ +

The philosophy is that a game that uses these services wants to + create a constrained universe where a body cannot simply stand + anywhere on the screen, but can only stand in a set of predefined + locations. This is a simplified mechanism for providing finer + grained locality management, such that expensive distance monitoring + algorithms need not be used to determine who can interact (speak) + with others in a particular scene. For many games, the overhead of + tracking each users' position in near-realtime coupled with a + complex message broadcasting system that dispatches messages to + users in geometric proximity to one another is serious overkill and + does not add sufficient value to the game to merit inclusion. +

+ +

Locations and clusters
+ + The Spot package provides a functional approximation in the form of + clusters of locations, with predefined coordinates, that are + sufficiently proximal that bodies in that cluster of locations can + all speak to one another. The locations for a particular scene are + specified in advance which serves the additional purpose of putting + a limit on the number of bodies that can be standing (and + participating) in a particular scene. This puts a natural upper + bound on the amount of network traffic that will be generated by the + need to broadcast scene updates to all occupants of a scene. +

+ +

Locations also serve as entry and exit points for a scene, + providing a means both for the graphical user interface to identify + the location at which bodies enter and exit a scene as well as + providing a spatial context for the connections between scenes + (i.e. the exit to the scene to the north can be located in the + northward part of a scene display). +

+ +

Orientation
+ + Locations define a notion of orientation which is assigned a priori, + along with the coordinates of the location and which can be + interpreted by the graphical display as the direction that body + sprites should face when standing on that location. Clusters of + locations can be constructed such that all of the bodies standing in + that cluster appear to be facing one another which provides visible + reinforcement that members of the cluster can "hear" the + conversation, while members of other clusters cannot. The + orientation of entry and exit locations are also useful in + establishing an initial orientation for a body sprite that enters a + scene based on the visualization of the entrance mechanism (i.e. if + they appear to enter through the door, the body sprite should be + oriented as if it just walked in the proper direction through the + door). +

+ +

Because the Spot services redefine the scope at which speak + messages are normally distributed (the Crowd services would, by + default, have speak messages dispatched to everyone in the entire + scene because the scene is a place and the default chat mechanisms + dispatch speak messages to all occupants of a place), it defines an + additional communication mode known as shouting, which conveys the + message to everyone in the entire scene. +

+ +

Portals
+ + Portals are a combination of locations and the standard Whirled + notion of neighboring scenes. They contain the coordinates to which + a body sprite would traverse prior to exiting to a neighboring scene + (generally so that they appear to walk to whatever visual + representation of the portal is provided by the scene, like a door + or perhaps simply the edge of the scene). Conversely, they represent + the coordinates at which a body arriving from same neighboring scene + would appear in the displayed scene. +

+ +

Example display
+ + This is an example of how these concepts might look in a game + providing top-down 2D display of its scenes.
+

+ +
+ Example scene image +
+ +

The arrows would, of course, not be rendered but are shown to + indicate the presence of locations (and portals) and their + associated orientation information. +

+ + +