MicroStudio now has new languages!!! - (JavaScript Phyton Lua and others)!!!
This is quite a big update: now you can choose from 4 programming languages for your microStudio project: microScript , Python , JavaScript or Lua ! All this still from your web browser. With any of these 4 languages you have access to all the microStudio goodness: edit code live, use live help and screen positioning tips, use new graphics libraries for 2D or 3D, use optional libraries like Matter.js and Cannon.js, export your project to HTML5, Windows, Mac, Linux, Android with a click.
So you can create your next 3D game in Python with Babylon.js. Or create another one in Lua, relying on Matter.js and Pixi.js. How awesome is that?
Why Python? In many countries, high school students are required to learn Python. Letting them stick with Python with microStudio will help them practice the language they’ll be testing in, rather than switching from one language to another.
Why JavaScript? Some users may be concerned about the performance of their game. I have some good news for them about microScript (read below), but if you’re building a procedurally generated real-time world with thousands of collision checks or something like that, you may want to stick to the core language of your engine and avoid adding another language layer on top. In microStudio, JavaScript is the core language, and JavaScript in the browser is incredibly fast.
Why Lua? I’ve heard people ask why they should learn a different/simplified Lua if they already know Lua. Offering Lua could make microStudio more appealing to these users.
What about microScript? microScript remains the best language to work with in microStudio. Here’s 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 can't break down at runtime. This is a huge advantage: it means you can actually work on your program while it's running, making changes live without the risk of constantly breaking the flow and having to restart the game every time.
With today's release comes the hot class updates, which means you can work on a class definition and immediately see the result applied to all instances of objects derived from your class in the running game. This makes coding in microStudio even more interactive.
I've done a lot of research and thinking about microScript v2. This new version not only brings a few new features, a bit more flexibility, and a clarified specification, but I've also started working on a new type of interpreter, based on an intermediate representation and a stack machine. This interpreter shows great performance, to the point that I'll have to evaluate whether a transpiler is still necessary. It is also more flexible in many ways, allowing you to get rid of the "timeout" constraint to interrupt and resume execution at any time (think "breakpoints"). It is also the best working base you can imagine for a future microScript implementation in C/C++, for native exports. I would like to add that today's update (and the recent updates to the 2D/3D and physics engines) would not have been possible without the hard work of the wonderful people who create all of the following open-source libraries:
Python (Python engine in JavaScript): https://github.com/brython-dev/brython Lua (Lua engine in JavaScript): https://github.com/fengari-lua And of course:
Babylon.js: https://github.com/BabylonJS/Babylon.js Pixi.js: https://github.com/pixijs Materia.js: https://github.com/liabru/matter-js Cannon.js: https://github.com/schteppe/cannon.js