Somekind of a diagram, still unfinished, but I'm too tired now ...
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/plan/diagram.dot Tue Nov 04 22:29:18 2008 +0000
@@ -0,0 +1,35 @@
+digraph G {
+ compound=true;
+ rankdir=LR;
+
+ subgraph cluster0 {
+ label = "Network";
+ {rank=source; client; server;}
+ client;
+ server;
+ color = black;
+ }
+
+ subgraph cluster1 {
+ label = "Game Engine";
+ {rank=min; gs; physics; interpolation; }
+ gs;
+ physics;
+ interpolation;
+ color = black;
+ }
+
+ {rank=sink; input; graphics;}
+ client->server;
+ server->client;
+
+ gs->physics;
+ physics->interpolation;
+
+ input->interpolation;
+ input->client;
+ interpolation->graphics;
+
+ server->gs;
+ gs->client;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/plan/test.ps Tue Nov 04 22:29:18 2008 +0000
@@ -0,0 +1,471 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: Graphviz version 2.20.2 (Sun Oct 12 21:27:53 UTC 2008)
+%%For: (saiam) Atle Kivela,,,
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+ dup dup findfont dup length dict begin
+ { 1 index /FID ne { def }{ pop pop } ifelse
+ } forall
+ /Encoding EncodingVector def
+ currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+ dup 1 exch div /InvScaleFactor exch def
+ scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage { % i j npages
+ /npages exch def
+ /j exch def
+ /i exch def
+ /str 10 string def
+ npages 1 gt {
+ gsave
+ coordfont setfont
+ 0 0 moveto
+ (\() show i str cvs show (,) show j str cvs show (\)) show
+ grestore
+ } if
+} bind def
+
+/set_font {
+ findfont exch
+ scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext { % width text
+ /text exch def
+ /width exch def
+ gsave
+ width 0 gt {
+ [] 0 setdash
+ text stringwidth pop width exch sub text length div 0 text ashow
+ } if
+ grestore
+} def
+
+/boxprim { % xcorner ycorner xsize ysize
+ 4 2 roll
+ moveto
+ 2 copy
+ exch 0 rlineto
+ 0 exch rlineto
+ pop neg 0 rlineto
+ closepath
+} bind def
+
+/ellipse_path {
+ /ry exch def
+ /rx exch def
+ /y exch def
+ /x exch def
+ matrix currentmatrix
+ newpath
+ x y translate
+ rx ry scale
+ 0 0 1 0 360 arc
+ setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+ [ % layer color sequence - darkest to lightest
+ [0 0 0]
+ [.2 .8 .8]
+ [.4 .8 .8]
+ [.6 .8 .8]
+ [.8 .8 .8]
+ ]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+ layercolorseq curlayer 1 sub layerlen mod get
+ aload pop sethsbcolor
+ /nodecolor {nopcolor} def
+ /edgecolor {nopcolor} def
+ /graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+ /myupper exch def
+ /mylower exch def
+ curlayer mylower lt
+ curlayer myupper gt
+ or
+ {invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+ userdict (<<) cvn ([) cvn load put
+ userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 332 392
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 296 356 boxprim clip newpath
+1 1 set_scale 0 rotate 40 40 translate
+% cluster0
+gsave
+1 setlinewidth
+0.000 0.000 0.000 graphcolor
+newpath 62 209 moveto
+62 340 lineto
+148 340 lineto
+148 209 lineto
+closepath stroke
+0.000 0.000 0.000 graphcolor
+14 /Times-Roman set_font
+81 323.9 moveto 48 (Network) alignedtext
+grestore
+% cluster1
+gsave
+1 setlinewidth
+0.000 0.000 0.000 graphcolor
+newpath 38 16 moveto
+38 201 lineto
+172 201 lineto
+172 16 lineto
+closepath stroke
+0.000 0.000 0.000 graphcolor
+14 /Times-Roman set_font
+68 184.9 moveto 74 (Game Engine) alignedtext
+grestore
+% client
+gsave
+1 setlinewidth
+0.000 0.000 0.000 nodecolor
+105 289 30.77 18 ellipse_path stroke
+0.000 0.000 0.000 nodecolor
+14 /Times-Roman set_font
+90.5 284.9 moveto 29 (client) alignedtext
+grestore
+% server
+gsave
+1 setlinewidth
+0.000 0.000 0.000 nodecolor
+105 235 34.24 18 ellipse_path stroke
+0.000 0.000 0.000 nodecolor
+14 /Times-Roman set_font
+88 230.9 moveto 34 (server) alignedtext
+grestore
+% client->server
+gsave
+1 setlinewidth
+0.000 0.000 0.000 edgecolor
+newpath 125 275 moveto
+129 269 131 264 130 259 curveto
+stroke
+0.000 0.000 0.000 edgecolor
+newpath 132.92 257.04 moveto
+125 250 lineto
+126.8 260.44 lineto
+closepath fill
+1 setlinewidth
+solid
+0.000 0.000 0.000 edgecolor
+newpath 132.92 257.04 moveto
+125 250 lineto
+126.8 260.44 lineto
+closepath stroke
+grestore
+% server->client
+gsave
+1 setlinewidth
+0.000 0.000 0.000 edgecolor
+newpath 84 250 moveto
+79 255 78 261 80 266 curveto
+stroke
+0.000 0.000 0.000 edgecolor
+newpath 77.08 267.96 moveto
+85 275 lineto
+83.2 264.56 lineto
+closepath fill
+1 setlinewidth
+solid
+0.000 0.000 0.000 edgecolor
+newpath 77.08 267.96 moveto
+85 275 lineto
+83.2 264.56 lineto
+closepath stroke
+grestore
+% gs
+gsave
+1 setlinewidth
+0.000 0.000 0.000 nodecolor
+105 42 27 18 ellipse_path stroke
+0.000 0.000 0.000 nodecolor
+14 /Times-Roman set_font
+98.5 37.9 moveto 13 (gs) alignedtext
+grestore
+% server->gs
+gsave
+1 setlinewidth
+0.000 0.000 0.000 edgecolor
+newpath 72 229 moveto
+53 224 31 214 20 196 curveto
+7 174 7 101 20 78 curveto
+31 62 50 53 68 48 curveto
+stroke
+0.000 0.000 0.000 edgecolor
+newpath 69.43 51.23 moveto
+78 45 lineto
+67.42 44.52 lineto
+closepath fill
+1 setlinewidth
+solid
+0.000 0.000 0.000 edgecolor
+newpath 69.43 51.23 moveto
+78 45 lineto
+67.42 44.52 lineto
+closepath stroke
+grestore
+% gs->client
+gsave
+1 setlinewidth
+0.000 0.000 0.000 edgecolor
+newpath 78 45 moveto
+58 50 33 59 20 78 curveto
+0 112 0 219 20 253 curveto
+30 268 48 277 64 282 curveto
+stroke
+0.000 0.000 0.000 edgecolor
+newpath 63.42 285.48 moveto
+74 285 lineto
+65.43 278.77 lineto
+closepath fill
+1 setlinewidth
+solid
+0.000 0.000 0.000 edgecolor
+newpath 63.42 285.48 moveto
+74 285 lineto
+65.43 278.77 lineto
+closepath stroke
+grestore
+% physics
+gsave
+1 setlinewidth
+0.000 0.000 0.000 nodecolor
+105 96 41 18 ellipse_path stroke
+0.000 0.000 0.000 nodecolor
+14 /Times-Roman set_font
+83.5 91.9 moveto 43 (physics) alignedtext
+grestore
+% gs->physics
+gsave
+1 setlinewidth
+0.000 0.000 0.000 edgecolor
+newpath 105 60 moveto
+105 63 105 65 105 68 curveto
+stroke
+0.000 0.000 0.000 edgecolor
+newpath 101.5 68 moveto
+105 78 lineto
+108.5 68 lineto
+closepath fill
+1 setlinewidth
+solid
+0.000 0.000 0.000 edgecolor
+newpath 101.5 68 moveto
+105 78 lineto
+108.5 68 lineto
+closepath stroke
+grestore
+% interpolation
+gsave
+1 setlinewidth
+0.000 0.000 0.000 nodecolor
+105 150 59.06 18 ellipse_path stroke
+0.000 0.000 0.000 nodecolor
+14 /Times-Roman set_font
+70.5 145.9 moveto 69 (interpolation) alignedtext
+grestore
+% physics->interpolation
+gsave
+1 setlinewidth
+0.000 0.000 0.000 edgecolor
+newpath 105 114 moveto
+105 117 105 119 105 122 curveto
+stroke
+0.000 0.000 0.000 edgecolor
+newpath 101.5 122 moveto
+105 132 lineto
+108.5 122 lineto
+closepath fill
+1 setlinewidth
+solid
+0.000 0.000 0.000 edgecolor
+newpath 101.5 122 moveto
+105 132 lineto
+108.5 122 lineto
+closepath stroke
+grestore
+% graphics
+gsave
+1 setlinewidth
+0.000 0.000 0.000 nodecolor
+244 150 43.78 18 ellipse_path stroke
+0.000 0.000 0.000 nodecolor
+14 /Times-Roman set_font
+220.5 145.9 moveto 47 (graphics) alignedtext
+grestore
+% interpolation->graphics
+gsave
+1 setlinewidth
+0.000 0.000 0.000 edgecolor
+newpath 164 150 moveto
+173 150 181 150 190 150 curveto
+stroke
+0.000 0.000 0.000 edgecolor
+newpath 190 153.5 moveto
+200 150 lineto
+190 146.5 lineto
+closepath fill
+1 setlinewidth
+solid
+0.000 0.000 0.000 edgecolor
+newpath 190 153.5 moveto
+200 150 lineto
+190 146.5 lineto
+closepath stroke
+grestore
+% input
+gsave
+1 setlinewidth
+0.000 0.000 0.000 nodecolor
+244 246 30.07 18 ellipse_path stroke
+0.000 0.000 0.000 nodecolor
+14 /Times-Roman set_font
+230 241.9 moveto 28 (input) alignedtext
+grestore
+% input->client
+gsave
+1 setlinewidth
+0.000 0.000 0.000 edgecolor
+newpath 217 254 moveto
+195 261 166 270 143 277 curveto
+stroke
+0.000 0.000 0.000 edgecolor
+newpath 141.57 273.77 moveto
+133 280 lineto
+143.58 280.48 lineto
+closepath fill
+1 setlinewidth
+solid
+0.000 0.000 0.000 edgecolor
+newpath 141.57 273.77 moveto
+133 280 lineto
+143.58 280.48 lineto
+closepath stroke
+grestore
+% input->interpolation
+gsave
+1 setlinewidth
+0.000 0.000 0.000 edgecolor
+newpath 224 232 moveto
+201 217 164 191 137 173 curveto
+stroke
+0.000 0.000 0.000 edgecolor
+newpath 139.1 170.2 moveto
+129 167 lineto
+134.9 175.8 lineto
+closepath fill
+1 setlinewidth
+solid
+0.000 0.000 0.000 edgecolor
+newpath 139.1 170.2 moveto
+129 167 lineto
+134.9 175.8 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 332 392
+end
+restore
+%%EOF