Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

OGDC 2014: Cross Platform Mobile Game Application Development

2,525 views

Published on

OGDC 2014: Cross Platform Mobile Game Application Development

  1. 1. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. Cross Platform Mobile Game Application Development Markku Kero / Eqela July 2014 / OGDC
  2. 2. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
  3. 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. 4. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. “Cross platform tools do not work. Writing native code is the only way.”
  5. 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. 6. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. ANOTHER COMMON SENTIMENT
  7. 7. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. WHY?
  8. 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. 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. 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. 11. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. (Source: http://docs.xamarin.com/Android/Guides/Advanced_Topics/Architecture)
  12. 12. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
  13. 13. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
  14. 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. 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. 16. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. The C/C++ approach C++ application code Tool C++ class library SWIFT BROWSER
  17. 17. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. C++ / bytecode combination C++ code
  18. 18. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
  19. 19. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
  20. 20. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved.
  21. 21. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. THE APPROACH CAN BE IMPROVED
  22. 22. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. HOW?
  23. 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. 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. 25. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. Programming Language Translator
  26. 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. 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. 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. 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. 30. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. SpriteKit Sprite Engine R3D → NO TECHNOLOGY LOCK-IN
  31. 31. Copyright (c) 2014 Eqela Pte Ltd. All Rights reserved. Thank you markku.kero@jobandesther.com www.eqela.com

×