Vietnam mobile day 2012 multi platform development - game loft

1,316 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,316
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
92
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Development from mobiles & smart phones… Gameloft supports over 1200 handsets
  • hard-code? getDataFolder()explicitly? global char c; -> c = -1 on Windows but 255 on GCC. cast from char* to int* -> crash on Android.Standardize the data to suit the target platforms. VD: Ảnh nén PVRTC (trên iPhone và 1 số máy Android) thì phải vuông, ảnh phải là POT, ảnh nén ETC thì phải chia hết cho 4….KeyCode
  • http://developer.sonymobile.com/wp/2011/02/13/xperia-play-game-keys/
  • Vietnam mobile day 2012 multi platform development - game loft

    1. 1. Who am I Nguyen Huy Dung, Team Leader at Gameloft HAN studio Love to exchange knowledge and passion. Had several seminars and trainings in Hanoi-Aptech, GameLoft, Universities.
    2. 2. Agenda Gameloft Introduction Gameloft’s approach to Multi-Platform development Tips, tricks and examples Questions and Answers
    3. 3. Gameloft: Leading developer and publisher Founded in 1999, to develop from mobiles & smart phones to cross-platform digital distribution Iphone, Ipod, Ip Android ad Mobile Console
    4. 4. Gameloft: Leading developer and publisher Presence in over 80 countriesAgreements with over 200 carriers ~400,000 games sold per day
    5. 5. Gameloft: Leading developer and publisherProduction studios in 12 countries 5125 talented people
    6. 6. Gameloft Vietnam is The BIGGEST Gameloft Studio Worldwide The BIGGEST 1700 talented staffWorldwide More than Gameloft Studio More than 1000 talented staff
    7. 7. Gameloft keeps on growing fast in VietnamSAI 1 SAI 2 DAD HANe-Town 2 Building - 18A Cong Hoa, Tan 74 Bach Dang, Hai 3rd&4th floor –7Fl., 364 Cong Hoa, Binh Dist., HCMC Chau Dist., Danang Lilama 10Tan Binh Dist., Since Aug-2008 City Le Van Luong, HanoiHCMC Since Mar-2010 Since June-2011
    8. 8. Multi-platform toGameloft’s approachdevelopment
    9. 9. Our games are running on iOS Android PS3 Windows Phone 7 bada WebOS Java embed ….
    10. 10. Our games are running on iOS Android PS3 Windows Phone 7 bada WebOS Java embed…
    11. 11. How could we accomplished that?
    12. 12. How could we accomplished that?Different codebases for each platform?
    13. 13. Different codebases for each platform?Yes.
    14. 14. Different codebases for each platform?Yes. And No 
    15. 15. Windows Game Platform PlatformPlatform- API Platform- API specific Wrapper specific WrapperFeatures Features Platform- Platform- specific specific UI UI Android Game iOS Game
    16. 16. Windows GameBuilt with C++, contains almost everything: UI Design Game-Logic Game Rendering Sound Multiplayer …
    17. 17. Windows GameAndroid Game iOS Game Platform Platform API API Wrapper Wrapper•Android NDK •C++ auto-compat•Java wrapper: Activity, •UIWindow, UIViewController,View, Intent, Receiver UIView, UIApplicationDelegate
    18. 18. Windows Game Android Game iOS Game Platform Platform Platform- API Platform- API specific Wrapper specific Wrapper Features Features•Advertising •iAd•In-App Billing •In-App Purchase•Beam •Music Player
    19. 19. Windows GameAndroid Game iOS Game Platform Platform Platform- API Platform- API specific Wrapper specific Wrapper Features Features Platform- Platform- specific specific UI UI •Push Notification toggle •iOS is normally the role- •Kindle Fire Volume model •Color Correction
    20. 20. Windows Game Platform PlatformPlatform- API Platform- API specific Wrapper specific WrapperFeatures Features Platform- Platform- specific specific UI UI Android Game iOS Game
    21. 21. Advantages of Porting Big common code base: less bugs, less maintainance effort, less human resource Only the things that really platform- specific are needed to be separated
    22. 22. How?We built: Our own 3D engines and libraries (Networking, Sound, UI, Debugger…) which already support multi-platform Online System to centralize the services: User profiles, Billing, Data downloading, Multi player…. Core Packages for general features in each platform
    23. 23. Multi-platform supportplan ahead, not fix later
    24. 24. Tips and tricks Try to build your game without a real device first Graphics: Use OpenGL ES 2.0 Don’t hard-code. Do things explicitly. Have separated Configuration files. Prepare your data wisely Preprocessing is not only for C++ Keep an abstract macros/classes/library of code that using platform-specific API or behave differently on each platform
    25. 25. Examples –Defines/Configuration #ifdef OS_ANDROID #define KEYCODE_BACK (4) #define KEYCODE_UP (19) #define KEYCODE_DOWN (20) #define KEYCODE_LEFT (21) #define KEYCODE_RIGHT (22) #elif defined(WIN32) #define KEYCODE_BACK (27) #define KEYCODE_UP (38) #define KEYCODE_DOWN (40) #define KEYCODE_LEFT (37) #define KEYCODE_RIGHT (39) #endif
    26. 26. Examples – simple macro #define PLATFORM_WIN32 1 #define PLATFORM_ANDROID 2 #define CONFIG_PLATFORM PLATFORM_WIN32 #if CONFIG_PLATFORM==PLATFORM_ANDROID #include <android/log.h> #define Log(...) __android_log_print(ANDROID_LOG_INFO, “GLGame",__VA_ARGS__) #elif CONFIG_PLATFORM==PLATFORM_WIN32 #define Log(...) printf(__VA_ARGS__);printf("n") #else #define Log(...) #endif
    27. 27. Examples – Abstract Libraryclass TouchScreenBase { ... }class TouchScreenMobile : public TouchScreenBase{ ... }class TouchScreenWin32 : public TouchScreenBase{ ... }#ifdef OS_ANDROID typedef TouchScreen TouchScreenMobile#elif defined(WIN32) typedef TouchScreen TouchScreenWin32#endif//Usage: Just use TouchScreen Class
    28. 28. Examples – Abstract Library (2)class TouchScreenBase { ... }class TouchScreenMobile : public TouchScreenBase{ ... }class TouchScreenWin32 : public TouchScreenBase{ ... }//Usage: Cast to TouchScreenBase Class#ifdef OS_ANDROID TouchScreenBase* TS = new TouchScreenMobile()#elif defined(WIN32) TouchScreenBase* TS = new TouchScreenWin32()#endif
    29. 29. Multi-platform supportplan ahead, not fix later
    30. 30. Questions and AnswersThanks for your attention! Contact me:dung.nguyenhuy@gameloft.com

    ×