Beruflich Dokumente
Kultur Dokumente
Thomas Kinnen
February 5, 2012
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Overview
Introduction
About Me
Motivation
Component-Based
Other Architectures
Components Explained
Data-Driven
Definition
Real Examples
0 A.D.
Unknown Horizons
Summary
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
About Me
About Me
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
About Me
Unknown Horizons
www.unknown-horizons.org
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Motivation
Motivation
Motivation
Motivation
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Motivation
Motivation
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Motivation
Motivation
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Component-Based
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Other Architectures
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Other Architectures
Disadvantages
I Difficult to test
I Therefore difficult to maintain and extend
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Other Architectures
Disadvantages
I Difficult to test
I Therefore difficult to maintain and extend
I Problems with member variable naming
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Other Architectures
Disadvantages
I Difficult to test
I Therefore difficult to maintain and extend
I Problems with member variable naming
I Problems with method naming
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Other Architectures
Disadvantages
I Difficult to test
I Therefore difficult to maintain and extend
I Problems with member variable naming
I Problems with method naming
I Very high complexity of tracebacks
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Other Architectures
Disadvantages
I Difficult to test
I Therefore difficult to maintain and extend
I Problems with member variable naming
I Problems with method naming
I Very high complexity of tracebacks
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Components Explained
Definition
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Components Explained
Idea
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Components Explained
Details
Entity = unique ID + a set of components.
Example Spearman:
1337: (Attack, VisualActor, Cost, Position)
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Components Explained
Advantages
I Easy to test
I Very flexible
Components Explained
Advantages
I Easy to test
I Very flexible
I Small separate blocks → division of
labor
Components Explained
Advantages
I Easy to test
I Very flexible
I Small separate blocks → division of
labor
I Works perfectly together with the
data-driven approach
Components Explained
Advantages
I Easy to test
I Very flexible
I Small separate blocks → division of
labor
I Works perfectly together with the
data-driven approach
Components Explained
Component Communication
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Data-Driven
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Definition
Definition 1/3
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Definition
Definition 2/3
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Definition
Definition 2/3
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Definition
Definition 3/3
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
0 A.D.
0 A.D.
http://wildfiregames.com/0ad/
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
0 A.D.
High-Level Architecture
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
0 A.D.
A unit definition
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Unknown Horizons
Unknown Horizons
www.unknown-horizons.org
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Unknown Horizons
Unknown Horizons
Strategy
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Unknown Horizons
A unit definition
baseclass : fightingship . FightingShip
id : 1000020
name : Frigate
radius : 5
velocity : 12.0
components :
- S t o r a g e C o m p o n en t :
inventory :
PositiveTotalNumSlotStorage :
limit : 120
slotnum : 4
- ShipNameComponent
- He al th C om po ne n t :
maxhealth : 200
actionsets :
as_frigate0 : { level : 0}
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Summary
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Summary
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Summary
Thomas Kinnen
Data-Driven and Component-Based Game Entities
Introduction Component-Based Data-Driven Real Examples Summary
Questions
(and advertisement)
www.unknown-horizons.org
Thomas Kinnen
Data-Driven and Component-Based Game Entities