console development
DESCRIPTION
Jonathan Talks about 3D development on consoles.TRANSCRIPT
3D Console Development:What's the deal?
Jonathan [email protected]: JonManatee
Console Development
What's the difference?
Console Development
What's the difference? Faster Processors, Less Memory
Console Development
What's the difference? Faster Processors, Less Memory PC Market will catch up and outpace it with
time Graphics APIs will introduce new technologies
while the consoles are stuck in the past
Console Development
What's the difference? Faster Processors, Less Memory PC Market will catch up and outpace it with
time Graphics APIs will introduce new technologies
while the consoles are stuck in the past Consoles are a fixed platform
Easier to catch bugs, consistent hardware allows developers to pull more “tricks”
The Wii
Notably the weakest of the 3 “next-gen” consoles
Does not support programmable shaders In Unity, Scripts are still JIT compiled Not really the focus of this talk
The Xbox 360: Overview
Is “almost” a PC CPU: 3.2 GHz PowePC Tri-Core Xenon
The Xbox 360: Overview
Is “almost” a PC CPU: 3.2 GHz PowePC Tri-Core Xenon GPU: 500 MHz ATI Xenos
The Xbox 360: Overview
Is “almost” a PC CPU: 3.2 GHz PowePC Tri-Core Xenon GPU: 500 MHz ATI Xenos Slightly more forgiving than PS3 for memory
The Xbox 360: Overview
Is “almost” a PC CPU: 3.2 GHz PowePC Tri-Core Xenon GPU: 500 MHz ATI Xenos Slightly more forgiving than PS3 for memory Uses the DirectX 9 Graphics API Superset of Shader Model 3.0 (not full 4.0)
Unified Shader Architecture
The Xbox 360: Memory
512 MB GDDR3 system memory at 700 MHz
The Xbox 360: Memory
512 MB GDDR3 system memory at 700 MHz GPU is in between CPU and system memory
The Xbox 360: Memory
512 MB GDDR3 system memory at 700 MHz GPU is in between CPU and system memory GPU also has 100 MB dedicated eDRAM
Used for frame buffers
PS3: Overview
CPU: 3.2 GHz Cell Broadband Engine
PS3: Overview
CPU: 3.2 GHz Cell Broadband Engine GPU: 550MHz NVIDIA RSX
Essentially a GeForce 7800
PS3: Overview
CPU: 3.2 GHz Cell Broadband Engine GPU: 550MHz NVIDIA RSX
Essentially a GeForce 7800 Data stored on Blu-Ray disks
PS3: Overview
CPU: 3.2 GHz Cell Broadband Engine GPU: 550MHz NVIDIA RSX
Essentially a GeForce 7800 Data stored on Blu-Ray disks Older versions can be loaded with Linux
PS3: The Cell
The PS3's Cell Processor is atypical for a console processor
PS3: The Cell
The PS3's Cell Processor is atypical for a console processor
Focus on parallel processing
PS3: The Cell
The PS3's Cell Processor is atypical for a console processor
Focus on parallel processing 1 PowerPC Process Element or “PPE”
Runs general purpose code
PS3: The Cell
The PS3's Cell Processor is atypical for a console processor
Focus on parallel processing 1 PowerPC Process Element or “PPE”
Runs general purpose code 8 Synergistic Processor Elements or “SPE”
1 locked to protect against defects
PS3: The Cell
The PS3's Cell Processor is atypical for a console processor
Focus on parallel processing 1 PowerPC Process Element or “PPE”
Runs general purpose code 8 Synergistic Processor Elements or “SPE”
1 locked to protect against defects 1 reserved for OS
PS3: The Cell
The PS3's Cell Processor is atypical for a console processor
Focus on parallel processing 1 PowerPC Process Element or “PPE”
Runs general purpose code 8 Synergistic Processor Elements or “SPE”
1 locked to protect against defects 1 reserved for OS 6 for game code to utilize
PS3: The Cell
SPE0
LS(256KB)
DMA
SPE1
LS(256KB)
DMA
MIC
MemoryInterfaceController
XIO
SPE2
LS(256KB)
DMA
SPE3
LS(256KB)
DMA
SPE4
LS(256KB)
DMA
SPE5
LS(256KB)
DMA
SPE6
LS(256KB)
DMA
PPE
L1 (32 KB I/D)
L2(512 KB)
Flex-IO1
Flex-IO0
I/O
I/O
I/O
PS3: Architecture
Cell3.2 GHz
RSX®XDRAM256 MB
I/O Bridge
HD/HDSD
AV out
20GB/s
15GB/s
25.6GB/s
2.5GB/s
2.5GB/s
BD/DVD/CD ROM Drive
54GB USB 2.0 x 6
Gbit Ether/WiFi Removable StorageMemoryStick,SD,CF
BT Controller
GDDR3256 MB
22.4GB/s
PS3: Challenges
Divided memory access
PS3: Challenges
Divided memory access Asynchronous Bandwidth to RSX!
PS3: Challenges
Divided memory access Asynchronous Bandwidth to RSX! PPE is very, very weaksauce
PS3: Challenges
Divided memory access Asynchronous Bandwidth to RSX! PPE is very, very weaksauce Programming for SPUs is a challenge of
parallel processing
Unity for Consoles
Windows is only editor platform Each console has > 200 tech requirements that
must be met by every game You have to have a dev kit (provided by
console manufacturers)
Unity: Whats Missing
No duck typing in Javascript
Unity: Whats Missing
No duck typing in Javascript No JIT, AOT compilation only
Unity: Whats Missing
No duck typing in Javascript No JIT, AOT compilation only No fixed function shader pipeline
Error shaders shade to bright pink
Unity: Whats Missing
No duck typing in Javascript No JIT, AOT compilation only No fixed function shader pipeline
Error shaders shade to bright pink PS3 has no Mono thread support
Unity: Whats Missing
No duck typing in Javascript No JIT, AOT compilation only No fixed function shader pipeline
Error shaders shade to bright pink PS3 has no Mono thread support Certain APIs (WWW...)
Unity: Platform Features
PSN/XBLA integration Move/Kinect support SystemEvent callbacks Expandable by native plugins
Unity: Best Practices
Work in 720p resolution
Unity: Best Practices
Work in 720p resolution Respect the display safe region
Unity: Best Practices
Work in 720p resolution Respect the display safe region Animate loading screens
Unity: Best Practices
Work in 720p resolution Respect the display safe region Animate loading screens Notify player of background tasks
Use animations Saving/Loading may take longer
Unity: Best Practices
Work in 720p resolution Respect the display safe region Animate loading screens Notify player of background tasks
Use animations Saving/Loading may take longer
Plan memory use ahead Pixel vs. Texel ratio
More Unity
Multiple build settings to support different console submission formats
Playstation Move returns position and rotation Used in Unite demo
Debugger is tricky to use Can program SPU's from plugins
Questions / Discussion