Conceptual Architecture Team OMG Who we are: Nelson Yi Joshua Lee - - PowerPoint PPT Presentation
Conceptual Architecture Team OMG Who we are: Nelson Yi Joshua Lee - - PowerPoint PPT Presentation
CISC 326 Group OMG Conceptual Architecture Team OMG Who we are: Nelson Yi Joshua Lee Hassan Haq Simon Zhang Andy Chu Percy Teng Presentation Overview 1. Introduction 2. Reference Architecture 3. Derivation Process
Team OMG
Who we are:
- Nelson Yi
- Joshua Lee
- Hassan Haq
- Simon Zhang
- Andy Chu
- Percy Teng
Presentation Overview
1. Introduction 2. Reference Architecture 3. Derivation Process 4. Conceptual Architecture 5. Components 6. Use Cases 7. Game Engine 8. Conclusion 9. Q/A
What’s so special about DOOM III?
Doom 3 is a 2004 video game developed by id Software. The game was developed using the id Tech 4 engine, a game engine also made by id Software specifically for Doom 3. Written in C++ Platforms: developed for Windows ported to Linux, Mac OS X, Xbox
Amazing id Tech 4 Engine!
Reference Architecture
Main components:
- Game Engine
- Game Data
- Hardware
- User Interface
Reference Architecture Revised
Derivation Process
- Look at Reference Architectures for 3D First Person
Shooter video games in general, and other similar games
- Research different components of Doom 3 including id
Tech 4
- Identify the dependencies between these components
- Put it all together
Main components:
- Game Engine:
- Input Engine
- Command System
- Event Handler
- Artificial Intelligence
- Physics Engine
- Sound Engine
- Graphics Engine (Renderer)
- User Interface
- Game Data
- Hardware
- Network
- World
- Audio
- Video
Main components:
- Game Engine:
- Input Engine
- Command System
- Event Handler
- Artificial Intelligence
- Physics Engine
- Sound Engine
- Graphics Engine (Renderer)
- User Interface
- Game Data
- Hardware
- Network
Discarded Alternatives:
- World
- Audio
- Video
Derived Architecture
What does the system do and what is its functionality?
UI->command system -> subsequent interacting functions. Rendering system for graphics, event handler for triggering executions, file system for data storage structure, networking system for communication.
How it is broken into interacting parts?
Game Engine System Networking System Database System
What are the parts? And how do they interact?
Why Object Oriented Style?
Pros: Integrity of data operations -> Addresses stability and
- security. Critical for an AAA game.
Cons:
- The first object must know the identity of the second
- bject
- Objects can cause side effect problems
Concurrency
- Networking system and Game Engine concurrently work together
to produce computations and data accesses, must be simultaneous
- The Rendering Engine and Sound Engine also work concurrently
- together. Both would produce the outcomes into the UI and
Hardware component at the same time (Sound, Visuals happen CONCURRENTLY)
Use case: shooting a monster
Use case: shooting a monster
Use case: saving the game
Sequence Diagram for Saving Game
Networking
- Uses Client Prediction to deal with lag
- 1 computer is the server, all player computers are clients
- clients send input to servers, server sends back latest
snapshot
- Uses delta compression to save bandwidth
Lessons learned
- Game architectures requires a deep understanding of
genuine architectures and its sub-components and how they interact in various situations
- Depending on the function that is being focused on, the
flow between components can be very different and so the setup of components within the architecture is key.
Conclusion
- Doom 3 utilizes Object-Oriented Architectural style
- Reference Architecture and Conceptual Architecture are
quite similar
- The Key Component that ties together the Architecture is
the Command System which deals with the information provided from the Network, Hardware and the Game Data server
- Incorporation of Client Server and Peer-Peer interaction