paris android user group - build 3d web, mobile and desktop applications with c++11
DESCRIPTION
Build 3D web, mobile and desktop applications with C++11TRANSCRIPT
![Page 1: Paris Android User Group - Build 3D web, mobile and desktop applications with C++11](https://reader035.vdocuments.us/reader035/viewer/2022081403/554bd7dfb4c905ac708b50af/html5/thumbnails/1.jpg)
#PAUG – Dec. 2013 Build 3D web, mobile and desktop applications with C++11
Warren Seine CTO and co-founder of Aerys [email protected] @warrenseine
![Page 2: Paris Android User Group - Build 3D web, mobile and desktop applications with C++11](https://reader035.vdocuments.us/reader035/viewer/2022081403/554bd7dfb4c905ac708b50af/html5/thumbnails/2.jpg)
Join!
WebGL France http://www.meetup.com/WebGL-France
@WebGLFrance
![Page 3: Paris Android User Group - Build 3D web, mobile and desktop applications with C++11](https://reader035.vdocuments.us/reader035/viewer/2022081403/554bd7dfb4c905ac708b50af/html5/thumbnails/3.jpg)
by
![Page 4: Paris Android User Group - Build 3D web, mobile and desktop applications with C++11](https://reader035.vdocuments.us/reader035/viewer/2022081403/554bd7dfb4c905ac708b50af/html5/thumbnails/4.jpg)
3D. Everywhere. Deliver engaging, interactive and rich 3D content and applications on
desktops, mobiles and the web.
![Page 5: Paris Android User Group - Build 3D web, mobile and desktop applications with C++11](https://reader035.vdocuments.us/reader035/viewer/2022081403/554bd7dfb4c905ac708b50af/html5/thumbnails/5.jpg)
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.
![Page 6: Paris Android User Group - Build 3D web, mobile and desktop applications with C++11](https://reader035.vdocuments.us/reader035/viewer/2022081403/554bd7dfb4c905ac708b50af/html5/thumbnails/6.jpg)
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.
![Page 7: Paris Android User Group - Build 3D web, mobile and desktop applications with C++11](https://reader035.vdocuments.us/reader035/viewer/2022081403/554bd7dfb4c905ac708b50af/html5/thumbnails/7.jpg)
IronForce (EA/Coolfish)
![Page 8: Paris Android User Group - Build 3D web, mobile and desktop applications with C++11](https://reader035.vdocuments.us/reader035/viewer/2022081403/554bd7dfb4c905ac708b50af/html5/thumbnails/8.jpg)
« 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
![Page 9: Paris Android User Group - Build 3D web, mobile and desktop applications with C++11](https://reader035.vdocuments.us/reader035/viewer/2022081403/554bd7dfb4c905ac708b50af/html5/thumbnails/9.jpg)
Features § 100% compatible with Windows, Mac,
Linux, iOS, Android and WebGL
§ WYSIWYG Scene editor
§ 3D scene graph API
§ Components & scripts system
§ Physics (Bullet)
§ Data-driven rendering engine
§ 80+ 2D/3D file formats supported
§ Dynamic assets loading
§ Über-shaders
§ 3D compression, simplification and streaming
§ Plugin system (Oculus, Leap, ….)
§ Particles engine
![Page 10: Paris Android User Group - Build 3D web, mobile and desktop applications with C++11](https://reader035.vdocuments.us/reader035/viewer/2022081403/554bd7dfb4c905ac708b50af/html5/thumbnails/10.jpg)
§ 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
Why C++?
![Page 11: Paris Android User Group - Build 3D web, mobile and desktop applications with C++11](https://reader035.vdocuments.us/reader035/viewer/2022081403/554bd7dfb4c905ac708b50af/html5/thumbnails/11.jpg)
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
![Page 12: Paris Android User Group - Build 3D web, mobile and desktop applications with C++11](https://reader035.vdocuments.us/reader035/viewer/2022081403/554bd7dfb4c905ac708b50af/html5/thumbnails/12.jpg)
ASM.js –Benchmarks
Source: h*p://kripken.github.io/mloc_emscripten_talk/#/28
![Page 13: Paris Android User Group - Build 3D web, mobile and desktop applications with C++11](https://reader035.vdocuments.us/reader035/viewer/2022081403/554bd7dfb4c905ac708b50af/html5/thumbnails/13.jpg)
EXAMPLE: SPONZA HTML5! http://minko.io/showcase/sponza-html5
![Page 14: Paris Android User Group - Build 3D web, mobile and desktop applications with C++11](https://reader035.vdocuments.us/reader035/viewer/2022081403/554bd7dfb4c905ac708b50af/html5/thumbnails/14.jpg)
Conclusion
![Page 15: Paris Android User Group - Build 3D web, mobile and desktop applications with C++11](https://reader035.vdocuments.us/reader035/viewer/2022081403/554bd7dfb4c905ac708b50af/html5/thumbnails/15.jpg)
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
![Page 16: Paris Android User Group - Build 3D web, mobile and desktop applications with C++11](https://reader035.vdocuments.us/reader035/viewer/2022081403/554bd7dfb4c905ac708b50af/html5/thumbnails/16.jpg)
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!
![Page 17: Paris Android User Group - Build 3D web, mobile and desktop applications with C++11](https://reader035.vdocuments.us/reader035/viewer/2022081403/554bd7dfb4c905ac708b50af/html5/thumbnails/17.jpg)
Merci !
Don’t forget to check http://minko.io !