FUSION ENGINE TECHNOLOGY - University of California, San Diego
Download
Report
Transcript FUSION ENGINE TECHNOLOGY - University of California, San Diego
Kalloc Studios
Henry Yu
President & CEO
Credentials
Worked in video game industry for nearly 20 years
Lead Programmer for Sierra-Online
Director of Technology for Activision
Technical Director for Electronic Arts/ Westwood
Software Director for Angel Studios/Rockstar
Software Engineer Director for THQ
Found Kalloc Studios 2006
Topics of discussion
Game Industry Trends
Hardware capabilities comparison
System Architecture
Kalloc Studios’ mission
Game Industry Trends
Consumers demand more realistic visuals, physics
interactions, A.I. behaviors
More game content to give a full, immersive
experience
Computer hardware has been evolving to utilize
multi-core design
Faster iteration time to promote rapid game
development
Hardware comparison of the PlayStation 3
to the Xbox 360
Multi-core vs. Cell based architecture, different
synchronization models
Hard to utilize the SPU due to its small amount of
local memory
DMA transfers are difficult to structure
Slower RSX graphics performance
Memory limitations due to its non-unified memory
architecture
Slower Blue Ray Rom data throughput
Fundamental System design
Architecture differences between Xbox 360 and PlayStation 3
Core 1
SPU
Core 2
Core 3
UMA
512 MB
256 MB XDR
Main System
Memory
SPU
SPU
SPU
256 MB DDR3
Video Local Memory
SYSTEM BUS DMA
SPU
SPU
SPU
SPU
GPU
XBOX 360 system
architecture
PPU
PlayStation 3 system
architecture
GPU
Current Kalloc Engine Capabilities
Cross platform for Xbox 360, PlayStation 3 and PC
720p and 1080p high definition support
400 or more characters fully skinned with ~5000 polygons and 91 bones
(4 weight influences)
50 or more vehicles with ~3000 polygons
Normal mapped characters
All characters with facial animations
Overall polygon throughput ~24 million polygons per second
Full collision detection with dynamic objects such as characters and
vehicles
NPC driving and responding to collisions
NPC have reactive behaviors toward player’s action
System Architecture
Local store and Data Streaming Model
Multi-Threaded Architecture
Graphics Subsystem
Animation System
Physics Components
Asset Pipeline via Live Update System
Local Store and Data Streaming Model
The architecture works like an array where
individual game objects, physics objects, render
objects, etc are each allocated in a contiguous
chunk of memory reserved for that type of object.
The contiguous chunk of memory then can be
DMA-d over to the PS3 SPU or even cached on the
local memory on PS3.
Having objects in contiguous memory is an
optimization for the PS3 that will also yield
performance increases in Xbox because cache
misses will be reduced.
Data Streaming Model to process tasks
Data Streaming Process
Model
Incoming data
stream
DMA Data Bus
SPU Processor
Local Store
256Kb
DMA Data Bus
Outgoing data
stream
Multi-threaded Architecture
Thread Based Model and SPU Thread Server
implementation for task based architecture
Multi-Threaded Scheduler manages both blocking and
non-blocking processes
Multi-stage implementation for data synchronization
N + 1 frame GPU running concurrently with core CPU
and SPUs
Functional Based multi-threaded Architecture
Functional Based architecture associates one thread per
subsystem. All subsystems are processed simultaneously.
Advantages: Very easy to implement since it does not
require tasks to be divided and dependencies to be
resolved. Suitable for middleware solutions.
Disadvantages: Uneven distribution of processing power
since one slower task can hold up the rest of processors,
making them idle. Mutexes or some other synchronization
protection must be used to resolve data dependencies.
Task Based multi-threaded Architecture
Task Based architecture uses all threads to process a
subsystem. Subsystems are processed in a given order.
Large tasks must be divided into smaller tasks so that they
can be distributed along all processors
Advantage: Extremely even balance of processor power.
Virtually eliminates the problem of waiting for the slowest
tasks. Due to subsystems being processed in a fixed order,
many dependencies are removed, allowing data access
without mutex locking.
Disadvantage: Difficult to implement since all tasks are
required to be divided and dependencies resolved. Hard to
use middleware solutions since this architecture is
relatively new.
Task Distribution Model
INCOMING TASK SET
TASK 1
TASK 4
TASK 2
TASK 5
Available SPUs
TASK 3
SPU 0
SPU 3
SPU 1
SPU 4
SPU 2
SPU 5
TASK 6
SPU_SERV
TASK 7
TASK 10
TASK 8
TASK n
TASK 9
TASK
n+1
Solutions to Data Synchronization
Mutex locks using critical sections
Data separation using multiple stages (e.g. read and
write stages)
Local Store Model using ring buffers
Component object level organization to separate data
dependency
Current Graphics System
720p and 1080p native support
Interleaved vertex format with 16-bit normals and UV data
to maximize data throughput
Multi-level Shadow Map to enhance resolution quality
Use of instancing to increase rendering performance
Depth Of Field effect
High Dynamic Range lighting with tone mapping
Particle effects
Hardware instancing for rendering props
Scene graph techniques such as octree and occlusion
systems to further optimize large scale rendering
Supports unlimited number of bones for animation
Animation System
Support unlimited bones per character
Key frame compression
Quaternion based interpolation
Support for up to 9 channels of animation: rotation,
translation and scale
Support for overlaid animations
Procedural animation to minimize number of
animations in game
Physics Component
Use of component system to accommodate different
physics middleware and custom physics engine:
Havok, Bullet and Ageia PhysX
Simple custom physics system
Sphere to sphere, box to box, box to sphere, etc
collisions
2D Grid partition optimizations
Per cell collision detection
Simple vehicle simulation
Instant Asset Update System for Asset pipeline
Instant refreshing of assets without restarting the
engine/game
No intermediate file formats = quick export
process
Instant feedback for artists and designers to check
for data validity and quality
No overnight build/baking process
Asset sharing between designers, artists or
programmers within the network
Built in support for art outsourcing
Easy DVD/Blu Ray burns for archiving and build
delivery
Mission of Kalloc Studios
Create a truly next gen multi-platform game engine
that maximizes cutting edge hardware such as multicore and cell architecture and latest graphics
rendering capabilities
Create innovative and quality game titles
Train highly motivated talent to become industry
specialists
Questions ?
Thank you!
[email protected]
[email protected]
www.kallocstudios.com
(760) 602-7959