SlideShare a Scribd company logo
#WindowsApps – Nov. 2013
Build 3D web and desktop applications with C++11

Jean-Marc Le Roux
CEO and co-founder of Aerys
jeanmarc@aerys.in
@promethe42
Join!

WebGL France
http://www.meetup.com/WebGL-France
@WebGLFrance
by
3D. Everywhere.
Deliver engaging, interactive and rich 3D content and applications on
desktops, mobiles and the web.
Focus on design. Boost with code.
Minko « Studio » Edition
Designers integrate 3D content, customize materials, setup lights and animations.
Developers plug in scripts and interactivity.
The sky is the limit.
Minko « Community » Edition

Build desktop, web and mobile 3D applications with
Minko’s free and open source SDK including
a fully-featured 3D engine and plugins.
IronForce (EA/Coolfish)
« 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 BigPoint
Features
 100% compatible with Windows, Mac,
Linux, iOS, Android and WebGL
 WYSIWYG Scene editor
 3D scene graph API

 80+ 2D/3D file formats supported
 Dynamic assets loading
 Über-shaders

 Components & scripts system

 3D compression, simplification and
streaming

 Physics (Bullet)

 Plugin system (Oculus, Leap, ….)

 Data-driven rendering engine

 Particles engine
Why?
 3D apps are usually bigger/more complex projects
 Bigger teams
 Bigger expectations
 Complex assets workflow

 C++ is more expressive and brings some specific optimizations





Static typing, templates
Inlining
Low level memory management (no GC)
…

 C++ can be used on any platforms (Windows, Mac, Linux, iOS, Android, Flash, Windows
Phone…)
 « Anything that can be done with JavaScript will be done in Javascript »
 Well anything that can be done has already been done in C++ so…
Targeting HTML5/WebGL
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 Javascript
– Closures/lambda functions
– Type inference (instead of dynamic typing)
– Shared pointers (instead of GC)
C++11 Example – Closures

// callback is removed when mouseWheel is set to nullptr
C++11 Example – Shared pointers
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

– LLVM and C++ specific optimizations
– Closure compiler
– asm.js (2x performances of native code!)

 Code compression using LZMA
ASM.js –Benchmarks

Source: http://kripken.github.io/mloc_emscripten_talk/#/28
http://minko.io/showcase/sponza-html5

EXAMPLE: SPONZA HTML5!
TARGETING WINDOWS/DIRECTX
ANGLE https://code.google.com/p/angleproject/
 Almost Native Graphics Layer Engine
 Open source project driven by Google

– Used by Chrome and Firefox WebGL implementations

 OpenGL wrapper that will map OGL calls to the DirectX API

– Provide better performances on Windows
– Makes it possible to target DirectX with an OpenGL based implementation
– Should provide Windows Phone 8 compatibility out of the box

 Also converts GLSL shaders to HLSL

– Completely transparent to the developer!
– Write once, deploy everywhere

 Supports DirectX 11

– Compatible with the Windows 8.1 App Store
Conclusion
My Feedback – The Good Parts
 Working with C++ 2011 is amazing

 More complex but so much powerful/expressive than AS3/JS
 Useful and reliable STL containers (list, maps, sets, etc…)
 Shared pointers make memory management just as easy as with managed
languages: not a single memory leak so far!

 Visual Studio/XCode are very good IDEs
 Minko 3’s implementation is much lighter and yet just as much
powerful
 Vagrant + Premake provides an efficient build system with crosscompilation
My Feedback – The Good Parts
 Compatibility

 The app runs on Windows, Mac, Linux, iOS, Android and WebGL
withouth a single modification!
 Haven’t tested iOS/Android yet, but should work out of the box

 Speed

 Native speed on Windows, Mac, Linux, iOS and Android
 2x speed of native code in HTML5/WebGL thanks to asm.js!

 Target DirectX 11 thanks to ANGLE

 Direct push on the Windows 8.1 App Store
My Feedback – The Bad Parts
 RAM consumption for HTML5/WebGL apps x-compiled
with emscripten
 Will likely improve with every new release

 Not yet compatible with the Windows Phone 8 App Store
 Forbidden to use the « online » HLSL compiler for mobile apps
Don’t forget to check http://minko.io !

Merci !

More Related Content

PPTX
Réaliser un jeu cross plateformes avec WebGL et babylon.js
PPTX
SharePoint Saturday Zurich 2017 - SharePoint Framework the new development way
PPTX
Html5 (games)
PDF
Everyday React Native
PDF
HTML GL - 60 FPS and amazing effects by rendering HTML/CSS in WebGL, framewor...
PDF
GreenButton-201502
PDF
HTML GL - возьмите столько FPS, сколько вам нужно!
PPTX
Using babylon js to create apps & games for all web gl devices
Réaliser un jeu cross plateformes avec WebGL et babylon.js
SharePoint Saturday Zurich 2017 - SharePoint Framework the new development way
Html5 (games)
Everyday React Native
HTML GL - 60 FPS and amazing effects by rendering HTML/CSS in WebGL, framewor...
GreenButton-201502
HTML GL - возьмите столько FPS, сколько вам нужно!
Using babylon js to create apps & games for all web gl devices

What's hot (20)

PDF
Migrating your Web app to Virtual Reality
PDF
Software Architecture Stories
PDF
Hands on App Engine
ODP
Zoomcharts @ DevClub.lv
PDF
Serverless with Google Cloud Functions
PDF
Monitoring at a SAAS Startup: Tradeoffs and Tools
PPTX
Google cloud functions
PDF
slide-dnrdw
PPTX
PDF
Power of WebGL (FSTO 2014)
PPTX
React for .net developers
PPTX
Using Google App Engine Python
PDF
WebGL in Native Applications
PDF
Cloud Study Jam - 2019
PDF
Dockerize Your Project - GDGBogor
PPTX
10 difference between aws and google cloud by Zareef Ahmed
PPTX
Creating autocomplete with elastic search on google cloud
PDF
iOS Indie Developer Toolkit - CocoaHeads 3city
PDF
DotNet 2019 | Marcos Cobeña - Llevando Wave Engine a la web a través de WebGL...
PDF
Cloud Deployment Toolkit
Migrating your Web app to Virtual Reality
Software Architecture Stories
Hands on App Engine
Zoomcharts @ DevClub.lv
Serverless with Google Cloud Functions
Monitoring at a SAAS Startup: Tradeoffs and Tools
Google cloud functions
slide-dnrdw
Power of WebGL (FSTO 2014)
React for .net developers
Using Google App Engine Python
WebGL in Native Applications
Cloud Study Jam - 2019
Dockerize Your Project - GDGBogor
10 difference between aws and google cloud by Zareef Ahmed
Creating autocomplete with elastic search on google cloud
iOS Indie Developer Toolkit - CocoaHeads 3city
DotNet 2019 | Marcos Cobeña - Llevando Wave Engine a la web a través de WebGL...
Cloud Deployment Toolkit
Ad

Similar to Minko - Windows App Meetup Nov. 2013 (20)

PDF
Paris Android User Group - Build 3D web, mobile and desktop applications with...
PDF
WebGL games with Minko - Next Game Frontier 2014
PDF
Minko - Build WebGL applications with C++ and asm.js
PDF
Paris Android LiveCode - Creating cross-platform 3D apps with Minko
PDF
Minko - Creating cross-platform 3D apps with Minko
PDF
Minko - Flash Conference #5
PDF
Minko - Targeting Flash/Stage3D with C++ and GLSL
PDF
Minko - Scripting 3D apps with Lua and C++
PPT
Eclipse summit-2010
PPTX
Cloud development technology sharing (BlueMix premier)
PPTX
SLUGUK BUILD Round-up
PPTX
Crosswalk and the Intel XDK
PDF
Minko - Why we created our own Flash platform and why you should care
PPT
C# rocks
PPT
Cross-Platform Mobile Development in Visual Studio
PPTX
Telerik AppBuilder 101
PDF
.NET Core on Mac
PPTX
C++ on the Web: Run your big 3D game in the browser
PDF
Dot Net Project Mini Game
PDF
Eclipse IDE and Platform news on Fosdem 2020
Paris Android User Group - Build 3D web, mobile and desktop applications with...
WebGL games with Minko - Next Game Frontier 2014
Minko - Build WebGL applications with C++ and asm.js
Paris Android LiveCode - Creating cross-platform 3D apps with Minko
Minko - Creating cross-platform 3D apps with Minko
Minko - Flash Conference #5
Minko - Targeting Flash/Stage3D with C++ and GLSL
Minko - Scripting 3D apps with Lua and C++
Eclipse summit-2010
Cloud development technology sharing (BlueMix premier)
SLUGUK BUILD Round-up
Crosswalk and the Intel XDK
Minko - Why we created our own Flash platform and why you should care
C# rocks
Cross-Platform Mobile Development in Visual Studio
Telerik AppBuilder 101
.NET Core on Mac
C++ on the Web: Run your big 3D game in the browser
Dot Net Project Mini Game
Eclipse IDE and Platform news on Fosdem 2020
Ad

Recently uploaded (20)

PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
A Presentation on Artificial Intelligence
PDF
Electronic commerce courselecture one. Pdf
PPT
Teaching material agriculture food technology
PDF
cuic standard and advanced reporting.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
KodekX | Application Modernization Development
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
Chapter 3 Spatial Domain Image Processing.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Advanced methodologies resolving dimensionality complications for autism neur...
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
A Presentation on Artificial Intelligence
Electronic commerce courselecture one. Pdf
Teaching material agriculture food technology
cuic standard and advanced reporting.pdf
The AUB Centre for AI in Media Proposal.docx
Spectral efficient network and resource selection model in 5G networks
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Encapsulation_ Review paper, used for researhc scholars
20250228 LYD VKU AI Blended-Learning.pptx
KodekX | Application Modernization Development
Per capita expenditure prediction using model stacking based on satellite ima...
The Rise and Fall of 3GPP – Time for a Sabbatical?
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Understanding_Digital_Forensics_Presentation.pptx

Minko - Windows App Meetup Nov. 2013

  • 1. #WindowsApps – Nov. 2013 Build 3D web and desktop applications with C++11 Jean-Marc Le Roux CEO and co-founder of Aerys jeanmarc@aerys.in @promethe42
  • 3. by
  • 4. 3D. Everywhere. Deliver engaging, interactive and rich 3D content and applications on desktops, mobiles and the web.
  • 5. Focus on design. Boost with code. Minko « Studio » Edition Designers integrate 3D content, customize materials, setup lights and animations. Developers plug in scripts and interactivity.
  • 6. The sky is the limit. Minko « Community » Edition Build desktop, web and mobile 3D applications with Minko’s free and open source SDK including a fully-featured 3D engine and plugins.
  • 8. « 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 BigPoint
  • 9. Features  100% compatible with Windows, Mac, Linux, iOS, Android and WebGL  WYSIWYG Scene editor  3D scene graph API  80+ 2D/3D file formats supported  Dynamic assets loading  Über-shaders  Components & scripts system  3D compression, simplification and streaming  Physics (Bullet)  Plugin system (Oculus, Leap, ….)  Data-driven rendering engine  Particles engine
  • 10. Why?  3D apps are usually bigger/more complex projects  Bigger teams  Bigger expectations  Complex assets workflow  C++ is more expressive and brings some specific optimizations     Static typing, templates Inlining Low level memory management (no GC) …  C++ can be used on any platforms (Windows, Mac, Linux, iOS, Android, Flash, Windows Phone…)  « Anything that can be done with JavaScript will be done in Javascript »  Well anything that can be done has already been done in C++ so…
  • 12. 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 Javascript – Closures/lambda functions – Type inference (instead of dynamic typing) – Shared pointers (instead of GC)
  • 13. C++11 Example – Closures // callback is removed when mouseWheel is set to nullptr
  • 14. C++11 Example – Shared pointers
  • 15. 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 – LLVM and C++ specific optimizations – Closure compiler – asm.js (2x performances of native code!)  Code compression using LZMA
  • 19. ANGLE https://code.google.com/p/angleproject/  Almost Native Graphics Layer Engine  Open source project driven by Google – Used by Chrome and Firefox WebGL implementations  OpenGL wrapper that will map OGL calls to the DirectX API – Provide better performances on Windows – Makes it possible to target DirectX with an OpenGL based implementation – Should provide Windows Phone 8 compatibility out of the box  Also converts GLSL shaders to HLSL – Completely transparent to the developer! – Write once, deploy everywhere  Supports DirectX 11 – Compatible with the Windows 8.1 App Store
  • 21. My Feedback – The Good Parts  Working with C++ 2011 is amazing  More complex but so much powerful/expressive than AS3/JS  Useful and reliable STL containers (list, maps, sets, etc…)  Shared pointers make memory management just as easy as with managed languages: not a single memory leak so far!  Visual Studio/XCode are very good IDEs  Minko 3’s implementation is much lighter and yet just as much powerful  Vagrant + Premake provides an efficient build system with crosscompilation
  • 22. My Feedback – The Good Parts  Compatibility  The app runs on Windows, Mac, Linux, iOS, Android and WebGL withouth a single modification!  Haven’t tested iOS/Android yet, but should work out of the box  Speed  Native speed on Windows, Mac, Linux, iOS and Android  2x speed of native code in HTML5/WebGL thanks to asm.js!  Target DirectX 11 thanks to ANGLE  Direct push on the Windows 8.1 App Store
  • 23. My Feedback – The Bad Parts  RAM consumption for HTML5/WebGL apps x-compiled with emscripten  Will likely improve with every new release  Not yet compatible with the Windows Phone 8 App Store  Forbidden to use the « online » HLSL compiler for mobile apps
  • 24. Don’t forget to check http://minko.io ! Merci !