Native Code is Dead
AKA
Cross Platform Development with Unity3D
Ralph Barbagallo
Founder, FLARB LLC
2001
2007
2008
The Platform Problem
20XX…
Choosing A Solution
• Most Platforms With Least Code
• Licensing Model That Won’t Eat Margins
• Broad Community Support
HTML5
• HTML5 Frameworks
• PhoneGap
• GameSalad
• Game Closure, AppMobi, Ludei
• HTML5 Still Sucks
• Horrible Performance
...
Cocos2d
• Cocos2d-X
• Straight C++ version of Cocos2d
• Great 2D library, widely used
• Amazing updates and support
• No w...
Flash / Adobe AIR
•
•
•
•

Flash isn’t dead!
Use Flash, FlashBuilder, etc.
AIR Native Extensions
Flash game engines
• Star...
Unreal Developer’s Kit
•
•
•
•

Don’t need a Mac!
Top of the line renderer
25% of revenue to Epic
Weak platform-specific s...
Other Options
• Titanium Studio
• Corona
• GameMaker
• Stencyl
• Marmalade
Why I Chose Unity3D: Tech
• Best support for critical platforms
• Mobile (iOS, Android, etc.)
• Web (NaCL, Web Player, Fla...
Tech
• Native Plug-ins
• Can support any platform-specific
functionality
• Amazon App Store
• Google Play Game Services
• ...
Support
• Awesome forums
• Awesome feedback from support
• Twitter!
Asset Store
Business Model
• Flat fee per-seat (‘perpetual’)
• Monthly Subscription
• No rev-share
Brick Buddies
Camera Birds
iOS to Android with Unity3D
Plug-ins
• Used mostly cross-platform plug-ins
• Access platform specific features
(IAP, etc.)
Platform Specific Code
• Only spent a few days of re-factoring
• Swapped out iOS plug-ins for Android

• Runtime platform ...
AndroidJavaClass
AndroidJavaObject activity = new
AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJava...
Screen Sizes
• iOS has 3 aspect ratios to deal with
• Made interface work in “safe zone”

• For Android’s common 16:10 rat...
Android Fragmentation
Performance and Testing
Cross Platform Export Tools
• Per-Platform Asset Settings
• Compression settings
• Filtering

• Cache Server
• Multi-Platf...
In Summary
• Best Business Model
• Widest Platform Support

• Best Community Support
• Dead Simple Porting Process
Thanks!
Email: ralph@flarb.com

Twitter: @flarb
Blog: www.ralphbarbagallo.com
Site: www.flarb.com
WeChat: ralphbarbagallo
Native Code is Dead AKA Cross Platform Development with Unity3D
Native Code is Dead AKA Cross Platform Development with Unity3D
Native Code is Dead AKA Cross Platform Development with Unity3D
Native Code is Dead AKA Cross Platform Development with Unity3D
Native Code is Dead AKA Cross Platform Development with Unity3D
Native Code is Dead AKA Cross Platform Development with Unity3D
Native Code is Dead AKA Cross Platform Development with Unity3D
Native Code is Dead AKA Cross Platform Development with Unity3D
Native Code is Dead AKA Cross Platform Development with Unity3D
Upcoming SlideShare
Loading in …5
×

Native Code is Dead AKA Cross Platform Development with Unity3D

2,287 views

Published on

To survive in today's ultra fast paced game development ecosystem, you can no longer develop native code stuck to one platform. This presentation walks through all of the major cross-platform development tools and explains why I chose Unity3D and how I used it to build games on multiple platforms simultaneously.

This is the GDC Taipei Summit version of my GDC China talk. Pretty much the same.

  • Be the first to comment

Native Code is Dead AKA Cross Platform Development with Unity3D

  1. 1. Native Code is Dead AKA Cross Platform Development with Unity3D Ralph Barbagallo Founder, FLARB LLC
  2. 2. 2001
  3. 3. 2007
  4. 4. 2008
  5. 5. The Platform Problem
  6. 6. 20XX…
  7. 7. Choosing A Solution • Most Platforms With Least Code • Licensing Model That Won’t Eat Margins • Broad Community Support
  8. 8. HTML5 • HTML5 Frameworks • PhoneGap • GameSalad • Game Closure, AppMobi, Ludei • HTML5 Still Sucks • Horrible Performance • Gated by mobile browsers
  9. 9. Cocos2d • Cocos2d-X • Straight C++ version of Cocos2d • Great 2D library, widely used • Amazing updates and support • No web support
  10. 10. Flash / Adobe AIR • • • • Flash isn’t dead! Use Flash, FlashBuilder, etc. AIR Native Extensions Flash game engines • Starling • Stage3D
  11. 11. Unreal Developer’s Kit • • • • Don’t need a Mac! Top of the line renderer 25% of revenue to Epic Weak platform-specific support
  12. 12. Other Options • Titanium Studio • Corona • GameMaker • Stencyl • Marmalade
  13. 13. Why I Chose Unity3D: Tech • Best support for critical platforms • Mobile (iOS, Android, etc.) • Web (NaCL, Web Player, Flash) • Desktop (Steam, Mac App Store, Win8) • Console
  14. 14. Tech • Native Plug-ins • Can support any platform-specific functionality • Amazon App Store • Google Play Game Services • Write your own native plug-in
  15. 15. Support • Awesome forums • Awesome feedback from support • Twitter!
  16. 16. Asset Store
  17. 17. Business Model • Flat fee per-seat (‘perpetual’) • Monthly Subscription • No rev-share
  18. 18. Brick Buddies
  19. 19. Camera Birds
  20. 20. iOS to Android with Unity3D
  21. 21. Plug-ins • Used mostly cross-platform plug-ins • Access platform specific features (IAP, etc.)
  22. 22. Platform Specific Code • Only spent a few days of re-factoring • Swapped out iOS plug-ins for Android • Runtime platform checks and #IF compiler directives • AndroidJavaClass!
  23. 23. AndroidJavaClass AndroidJavaObject activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("current Activity”) mWindowManager = activity.Call<AndroidJavaObject>("getSystemService","window"); mConfig = activity.Call<AndroidJavaObject>("getResources").Call<AndroidJavaObject>("getConfiguratio n");
  24. 24. Screen Sizes • iOS has 3 aspect ratios to deal with • Made interface work in “safe zone” • For Android’s common 16:10 ratio, scaled NGUI interface to fit
  25. 25. Android Fragmentation
  26. 26. Performance and Testing
  27. 27. Cross Platform Export Tools • Per-Platform Asset Settings • Compression settings • Filtering • Cache Server • Multi-Platform Toolkit • Build-time asset changes
  28. 28. In Summary • Best Business Model • Widest Platform Support • Best Community Support • Dead Simple Porting Process
  29. 29. Thanks! Email: ralph@flarb.com Twitter: @flarb Blog: www.ralphbarbagallo.com Site: www.flarb.com WeChat: ralphbarbagallo

×