Present & Apply
The final resting place of the OSI layers
Presentation LayerSerialization
• Strings– Pascal (varied length)– Tables (constants)– Base64 (blobs strings)
• Significant Bits– Float Fixed– Matrix Quaternion
• Pointers• Endean Order• Encryption
Presentation LayerBuffering
• Packet Coalescence– TCP vs. Manual
• Induced Latency– Get on the boat
• Dead Data– UDP
• Large Packets– MTU and S/R buffers– Packet Length Indicator
Application Layer
Reflection Models
Application LayerInput Reflection
• Joystick Data
– Buttons
– 2+ axis
• Keyboard Data
– 128+ possible keys
• Mouse Data
– Buttons
– 2+ axis
Application LayerInput Reflection
Pros• Simple Design
– Attached Input
• Accurate• Low Bandwidth
Cons• Hard debugging
– Sync Test
• Latency Sensitive– Stop & Wait
• Predictive Nightmares– Complete State Save
– The Undead
Application LayerState Reflection
• Mutable Objects– Position– Orient– Velocity– Acc– State (Custom)
• Environment State– Open/Closed, On/Off
• Chat
• Off Screen Events
Application LayerState Reflection
• Pros• Easier Debugging• Latency Tolerant• Delta Management
Cons• High Bandwidth• Inaccurate• Hacking• Delta Management
Application Layer
Synchronization
Application LayerLatency
• Delay– Intolerable / High / Medium / Trivial
• Variability– Consistent (The easiest to deal with)– Spikes
• Line Static• Player Induced
Application LayerSynchronization
• Game Time– Clocks & Ticks
• Dead Reckoning– Extrapolation of current state over time
• Play Heuristics– Patterns
• A.I. Assist– Way points (varied conformance)
• Arbitration– Client vs. Server
Application LayerRecovery
• Warping– Last Resort / Easy First Pass
Implementation
• Speed Cheat– Give control to AI and allow special
acceleration boost
• Interpolation– Quaternion Slerping– Modifying control points on SP lines
Application LayerRecovery Bugs
• Brick Wall – Collision Not Synched– Fabricate collision on other machine (difficult)– Flag collision to run under AI control
• Bee Wiggle – Over Compensation– Maintain “Dead Zone”
• Sink or Float – Vertical Terrain– Fasten to ground (or not)
• Rubber Banding– Match speed when approaching target
• Death can’t be undone eloquently– Fudge Health– Synch before death– hang on by a hair.
Mashing Dough
4 GroupsDesign Packets
• Login– Account Create/Edit/Remove
– Verification, Notification, …
• Chat– Groups, Buddies, Admin, System, …
• Simulation– Move, Fire, Arbitration, …
• Voyeurs– Web Leader Board
– Web applet (Maps / Scores, for Game in Progress)