SlideShare a Scribd company logo
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
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 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.
 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.
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.
International Gaming References
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
New Game Released: IronForce
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)
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)
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)
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
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…)
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
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 transform: lighter and more customizable
– Yet our directional light is pointless without a configurable direction…
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
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
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
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
Parallelization
 Workers
 Threads (except for HTML5)
 Coroutines (Lua)
SCRIPTING
Core Framework Language
 Fast
 Rich & expressive
 Optimized for each target
Scripting Language
 Simple
 Interpreted
 Dynamic
VSC, C++, Java, C#... Javascript, Python, AS3…
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!
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
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
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
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
You choose!
 C++
– Performances
– Rich and powerful language
 Lua
– Simple and efficient
– Fast iteration times
 Mix both in any project on any target
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
– …
 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
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
THANK YOU!
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
http://minko.io

More Related Content

What's hot

Data Management and Streaming Strategies in Drakensang Online
Data Management and Streaming Strategies in Drakensang OnlineData Management and Streaming Strategies in Drakensang Online
Data Management and Streaming Strategies in Drakensang Online
Andre Weissflog
 
Programming
ProgrammingProgramming
Programming
fika sweety
 
Auto deploy symfony app with codeship and elastic beanstalk
Auto deploy symfony app with codeship and elastic beanstalkAuto deploy symfony app with codeship and elastic beanstalk
Auto deploy symfony app with codeship and elastic beanstalk
Alex Demchenko
 
Elixir Phoenix
Elixir PhoenixElixir Phoenix
Elixir Phoenix
Tanuj Soni
 
Introduction to Phoenix Framework (Elixir) 2016-01-07
Introduction to Phoenix Framework (Elixir) 2016-01-07Introduction to Phoenix Framework (Elixir) 2016-01-07
Introduction to Phoenix Framework (Elixir) 2016-01-07
Svein Fidjestøl
 
Electron - Build cross platform desktop apps
Electron - Build cross platform desktop appsElectron - Build cross platform desktop apps
Electron - Build cross platform desktop apps
Priyaranjan Mohanty
 
Electron
ElectronElectron
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET Developers
Taswar Bhatti
 
CocoaHeads Rennes #13 : CocoaPods
CocoaHeads Rennes #13 : CocoaPodsCocoaHeads Rennes #13 : CocoaPods
CocoaHeads Rennes #13 : CocoaPods
CocoaHeadsRNS
 
Building Multiplayer Games (w/ Unity)
Building Multiplayer Games (w/ Unity)Building Multiplayer Games (w/ Unity)
Building Multiplayer Games (w/ Unity)
Noam Gat
 
Intro to elixir and phoenix
Intro to elixir and phoenixIntro to elixir and phoenix
Intro to elixir and phoenix
Jared Smith
 

What's hot (11)

Data Management and Streaming Strategies in Drakensang Online
Data Management and Streaming Strategies in Drakensang OnlineData Management and Streaming Strategies in Drakensang Online
Data Management and Streaming Strategies in Drakensang Online
 
Programming
ProgrammingProgramming
Programming
 
Auto deploy symfony app with codeship and elastic beanstalk
Auto deploy symfony app with codeship and elastic beanstalkAuto deploy symfony app with codeship and elastic beanstalk
Auto deploy symfony app with codeship and elastic beanstalk
 
Elixir Phoenix
Elixir PhoenixElixir Phoenix
Elixir Phoenix
 
Introduction to Phoenix Framework (Elixir) 2016-01-07
Introduction to Phoenix Framework (Elixir) 2016-01-07Introduction to Phoenix Framework (Elixir) 2016-01-07
Introduction to Phoenix Framework (Elixir) 2016-01-07
 
Electron - Build cross platform desktop apps
Electron - Build cross platform desktop appsElectron - Build cross platform desktop apps
Electron - Build cross platform desktop apps
 
Electron
ElectronElectron
Electron
 
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET Developers
 
CocoaHeads Rennes #13 : CocoaPods
CocoaHeads Rennes #13 : CocoaPodsCocoaHeads Rennes #13 : CocoaPods
CocoaHeads Rennes #13 : CocoaPods
 
Building Multiplayer Games (w/ Unity)
Building Multiplayer Games (w/ Unity)Building Multiplayer Games (w/ Unity)
Building Multiplayer Games (w/ Unity)
 
Intro to elixir and phoenix
Intro to elixir and phoenixIntro to elixir and phoenix
Intro to elixir and phoenix
 

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

Minko - Windows App Meetup Nov. 2013
Minko - Windows App Meetup Nov. 2013Minko - Windows App Meetup Nov. 2013
Minko - Windows App Meetup Nov. 2013Minko3D
 
Minko - Scripting 3D apps with Lua and C++
Minko - Scripting 3D apps with Lua and C++Minko - Scripting 3D apps with Lua and C++
Minko - Scripting 3D apps with Lua and C++Minko3D
 
Casual Engines 2009
Casual Engines 2009Casual Engines 2009
Casual Engines 2009
David Fox
 
Cross platform development with C#
Cross platform development with C#Cross platform development with C#
Cross platform development with C#
Michele Scandura
 
Minko - Why we created our own Flash platform and why you should care
Minko - Why we created our own Flash platform and why you should careMinko - Why we created our own Flash platform and why you should care
Minko - Why we created our own Flash platform and why you should careMinko3D
 
Minko - Targeting Flash/Stage3D with C++ and GLSL
Minko - Targeting Flash/Stage3D with C++ and GLSLMinko - Targeting Flash/Stage3D with C++ and GLSL
Minko - Targeting Flash/Stage3D with C++ and GLSLMinko3D
 
Open Kode, Airplay And The New Reality Of Write Once Run Anywhere
Open Kode, Airplay And The New Reality Of Write Once Run AnywhereOpen Kode, Airplay And The New Reality Of Write Once Run Anywhere
Open Kode, Airplay And The New Reality Of Write Once Run Anywhere
guest991eb3
 
Minko - Flash Conference #5
Minko - Flash Conference #5Minko - Flash Conference #5
Minko - Flash Conference #5Minko3D
 
Silverlight
SilverlightSilverlight
Silverlight
vishakpb
 
Paris Android User Group - Build 3D web, mobile and desktop applications with...
Paris Android User Group - Build 3D web, mobile and desktop applications with...Paris Android User Group - Build 3D web, mobile and desktop applications with...
Paris Android User Group - Build 3D web, mobile and desktop applications with...
Minko3D
 
DroidCon Berlin 2018 summary
DroidCon Berlin 2018 summaryDroidCon Berlin 2018 summary
DroidCon Berlin 2018 summary
Bartosz Kosarzycki
 
IT TRENDS AND PERSPECTIVES 2016
IT TRENDS AND PERSPECTIVES 2016IT TRENDS AND PERSPECTIVES 2016
IT TRENDS AND PERSPECTIVES 2016
Vaidheswaran CS
 
COMPUTER GRAPHICS AND MULTI MEDIA SOFTWARE LIST
COMPUTER GRAPHICS AND MULTI MEDIA SOFTWARE LISTCOMPUTER GRAPHICS AND MULTI MEDIA SOFTWARE LIST
COMPUTER GRAPHICS AND MULTI MEDIA SOFTWARE LIST
tarun kumar sharma
 
O futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saberO futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saber
Danilo Bordini
 
SLUGUK BUILD Round-up
SLUGUK BUILD Round-upSLUGUK BUILD Round-up
SLUGUK BUILD Round-up
Derek Lakin
 
Dot Net Project Mini Game
Dot Net Project Mini GameDot Net Project Mini Game
Dot Net Project Mini Game
varun arora
 
Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...
Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...
Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...
Codemotion
 
#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...
#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...
#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...
Paris Open Source Summit
 
Google Android Naver 1212
Google Android Naver 1212Google Android Naver 1212
Google Android Naver 1212Yoojoo Jang
 
Embedded Linux Multimedia
Embedded Linux MultimediaEmbedded Linux Multimedia
Embedded Linux MultimediaCaglar Dursun
 

Similar to Paris Android LiveCode - Creating cross-platform 3D apps with Minko (20)

Minko - Windows App Meetup Nov. 2013
Minko - Windows App Meetup Nov. 2013Minko - Windows App Meetup Nov. 2013
Minko - Windows App Meetup Nov. 2013
 
Minko - Scripting 3D apps with Lua and C++
Minko - Scripting 3D apps with Lua and C++Minko - Scripting 3D apps with Lua and C++
Minko - Scripting 3D apps with Lua and C++
 
Casual Engines 2009
Casual Engines 2009Casual Engines 2009
Casual Engines 2009
 
Cross platform development with C#
Cross platform development with C#Cross platform development with C#
Cross platform development with C#
 
Minko - Why we created our own Flash platform and why you should care
Minko - Why we created our own Flash platform and why you should careMinko - Why we created our own Flash platform and why you should care
Minko - Why we created our own Flash platform and why you should care
 
Minko - Targeting Flash/Stage3D with C++ and GLSL
Minko - Targeting Flash/Stage3D with C++ and GLSLMinko - Targeting Flash/Stage3D with C++ and GLSL
Minko - Targeting Flash/Stage3D with C++ and GLSL
 
Open Kode, Airplay And The New Reality Of Write Once Run Anywhere
Open Kode, Airplay And The New Reality Of Write Once Run AnywhereOpen Kode, Airplay And The New Reality Of Write Once Run Anywhere
Open Kode, Airplay And The New Reality Of Write Once Run Anywhere
 
Minko - Flash Conference #5
Minko - Flash Conference #5Minko - Flash Conference #5
Minko - Flash Conference #5
 
Silverlight
SilverlightSilverlight
Silverlight
 
Paris Android User Group - Build 3D web, mobile and desktop applications with...
Paris Android User Group - Build 3D web, mobile and desktop applications with...Paris Android User Group - Build 3D web, mobile and desktop applications with...
Paris Android User Group - Build 3D web, mobile and desktop applications with...
 
DroidCon Berlin 2018 summary
DroidCon Berlin 2018 summaryDroidCon Berlin 2018 summary
DroidCon Berlin 2018 summary
 
IT TRENDS AND PERSPECTIVES 2016
IT TRENDS AND PERSPECTIVES 2016IT TRENDS AND PERSPECTIVES 2016
IT TRENDS AND PERSPECTIVES 2016
 
COMPUTER GRAPHICS AND MULTI MEDIA SOFTWARE LIST
COMPUTER GRAPHICS AND MULTI MEDIA SOFTWARE LISTCOMPUTER GRAPHICS AND MULTI MEDIA SOFTWARE LIST
COMPUTER GRAPHICS AND MULTI MEDIA SOFTWARE LIST
 
O futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saberO futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saber
 
SLUGUK BUILD Round-up
SLUGUK BUILD Round-upSLUGUK BUILD Round-up
SLUGUK BUILD Round-up
 
Dot Net Project Mini Game
Dot Net Project Mini GameDot Net Project Mini Game
Dot Net Project Mini Game
 
Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...
Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...
Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...
 
#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...
#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...
#OSSPARIS19: Construire des applications IoT "secure-by-design" - Thomas Gaza...
 
Google Android Naver 1212
Google Android Naver 1212Google Android Naver 1212
Google Android Naver 1212
 
Embedded Linux Multimedia
Embedded Linux MultimediaEmbedded Linux Multimedia
Embedded Linux Multimedia
 

Recently uploaded

Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Yara Milbes
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 

Recently uploaded (20)

Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 

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

  • 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. by
  • 3. 3D. Everywhere. Deliver engaging, interactive and rich 3D content and applications on desktops, mobiles and the web.
  • 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.  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. 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.
  • 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. New Game Released: IronForce
  • 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. 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. 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. 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. 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. 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. C++11 Example – Closures // callback is removed when mouseWheel is set to nullptr
  • 17. C++11 Example – Shared pointers
  • 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. 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. 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. 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. 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. Parallelization  Workers  Threads (except for HTML5)  Coroutines (Lua)
  • 25. Core Framework Language  Fast  Rich & expressive  Optimized for each target Scripting Language  Simple  Interpreted  Dynamic VSC, C++, Java, C#... Javascript, Python, AS3…
  • 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. 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. 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. 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.
  • 31. 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
  • 32. You choose!  C++ – Performances – Rich and powerful language  Lua – Simple and efficient – Fast iteration times  Mix both in any project on any target
  • 33. Ready? SoccerPunch (soccerpun.ch) coming to HTML5 and native iOS / Android!
  • 34. 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
  • 35. 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
  • 37. 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