3D Console Development: What's the deal? Jonathan Moore [email_address] Twitter: JonManatee
Console Development <ul><li>What's the difference? </li></ul>
Console Development <ul><li>What's the difference? </li></ul><ul><ul><li>Faster Processors, Less Memory </li></ul></ul>
Console Development <ul><li>What's the difference? </li></ul><ul><ul><li>Faster Processors, Less Memory </li></ul></ul><ul...
Console Development <ul><li>What's the difference? </li></ul><ul><ul><li>Faster Processors, Less Memory </li></ul></ul><ul...
The Wii <ul><li>Notably the weakest of the 3 “next-gen” consoles </li></ul><ul><li>Does not support programmable shaders <...
The Xbox 360: Overview <ul><li>Is “almost” a PC </li></ul><ul><li>CPU: 3.2 GHz PowePC Tri-Core Xenon </li></ul>
The Xbox 360: Overview <ul><li>Is “almost” a PC </li></ul><ul><li>CPU: 3.2 GHz PowePC Tri-Core Xenon </li></ul><ul><li>GPU...
The Xbox 360: Overview <ul><li>Is “almost” a PC </li></ul><ul><li>CPU: 3.2 GHz PowePC Tri-Core Xenon </li></ul><ul><li>GPU...
The Xbox 360: Overview <ul><li>Is “almost” a PC </li></ul><ul><li>CPU: 3.2 GHz PowePC Tri-Core Xenon </li></ul><ul><li>GPU...
The Xbox 360: Memory <ul><li>512 MB GDDR3 system memory at 700 MHz </li></ul>
The Xbox 360: Memory <ul><li>512 MB GDDR3 system memory at 700 MHz </li></ul><ul><li>GPU is in between CPU and system memo...
The Xbox 360: Memory <ul><li>512 MB GDDR3 system memory at 700 MHz </li></ul><ul><li>GPU is in between CPU and system memo...
PS3: Overview <ul><li>CPU: 3.2 GHz Cell Broadband Engine </li></ul>
PS3: Overview <ul><li>CPU: 3.2 GHz Cell Broadband Engine </li></ul><ul><li>GPU: 550MHz NVIDIA RSX </li></ul><ul><ul><li>Es...
PS3: Overview <ul><li>CPU: 3.2 GHz Cell Broadband Engine </li></ul><ul><li>GPU: 550MHz NVIDIA RSX </li></ul><ul><ul><li>Es...
PS3: Overview <ul><li>CPU: 3.2 GHz Cell Broadband Engine </li></ul><ul><li>GPU: 550MHz NVIDIA RSX </li></ul><ul><ul><li>Es...
PS3: The Cell <ul><li>The PS3's Cell Processor is atypical for a console processor </li></ul>
PS3: The Cell <ul><li>The PS3's Cell Processor is atypical for a console processor </li></ul><ul><ul><li>Focus on parallel...
PS3: The Cell <ul><li>The PS3's Cell Processor is atypical for a console processor </li></ul><ul><ul><li>Focus on parallel...
PS3: The Cell <ul><li>The PS3's Cell Processor is atypical for a console processor </li></ul><ul><ul><li>Focus on parallel...
PS3: The Cell <ul><li>The PS3's Cell Processor is atypical for a console processor </li></ul><ul><ul><li>Focus on parallel...
PS3: The Cell <ul><li>The PS3's Cell Processor is atypical for a console processor </li></ul><ul><ul><li>Focus on parallel...
PS3: The Cell PPE Flex- IO 1 Flex- IO 0 I/O I/O I/O SPE 0 LS (256KB) DMA SPE 1 LS (256KB) DMA MIC Memory Interface Control...
PS3: Architecture Cell 3.2 GHz RSX® XDRAM 256 MB I/O  Bridge HD/HD SD AV out 20GB/s 15GB/s 25.6GB/s 2.5GB/s 2.5GB/s BD/DVD...
PS3: Challenges <ul><li>Divided memory access </li></ul>
PS3: Challenges <ul><li>Divided memory access </li></ul><ul><li>Asynchronous Bandwidth to RSX! </li></ul>
PS3: Challenges <ul><li>Divided memory access </li></ul><ul><li>Asynchronous Bandwidth to RSX! </li></ul><ul><li>PPE is ve...
PS3: Challenges <ul><li>Divided memory access </li></ul><ul><li>Asynchronous Bandwidth to RSX! </li></ul><ul><li>PPE is ve...
Unity for Consoles <ul><li>Windows is only editor platform </li></ul><ul><li>Each console has > 200 tech requirements that...
Unity: Whats Missing <ul><li>No duck typing in Javascript </li></ul>
Unity: Whats Missing <ul><li>No duck typing in Javascript </li></ul><ul><li>No JIT, AOT compilation only </li></ul>
Unity: Whats Missing <ul><li>No duck typing in Javascript </li></ul><ul><li>No JIT, AOT compilation only </li></ul><ul><li...
Unity: Whats Missing <ul><li>No duck typing in Javascript </li></ul><ul><li>No JIT, AOT compilation only </li></ul><ul><li...
Unity: Whats Missing <ul><li>No duck typing in Javascript </li></ul><ul><li>No JIT, AOT compilation only </li></ul><ul><li...
Unity: Platform Features <ul><li>PSN/XBLA integration </li></ul><ul><li>Move/Kinect support </li></ul><ul><li>SystemEvent ...
Unity: Best Practices <ul><li>Work in 720p resolution </li></ul>
Unity: Best Practices <ul><li>Work in 720p resolution </li></ul><ul><li>Respect the display safe region </li></ul>
Unity: Best Practices <ul><li>Work in 720p resolution </li></ul><ul><li>Respect the display safe region </li></ul><ul><li>...
Unity: Best Practices <ul><li>Work in 720p resolution </li></ul><ul><li>Respect the display safe region </li></ul><ul><li>...
Unity: Best Practices <ul><li>Work in 720p resolution </li></ul><ul><li>Respect the display safe region </li></ul><ul><li>...
More Unity <ul><li>Multiple build settings to support different console submission formats </li></ul><ul><li>Playstation M...
Questions / Discussion
Upcoming SlideShare
Loading in …5
×

Console development

791 views

Published on

Jonathan Talks about 3D development on consoles.

  • Be the first to comment

Console development

  1. 1. 3D Console Development: What's the deal? Jonathan Moore [email_address] Twitter: JonManatee
  2. 2. Console Development <ul><li>What's the difference? </li></ul>
  3. 3. Console Development <ul><li>What's the difference? </li></ul><ul><ul><li>Faster Processors, Less Memory </li></ul></ul>
  4. 4. Console Development <ul><li>What's the difference? </li></ul><ul><ul><li>Faster Processors, Less Memory </li></ul></ul><ul><ul><li>PC Market will catch up and outpace it with time </li></ul></ul><ul><ul><ul><li>Graphics APIs will introduce new technologies while the consoles are stuck in the past </li></ul></ul></ul>
  5. 5. Console Development <ul><li>What's the difference? </li></ul><ul><ul><li>Faster Processors, Less Memory </li></ul></ul><ul><ul><li>PC Market will catch up and outpace it with time </li></ul></ul><ul><ul><ul><li>Graphics APIs will introduce new technologies while the consoles are stuck in the past </li></ul></ul></ul><ul><ul><li>Consoles are a fixed platform </li></ul></ul><ul><ul><ul><li>Easier to catch bugs, consistent hardware allows developers to pull more “tricks” </li></ul></ul></ul>
  6. 6. The Wii <ul><li>Notably the weakest of the 3 “next-gen” consoles </li></ul><ul><li>Does not support programmable shaders </li></ul><ul><li>In Unity, Scripts are still JIT compiled </li></ul><ul><li>Not really the focus of this talk </li></ul>
  7. 7. The Xbox 360: Overview <ul><li>Is “almost” a PC </li></ul><ul><li>CPU: 3.2 GHz PowePC Tri-Core Xenon </li></ul>
  8. 8. The Xbox 360: Overview <ul><li>Is “almost” a PC </li></ul><ul><li>CPU: 3.2 GHz PowePC Tri-Core Xenon </li></ul><ul><li>GPU: 500 MHz ATI Xenos </li></ul>
  9. 9. The Xbox 360: Overview <ul><li>Is “almost” a PC </li></ul><ul><li>CPU: 3.2 GHz PowePC Tri-Core Xenon </li></ul><ul><li>GPU: 500 MHz ATI Xenos </li></ul><ul><li>Slightly more forgiving than PS3 for memory </li></ul>
  10. 10. The Xbox 360: Overview <ul><li>Is “almost” a PC </li></ul><ul><li>CPU: 3.2 GHz PowePC Tri-Core Xenon </li></ul><ul><li>GPU: 500 MHz ATI Xenos </li></ul><ul><li>Slightly more forgiving than PS3 for memory </li></ul><ul><li>Uses the DirectX 9 Graphics API </li></ul><ul><li>Superset of Shader Model 3.0 (not full 4.0) </li></ul><ul><ul><li>Unified Shader Architecture </li></ul></ul>
  11. 11. The Xbox 360: Memory <ul><li>512 MB GDDR3 system memory at 700 MHz </li></ul>
  12. 12. The Xbox 360: Memory <ul><li>512 MB GDDR3 system memory at 700 MHz </li></ul><ul><li>GPU is in between CPU and system memory </li></ul>
  13. 13. The Xbox 360: Memory <ul><li>512 MB GDDR3 system memory at 700 MHz </li></ul><ul><li>GPU is in between CPU and system memory </li></ul><ul><li>GPU also has 100 MB dedicated eDRAM </li></ul><ul><ul><li>Used for frame buffers </li></ul></ul>
  14. 14. PS3: Overview <ul><li>CPU: 3.2 GHz Cell Broadband Engine </li></ul>
  15. 15. PS3: Overview <ul><li>CPU: 3.2 GHz Cell Broadband Engine </li></ul><ul><li>GPU: 550MHz NVIDIA RSX </li></ul><ul><ul><li>Essentially a GeForce 7800 </li></ul></ul>
  16. 16. PS3: Overview <ul><li>CPU: 3.2 GHz Cell Broadband Engine </li></ul><ul><li>GPU: 550MHz NVIDIA RSX </li></ul><ul><ul><li>Essentially a GeForce 7800 </li></ul></ul><ul><li>Data stored on Blu-Ray disks </li></ul>
  17. 17. PS3: Overview <ul><li>CPU: 3.2 GHz Cell Broadband Engine </li></ul><ul><li>GPU: 550MHz NVIDIA RSX </li></ul><ul><ul><li>Essentially a GeForce 7800 </li></ul></ul><ul><li>Data stored on Blu-Ray disks </li></ul><ul><li>Older versions can be loaded with Linux </li></ul>
  18. 18. PS3: The Cell <ul><li>The PS3's Cell Processor is atypical for a console processor </li></ul>
  19. 19. PS3: The Cell <ul><li>The PS3's Cell Processor is atypical for a console processor </li></ul><ul><ul><li>Focus on parallel processing </li></ul></ul>
  20. 20. PS3: The Cell <ul><li>The PS3's Cell Processor is atypical for a console processor </li></ul><ul><ul><li>Focus on parallel processing </li></ul></ul><ul><ul><li>1 PowerPC Process Element or “PPE” </li></ul></ul><ul><ul><ul><li>Runs general purpose code </li></ul></ul></ul>
  21. 21. PS3: The Cell <ul><li>The PS3's Cell Processor is atypical for a console processor </li></ul><ul><ul><li>Focus on parallel processing </li></ul></ul><ul><ul><li>1 PowerPC Process Element or “PPE” </li></ul></ul><ul><ul><ul><li>Runs general purpose code </li></ul></ul></ul><ul><ul><li>8 Synergistic Processor Elements or “SPE” </li></ul></ul><ul><ul><ul><li>1 locked to protect against defects </li></ul></ul></ul>
  22. 22. PS3: The Cell <ul><li>The PS3's Cell Processor is atypical for a console processor </li></ul><ul><ul><li>Focus on parallel processing </li></ul></ul><ul><ul><li>1 PowerPC Process Element or “PPE” </li></ul></ul><ul><ul><ul><li>Runs general purpose code </li></ul></ul></ul><ul><ul><li>8 Synergistic Processor Elements or “SPE” </li></ul></ul><ul><ul><ul><li>1 locked to protect against defects </li></ul></ul></ul><ul><ul><ul><li>1 reserved for OS </li></ul></ul></ul>
  23. 23. PS3: The Cell <ul><li>The PS3's Cell Processor is atypical for a console processor </li></ul><ul><ul><li>Focus on parallel processing </li></ul></ul><ul><ul><li>1 PowerPC Process Element or “PPE” </li></ul></ul><ul><ul><ul><li>Runs general purpose code </li></ul></ul></ul><ul><ul><li>8 Synergistic Processor Elements or “SPE” </li></ul></ul><ul><ul><ul><li>1 locked to protect against defects </li></ul></ul></ul><ul><ul><ul><li>1 reserved for OS </li></ul></ul></ul><ul><ul><ul><li>6 for game code to utilize </li></ul></ul></ul>
  24. 24. PS3: The Cell PPE Flex- IO 1 Flex- IO 0 I/O I/O I/O SPE 0 LS (256KB) DMA SPE 1 LS (256KB) DMA MIC Memory Interface Controller XIO SPE 2 LS (256KB) DMA SPE 3 LS (256KB) DMA SPE 4 LS (256KB) DMA SPE 5 LS (256KB) DMA SPE 6 LS (256KB) DMA L1 (32 KB I/D) L2 (512 KB)
  25. 25. PS3: Architecture Cell 3.2 GHz RSX® XDRAM 256 MB I/O Bridge HD/HD SD 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   Storage MemoryStick,SD,CF BT Controller GDDR3 256 MB 22.4GB/s
  26. 26. PS3: Challenges <ul><li>Divided memory access </li></ul>
  27. 27. PS3: Challenges <ul><li>Divided memory access </li></ul><ul><li>Asynchronous Bandwidth to RSX! </li></ul>
  28. 28. PS3: Challenges <ul><li>Divided memory access </li></ul><ul><li>Asynchronous Bandwidth to RSX! </li></ul><ul><li>PPE is very, very weaksauce </li></ul>
  29. 29. PS3: Challenges <ul><li>Divided memory access </li></ul><ul><li>Asynchronous Bandwidth to RSX! </li></ul><ul><li>PPE is very, very weaksauce </li></ul><ul><li>Programming for SPUs is a challenge of parallel processing </li></ul>
  30. 30. Unity for Consoles <ul><li>Windows is only editor platform </li></ul><ul><li>Each console has > 200 tech requirements that must be met by every game </li></ul><ul><li>You have to have a dev kit (provided by console manufacturers) </li></ul>
  31. 31. Unity: Whats Missing <ul><li>No duck typing in Javascript </li></ul>
  32. 32. Unity: Whats Missing <ul><li>No duck typing in Javascript </li></ul><ul><li>No JIT, AOT compilation only </li></ul>
  33. 33. Unity: Whats Missing <ul><li>No duck typing in Javascript </li></ul><ul><li>No JIT, AOT compilation only </li></ul><ul><li>No fixed function shader pipeline </li></ul><ul><ul><li>Error shaders shade to bright pink </li></ul></ul>
  34. 34. Unity: Whats Missing <ul><li>No duck typing in Javascript </li></ul><ul><li>No JIT, AOT compilation only </li></ul><ul><li>No fixed function shader pipeline </li></ul><ul><ul><li>Error shaders shade to bright pink </li></ul></ul><ul><li>PS3 has no Mono thread support </li></ul>
  35. 35. Unity: Whats Missing <ul><li>No duck typing in Javascript </li></ul><ul><li>No JIT, AOT compilation only </li></ul><ul><li>No fixed function shader pipeline </li></ul><ul><ul><li>Error shaders shade to bright pink </li></ul></ul><ul><li>PS3 has no Mono thread support </li></ul><ul><li>Certain APIs (WWW...) </li></ul>
  36. 36. Unity: Platform Features <ul><li>PSN/XBLA integration </li></ul><ul><li>Move/Kinect support </li></ul><ul><li>SystemEvent callbacks </li></ul><ul><li>Expandable by native plugins </li></ul>
  37. 37. Unity: Best Practices <ul><li>Work in 720p resolution </li></ul>
  38. 38. Unity: Best Practices <ul><li>Work in 720p resolution </li></ul><ul><li>Respect the display safe region </li></ul>
  39. 39. Unity: Best Practices <ul><li>Work in 720p resolution </li></ul><ul><li>Respect the display safe region </li></ul><ul><li>Animate loading screens </li></ul>
  40. 40. Unity: Best Practices <ul><li>Work in 720p resolution </li></ul><ul><li>Respect the display safe region </li></ul><ul><li>Animate loading screens </li></ul><ul><li>Notify player of background tasks </li></ul><ul><ul><li>Use animations </li></ul></ul><ul><ul><li>Saving/Loading may take longer </li></ul></ul>
  41. 41. Unity: Best Practices <ul><li>Work in 720p resolution </li></ul><ul><li>Respect the display safe region </li></ul><ul><li>Animate loading screens </li></ul><ul><li>Notify player of background tasks </li></ul><ul><ul><li>Use animations </li></ul></ul><ul><ul><li>Saving/Loading may take longer </li></ul></ul><ul><li>Plan memory use ahead </li></ul><ul><ul><li>Pixel vs. Texel ratio </li></ul></ul>
  42. 42. More Unity <ul><li>Multiple build settings to support different console submission formats </li></ul><ul><li>Playstation Move returns position and rotation </li></ul><ul><ul><li>Used in Unite demo </li></ul></ul><ul><li>Debugger is tricky to use </li></ul><ul><li>Can program SPU's from plugins </li></ul>
  43. 43. Questions / Discussion

×