ophelia user-friendly network multi-player game engine albert Öhrling

52
Ophelia User-friendly Network Multi-player Game Engine Albert Öhrling

Upload: agatha-ward

Post on 29-Dec-2015

215 views

Category:

Documents


1 download

TRANSCRIPT

OpheliaUser-friendly Network Multi-player Game EngineAlbert Öhrling

Project Goals• To create a game engine for networked multiplayer games.

Project Goals• To create a game engine for networked multiplayer games.• It will be possible to program games as if they were local

multiplayer titles.

Project Goals• To create a game engine for networked multiplayer games.• It will be possible to program games as if they were local

multiplayer titles.• The engine is accessed from a user-friendly interface.

Requirements• A set of basic systems to create games from.

Requirements• A set of basic systems to create games from.• Object Management

Requirements• A set of basic systems to create games from.• Object Management• Messaging

Requirements• A set of basic systems to create games from.• Object Management• Messaging• Graphics

Requirements• A set of basic systems to create games from.• Object Management• Messaging• Graphics• Input

Requirements• A set of basic systems to create games from.• Object Management• Messaging• Graphics• Input• Movement

Requirements• A set of basic systems to create games from.• Object Management• Messaging• Graphics• Input• Movement• Collision Detection

Requirements• A set of basic systems to create games from.• A suitable test environment

Requirements• A set of basic systems to create games from.• A suitable test environment• A set of useful development tools

Development Tools

Architecture

Event-Driven Design• Game modules communicate with events and callbacks.

Event-Driven Design• Game modules communicate with events and callbacks.• All custom scripts are invoked on events.

Objects• Game Objects are modular

Objects• Game Objects are modular

Objects• Game Objects are modular• Game Object are malleable

Objects• Game Objects are modular• Game Object are malleable• Developers can define their own templates

Objects• Game Objects are modular• Game Object are malleable• Developers can define their own templates• Developers can define their own feature modules

Synchronization• Game state synchronization is invisible

Synchronization• Game state synchronization is invisible• Achieved with custom setters

Synchronization• Game state synchronization is invisible• Achieved with custom setters

Synchronization• Game state synchronization is invisible• Achieved with custom setters

• Only update game state when the server notifies the client.

Synchronization• Game state synchronization is invisible• Achieved with custom setters

• Only update game state when the server notifies the client.

Problem• Developers have to pay attention to on which machines their

scripts execute.

Solution

Solution• Synchronization changes

Solution• Synchronization changes

Problem• Sending messages at the same time does not guarantee that

they arrive simultaneously.

Solution• Batch state changes that occur in the same update tick.

Solution• Batch state changes that occur in the same update tick.• Distribute them to the clients as a single message when the

next tick begins.

Project Goals• To create a game engine for networked multiplayer games.

Project Goals• To create a game engine for networked multiplayer games.• Success!

Project Goals• To create a game engine for networked multiplayer games.• Success!• It will be possible to program games as if they were local

multiplayer titles.

Project Goals• To create a game engine for networked multiplayer games.• Success!• It will be possible to program games as if they were local

multiplayer titles.• Success!

Project Goals• To create a game engine for networked multiplayer games.• Success!• It will be possible to program games as if they were local

multiplayer titles.• Success!• The engine is accessed from a user-friendly interface.

Project Goals• To create a game engine for networked multiplayer games.• Success!• It will be possible to program games as if they were local

multiplayer titles.• Success!• The engine is accessed from a user-friendly interface.• Success!

Example

Example

Example

Example

Example

Example

Example

Evaluation• All design goals were met.

Evaluation• All design goals were met.• Most importantly; making games with the engine is easy.

Evaluation• All design goals were met.• Most importantly; making games with the engine is easy.• When problems arose I was able to solve them with good

tools.

Evaluation• All design goals were met.• Most importantly; making games with the engine is easy.• When problems arose I was able to solve them with good

tools.• Testing in a real environment would have been nice.

Questions?