You can thus create your next 3D game in Python with Babylon.js. Or make another one in Lua, relying on Matter.js and Pixi.js. How awesome is that?
In many countries, high school students have to learn Python. Letting them stick to Python with microStudio will help them practise the language they will be tested on, rather than having to switch from one language to the other.
I have heard people asking why they would have to learn a different / simplified Lua when they already know Lua. Offering Lua will maybe make microStudio more attractive to these users.
What about microScript?
microScript remains the best language to work in microStudio, here is why:
- microScript is simpler, yet complete and very forgiving to beginners. microScript won't call you names because you forgot to define a variable.
- No runtime errors: microScript cannot break at runtime. This is a huge advantage: it means you can really work on your program while it is running, making changes live without the risk of breaking the flow constantly and having to restart the game every time.
- With today's release comes hot updates of classes, meaning that you can work on a class definition and instantly see the result applied to all the object instances derived from your class in the running game. This is making coding in microStudio even more interactive.
- I made a lot of research and thinking on microScript v2. This new version will not only bring a few more features, some more flexibility and a clarified specification. I have started working on a new type of interpreter, based on an intermediate representation and a stack machine. This interpreter is showing great performance, to the point I will have to evaluate if a transpiler is still needed. It is also more flexible in many ways, allowing to get rid of the "timeout" limitation, to interrupt and resume execution at any time (think "breakpoints"). It is also the best working base you can imagine for a future implementation of microScript in C / C++, for native exports.
I would like to add that today's update (as well as recent updates with 2D/3D engines and physics engines) wouldn't be possible without the hard work of fantastic people making all the following open-source libs:
And of course also:
- Babylon.js: https://github.com/BabylonJS/Babylon.js
- Pixi.js: https://github.com/pixijs
- Matter.js: https://github.com/liabru/matter-js
- Cannon.js: https://github.com/schteppe/cannon.js