Your SlideShare is downloading. ×
2012, the awakening of the Vietnamese Game Development - Presentation multi platform development- Mr. Nguyen Huu Phuoc. Gameloft
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

2012, the awakening of the Vietnamese Game Development - Presentation multi platform development- Mr. Nguyen Huu Phuoc. Gameloft

2,081
views

Published on

VTC Online associates with Vietnam International Game Developers Association (Vietnam IGDA) to hold the seminar named “2012 – 2012, the Awakening of the Vietnamese Game Development”. This seminar of …

VTC Online associates with Vietnam International Game Developers Association (Vietnam IGDA) to hold the seminar named “2012 – 2012, the Awakening of the Vietnamese Game Development”. This seminar of Game Development will be firstly held in the North with international and domestic specialists’ attendance.


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

  • Be the first to like this

No Downloads
Views
Total Views
2,081
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
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/
  • Transcript

    • 1. Who am I Nguyen Huu Phuoc, Team Leader at Gameloft HAN studio Love to exchange knowledge and passion. Had several seminars and trainings in Hanoi-Aptech, GameLoft, Universities.
    • 2. Agenda Gameloft Introduction Gameloft’s approach to Multi-Platform development Tips, tricks and examples Questions and Answers
    • 3. Gameloft: Leading developer and publisher Founded in 1999, to develop from mobiles & smart phones to cross-platform digital distribution Iphone, Ipod, Android Ipad Mobile Console
    • 4. Gameloft: Leading developer and publisher Presence in over 80 countriesAgreements with over 200 carriers ~400,000 games sold per day
    • 5. Gameloft: Leading developer and publisherProduction studios in 12 countries 5125 talented people
    • 6. Gameloft Vietnam is The BIGGEST Gameloft Studio Worldwide The BIGGEST 1700 talented staffWorldwide More than Gameloft Studio More than 1000 talented staff
    • 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 Binh Dist., HCMC Chau Dist., Danang Lilama 10Hoa, Tan Binh Since Aug-2008 City Le Van Luong, HanoiDist., HCMC Since Mar-2010 Since June-2011
    • 8. Gameloft HAN Studio Asphalt 6 Kingdom and Lords Fantasy Town Dungeon Hunter 3 Amazing Spiderman
    • 9. Multi-platform toGameloft’s approachdevelopment
    • 10. Our games are running on iOS Android PS3 Windows Phone 7 bada WebOS Java embed ….
    • 11. Our games are running on iOS Android PS3 Windows Phone 7 bada WebOS Java embed…
    • 12. How could we accomplished that?
    • 13. How could we accomplished that?Different codebases for each platform?
    • 14. Different codebases for each platform?Yes.
    • 15. Different codebases for each platform?Yes. And No 
    • 16. Windows Game Platform PlatformPlatform- API Platform- API specific Wrapper specific WrapperFeatures Features Platform- Platform- specific specific UI UI Android Game iOS Game
    • 17. Windows GameBuilt with C++, contains almost everything: UI Design Game-Logic Game Rendering Sound Multiplayer …
    • 18. 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, UIApplicationDelegat e
    • 19. 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
    • 20. 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
    • 21. Windows Game Platform PlatformPlatform- API Platform- API specific Wrapper specific WrapperFeatures Features Platform- Platform- specific specific UI UI Android Game iOS Game
    • 22. 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
    • 23. 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
    • 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. 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. 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. 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. 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. Multi-platform supportplan ahead, not fix later
    • 30. Questions and AnswersThanks for your attention! Contact me:phuoc.nguyenhuu2@gameloft.com