Porting games from ps3 or web to shield and ouya [final]

851 views

Published on

This session shows the ins and outs of developing on micro-consoles like the OUYA and the GameStick, or handheld devices like the NVIDIA SHIELD. Learn how we tailored a PS3 game by using Unreal so it ran well on micro-consoles, bypassing their limitations. Also, see how we enhanced a Stage3D game using AIR to show off the SHIELD's power by leveraging its strengths. Finally, learn about peer-to-peer multiplayer options to link players across game consoles, mobile and Web. Reach beyond the limitations to create an awesome game!

Takeaway
First, attendees will be shown how to develop micro-console and handheld titles in an efficient manner. Then, they will learn about the differences between the platforms, including performance and capabilities, in order to leverage their power. Finally, they will discover some techniques for multiplayer integration through cases studies.

Published in: Technology, Art & Photos
  • Be the first to comment

  • Be the first to like this

Porting games from ps3 or web to shield and ouya [final]

  1. 1. Takeaways ● ● ● Micro-console/handheld porting efficiency Harness the new hardware Multiplayer solutions on Android
  2. 2. Lexicon Android-based gaming consoles mobile or not, handheld or with a controller ● ● ● ● ● ● Micro-console Handheld Android based console Mobile device Acronym dumping
  3. 3. "It is, in fact, 140 times more powerful than the first Cray supercomputer, or 1.6 times more powerful than a PlayStation 3."
  4. 4. The Future of Micro console ● ● PCmag.com ● 4/5 “most impressive handheld gaming systems” Slash gear ● “What we’ve got here is a sort of perfect storm for benchmark butt-kicking.”
  5. 5. Our Experiments ● ● Lightbringer ● Web and Mobile ● Adobe Flash (AIR) Zombie Tycoon 2 ● PS3 and VITA ● Unreal 3
  6. 6. AIR ● ● What is AIR? As of October, 2013,: ● 120,000 distinct applications ● >140M downloads since July
  7. 7. Unreal ● What is Unreal?
  8. 8. Differences between platforms Xbox 360 PS3 Wii CPU PowerPC 3.2 Ghz (3 cores) Cell 3.2 with 7 SPE PowerPC 1.9Ghz A15 1.7GHz Dual 1.2 Tegra 3 Dual core A5 2Ghz 729 Mhz Quad quad A9 800Mhz A9 Quad 1Ghz Quad Tegra4 A9 GPU 500 Mhz ATI 550 Mhz nvidia 243 Mhz ATI 256MB XDR, 256MB GDDR3 Memory 512MB GDDR3, 10MB EDRAM Disk 20-320GB SHIELD OUYA iPhone4s 72 cores Tegra4 Nexus 7 iPad mini VITA Tegra3 PowerVR SGX543 416 Mhz nvidia PowerVR SGX543 SGX543MP2 24MB 2GB SRAM, 64MB GDDR3, 3MB GPU 1GB 512 MB 1GB 512MB 512+128 512MB 8GB 8GB+ 8GB 16-64GB None 16GB
  9. 9. Differences between platforms
  10. 10. This slide was intentionally left here by mistake
  11. 11. Porting LB ● ● ● Trying new consoles (First builds) SHIELD ● Profiling and Stepping up ● Bypassing limitations ● Post process OUYA details
  12. 12. Trying new consoles ● ● Current: ● Web ● Nexus 7 (First generation) ● iPad 2 Goal: ● OUYA ● SHIELD
  13. 13. OUYA ● ● ● ● Same APK (Android Application Package) Missing Controller Small touchpad FPS: 15
  14. 14. SHIELD ● ● ● ● Same APK Controller support Touch screen FPS: 60
  15. 15. Controller ● ● ● ● Flash.ui.GameInput Air 3.7 Action mapping Bug First frame of application ● ● Fix : First frame variable Fix : Static variable 1. http://zehfernando.com/2013/adobe-air-gameinput-pitfalls/
  16. 16. Profiling on SHIELD
  17. 17. SHIELD(T4) vs T3 • • • • • • • Vertex Shader Fragment ALU Pixel Rate Texture Rate Memory Rate Z-Kill Rate Triangle Rate 8x 8x 2.6x 2.6x 2.3x 1.3x 1.3x ● ● ● ● ● ● ● Nexus : 6 Instructions Shield : 48 Instructions PCF MRT HDR OMG LOL
  18. 18. Step up ideas ● ● ● ● ● Upgrade meshes and textures (Triangle Rate) FX, Ambiance (Pixel Rate) Dynamic shadow, Lighting (MRT, PCF) Creep 1 (CPU) Post-process stuff (ALU/Texture/Pixel rate) 1. http://tinyurl.com/mmvpp7c
  19. 19. Bypassing AIR/Stage3D limitations ● ● ● Native extension ● Hook OpenGL ● ELF-Hook Support advanced feature Experimental pipeline
  20. 20. Bypassing AIR/Stage3D limitations originalUseProgram = elf_hook(fullpath, base, (void*)MyglUseProgram); void MyglUseProgram(GLuint program) { GLuint progToUse = programList.find(program); originalUseProgram (progToUse); } >
  21. 21. What can be done this way? ● ● ● ● ● LowP Instruction count Branching MRT Aliasing (AA)
  22. 22. Post-process ● ● ● ● Depth of field Bloom ● Downsizing ● Convolution blur FXAA Crytek Sharpening
  23. 23. Demo
  24. 24. Demo
  25. 25. Demo
  26. 26. Demo
  27. 27. Demo
  28. 28. Demo
  29. 29. [Insert Transition Here]
  30. 30. OUYA ● ● ● ● Profiling Multithreading Multiplayer Other things that worked
  31. 31. Profiling on OUYA ● ● ● ● 15 fps out of the box Slower than the Nexus 7? Heavier operating system? Not expected, why and where?
  32. 32. Profiling on OUYA ● NVIDIA PerfHud ES ● High-Level ● Timer functions ● eglGetSystemTimeFrequencyNV ● eglGetSystemTimeNV ● OpenGL hook
  33. 33. Profiling on OUYA ● Adobe Scout ● Companion app ● No Google store ● Install on Nexus ● Backup apk ● Install on OUYA
  34. 34. Wave 1 Wave 2
  35. 35. Profiling results ● ● ● ● 15-25 fps out of the box? Firmware and stuff Yeah! Like Nexus 7 ● 25-30 fps Extra cores?
  36. 36. Multithreading ● ● WorkerThread ● Web ● Android ● iOS Thread task manager ● C++ Implementation ● Native Extension
  37. 37. Multiplayer ● ● ● ● ● Sync lot of object The Bro1 Cumulus (Cirrus, Stratus) RTMFP (data,voice,video) Worked on OUYA and SHIELD 1. http://www.slideshare.net/FrimaStudio/mastering-multiplayer-stage3d-and-air-game-development-for-mobile-devices
  38. 38. Other things that worked ● ● ● ● ● Context Lost (Home button, calls) Native Extensions Profiling with the same tools (with SHIELD) Sound, Video… Interfaces
  39. 39. ZT2 from PS3 to Shield
  40. 40. Porting ZT2 ● ● ● ● ● ● What we started with Networking with Google Play Profiling and Performance Visual Features Technical Issues Anti-Piracy
  41. 41. What was done for VITA ● ● ● ● ● ● ● UnrealMobile Branch  VITA branch (Alpha) Unreal simplified rendering system Reduced textures and meshes Simplified Fog of War Reduced particle count Normal Lightmaps (not directional) No post process
  42. 42. First SHIELD build ● VITA build on the Shield ● ● PS3 textures and meshes 40 FPS
  43. 43. Multiplayer - No PSN! ● ● PS3 and Vita ● PSN: yeah ! SHIELD ● Google Play Game SDK ● Modify Unreal socket layer ● JNI communication
  44. 44. Google Play API – Part 1 ● ● ● Good ● NAT traversal, peer connection all good ● Integrated UI, good encapsulation ● Invite Friends, Achievements Bad ● JAVA Native Interface only Ugly ● Packet drop
  45. 45. Google Play API – Part 2 ● ● Version 12 ● Seems much more stable ● No more dropped packets Differences vs PSN ● Quickplay (automatchmaking) ● Callbacks ● Google Leaderboard
  46. 46. Google Play API – Screens
  47. 47. Google Play API – Screens
  48. 48. Mobile Features ● ● ● Analytics Rate us Like us (+1)
  49. 49. YUP!
  50. 50. Profiling and Debugging ● ● ● ● NVIDIA PerfHud ES CPU Profiler needed Shield update Profiler/Debugger ● We need to use 2 functions to make it work ● Deltatime 0/Pause (unreal) Native debugging
  51. 51. Performance ● ● ● 20 more FPS ! 2 cores with Unreal Texture size versus streaming… ● PS3 = 256M video ram ● SHIELD = 2G combined ram
  52. 52. Streaming Video
  53. 53. Streaming Video
  54. 54. Build weight ● ● ● Build weight 1.3G (VITA: 400, PS3:900) WAVs only ● 48KH Stereo to 22KH mono Seek free package ● Package per level ● Rearrange package reducing redundancy
  55. 55. Visual Features ● ● ● ● ● ● Bloom Gamma correction LightMaps MSAA Fog of War Upping particles (10 to 50%)
  56. 56. Blooom
  57. 57. Gamma correction
  58. 58. Gamma correction
  59. 59. Lightmaps - VITA
  60. 60. Lightmaps - SHIELD
  61. 61. MSAA
  62. 62. FOW
  63. 63. Shadow ● Shadow Blobs
  64. 64. UI tweaks ● ● ● Maybe obvious? PS3 UI vs VITA Make them fit on the shield
  65. 65. Technical Issues ● Context reset ● Fog of war ●glReadPixels in batches ● ScaleForm maturity on Android
  66. 66. Save/Home
  67. 67. Save/Home
  68. 68. Anti-Piracy ● Licence server ● Use Developer console FIRST ● Wait ● APK , OBB version number ● Wait ● Rage quit. ● Save | commit | go home
  69. 69. Compare the final game
  70. 70. Last transition!!!
  71. 71. Conclusion ● ● ● Android works well to port to ● Micro-console They are powerful today ● Rapid iterations are planned Multiplayer
  72. 72. Thank You ● ● ● http://www.light-bringers.com/ Please Fill Survey Questions?

×