43
3D Console Development: What's the deal? Jonathan Moore [email protected] Twitter: JonManatee

Console development

Embed Size (px)

DESCRIPTION

Jonathan Talks about 3D development on consoles.

Citation preview

Page 1: Console development

3D Console Development:What's the deal?

Jonathan [email protected]: JonManatee

Page 2: Console development

Console Development

What's the difference?

Page 3: Console development

Console Development

What's the difference? Faster Processors, Less Memory

Page 4: Console development

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

Page 5: Console development

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”

Page 6: Console development

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

Page 7: Console development

The Xbox 360: Overview

Is “almost” a PC CPU: 3.2 GHz PowePC Tri-Core Xenon

Page 8: Console development

The Xbox 360: Overview

Is “almost” a PC CPU: 3.2 GHz PowePC Tri-Core Xenon GPU: 500 MHz ATI Xenos

Page 9: Console development

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

Page 10: Console development

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

Page 11: Console development

The Xbox 360: Memory

512 MB GDDR3 system memory at 700 MHz

Page 12: Console development

The Xbox 360: Memory

512 MB GDDR3 system memory at 700 MHz GPU is in between CPU and system memory

Page 13: Console development

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

Page 14: Console development

PS3: Overview

CPU: 3.2 GHz Cell Broadband Engine

Page 15: Console development

PS3: Overview

CPU: 3.2 GHz Cell Broadband Engine GPU: 550MHz NVIDIA RSX

Essentially a GeForce 7800

Page 16: Console development

PS3: Overview

CPU: 3.2 GHz Cell Broadband Engine GPU: 550MHz NVIDIA RSX

Essentially a GeForce 7800 Data stored on Blu-Ray disks

Page 17: Console development

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

Page 18: Console development

PS3: The Cell

The PS3's Cell Processor is atypical for a console processor

Page 19: Console development

PS3: The Cell

The PS3's Cell Processor is atypical for a console processor

Focus on parallel processing

Page 20: Console development

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

Page 21: Console development

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

Page 22: Console development

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

Page 23: Console development

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

Page 24: Console development

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

Page 25: Console development

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

Page 26: Console development

PS3: Challenges

Divided memory access

Page 27: Console development

PS3: Challenges

Divided memory access Asynchronous Bandwidth to RSX!

Page 28: Console development

PS3: Challenges

Divided memory access Asynchronous Bandwidth to RSX! PPE is very, very weaksauce

Page 29: Console development

PS3: Challenges

Divided memory access Asynchronous Bandwidth to RSX! PPE is very, very weaksauce Programming for SPUs is a challenge of

parallel processing

Page 30: Console development

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)

Page 31: Console development

Unity: Whats Missing

No duck typing in Javascript

Page 32: Console development

Unity: Whats Missing

No duck typing in Javascript No JIT, AOT compilation only

Page 33: Console development

Unity: Whats Missing

No duck typing in Javascript No JIT, AOT compilation only No fixed function shader pipeline

Error shaders shade to bright pink

Page 34: Console development

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

Page 35: Console development

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...)

Page 36: Console development

Unity: Platform Features

PSN/XBLA integration Move/Kinect support SystemEvent callbacks Expandable by native plugins

Page 37: Console development

Unity: Best Practices

Work in 720p resolution

Page 38: Console development

Unity: Best Practices

Work in 720p resolution Respect the display safe region

Page 39: Console development

Unity: Best Practices

Work in 720p resolution Respect the display safe region Animate loading screens

Page 40: Console development

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

Page 41: Console development

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

Page 42: Console development

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

Page 43: Console development

Questions / Discussion