3. New Minko 2 Features
Editor
– Auto-save
– Multiple optimizations
Framework
– Mutiple fixes on the lighting system
Available today!
http://minko.io/download
5. Motivations
Target new platforms
– Keep the « design once, deploy everywhere » workflow
– Larger community
Increase performances, epecially CPU-wise
– Multi-threading?
Leverage existing codebase
6. Technological choices
C++11 core framework and plugins
Develop once, deploy everywhere
– Windows, Mac, Linux
– Android, iOS
– HTML5, Flash
Work with all the tools you like
8. Babolat Play - First commercial project!
http://www.youtube.com/watch?v=ewUUerxdZ7U
9. Babolat Play - Fallback
Run web app.
yes
Is
WebGL
available
?
no
Generate JPEG on the
server
Thanks to Minko 3, the same code runs on the server side
and in the browser.
11. How can I help?
Show your love for Crossbridge and Minko on the dedicated
feature request on Github!
– https://github.com/adobe-flash/crossbridge/issues/28
Please leave a comment, even just a +1
13. Effect files
Store a fully setup multi-pass rendering effect
Include 3rd party shaders and plug them in the engine using
bindings
Support über-shaders using automated macro definition
based on bindings
Handle multiple rendering techniques to choose from at
runtime
Can fallback to another specific technique when the selected
one fails (WIP)
14. « flash » technique
« windows » technique
Portable Effects & Shaders
"techniques" : [
{
"configuration" : [ "windows" ],
"passes" : [
{
"vertexShader" : …
"fragmentShader" : …
}
},
{
"configuration" : [ "flash" ],
"passes" : [
{
"vertexShader" : …
"fragmentShader" : …
},
{
"vertexShader" : …
"fragmentShader" : …
}
}
]
Group passes in a named
« technique »
Select that technique at
runtime based on some
flags
– Platform
– Available features/plugins
– Custom flags
18. C++11 is great, but…
Is a new language for most developers
It’s too complex for prototyping game design
Requires some setup to get started
Slow iteration times
19. Core Framework Language
Fast
Rich & expressive
Optimized for each target
C, C++, Java, C#...
VS
Javascript, Python, AS3…
Scripting Language
Simple
Interpreted
Dynamic
20. Complaints about ActionScript
Garbage collector is messy
No operators overloading
Bad performances
No (easy) concurrency
21. 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!
22. 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
23. ActionScript VS Lua
ActionScript
Messy garbage
collector
Lua
Customizable garbage
collector
No operators
overloading
Operators overloading
Bad performances
Very fast + custom
C/C++ bindings
No easy concurrency
Coroutines
24. Minko 3 VS Flash
Application
Application
Flash Runtime
Minko 3
ActionScript VM
Lua VM
Core Library
OS
ANE
Core Framework & Plugins
OS
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
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 chose!
C++
– Performances
– Rich and powerful language
Lua
– Simple and efficient
– Fast iteration times
Mix both in any project on any target
33. 2014
New Minko editor
–
–
–
–
–
Script editor
Live coding
ShaderLab
Animations editor
Plugins system
http://www.youtube.com/watch?v=yuR1e1PjU8Y
Open beta of Minko 3 (January)
An amazing new Minko product for businesses and teams
34. Don’t forget to check http://minko.io !
JOYEUX NOEL!
THANK YOU SERGEY