• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Vietnam mobile day 2012   multi platform development - game loft
 

Vietnam mobile day 2012 multi platform development - game loft

on

  • 1,281 views

 

Statistics

Views

Total Views
1,281
Views on SlideShare
1,281
Embed Views
0

Actions

Likes
0
Downloads
89
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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 Vietnam mobile day 2012 multi platform development - game loft Presentation Transcript

  • 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.
  • Agenda Gameloft Introduction Gameloft’s approach to Multi-Platform development Tips, tricks and examples Questions and Answers
  • 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
  • Gameloft: Leading developer and publisher Presence in over 80 countriesAgreements with over 200 carriers ~400,000 games sold per day
  • Gameloft: Leading developer and publisherProduction studios in 12 countries 5125 talented people
  • Gameloft Vietnam is The BIGGEST Gameloft Studio Worldwide The BIGGEST 1700 talented staffWorldwide More than Gameloft Studio More than 1000 talented staff
  • 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
  • Multi-platform toGameloft’s approachdevelopment
  • Our games are running on iOS Android PS3 Windows Phone 7 bada WebOS Java embed ….
  • Our games are running on iOS Android PS3 Windows Phone 7 bada WebOS Java embed…
  • How could we accomplished that?
  • How could we accomplished that?Different codebases for each platform?
  • Different codebases for each platform?Yes.
  • Different codebases for each platform?Yes. And No 
  • Windows Game Platform PlatformPlatform- API Platform- API specific Wrapper specific WrapperFeatures Features Platform- Platform- specific specific UI UI Android Game iOS Game
  • Windows GameBuilt with C++, contains almost everything: UI Design Game-Logic Game Rendering Sound Multiplayer …
  • 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
  • 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
  • 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
  • Windows Game Platform PlatformPlatform- API Platform- API specific Wrapper specific WrapperFeatures Features Platform- Platform- specific specific UI UI Android Game iOS Game
  • 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
  • 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
  • Multi-platform supportplan ahead, not fix later
  • 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
  • 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
  • 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
  • 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
  • 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
  • Multi-platform supportplan ahead, not fix later
  • Questions and AnswersThanks for your attention! Contact me:dung.nguyenhuy@gameloft.com