A Collaborative Game Development Tool, by Brian Thorpe.

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
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


State Synchronization


Client synchronizes files with the Server
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


Terrain Edit




Location on a flat grid of terrain pieces
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

http://code.google.com/p/lidgren-network/