SlideShare a Scribd company logo
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

More Related Content

PDF
P2 Introduction
PDF
[크레이지피쉬] VIVAGAME 모바일 소셜게임 플랫폼
PPT
Jeux et géolocalisation- Playground - Marseille 2.0
PPTX
2013 Fighting Game Artificial Intelligence Competition
PDF
Mobile game architecture on GCP
PDF
Web Game Development
PDF
Optimized Cross Platform Development
PDF
Single sourcing using Rich Ajax Platform
P2 Introduction
[크레이지피쉬] VIVAGAME 모바일 소셜게임 플랫폼
Jeux et géolocalisation- Playground - Marseille 2.0
2013 Fighting Game Artificial Intelligence Competition
Mobile game architecture on GCP
Web Game Development
Optimized Cross Platform Development
Single sourcing using Rich Ajax Platform

Similar to OGDC 2014_Cross platform mobile game application development_Mr. Makku J.Kero (20)

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

More from ogdc (20)

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

OGDC 2014_Cross platform mobile game application development_Mr. Makku J.Kero

  • 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