A Collaborative Game Development Tool Brian Thorpe
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 Collaborative Server
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.
Screen Shots Server
Client Screen Shots
Questions?
References Lidgren Networking Library