210 likes | 369 Views
Brian Thorpe. A Collaborative Game Development Tool. Overview. Introduction Problems Design Screen Shots... Video if time allows Questions. Introduction. Goal: Develop a tool that supports collaborative game content development. Game Content Game World Model Placement
E N D
Brian Thorpe A Collaborative Game Development Tool
Overview • Introduction • Problems • Design • Screen Shots... Video if time allows • Questions
Introduction • Goal: Develop a tool that supports collaborative game content development. • Game Content • Game World • Model Placement • Terrain Generation • Special Effects • Etc.
Terrain Editing • Focus: Developing collaborative Terrain Editing features. • Terrain Editing • Create new pieces of Terrain • Manipulate Terrain • Raise • Lower • Flatten • Smooth
Problems • Synchronization • Client Data matches Server Data • Client synchronizes to the active Server State • Processing Terrain Height editing operations and keeping client and server synchronized
Design • Client Server Architecture • Lidgren Networking Library • Synchronization Process • Server State • Client State • Edit Requests
Client Server Architecture Client Client Collaborative Server Client Client
Networking Library • Lidgren Networking Library for C# • Uses UDP Sockets • Provides support for four delivery methods... • Unreliable unordered • Reliable unordered • Unreliable unordered • Reliable ordered
Synchronization • Two Steps: • File Synchronization • Client synchronizes files with the Server • State Synchronization • Client synchronizes the active data with the Server • Once Synchronized Client can being editing.
Server State • Holds the terrain height field data • Stores a set of terrain height data files • Edits effect the height field data
Client State • Holds the terrain height field data • Uses this data to generate Terrain Meshes • Uses this data to generate Triangle Information for collision detection and triangle picking operations • Stores a set of terrain height data files. • Edits effect the height field data, the terrain meshes, and the triangle information.
Edit Requests • Two types of Terrain Edit Requests • Terrain Creation • Location on a flat grid of terrain pieces • Terrain Edit • The location of the edit • The edit operation • Edit strength, range • Server processes these and forwards the requests to all other clients.
References • Lidgren Networking Library • http://code.google.com/p/lidgren-network/