Menu

YAS: Yet Another Script language

JEngine SSE has had a custom scripting language for a while now. Up until now it always has been referred to as 'script language' or just script. For a long time I have been thinking about a proper name, which is one thing I am not very good at, hence the simple name. Today I decided that I will go with the name YAS : Yet Another Script. In the coming period I will update the documentation here on SourceForge.

During the past months I have been working on a side project, namely porting Mono to my NAS system containing a E500 PowerPC cpu. While working on it, I learned a lot about machine code generation and compilers in general. Now I want to use this knowledge in the YAS compiler to make it generate better code, and improve the speed of the interpreter.

To make this possible I introduced a compiled intermediate language (CIL) in the compiler. This language can be used for multiple features:

  • Save and load: instead of fully compiling the file every time, the CIL code can be streamed to and from a file to decrease the load time of a game.
  • Source for byte code generation: I am planning to implement register based interpreter next to the stack machine. With CIL it is easier to generate code for both types of interpreters.

Currently the brand new scripting engine is capable of running all 40+ unit tests without errors and more importantly start up the game engine. There probably is still a lot of work to do, but I am making good progress. Stay tuned for more information!

Posted by Jeroen Broekhuizen 2013-04-23

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.