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

79

Upload: frimastudio

Post on 22-Nov-2014

618 views

Category:

Technology


3 download

DESCRIPTION

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.

TRANSCRIPT

  • 1. Takeaways Micro-console/handheld porting efficiency Harness the new hardware Multiplayer solutions on Android

2. Lexicon Android-based gaming consoles mobile or not, handheld or with a controller Micro-console Handheld Android based console Mobile deviceAcronym dumping 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. The Future of Micro console PCmag.com 4/5 most impressive handheld gaming systems Slash gear What weve got here is a sort of perfect storm for benchmark butt-kicking. 5. Our Experiments Lightbringer Web and Mobile Adobe Flash (AIR) Zombie Tycoon 2 PS3 and VITA Unreal 3 6. AIR What is AIR? As of October, 2013,: 120,000 distinct applications >140M downloads since July 7. Unreal What is Unreal? 8. Differences between platforms Xbox 360 PS3WiiCPUPowerPC 3.2 Ghz (3 cores)Cell 3.2 with 7 SPEPowerPC 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 A9GPU500 Mhz ATI550 Mhz nvidia243 Mhz ATI256MB XDR, 256MB GDDR3Memory 512MB GDDR3, 10MB EDRAMDisk20-320GBSHIELD OUYA iPhone4s72 cores Tegra4Nexus 7iPad miniVITATegra3PowerVR SGX543416 Mhz nvidiaPowerVR SGX543 SGX543MP224MB 2GB SRAM, 64MB GDDR3, 3MB GPU1GB512 MB1GB512MB512+128512MB8GB8GB+8GB16-64GBNone16GB 9. Differences between platforms 10. This slide was intentionally left here by mistake 11. Porting LB Trying new consoles (First builds) SHIELD Profiling and Stepping up Bypassing limitations Post process OUYA details 12. Trying new consoles Current: Web Nexus 7 (First generation) iPad 2 Goal: OUYA SHIELD 13. OUYA Same APK (Android Application Package) Missing Controller Small touchpad FPS: 15 14. SHIELD Same APK Controller support Touch screen FPS: 60 15. Controller Flash.ui.GameInput Air 3.7 Action mapping Bug First frame of application Fix : First frame variable Fix : Static variable1. http://zehfernando.com/2013/adobe-air-gameinput-pitfalls/ 16. Profiling on SHIELD 17. SHIELD(T4) vs T3 Vertex Shader Fragment ALU Pixel Rate Texture Rate Memory Rate Z-Kill Rate Triangle Rate8x 8x 2.6x 2.6x 2.3x 1.3x 1.3x Nexus : 6 Instructions Shield : 48 Instructions PCF MRT HDR OMG LOL 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. Bypassing AIR/Stage3D limitations Native extension Hook OpenGL ELF-Hook Support advanced feature Experimental pipeline 20. Bypassing AIR/Stage3D limitations originalUseProgram = elf_hook(fullpath, base,(void*)MyglUseProgram);void MyglUseProgram(GLuint program) {GLuint progToUse = programList.find(program);originalUseProgram (progToUse); }> 21. What can be done this way? LowP Instruction count Branching MRT Aliasing (AA) 22. Post-process Depth of field Bloom Downsizing Convolution blur FXAA Crytek Sharpening 23. Demo 24. Demo 25. Demo 26. Demo 27. Demo 28. Demo 29. [Insert Transition Here] 30. OUYA Profiling Multithreading Multiplayer Other things that worked 31. Profiling on OUYA 15 fps out of the box Slower than the Nexus 7? Heavier operating system? Not expected, why and where? 32. Profiling on OUYA NVIDIA PerfHud ES High-Level Timer functions eglGetSystemTimeFrequencyNV eglGetSystemTimeNV OpenGL hook 33. Profiling on OUYA Adobe Scout Companion app No Google store Install on Nexus Backup apk Install on OUYA 34. Wave 1Wave 2 35. Profiling results 15-25 fps out of the box? Firmware and stuff Yeah! Like Nexus 7 25-30 fps Extra cores? 36. Multithreading WorkerThread Web Android iOS Thread task manager C++ Implementation Native Extension 37. Multiplayer Sync lot of object The Bro1 Cumulus (Cirrus, Stratus) RTMFP (data,voice,video) Worked on OUYA and SHIELD1. http://www.slideshare.net/FrimaStudio/mastering-multiplayer-stage3d-and-air-game-development-for-mobile-devices 38. Other things that worked Context Lost (Home button, calls) Native Extensions Profiling with the same tools (with SHIELD) Sound, Video Interfaces 39. ZT2 from PS3 to Shield 40. Porting ZT2 What we started with Networking with Google Play Profiling and Performance Visual Features Technical Issues Anti-Piracy 41. What was done for VITA UnrealMobile 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. First SHIELD build VITA build on the Shield PS3 textures and meshes40 FPS 43. Multiplayer - No PSN! PS3 and Vita PSN: yeah ! SHIELD Google Play Game SDK Modify Unreal socket layer JNI communication 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. Google Play API Part 2 Version 12 Seems much more stable No more dropped packets Differences vs PSN Quickplay (automatchmaking) Callbacks Google Leaderboard 46. Google Play API Screens 47. Google Play API Screens 48. Mobile Features Analytics Rate us Like us (+1) 49. YUP! 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. Performance 20 more FPS ! 2 cores with Unreal Texture size versus streaming PS3 = 256M video ram SHIELD = 2G combined ram 52. Streaming Video 53. Streaming Video 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. Visual Features Bloom Gamma correction LightMaps MSAA Fog of War Upping particles (10 to 50%) 56. Blooom 57. Gamma correction 58. Gamma correction 59. Lightmaps - VITA 60. Lightmaps - SHIELD 61. MSAA 62. FOW 63. Shadow Shadow Blobs 64. UI tweaks Maybe obvious? PS3 UI vs VITA Make them fit on the shield 65. Technical Issues Context reset Fog of war glReadPixels in batches ScaleForm maturity on Android 66. Save/Home 67. Save/Home 68. Anti-Piracy Licence server Use Developer console FIRST Wait APK , OBB version number Wait Rage quit. Save | commit | go home 69. Compare the final game 70. Last transition!!! 71. Conclusion Android works well to port to Micro-console They are powerful today Rapid iterations are planned Multiplayer 72. Thank You http://www.light-bringers.com/ Please Fill Survey Questions?