180 likes | 336 Views
Future Optimizations. Multi-user Extensible Virtual Worlds Increasing complexity of objects and interactions with increasing world size, users, numbers of objects and types of interactions. Sheldon Brown, Site Director CHMPR, UCSD Daniel Tracy, Programmer, Experimental Game Lab
E N D
Future Optimizations Multi-user Extensible Virtual WorldsIncreasing complexity of objects and interactions with increasing world size, users, numbers of objects and types of interactions. Sheldon Brown,Site Director CHMPR, UCSD Daniel Tracy, Programmer, Experimental Game Lab Erik Hill, Programmer, Experimental Game Lab Todd Margolis, Technical Director, CRCA Kristen Kho, Programmer, Experimental Game Lab
Multi-User Load Challenges Communications Graphics Rendering Geometry Processing Shaders Rendering techniques Dynamics Computation Physics AI or other application specific behaviors Animation
Communication Optimizations Reduce transmission frequency Present frequency is unrealistic for internet traffic Server and client will run internally at higher frequency Client requires methods to produce smooth experience Allow Client to do more work Client-side interpolation for smoothing movements Predictive path computation (dead reckoning) Compensates when server is lagging Requires dynamics computation on client mimicking server Preload static animations, simplify synchronization Re-perform deterministic work Rebuild assets with deterministic generators
Communication Optimizations Reduce transmission frequency Present frequency is unrealistic for internet traffic Server and client will run internally at higher frequency Client requires methods to produce smooth experience Allow Client to do more work Client-side interpolation for smoothing movements Predictive path computation (dead reckoning) Compensates when server is lagging Requires dynamics computation on client mimicking server Preload static animations, simplify synchronization Re-perform deterministic work Rebuild assets with deterministic generators
Client-side Interpolation Both Server and Client operate at 60 fps Communication only occurs at ~10 fps Client slightly behind Server (0.1s) Present time on Server 30 Present time on Client 20 10 0 Server Client
Client-side Interpolation Interpolation provides intermediate values Provides smoother animation Positions From Server Drawn to Screen
Communication Optimizations Reduce transmission frequency Present frequency is unrealistic for internet traffic Server and client will run internally at higher frequency Client requires methods to produce smooth experience Allow Client to do more work Client-side interpolation for smoothing movements Predictive path computation (dead reckoning) Compensates when server is lagging Requires dynamics computation on client mimicking server Preload static animations, simplify synchronization Re-perform deterministic work Rebuild assets with deterministic generators
Client-side Predictive Path Computation Client may sometimes experience high latency between Server updates Endemic to TCP/IP over internet Client cannot be too far behind server without producing a lack of responsiveness on client Even with interpolation, high latency response to user input Requires “turning down” interpolation rate and increasing communication frequency Use predictive path computation to provide interpolation with future targets
Client-side Predictive Path Computation Server copy injected into the client Performs same work on subset of data for prediction Server state may differ from prediction Client continues to smoothly interpolate between user’s understanding and new destination from server Server Client Server
Communication Optimizations Reduce transmission frequency Present frequency is unrealistic for internet traffic Server and client will run internally at higher frequency Client requires methods to produce smooth experience Allow Client to do more work Client-side interpolation for smoothing movements Predictive path computation (dead reckoning) Compensates when server is lagging Requires dynamics computation on client mimicking server Preload static animations, simplify synchronization Re-perform deterministic work Rebuild assets with deterministic generators
Preloading Static Animations Present communication for animation is most general purpose Communicates each vertex/face alteration separately Designed for case of dynamic geometry generation on the server Also works for statically known animations, but requires more bandwidth Specialize communication Pre-loading animations done during city loading Animation updates consist of animation id and an interpolation point Animation geometry recomputed on the client
Communication Optimizations Reduce transmission frequency Present frequency is unrealistic for internet traffic Server and client will run internally at higher frequency Client requires methods to produce smooth experience Allow Client to do more work Client-side interpolation for smoothing movements Predictive path computation (dead reckoning) Compensates when server is lagging Requires dynamics computation on client mimicking server Preload static animations, simplify synchronization Re-perform deterministic work Rebuild assets with deterministic generators
Rebuilding Assets Deterministically Many assets generated algorithmically Geometry landscape from satellite height map data Animated roads from landscape & configuration Lots and animated fences from roads & landscape House piece, tree, and sign placement Regenerate on client after making deterministic Challenge in some cases is determinism Similar algorithm & seed values produce same results Reduces communication during city loading Preloading static animations increases strain Uses client compute resources to compensate
Multi-User Load Challenges Communications Graphics Rendering Geometry Processing Shaders Rendering techniques Dynamics Computation Physics AI or other application specific behaviors Animation
Lot-House selection • Logical entities called “lots” grab house pieces to form structures on the landscape • Our global broad phase solution quickly determines the set of local house pieces for each lot • However, searching the set of those nearby pieces for proper state and texture criteria is now taking a ‘lot’ of time! • All lots in multiple landscapes can now be active at once! • For some cities, lots search over most of the landscape through thousands of house pieces
Lot-House selection • Lot-HousePiece relationships must be specialized upon a lot’s selection criteria • Both lot & housepiece criteria can change dynamically • Eliminating search: Incremental Processing Approach • All processes should be triggered when house piece & lot criteria change • No polling should occur each cycle to find candidate • Expand relationship and state-aware system into a more unified and flexible subsystem • Planned changes should reduce overhead from “highest” to “immeasurably small”
Identifying the Bottlenecks Communications Graphics Rendering Geometry Processing Shaders Rendering techniques Dynamics Computation Physics AI or other application specific behaviors Animation
Next Portion: Future Dynamics & Rendering Optimizations • Server: Integrate compute accelerators • Physics multistep approach • Step 1: • Cell BE with Bullet variant • Xeon Blades with Scalable Engine • Step2: • OpenCL physics engine across multiple platforms • Client: • OpenCL-based particle systems • Geometry & shader processing on GPU