#PAUG – Dec. 2013
Build 3D web, mobile and desktop applications with C++11

Warren Seine
CTO and co-founder of Aerys
warren@aerys.in
@warrenseine
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 C++?
§ Performances
§  You can’t beat C++ and its static optimizations

§ Integration
§  It’s the common standard for big projects

§ Expressiveness
§  C++11 lambdas, type inference, memory management

§ Cross-platform
§  Windows, Mac, Linux, iOS, Android, Flash, Windows Phone, HTML5
Emscripten https://github.com/kripken/emscripten
§  Atwood’s Law

–  « Anything that can be done with JavaScript will be done in JavaScript »

§  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!)
LZMA compression
ASM.js –Benchmarks

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

EXAMPLE: SPONZA HTML5!
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/Eclipse are very good IDEs
§ Minko 3 is much lighter and yet just as much powerful
§ Vagrant + Premake: efficient cross-compilation build
My Feedback – The Good Parts
§ Compatibility
§  The app runs on Windows, Mac, Linux, iOS, Android and WebGL
without a single modification!
§  Targeting Android was just a 2-day job

§ Speed
§  Native speed on Windows, Mac, Linux, iOS and Android
§  2x speed of native code in HTML5/WebGL thanks to asm.js!
Don’t forget to check http://minko.io !

Merci !

Paris Android User Group - Build 3D web, mobile and desktop applications with C++11

  • 1.
    #PAUG – Dec.2013 Build 3D web, mobile and desktop applications with C++11 Warren Seine CTO and co-founder of Aerys [email protected] @warrenseine
  • 2.
  • 3.
  • 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 isthe 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.
  • 7.
  • 8.
    « We chose Minkoto 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% compatiblewith 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 C++? § Performances §  Youcan’t beat C++ and its static optimizations § Integration §  It’s the common standard for big projects § Expressiveness §  C++11 lambdas, type inference, memory management § Cross-platform §  Windows, Mac, Linux, iOS, Android, Flash, Windows Phone, HTML5
  • 11.
    Emscripten https://github.com/kripken/emscripten §  Atwood’sLaw –  « Anything that can be done with JavaScript will be done in JavaScript » §  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!) LZMA compression
  • 12.
  • 13.
  • 14.
  • 15.
    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/Eclipse are very good IDEs § Minko 3 is much lighter and yet just as much powerful § Vagrant + Premake: efficient cross-compilation build
  • 16.
    My Feedback –The Good Parts § Compatibility §  The app runs on Windows, Mac, Linux, iOS, Android and WebGL without a single modification! §  Targeting Android was just a 2-day job § Speed §  Native speed on Windows, Mac, Linux, iOS and Android §  2x speed of native code in HTML5/WebGL thanks to asm.js!
  • 17.
    Don’t forget tocheck http://minko.io ! Merci !