0% found this document useful (0 votes)
29 views

Game Objects Red2

This document discusses a data-driven game object system used for Dungeon Siege that manages over 73,000 unique object types and 100,000 objects. It defines game objects as pieces of interactive content like trees, monsters, and doors. A game object system constructs and manages these objects by mapping IDs to object pointers and routing messages. The document argues that traditional class-based systems are not well-suited for games because requirements constantly change as designers make independent decisions, requiring regular refactoring that C++ does not support well.

Uploaded by

Paratodolodemas
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views

Game Objects Red2

This document discusses a data-driven game object system used for Dungeon Siege that manages over 73,000 unique object types and 100,000 objects. It defines game objects as pieces of interactive content like trees, monsters, and doors. A game object system constructs and manages these objects by mapping IDs to object pointers and routing messages. The document argues that traditional class-based systems are not well-suited for games because requirements constantly change as designers make independent decisions, requiring regular refactoring that C++ does not support well.

Uploaded by

Paratodolodemas
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

A Data-Driven

Game Object System

GDC 2002
Scott Bilas
Gas Powered Games

Introduction

Me

You

Scott Bilas, [email protected]


Background
System architect types
Tired of fighting with statically typed systems for game code

The Test Subject

Dungeon Siege
>7300 unique object types (i.e. can be placed in the editor)
>100000 objects placed in our two maps
Continuous world means anything can load at any time

Cell Phones?

Definitions

Data-Driven

Meaning: No engineer required


Engineers are slow
Causes designers to hack around missing
functionality
Goal: remove C/C++ from game
Line between engine and content is always moving

Definitions (Cont.)

Game Object (Go)

Piece of logical interactive content


Perform tasks like rendering, path finding, path
following, speaking, animating, persisting
Examples are trees, bushes, monsters, levers,
waypoint markers, doors, heroes, inventory items
Many are pure logic, never see them (triggers,
elevator movers, camera sequences)
Every game has these in some form

Definitions (Cont.)

Game Object System

Constructs and manages Gos


Maps IDs to object pointers
Routes messages
Build from many things, but for this talk

GoDb: Go database
ContentDb: Static content database

Every game has this in some form

Example Class Tree


Vintage

Object

Missile

FriendFoeMissile

HeatSeekingMissile

Spaceship

Explosion
Asteroid

EnemySpaceship

Example Class Tree


Newfangled

Object

Drawable

Collidable

Chewable

Missile

Spaceship

Asteroid

It Wont Work

There are hundreds of ways to decompose the


Go system problem into classes

They are all wrong


They dont start out wrong, of course

Games constantly change

Designer makes decisions independently of


engineering type structures
They will ask for things that cut right across
engineering concerns

Just Give In To Change

Requirements get fuzzier the closer your code


gets to the content
Will end up regularly refactoring
Do not resist, will cause worse problems!
However: C++ does not support this very well!!

You might also like