Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

sos arch

description
by

Paulie Sequeira

on 24 October 2009

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of sos arch

A Heterogeneous Architecturefor Games
Created by Brandon Ludahl, Alan Duvall, and Paulie Sequeira
Presented at The Evergreen State College
I think I can make an entirely new game experience, and if I can't do it, some other game designer will.

Shigeru Miyamoto
Overview
The game is broken up in to separate components.
Centered around a central data store called the Object system.
The Object System keeps all the data describing all of the objects in the game world.
Interacting with the Object System are the Game Engine, Simulation, and the Data Manager.
How the Architecture is Formed: Object System
This is the repository through which other architectures work from
However, it is not a blackboard
External components (i.e. knowledge sources) don't necessarily have to go through it
If made into a blackboard, then physics and game logic would be the control
How the Architecture is Formed: Object System
Why shouldn't it be a blackboard?

Games are often networked for multiplayer functionality


Because synchronization is key for shared interactivity, we want the Object System to only be updated by the server's simulation and client Object Systems

If the Game Engine were to modify the Object System, then synchronization would become complex

As a result, the Game Engine only reads from the Object System

And by communicating to the server's Simulation, clients are able to provide input directly to the Simulation (which is faster, because it doesn't have to go through the server's Object System first)
How the Architecture is FormedObject System
How the Architecture is Formed: Game Engine and Simulation
In order to understand interactions of the Game Engine and Simulation with the Object System, we first should look at what they need to do

By employing functional decomposition, we can isolate essential features
How the Architecture is Formed: Functional Decomposition
def. Breaking down a process into non-redundant operations. In structured programming, it provides a hierarchical breakdown of the program into the individual operations, or routines, that are required.

(http://www.pcmag.com/encyclopedia_term/0,2542,t=functional+decomposition&i=43584,00.asp)
Functional Decomposition: Modules vs Objects
Advantages of using Modules instead of Objects
Without object orientation, you can minimize the specificity of data flow between modules (e.g. no parameter passing by types)
- Overly specifying data flows is impractical & unproductive
Strict object-oriented perspective results in bloated messages between modules, and amounts to "pass a large amount of information"
Functional Decomposition: Modules vs Objects
How the Architecture is Formed: Game Engine
As a result...
Modules work well for the Game Engine
The Game Engine's architecture is pipe and filter
Objects work well for the Simulation
The Simulation's architecture is event-based
The Game Engine is responsible for making sure output and input are handled appropriately
Output:
Modules receive data from the Object System
Each module is a filter that processes the data and hands it off to the device that needs it
Each filter thus could be swapped, in order to satisfy different devices
Input:
Input module receives data from the user
Module processes the data and hands to the Simulation
User benefits can use various input devices by swapping modules
How the Architecture is Formed: Simulation
The Simulation is responsible for making a video game a game, as well as a program
The components interact with each other through the Object System
When a component changes something in the Object System, messages can be passed to the components that need to know what happened
In this way, when a player or AI does something, the game logic and physics components can check to make sure that what happens stays within predefined rules

Advantage over being purely object oriented is that you don't have to group all the things you want to do into each object as procedures
How the Architecture is Formed: Data Manager
The Data Manager is responsible for loading things from persistent storage (Levels, Animations, Sounds, etc.) as well as storing saved state information
It is only a knowledge source that interacts with the Object System
Object System OptionsStore as objects or attributes?
One design difference that has important architectural significance is whether the Object System keeps track of its data as objects or attributes
As the author points out, the data has to be stored as a map either way, with a unique object ID and an attribute

So, what are the differences?
Object-centric benefits are familiar to proponents of OO design:

• It is intuitive. The internal representation matches he way that people think about the world.
• It is easier to insert and extract objects from the virtual world.
• Objects can have associated code (methods, member functions).
• The scope of components can be controlled.

The benefits of component-based storage are:
• It can be more efficient. Each component can be stored in a data structure appropriate to its access patterns.
• It enforces a data-driven design philosophy. Since objects cannot be anything but data, all behavior must be defined in terms of data.
Object System Options: Benefits of Each
Object System OptionsAttributes = Added Developer Advantage
In a data driven model, a game designer can change aspects about how the game environment is conducted.

Since data is not an object that has physics and game logic tied in (with various object differences doing the same), the designer can change how the those parts of the simulation should work without having the get into the coded details of an object implementation.
Conclusion
There are many software architecture decisions to make when creating a game. Depending on what is desired in the development process, many different decisions can be made.

Any Questions?

If I knew for a certainty that a man was coming to my house with the conscious design of doing me good, I should run for my life.
Henry David Thoreau
As you follow the escapades or the journey of the hero through a story, it evokes some kind of emotion in the viewers. The director's job is to make sure that the audience goes through the journey and has an emotional reaction.
Don Bluth
To turn really interesting ideas and fledgling technologies into a company that can continue to innovate for years, it requires a lot of disciplines.
Steve Jobs
How the Architecture is Formed: Object System
How the Architecture is FormedObject System
Full transcript