Ogdc 2013 cross platform game development for mobile web

Post on 09-May-2015

174 views 4 download

Transcript of Ogdc 2013 cross platform game development for mobile web

Cross-platform Game Development for Mobile & Web

CODY NGUYEN

Mobile Game DeveloperVinova Pte Ltd

cody@vinova.sg

cross-platformwrite once, run on multiple platforms

Benefits of

cross-platform game development

Less skills required

• Native game development for different devices requires different skill sets.

• Less skills means more focused & efficient

More gaming devices, less code

• Gaming devices are more and more diverse

• More devices means more audience

Fast development & maintenance

• Game requirements change every day

• One effort covers all platforms

An overview of

video gaming platforms

Video gaming platforms

• PlayStation• XBOX• Wii

• Native game clients

• iOS• Android• Windows

Phone

• Flash• Native Client

(Chrome Only)

• HTML5

Web Mobile

Console

Desktop

Video gaming platforms

• Flash• Native Client

(Chrome Only)• HTML5

• iOS• Android• Windows

Phone

• PlayStation• XBOX• Wii

• Native game clients

Web Mobile

ConsoleDesktop

Why

WEB & MOBILE ?

Web & Mobileis

ONE

cross-platform game

approaches

HTML5

• Run on PC & mobile browsers

• Run as wrapper apps on mobile

Native Mobile

• Write in C/C++ for mobile, compile to JS to run on browsers

• Write JS bindings for mobile and browsers

Browsers are improving

• 2D & 3D rendering• WebSocket• Web workers• Audio

JavaScript is improving

• Race among JS engines (V8, SpiderMonkey, Nitro) is good for JS performance

• JS runs large code faster

JavaScript meets C/C++

• Compile C/C++ to JS with Emscripten• Compiled code is faster than

handwritten code

Even faster with asm.js

• Strict subset of JS, optimized for compiled code

• Without asm.js, 10x slower than native C/C++

• With asm.js, half as fast (comparable to Java, C#)

• Will get even faster

Even faster with asm.js

Source: http://kripken.github.io/mloc_emscripten_talk/#/28

HTML5 is an

observable trend

Everybody is shifting to HTML5

• Google, Microsoft, Apple & Mozilla are pushing for HTML5

• Game pioneers (Epic & Unity3D) too

Native mobile

Cross-platform game engines

and more

Why 2D?

• Target mobile devices• 3D camera is not effective on small

screens• Reduced development effort & time.

The Cocos2D Ecosystem

Cocos2D

• 2D game ecosystem• Open source (MIT lisence)• Great community

What’s in there

What’s in there

Who’s in there

Why is Cocos2D good for cross-platform game

development?

Cocos2D-x / -iphone• C++ / ObjC API• JavaScript bindings• Runs on iOS &

Android

Cocos2D-html5• JavaScript API• Runs on WebGL-

enabled browsers

JavaScript = common language

The 2 approaches

1. Start with Cocos2D-html5

• Write JS code, for browsers• Re-use JS code as JS bindings, for mobile

Re-use as JS bindings for C/C++ API

JS code access Cocos2D-html5 API

2. Start with Cocos2D-x

• Write C/C++ code, for mobile• Compile to JS, for browsers

C/C++ code for mobile first

Compile to JS via Emscripten & asm.js

Emscripten in Cocos2D-x is new

• Audio is not supported yet• Cocos2D-x lib is not yet validated with

asm.js• Screen resolution need to be hardcoded

for now

It’s getting better everyday

• The Cocos2D-x team are improving Emscripten support

• Mozilla, Unity3D are working on asm.js & Emscripten improvement

To sum up

Thank you