SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
Cross Platform Mobile Game
Application Development
Markku Kero / Eqela
July 2014 / OGDC
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
Cross platform development tools
One codebase; target
multiple platforms
Many existing tools on the
market
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
“Cross platform tools
do not work. Writing
native code is the only
way.”
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
Commonly encountered issues
Large installer size
Excessive memory use
Low performance
Limited API access
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
ANOTHER COMMON SENTIMENT
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
WHY?
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
Source code
targeting a
specific
platform
Tool
Source / byte
code and
interpreter or
VM for iOS
Source / byte
code and
interpreter or
VM for Android
Runtime /
Virtual
machine
(Java, JavaScript,
Lua, Ruby, C#, ..)
A common cross platform tool
BROWSER
“virtual machine”
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
Operating system
Language interpreter / runtime
APIs and libraries Application code
A common cross platform tool
Architecture
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
A common cross platform tool
Architecture
Operating system
Language interpreter / runtime
APIs and libraries Application code Makes application
installers bigger
Increases memory
usage
Reduces runtime
performance
Applications can only
access selected
parts of the native API
= INCREASED BATTERY USAGE
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
(Source: http://docs.xamarin.com/Android/Guides/Advanced_Topics/Architecture)
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
Another popular architecture
Source
Code in
HTML, CSS,
JavaScript
Tool
C code
That opens a
Browser and
Displays the
program
Java code
That opens a
Browser and
Displays the
program
Android
SDK
iOS
SDK
“embed a web browser”
BROWSER
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
Commonly encountered issues
Large installer size
Excessive memory use
Low performance
Limited API access
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
The C/C++ approach
C++
application
code
Tool
C++ class
library
SWIFT
BROWSER
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
C++ / bytecode combination
C++ code
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
THE APPROACH
CAN BE
IMPROVED
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
HOW?
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
Programming language conversion
(Source code)
Small Installers Optimal memory use
No API access limitationsNative performance
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
Comparison: A “hello world” application
First approach (virtual machine / interpreter)
Appcelerator: 8MB installer
Xamarin / Mono (Unity): 4MB installer
The “embed a web browser” approach:
Phonegap / Cordova: ~300KB installer
The “source code conversion” approach:
96KB installer
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
Programming Language
Translator
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
2D / 3D GAMES
MOBILE APPLICATIONS
BUSINESS SYSTEMS
WEBSITES / WEB APPLICATIONS
BACKEND SERVERS
DESKTOP TOOLS / UTILITIES
AUTOMATED QUALITY ASSURANCE
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
class Main : LayerWidget
{
public void initialize() {
base.initialize();
add(LabelWidget.instance().set_text(“Hello World”));
}
}
Eqela
Compiler
LayerWidget
LabelWidget
Main.java
LayerWidget.java
LabelWidget.java
Android
SDK
A sample Eqela application
Main.eq
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
class Main : LayerWidget
{
public void initialize() {
base.initialize();
add(LabelWidget.instance().set_text(“Hello World”));
}
}
package mk.test;
public class Main extends eq.gui.LayerWidget
{
@Override
public void initialize() {
super.initialize();
((eq.gui.ContainerWidget)this).add(((eq.gui.Widget)eq.widget.LabelWidge
t.eq_widget_LabelWidget_instance().set_text(eq.api.StringStatic.eq_api_
StringStatic_for_strptr("Hello world"))));
}
public Main() {
}
}
(EQELA)
(JAVA)
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
class AndroidHTTPGet
{
public static bool execute(String url) {
embed “java” {{{
org.apache.http.client.methods.HttpUriRequest hur =
new org.apache.http.client.methods.HttpGet(url.to_strptr());
android.net.http.AndroidHttpClient hc =
android.net.http.AndroidHttpClient.newInstance(“testing”);
org.apache.http.HttpResponse resp = hc.execute(hur);
if(resp == null) {
return(false);
}
}}}
return(true);
}
}
→ All platform specific features / APIs
are accessible
Embedding other languages
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
SpriteKit
Sprite Engine R3D
→ NO TECHNOLOGY LOCK-IN
Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
Thank you
markku.kero@jobandesther.com
www.eqela.com

Weitere ähnliche Inhalte

Ähnlich wie Cross Platform Mobile Game Development Tools

Introduction to Eqela development
Introduction to Eqela developmentIntroduction to Eqela development
Introduction to Eqela developmentjobandesther
 
COHORTE Project Overview
COHORTE Project OverviewCOHORTE Project Overview
COHORTE Project OverviewBassem Debbabi
 
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav TulachJDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav TulachPROIDEA
 
AnyFirewall Engine v10.0 Developer Guide
AnyFirewall Engine v10.0 Developer GuideAnyFirewall Engine v10.0 Developer Guide
AnyFirewall Engine v10.0 Developer GuideEyeball Networks
 
Development mobile app cross device
Development mobile app cross deviceDevelopment mobile app cross device
Development mobile app cross devicePhuong Nguyen
 
Open stack + Cloud Foundry: Palo Alto Meetup February 2015
Open stack + Cloud Foundry: Palo Alto Meetup February 2015Open stack + Cloud Foundry: Palo Alto Meetup February 2015
Open stack + Cloud Foundry: Palo Alto Meetup February 2015Joshua McKenty
 
Past, Present and Future of WebSocket - HTML5DevConf May 2014
Past, Present and Future of WebSocket - HTML5DevConf May 2014Past, Present and Future of WebSocket - HTML5DevConf May 2014
Past, Present and Future of WebSocket - HTML5DevConf May 2014Frank Greco
 
Dissecting and Attacking RMI Frameworks
Dissecting and Attacking RMI FrameworksDissecting and Attacking RMI Frameworks
Dissecting and Attacking RMI FrameworksOnapsis Inc.
 
EMC Atmos for service providers
EMC Atmos for service providersEMC Atmos for service providers
EMC Atmos for service providerssolarisyougood
 
Massively Parallel Processing with Procedural Python - Pivotal HAWQ
Massively Parallel Processing with Procedural Python - Pivotal HAWQMassively Parallel Processing with Procedural Python - Pivotal HAWQ
Massively Parallel Processing with Procedural Python - Pivotal HAWQInMobi Technology
 
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXBruno Borges
 
Open Source examples from Adobe : Oscon kiosk
Open Source examples from Adobe : Oscon kioskOpen Source examples from Adobe : Oscon kiosk
Open Source examples from Adobe : Oscon kioskDave McAllister
 
Using JavaScript to Build HTML5 Tools (Ian Maffett)
Using JavaScript to Build HTML5 Tools (Ian Maffett)Using JavaScript to Build HTML5 Tools (Ian Maffett)
Using JavaScript to Build HTML5 Tools (Ian Maffett)Future Insights
 
Startup Legal and IP
Startup Legal and IPStartup Legal and IP
Startup Legal and IPBruno Lowagie
 
Comparison of Programming Platforms
Comparison of Programming PlatformsComparison of Programming Platforms
Comparison of Programming PlatformsAnup Hariharan Nair
 
Cloud Builders Meetup - Containers @ Autodesk
Cloud Builders Meetup - Containers @ AutodeskCloud Builders Meetup - Containers @ Autodesk
Cloud Builders Meetup - Containers @ AutodeskStephen Voorhees
 
Cross platform mobile app development tools review
Cross platform mobile app development tools reviewCross platform mobile app development tools review
Cross platform mobile app development tools reviewUday Kothari
 
The Role of Standards in IoT Security
The Role of Standards in IoT SecurityThe Role of Standards in IoT Security
The Role of Standards in IoT SecurityHannes Tschofenig
 

Ähnlich wie Cross Platform Mobile Game Development Tools (20)

Introduction to Eqela development
Introduction to Eqela developmentIntroduction to Eqela development
Introduction to Eqela development
 
COHORTE Project Overview
COHORTE Project OverviewCOHORTE Project Overview
COHORTE Project Overview
 
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav TulachJDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
 
AnyFirewall Engine v10.0 Developer Guide
AnyFirewall Engine v10.0 Developer GuideAnyFirewall Engine v10.0 Developer Guide
AnyFirewall Engine v10.0 Developer Guide
 
Development mobile app cross device
Development mobile app cross deviceDevelopment mobile app cross device
Development mobile app cross device
 
Open stack + Cloud Foundry: Palo Alto Meetup February 2015
Open stack + Cloud Foundry: Palo Alto Meetup February 2015Open stack + Cloud Foundry: Palo Alto Meetup February 2015
Open stack + Cloud Foundry: Palo Alto Meetup February 2015
 
Past, Present and Future of WebSocket - HTML5DevConf May 2014
Past, Present and Future of WebSocket - HTML5DevConf May 2014Past, Present and Future of WebSocket - HTML5DevConf May 2014
Past, Present and Future of WebSocket - HTML5DevConf May 2014
 
Node.js as an IOT Bridge
Node.js as an IOT BridgeNode.js as an IOT Bridge
Node.js as an IOT Bridge
 
Dissecting and Attacking RMI Frameworks
Dissecting and Attacking RMI FrameworksDissecting and Attacking RMI Frameworks
Dissecting and Attacking RMI Frameworks
 
EMC Atmos for service providers
EMC Atmos for service providersEMC Atmos for service providers
EMC Atmos for service providers
 
Massively Parallel Processing with Procedural Python - Pivotal HAWQ
Massively Parallel Processing with Procedural Python - Pivotal HAWQMassively Parallel Processing with Procedural Python - Pivotal HAWQ
Massively Parallel Processing with Procedural Python - Pivotal HAWQ
 
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
 
Open Source examples from Adobe : Oscon kiosk
Open Source examples from Adobe : Oscon kioskOpen Source examples from Adobe : Oscon kiosk
Open Source examples from Adobe : Oscon kiosk
 
Using JavaScript to Build HTML5 Tools (Ian Maffett)
Using JavaScript to Build HTML5 Tools (Ian Maffett)Using JavaScript to Build HTML5 Tools (Ian Maffett)
Using JavaScript to Build HTML5 Tools (Ian Maffett)
 
Codename one
Codename oneCodename one
Codename one
 
Startup Legal and IP
Startup Legal and IPStartup Legal and IP
Startup Legal and IP
 
Comparison of Programming Platforms
Comparison of Programming PlatformsComparison of Programming Platforms
Comparison of Programming Platforms
 
Cloud Builders Meetup - Containers @ Autodesk
Cloud Builders Meetup - Containers @ AutodeskCloud Builders Meetup - Containers @ Autodesk
Cloud Builders Meetup - Containers @ Autodesk
 
Cross platform mobile app development tools review
Cross platform mobile app development tools reviewCross platform mobile app development tools review
Cross platform mobile app development tools review
 
The Role of Standards in IoT Security
The Role of Standards in IoT SecurityThe Role of Standards in IoT Security
The Role of Standards in IoT Security
 

Mehr von ogdc

OGDC 2014_Entity system in mobile game development_Mr. Cody nguyen
OGDC 2014_Entity system in mobile game development_Mr. Cody nguyenOGDC 2014_Entity system in mobile game development_Mr. Cody nguyen
OGDC 2014_Entity system in mobile game development_Mr. Cody nguyenogdc
 
OGDC 2014_Sky Garden Mobile conceptualization: From PC to Mobile_Mr. Luc Hoan...
OGDC 2014_Sky Garden Mobile conceptualization: From PC to Mobile_Mr. Luc Hoan...OGDC 2014_Sky Garden Mobile conceptualization: From PC to Mobile_Mr. Luc Hoan...
OGDC 2014_Sky Garden Mobile conceptualization: From PC to Mobile_Mr. Luc Hoan...ogdc
 
OGDC 2014_Creativity in Game Design - Case Study: Famous Vietnamese mobile ga...
OGDC 2014_Creativity in Game Design - Case Study: Famous Vietnamese mobile ga...OGDC 2014_Creativity in Game Design - Case Study: Famous Vietnamese mobile ga...
OGDC 2014_Creativity in Game Design - Case Study: Famous Vietnamese mobile ga...ogdc
 
OGDC 2014_Vietnam Mobile Internet 2014: A focus in smartphone game and compar...
OGDC 2014_Vietnam Mobile Internet 2014: A focus in smartphone game and compar...OGDC 2014_Vietnam Mobile Internet 2014: A focus in smartphone game and compar...
OGDC 2014_Vietnam Mobile Internet 2014: A focus in smartphone game and compar...ogdc
 
OGDC 2014_Vietnam Smartphone game market 2013 overview. From vision to action...
OGDC 2014_Vietnam Smartphone game market 2013 overview. From vision to action...OGDC 2014_Vietnam Smartphone game market 2013 overview. From vision to action...
OGDC 2014_Vietnam Smartphone game market 2013 overview. From vision to action...ogdc
 
OGDC 2014_User segmentation and Monetization_Mr. Phat hoang
OGDC 2014_User segmentation and Monetization_Mr. Phat hoangOGDC 2014_User segmentation and Monetization_Mr. Phat hoang
OGDC 2014_User segmentation and Monetization_Mr. Phat hoangogdc
 
OGDC 2014_Animation workflow with Spine in Tiny Busters_Mr. Huynh Dong Hai
OGDC 2014_Animation workflow with Spine in Tiny Busters_Mr. Huynh Dong HaiOGDC 2014_Animation workflow with Spine in Tiny Busters_Mr. Huynh Dong Hai
OGDC 2014_Animation workflow with Spine in Tiny Busters_Mr. Huynh Dong Haiogdc
 
OGDC 2014_Speed Up and make quality 3D game models_Mr. Pham Duc Duy
OGDC 2014_Speed Up and make quality 3D game models_Mr. Pham Duc DuyOGDC 2014_Speed Up and make quality 3D game models_Mr. Pham Duc Duy
OGDC 2014_Speed Up and make quality 3D game models_Mr. Pham Duc Duyogdc
 
OGDC 2014_Architecting Games in Unity_Mr. Rustum Scammell
OGDC 2014_Architecting Games in Unity_Mr. Rustum ScammellOGDC 2014_Architecting Games in Unity_Mr. Rustum Scammell
OGDC 2014_Architecting Games in Unity_Mr. Rustum Scammellogdc
 
OGDC 2014_One-Man Studio: How to make a game prototype_Mr. Le Vo Tien Giang
OGDC 2014_One-Man Studio: How to make a game prototype_Mr. Le Vo Tien GiangOGDC 2014_One-Man Studio: How to make a game prototype_Mr. Le Vo Tien Giang
OGDC 2014_One-Man Studio: How to make a game prototype_Mr. Le Vo Tien Giangogdc
 
OGDC 2014_Hands on experience with Cocos2dx in cross-platform with Farmery_Mr...
OGDC 2014_Hands on experience with Cocos2dx in cross-platform with Farmery_Mr...OGDC 2014_Hands on experience with Cocos2dx in cross-platform with Farmery_Mr...
OGDC 2014_Hands on experience with Cocos2dx in cross-platform with Farmery_Mr...ogdc
 
OGDC 2014_Optimize or Die: Key disciplines to optimize your mobile game_Mr. P...
OGDC 2014_Optimize or Die: Key disciplines to optimize your mobile game_Mr. P...OGDC 2014_Optimize or Die: Key disciplines to optimize your mobile game_Mr. P...
OGDC 2014_Optimize or Die: Key disciplines to optimize your mobile game_Mr. P...ogdc
 
OGDC 2014_Why choosing 2D animation for Mobile Game?_Mr. Joe Tran
OGDC 2014_Why choosing 2D animation for Mobile Game?_Mr. Joe TranOGDC 2014_Why choosing 2D animation for Mobile Game?_Mr. Joe Tran
OGDC 2014_Why choosing 2D animation for Mobile Game?_Mr. Joe Tranogdc
 
OGDC 2014_ An artist's story_Mr. Vu Cam Cong Danh
OGDC 2014_ An artist's story_Mr. Vu Cam Cong DanhOGDC 2014_ An artist's story_Mr. Vu Cam Cong Danh
OGDC 2014_ An artist's story_Mr. Vu Cam Cong Danhogdc
 
OGDC 2014_Tips and Tricks for seasonal events and community building in Drago...
OGDC 2014_Tips and Tricks for seasonal events and community building in Drago...OGDC 2014_Tips and Tricks for seasonal events and community building in Drago...
OGDC 2014_Tips and Tricks for seasonal events and community building in Drago...ogdc
 
OGDC 2014_Tips and Tricks for seasonal events and community building in Drago...
OGDC 2014_Tips and Tricks for seasonal events and community building in Drago...OGDC 2014_Tips and Tricks for seasonal events and community building in Drago...
OGDC 2014_Tips and Tricks for seasonal events and community building in Drago...ogdc
 
OGDC 2014_Business design is game design: 10 bits of business/design wisdom_M...
OGDC 2014_Business design is game design: 10 bits of business/design wisdom_M...OGDC 2014_Business design is game design: 10 bits of business/design wisdom_M...
OGDC 2014_Business design is game design: 10 bits of business/design wisdom_M...ogdc
 
OGDC 2014_Build your own Particle System_Mr. Nguyen Dang Quang
OGDC 2014_Build your own Particle System_Mr. Nguyen Dang QuangOGDC 2014_Build your own Particle System_Mr. Nguyen Dang Quang
OGDC 2014_Build your own Particle System_Mr. Nguyen Dang Quangogdc
 
OGDC 2014_ Game Design: 5 years of painful lessons_Mr. Do Van Thanh
OGDC 2014_ Game Design: 5 years of painful lessons_Mr. Do Van ThanhOGDC 2014_ Game Design: 5 years of painful lessons_Mr. Do Van Thanh
OGDC 2014_ Game Design: 5 years of painful lessons_Mr. Do Van Thanhogdc
 
OGDC 2014_3D Graphic on mobile_Mr. Hoang Minh Truong
OGDC 2014_3D Graphic on mobile_Mr. Hoang Minh TruongOGDC 2014_3D Graphic on mobile_Mr. Hoang Minh Truong
OGDC 2014_3D Graphic on mobile_Mr. Hoang Minh Truongogdc
 

Mehr von ogdc (20)

OGDC 2014_Entity system in mobile game development_Mr. Cody nguyen
OGDC 2014_Entity system in mobile game development_Mr. Cody nguyenOGDC 2014_Entity system in mobile game development_Mr. Cody nguyen
OGDC 2014_Entity system in mobile game development_Mr. Cody nguyen
 
OGDC 2014_Sky Garden Mobile conceptualization: From PC to Mobile_Mr. Luc Hoan...
OGDC 2014_Sky Garden Mobile conceptualization: From PC to Mobile_Mr. Luc Hoan...OGDC 2014_Sky Garden Mobile conceptualization: From PC to Mobile_Mr. Luc Hoan...
OGDC 2014_Sky Garden Mobile conceptualization: From PC to Mobile_Mr. Luc Hoan...
 
OGDC 2014_Creativity in Game Design - Case Study: Famous Vietnamese mobile ga...
OGDC 2014_Creativity in Game Design - Case Study: Famous Vietnamese mobile ga...OGDC 2014_Creativity in Game Design - Case Study: Famous Vietnamese mobile ga...
OGDC 2014_Creativity in Game Design - Case Study: Famous Vietnamese mobile ga...
 
OGDC 2014_Vietnam Mobile Internet 2014: A focus in smartphone game and compar...
OGDC 2014_Vietnam Mobile Internet 2014: A focus in smartphone game and compar...OGDC 2014_Vietnam Mobile Internet 2014: A focus in smartphone game and compar...
OGDC 2014_Vietnam Mobile Internet 2014: A focus in smartphone game and compar...
 
OGDC 2014_Vietnam Smartphone game market 2013 overview. From vision to action...
OGDC 2014_Vietnam Smartphone game market 2013 overview. From vision to action...OGDC 2014_Vietnam Smartphone game market 2013 overview. From vision to action...
OGDC 2014_Vietnam Smartphone game market 2013 overview. From vision to action...
 
OGDC 2014_User segmentation and Monetization_Mr. Phat hoang
OGDC 2014_User segmentation and Monetization_Mr. Phat hoangOGDC 2014_User segmentation and Monetization_Mr. Phat hoang
OGDC 2014_User segmentation and Monetization_Mr. Phat hoang
 
OGDC 2014_Animation workflow with Spine in Tiny Busters_Mr. Huynh Dong Hai
OGDC 2014_Animation workflow with Spine in Tiny Busters_Mr. Huynh Dong HaiOGDC 2014_Animation workflow with Spine in Tiny Busters_Mr. Huynh Dong Hai
OGDC 2014_Animation workflow with Spine in Tiny Busters_Mr. Huynh Dong Hai
 
OGDC 2014_Speed Up and make quality 3D game models_Mr. Pham Duc Duy
OGDC 2014_Speed Up and make quality 3D game models_Mr. Pham Duc DuyOGDC 2014_Speed Up and make quality 3D game models_Mr. Pham Duc Duy
OGDC 2014_Speed Up and make quality 3D game models_Mr. Pham Duc Duy
 
OGDC 2014_Architecting Games in Unity_Mr. Rustum Scammell
OGDC 2014_Architecting Games in Unity_Mr. Rustum ScammellOGDC 2014_Architecting Games in Unity_Mr. Rustum Scammell
OGDC 2014_Architecting Games in Unity_Mr. Rustum Scammell
 
OGDC 2014_One-Man Studio: How to make a game prototype_Mr. Le Vo Tien Giang
OGDC 2014_One-Man Studio: How to make a game prototype_Mr. Le Vo Tien GiangOGDC 2014_One-Man Studio: How to make a game prototype_Mr. Le Vo Tien Giang
OGDC 2014_One-Man Studio: How to make a game prototype_Mr. Le Vo Tien Giang
 
OGDC 2014_Hands on experience with Cocos2dx in cross-platform with Farmery_Mr...
OGDC 2014_Hands on experience with Cocos2dx in cross-platform with Farmery_Mr...OGDC 2014_Hands on experience with Cocos2dx in cross-platform with Farmery_Mr...
OGDC 2014_Hands on experience with Cocos2dx in cross-platform with Farmery_Mr...
 
OGDC 2014_Optimize or Die: Key disciplines to optimize your mobile game_Mr. P...
OGDC 2014_Optimize or Die: Key disciplines to optimize your mobile game_Mr. P...OGDC 2014_Optimize or Die: Key disciplines to optimize your mobile game_Mr. P...
OGDC 2014_Optimize or Die: Key disciplines to optimize your mobile game_Mr. P...
 
OGDC 2014_Why choosing 2D animation for Mobile Game?_Mr. Joe Tran
OGDC 2014_Why choosing 2D animation for Mobile Game?_Mr. Joe TranOGDC 2014_Why choosing 2D animation for Mobile Game?_Mr. Joe Tran
OGDC 2014_Why choosing 2D animation for Mobile Game?_Mr. Joe Tran
 
OGDC 2014_ An artist's story_Mr. Vu Cam Cong Danh
OGDC 2014_ An artist's story_Mr. Vu Cam Cong DanhOGDC 2014_ An artist's story_Mr. Vu Cam Cong Danh
OGDC 2014_ An artist's story_Mr. Vu Cam Cong Danh
 
OGDC 2014_Tips and Tricks for seasonal events and community building in Drago...
OGDC 2014_Tips and Tricks for seasonal events and community building in Drago...OGDC 2014_Tips and Tricks for seasonal events and community building in Drago...
OGDC 2014_Tips and Tricks for seasonal events and community building in Drago...
 
OGDC 2014_Tips and Tricks for seasonal events and community building in Drago...
OGDC 2014_Tips and Tricks for seasonal events and community building in Drago...OGDC 2014_Tips and Tricks for seasonal events and community building in Drago...
OGDC 2014_Tips and Tricks for seasonal events and community building in Drago...
 
OGDC 2014_Business design is game design: 10 bits of business/design wisdom_M...
OGDC 2014_Business design is game design: 10 bits of business/design wisdom_M...OGDC 2014_Business design is game design: 10 bits of business/design wisdom_M...
OGDC 2014_Business design is game design: 10 bits of business/design wisdom_M...
 
OGDC 2014_Build your own Particle System_Mr. Nguyen Dang Quang
OGDC 2014_Build your own Particle System_Mr. Nguyen Dang QuangOGDC 2014_Build your own Particle System_Mr. Nguyen Dang Quang
OGDC 2014_Build your own Particle System_Mr. Nguyen Dang Quang
 
OGDC 2014_ Game Design: 5 years of painful lessons_Mr. Do Van Thanh
OGDC 2014_ Game Design: 5 years of painful lessons_Mr. Do Van ThanhOGDC 2014_ Game Design: 5 years of painful lessons_Mr. Do Van Thanh
OGDC 2014_ Game Design: 5 years of painful lessons_Mr. Do Van Thanh
 
OGDC 2014_3D Graphic on mobile_Mr. Hoang Minh Truong
OGDC 2014_3D Graphic on mobile_Mr. Hoang Minh TruongOGDC 2014_3D Graphic on mobile_Mr. Hoang Minh Truong
OGDC 2014_3D Graphic on mobile_Mr. Hoang Minh Truong
 

Cross Platform Mobile Game Development Tools

  • 1. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. Cross Platform Mobile Game Application Development Markku Kero / Eqela July 2014 / OGDC
  • 2. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
  • 3. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. Cross platform development tools One codebase; target multiple platforms Many existing tools on the market
  • 4. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. “Cross platform tools do not work. Writing native code is the only way.”
  • 5. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. Commonly encountered issues Large installer size Excessive memory use Low performance Limited API access
  • 6. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. ANOTHER COMMON SENTIMENT
  • 7. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. WHY?
  • 8. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. Source code targeting a specific platform Tool Source / byte code and interpreter or VM for iOS Source / byte code and interpreter or VM for Android Runtime / Virtual machine (Java, JavaScript, Lua, Ruby, C#, ..) A common cross platform tool BROWSER “virtual machine”
  • 9. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. Operating system Language interpreter / runtime APIs and libraries Application code A common cross platform tool Architecture
  • 10. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. A common cross platform tool Architecture Operating system Language interpreter / runtime APIs and libraries Application code Makes application installers bigger Increases memory usage Reduces runtime performance Applications can only access selected parts of the native API = INCREASED BATTERY USAGE
  • 11. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. (Source: http://docs.xamarin.com/Android/Guides/Advanced_Topics/Architecture)
  • 12. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
  • 13. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
  • 14. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. Another popular architecture Source Code in HTML, CSS, JavaScript Tool C code That opens a Browser and Displays the program Java code That opens a Browser and Displays the program Android SDK iOS SDK “embed a web browser” BROWSER
  • 15. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. Commonly encountered issues Large installer size Excessive memory use Low performance Limited API access
  • 16. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. The C/C++ approach C++ application code Tool C++ class library SWIFT BROWSER
  • 17. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. C++ / bytecode combination C++ code
  • 18. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
  • 19. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
  • 20. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
  • 21. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. THE APPROACH CAN BE IMPROVED
  • 22. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. HOW?
  • 23. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. Programming language conversion (Source code) Small Installers Optimal memory use No API access limitationsNative performance
  • 24. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. Comparison: A “hello world” application First approach (virtual machine / interpreter) Appcelerator: 8MB installer Xamarin / Mono (Unity): 4MB installer The “embed a web browser” approach: Phonegap / Cordova: ~300KB installer The “source code conversion” approach: 96KB installer
  • 25. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. Programming Language Translator
  • 26. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. 2D / 3D GAMES MOBILE APPLICATIONS BUSINESS SYSTEMS WEBSITES / WEB APPLICATIONS BACKEND SERVERS DESKTOP TOOLS / UTILITIES AUTOMATED QUALITY ASSURANCE
  • 27. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. class Main : LayerWidget { public void initialize() { base.initialize(); add(LabelWidget.instance().set_text(“Hello World”)); } } Eqela Compiler LayerWidget LabelWidget Main.java LayerWidget.java LabelWidget.java Android SDK A sample Eqela application Main.eq
  • 28. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. class Main : LayerWidget { public void initialize() { base.initialize(); add(LabelWidget.instance().set_text(“Hello World”)); } } package mk.test; public class Main extends eq.gui.LayerWidget { @Override public void initialize() { super.initialize(); ((eq.gui.ContainerWidget)this).add(((eq.gui.Widget)eq.widget.LabelWidge t.eq_widget_LabelWidget_instance().set_text(eq.api.StringStatic.eq_api_ StringStatic_for_strptr("Hello world")))); } public Main() { } } (EQELA) (JAVA)
  • 29. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. class AndroidHTTPGet { public static bool execute(String url) { embed “java” {{{ org.apache.http.client.methods.HttpUriRequest hur = new org.apache.http.client.methods.HttpGet(url.to_strptr()); android.net.http.AndroidHttpClient hc = android.net.http.AndroidHttpClient.newInstance(“testing”); org.apache.http.HttpResponse resp = hc.execute(hur); if(resp == null) { return(false); } }}} return(true); } } → All platform specific features / APIs are accessible Embedding other languages
  • 30. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. SpriteKit Sprite Engine R3D → NO TECHNOLOGY LOCK-IN
  • 31. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. Thank you markku.kero@jobandesther.com www.eqela.com