Paris Android LiveCode
Creating cross-platform 3D apps with Minko.
Warren Seine
CTO and co-founder of Aerys
Creator of Min...
by
3D. Everywhere.
Deliver engaging, interactive and rich 3D content and applications on
desktops, mobiles and the web.
Minko Enterprise
“We chose Minko because its exclusive compression algorithms help
us distributing cutting edge 3D content...
 Compatible with all major 3D CAO/design tools
 77+ supported file formats
 What You See Is What You Get
 Physics
 An...
Minko Engine
 Develop once, deploy everywhere
 The power of native, the reach of the
web
 Open source, with enterprise-...
International Gaming References
New Game Released: IronForce
 Published by EA/Chillingo
 http://www.chillingo.com/games/iron-force/
 Tank MMORPG
 Alre...
New Game Released: IronForce
Minko VS Unity - Architecture
Unity
Core Library
Mono VM
Application
OS
Minko
Core Framework & Plugins
Lua VM
Application
...
Minko VS Unity – Open Source
Unity
Core Library
Mono VM
Application
OS
Minko
Core Framework & Plugins
Lua VM
Application
O...
Supported Platforms
Platforms Unity Minko
Windows YES YES
WinRT / Windows 8 UI / Windows Store YES YES
OS X YES YES
Linux ...
Minko coming to Windows Phone!
 Windows Phone 8.1 only
 But all existing Windows
Phones should be supported!
 Games hav...
2D/3D file formats
 50+ 3D file formats
– 3DS, BLEND (Blender 3D), DAE/Collada, FBX, IFC-STEP , ASE, DXF, HMP, MD2, MD3 ,...
C++ 2011
 Standard, fast, well documented and supported by a vast community
 Already fully supported by all major compil...
C++11 Example – Closures
// callback is removed when mouseWheel is set to nullptr
C++11 Example – Shared pointers
Components – Ex: Directional Light
 The Transform component is not mandatory
– Scene nodes do not necessarily have a 3D t...
Components – Ex: Camera
 Our camera has 3 components:
– Transform will make our Camera position/orientation customizable
...
Emscripten https://github.com/kripken/emscripten
 Open source project driven by Mozilla
– Based on LLVM, which is support...
Premake http://industriousone.com/premake
 Cross-platform build system
– Windows, Mac and Linux
– Reference in the video ...
HTML5 UI (WIP)
 Portable
– Chromium on desktop
– WebView on mobiles
– <iframe> on the web
 Responsive UI design
 Levera...
Parallelization
 Workers
 Threads (except for HTML5)
 Coroutines (Lua)
SCRIPTING
Core Framework Language
 Fast
 Rich & expressive
 Optimized for each target
Scripting Language
 Simple
 Interpreted
...
We chose… Lua!
 Fits all the requirements of a scripting language
 Vastly used by the video game industry (World of Warc...
C++  Lua? LuaGlue!
 C++/Lua bindings
 Open source project
– https://github.com/Tomasu/LuaGlue
– We contribute as much a...
Coroutines
 A function can suspend its execution…
– coroutine.yield()
 … and then resume « sometime later »
– coroutine....
Coroutines
function myScript()
doSomething()
while isIdle do
say(‘hello how are you?’)
wait(seconds(3))
end
while not isId...
Event driven Coroutine driven
 Action => reaction
 Breaks the code in multiple handlers
 Messy execution flow
 Messy s...
You choose!
 C++
– Performances
– Rich and powerful language
 Lua
– Simple and efficient
– Fast iteration times
 Mix bo...
Ready?
SoccerPunch (soccerpun.ch) coming to HTML5 and native iOS / Android!
About SoccerPunch
 Lots of important game-related features
– 3D graphics
– Physics
– Animations
– AI
– Gamepad
– …
 Deve...
Conclusion
 Open source
– More than 20 FLOSS projects used
– 1 million lines of code
 Second beta in May
– New targets
–...
THANK YOU!
Aerys US
Institut Mines-Télécom Silicon Valley
NASA Research Park
Moffett Field
CA 94035 Mountain View
USA
Aerys Europe
15...
http://minko.io
Paris Android LiveCode - Creating cross-platform 3D apps with Minko
Upcoming SlideShare
Loading in …5
×

Paris Android LiveCode - Creating cross-platform 3D apps with Minko

1,251 views

Published on

See the live code in video here: https://www.youtube.com/watch?v=vYLuwkx9GIs

Published in: Software, Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,251
On SlideShare
0
From Embeds
0
Number of Embeds
31
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Paris Android LiveCode - Creating cross-platform 3D apps with Minko

  1. 1. Paris Android LiveCode Creating cross-platform 3D apps with Minko. Warren Seine CTO and co-founder of Aerys Creator of Minko (http://minko.io) @warren warren@aerys.in http://minko.io @Minko3D
  2. 2. by
  3. 3. 3D. Everywhere. Deliver engaging, interactive and rich 3D content and applications on desktops, mobiles and the web.
  4. 4. Minko Enterprise “We chose Minko because its exclusive compression algorithms help us distributing cutting edge 3D content on mobiles and the web.” Gaël Seydoux, Chief of the NBO lab at  It’s like Dropbox for 3D files  Visualize, share, annotate, collaborate…  On mobiles, tablets, the web and desktops  Exclusive 3D streaming algorithms  Load and display 3D files up to 200 times faster Cloud. Light. Mobile.
  5. 5.  Compatible with all major 3D CAO/design tools  77+ supported file formats  What You See Is What You Get  Physics  Animations  Lights  Materials  .... …Minko Studio Design. Integrate. Live.
  6. 6. Minko Engine  Develop once, deploy everywhere  The power of native, the reach of the web  Open source, with enterprise-class support “We chose Minko to be the 3D engine in one of our new Flash-based games because we think it’s a highly professional […] solution in terms of development ecosystem and high performance.” André Weissflog, Head of Development at Skyrama 2 by BigPoint Mobile. Web. Native.
  7. 7. International Gaming References
  8. 8. New Game Released: IronForce  Published by EA/Chillingo  http://www.chillingo.com/games/iron-force/  Tank MMORPG  Already available on iOS  Available soon on Android
  9. 9. New Game Released: IronForce
  10. 10. Minko VS Unity - Architecture Unity Core Library Mono VM Application OS Minko Core Framework & Plugins Lua VM Application OS Native Plugins JavaScript VM Javascript VM (WIP)
  11. 11. Minko VS Unity – Open Source Unity Core Library Mono VM Application OS Minko Core Framework & Plugins Lua VM Application OS Native Plugins Javascript VM JavaScript VM (WIP)
  12. 12. Supported Platforms Platforms Unity Minko Windows YES YES WinRT / Windows 8 UI / Windows Store YES YES OS X YES YES Linux Desktop (Ubuntu, SteamOS, TVs…) YES YES Linux Server NO YES HTML5 NO YES iOS YES YES Android YES YES Flash Player NO WIP Windows Phone YES WIP (WP 8.1)
  13. 13. Minko coming to Windows Phone!  Windows Phone 8.1 only  But all existing Windows Phones should be supported!  Games have a big success on the Windows Store. Windows Store, Downloads per category – Worldwide, Jan. 2014
  14. 14. 2D/3D file formats  50+ 3D file formats – 3DS, BLEND (Blender 3D), DAE/Collada, FBX, IFC-STEP , ASE, DXF, HMP, MD2, MD3 , MD5, MDC, MDL, NFF, PLY, STL, X, OBJ, SMD, LWO, LXO, LWS, TER, AC3D , MS3D , COB, Q3BSP, XGL, CSM, BVH, B3D, NDO, Ogre XML, Q3D  20+ 2D file formats – JPEG, PNG, TIF, TGA, RAW, PSD…  Optimized Minko dedicated formats – Scene, material, texture, geometry… – Open source (de)serializer – Extensions (Physics 3D compression, 3D streaming…)
  15. 15. C++ 2011  Standard, fast, well documented and supported by a vast community  Already fully supported by all major compilers (VS, GCC, LLVM…)  New additions make it closer to what we’re used to with AS3/Javascript – Closures/lambda functions – Type inference (instead of dynamic typing) – Shared pointers
  16. 16. C++11 Example – Closures // callback is removed when mouseWheel is set to nullptr
  17. 17. C++11 Example – Shared pointers
  18. 18. Components – Ex: Directional Light  The Transform component is not mandatory – Scene nodes do not necessarily have a 3D transform: lighter and more customizable – Yet our directional light is pointless without a configurable direction…
  19. 19. Components – Ex: Camera  Our camera has 3 components: – Transform will make our Camera position/orientation customizable – PerspectiveCamera will provide actual camera related data to the rendering API – Renderer will do the actual DrawCall storage/frame rendering
  20. 20. Emscripten https://github.com/kripken/emscripten  Open source project driven by Mozilla – Based on LLVM, which is supported by Google, Apple, Intel and many more  Cross-compile C++ code to Javascript code – Binds OpenGL to WebGL – Provide virtual file system – C++  Javascript bindings  Code optimizations – Closure compiler – asm.js (2x performances of native code!)  Code compression using LZMA
  21. 21. Premake http://industriousone.com/premake  Cross-platform build system – Windows, Mac and Linux – Reference in the video game industry – Well documented  Compatible with most IDEs/tools – gmake – Visual Studio – XCode  Easy to extend and customize – Based on LUA script configuration files – Adding support for emscripten was easy
  22. 22. HTML5 UI (WIP)  Portable – Chromium on desktop – WebView on mobiles – <iframe> on the web  Responsive UI design  Leverage existing HTML5 tools and frameworks  Video Native 3D backbuffer HTML5 UI overlay
  23. 23. Parallelization  Workers  Threads (except for HTML5)  Coroutines (Lua)
  24. 24. SCRIPTING
  25. 25. Core Framework Language  Fast  Rich & expressive  Optimized for each target Scripting Language  Simple  Interpreted  Dynamic VSC, C++, Java, C#... Javascript, Python, AS3…
  26. 26. We chose… Lua!  Fits all the requirements of a scripting language  Vastly used by the video game industry (World of Warcraft, Fable II & III, Neverwinter Nights, …) – Complete list of games scripted with Lua  Very (very) fast – LuaJIT is comparable to Javascript V8, if not faster  Designed to be embedded  Designed to script games – Simple but very efficient syntax – Minimalistic set of features but very extensible – Coroutines!
  27. 27. C++  Lua? LuaGlue!  C++/Lua bindings  Open source project – https://github.com/Tomasu/LuaGlue – We contribute as much as possible  Leverage C++11 – Optimize as compile time as much as possible – Simple binding interface  Used to bind 90% of Minko’s C++ API – Write 100% of your app in Lua
  28. 28. Coroutines  A function can suspend its execution… – coroutine.yield()  … and then resume « sometime later » – coroutine.resume()  Gives the illusion of parallelism – Yet no complicated threading stuff – Fully cross-platform  Allow the creation of non-blocking (heavy) functions  Can (always?) be used in place of events/callbacks
  29. 29. Coroutines function myScript() doSomething() while isIdle do say(‘hello how are you?’) wait(seconds(3)) end while not isIdle do wait(keyboard.anyKeyDown) handleKeyboard() end end
  30. 30. Event driven Coroutine driven  Action => reaction  Breaks the code in multiple handlers  Messy execution flow  Messy scopes  Wait for « something » to happen  Non-blocking  Simple execution flow  Meaningful and readable
  31. 31. You choose!  C++ – Performances – Rich and powerful language  Lua – Simple and efficient – Fast iteration times  Mix both in any project on any target
  32. 32. Ready? SoccerPunch (soccerpun.ch) coming to HTML5 and native iOS / Android!
  33. 33. About SoccerPunch  Lots of important game-related features – 3D graphics – Physics – Animations – AI – Gamepad – …  Developped in 2 days using Minko 2 and AS3 – Entirely re-developed in C++/Lua  Should be one of the most advanced WebGL game so far – Then we can juge whether HTLM5 is ready or not for games
  34. 34. Conclusion  Open source – More than 20 FLOSS projects used – 1 million lines of code  Second beta in May – New targets – Stability / performance – New example projects
  35. 35. THANK YOU!
  36. 36. Aerys US Institut Mines-Télécom Silicon Valley NASA Research Park Moffett Field CA 94035 Mountain View USA Aerys Europe 15 rue Jean-Baptiste Berlier Hall B 75013 Paris France Customer service +33 805 690 489 Monday to Friday, from 9:00 to 17:00 UTC hello@aerys.in http://aerys.in Jean-Marc Le Roux CEO jeanmarc@aerys.in +336 20 56 45 78 Warren Seine CTO warren@aerys.in +336 79 51 64 66 Ymane Amrane Sales Manager ymane@aerys.in +339 72 28 55 83
  37. 37. http://minko.io

×