Na#ve	
  Code	
  is	
  Dead	
  
AKA	
  
Cross	
  Pla2orm	
  Development	
  with	
  Unity3D	
  
Ralph	
  Barbagallo	
  
Fou...
2001	
  
2007	
  
2008	
  
The	
  Pla2orm	
  Problem	
  
20XX…	
  
Choosing	
  A	
  Solu#on	
  
• Most	
  Pla9orms	
  With	
  Least	
  Code	
  
• Licensing	
  Model	
  That	
  Won’t	
  Eat	...
HTML5	
  
• HTML5	
  Frameworks	
  
• PhoneGap	
  
• GameSalad	
  
• Game	
  Closure,	
  AppMobi,	
  Ludei	
  
• HTML5	
  ...
Cocos2d	
  
• Cocos2d-­‐X	
  
• Straight	
  C++	
  version	
  of	
  Cocos2d	
  
• Great	
  2D	
  library,	
  widely	
  use...
Flash	
  /	
  Adobe	
  AIR	
  
•  Flash	
  isn’t	
  dead!	
  
•  Use	
  Flash,	
  FlashBuilder,	
  etc.	
  
•  AIR	
  NaHv...
Unreal	
  Developer’s	
  Kit	
  
•  Don’t	
  need	
  a	
  Mac!	
  
•  Top	
  of	
  the	
  line	
  renderer	
  
•  25%	
  o...
Other	
  Op#ons	
  
• Titanium	
  Studio	
  
• Corona	
  
• GameMaker	
  
• Stencyl	
  
• Marmalade	
  
Why	
  I	
  Chose	
  Unity3D:	
  	
  Tech	
  
• Best	
  support	
  for	
  criHcal	
  pla9orms	
  
• Mobile	
  (iOS,	
  And...
Tech	
  
• NaHve	
  Plug-­‐ins	
  
• Can	
  support	
  any	
  pla9orm-­‐specific	
  
funcHonality	
  
• Amazon	
  App	
  St...
Support	
  
• Awesome	
  forums	
  
• Awesome	
  feedback	
  from	
  support	
  
• Twi]er!	
  
Asset	
  Store	
  
Business	
  Model	
  
• Flat	
  fee	
  per-­‐seat	
  (‘perpetual’)	
  
• Monthly	
  SubscripHon	
  
• No	
  rev-­‐share	
  
Brick	
  Buddies	
  
Camera	
  Birds	
  
iOS	
  to	
  Android	
  with	
  Unity3D	
  
Plug-­‐ins	
  
• Used	
  mostly	
  cross-­‐pla9orm	
  plug-­‐ins	
  
• Access	
  pla9orm	
  specific	
  features	
  (IAP,	
...
Pla2orm	
  Specific	
  Code	
  
• Only	
  spent	
  a	
  few	
  days	
  of	
  re-­‐factoring	
  
• Swapped	
  out	
  iOS	
  ...
AndroidJavaClass	
  
AndroidJavaObject activity = new
AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<Android...
Screen	
  Sizes	
  
• iOS	
  has	
  3	
  aspect	
  raHos	
  to	
  deal	
  with	
  
• Made	
  interface	
  work	
  in	
  “s...
Android	
  Fragmenta#on	
  
Performance	
  and	
  Tes#ng	
  
Cross	
  Pla2orm	
  Export	
  Tools	
  
• Per-­‐Pla9orm	
  Asset	
  Sehngs	
  
• Compression	
  sehngs	
  
• Filtering	
  ...
In	
  Summary	
  
• Best	
  Business	
  Model	
  
• Widest	
  Pla9orm	
  Support	
  
• Best	
  Community	
  Support	
  
• ...
Thanks!	
  
Email:	
  	
  ralph@flarb.com	
  
	
  
Twi]er:	
  @flarb	
  
	
  
Blog:	
  www.ralphbarbagallo.com	
  
	
  
Site...
Native Code is Dead AKA Cross Platform Development with Unity 3D
Native Code is Dead AKA Cross Platform Development with Unity 3D
Native Code is Dead AKA Cross Platform Development with Unity 3D
Native Code is Dead AKA Cross Platform Development with Unity 3D
Native Code is Dead AKA Cross Platform Development with Unity 3D
Native Code is Dead AKA Cross Platform Development with Unity 3D
Native Code is Dead AKA Cross Platform Development with Unity 3D
Native Code is Dead AKA Cross Platform Development with Unity 3D
Native Code is Dead AKA Cross Platform Development with Unity 3D
Upcoming SlideShare
Loading in …5
×

Native Code is Dead AKA Cross Platform Development with Unity 3D

1,083 views

Published on

These are the slides from my GDC China 2013 presentation. Which is an updated version of my older cross-platform Unity3D slides.

  • Be the first to comment

  • Be the first to like this

Native Code is Dead AKA Cross Platform Development with Unity 3D

  1. 1. Na#ve  Code  is  Dead   AKA   Cross  Pla2orm  Development  with  Unity3D   Ralph  Barbagallo   Founder,  FLARB  LLC  
  2. 2. 2001  
  3. 3. 2007  
  4. 4. 2008  
  5. 5. The  Pla2orm  Problem  
  6. 6. 20XX…  
  7. 7. Choosing  A  Solu#on   • Most  Pla9orms  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  SHll  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  NaHve  Extensions   •  Flash  game  engines   •  Starling  
  11. 11. Unreal  Developer’s  Kit   •  Don’t  need  a  Mac!   •  Top  of  the  line  renderer   •  25%  of  revenue  to  Epic   •  Weak  pla9orm-­‐specific  support  
  12. 12. Other  Op#ons   • Titanium  Studio   • Corona   • GameMaker   • Stencyl   • Marmalade  
  13. 13. Why  I  Chose  Unity3D:    Tech   • Best  support  for  criHcal  pla9orms   • Mobile  (iOS,  Android,  etc.)   • Web  (NaCL,  Web  Player,  Flash)   • Desktop  (Steam,  Mac  App  Store,   Win8)   • Console  
  14. 14. Tech   • NaHve  Plug-­‐ins   • Can  support  any  pla9orm-­‐specific   funcHonality   • Amazon  App  Store   • Google  Play  Game  Services   • Write  your  own  naHve  plug-­‐in  
  15. 15. Support   • Awesome  forums   • Awesome  feedback  from  support   • Twi]er!  
  16. 16. Asset  Store  
  17. 17. Business  Model   • Flat  fee  per-­‐seat  (‘perpetual’)   • Monthly  SubscripHon   • 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-­‐pla9orm  plug-­‐ins   • Access  pla9orm  specific  features  (IAP,   etc.)  
  22. 22. Pla2orm  Specific  Code   • Only  spent  a  few  days  of  re-­‐factoring   • Swapped  out  iOS  plug-­‐ins  for  Android   • RunHme  pla9orm  checks  and  #IF   compiler  direcHves   • AndroidJavaClass!  
  23. 23. AndroidJavaClass   AndroidJavaObject activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<Android JavaObject>("currentActivity”)! ! mWindowManager = activity.Call<AndroidJavaObject>("getSystemService","window");! ! mConfig = activity.Call<AndroidJavaObject>("getResources").Call<AndroidJavaObj ect>("getConfiguration");! !
  24. 24. Screen  Sizes   • iOS  has  3  aspect  raHos  to  deal  with   • Made  interface  work  in  “safe  zone”   • For  Android’s  common  16:10  raHo,   scaled  NGUI  interface  to  fit  
  25. 25. Android  Fragmenta#on  
  26. 26. Performance  and  Tes#ng  
  27. 27. Cross  Pla2orm  Export  Tools   • Per-­‐Pla9orm  Asset  Sehngs   • Compression  sehngs   • Filtering   • Cache  Server   • MulH-­‐Pla9orm  Toolkit   • Build-­‐Hme  asset  changes  
  28. 28. In  Summary   • Best  Business  Model   • Widest  Pla9orm  Support   • Best  Community  Support   • Dead  Simple  PorHng  Process  
  29. 29. Thanks!   Email:    ralph@flarb.com     Twi]er:  @flarb     Blog:  www.ralphbarbagallo.com     Site:    www.flarb.com    

×