Welcome to Koriolis FX, home of BriskVM 2
BriskVM 2 is a rich featured script system that lets you write the high-level logic of your application in external scripts, distributed either in readable (source code) or compiled (byte-code) form.
It comes in the form of a multi-platform library that contains the script compiler as well as the virtual machine executing compiled scripts.
Some essential facts about BriskVM:
- BriskVM is easy to integrate.
Integration is very declarative in that you tell BriskVM what to expose to the scripts and which features to enable, but never how to do it. In particular you'll never pass function pointers to BriskVM with complicated and cumbersome solutions to specify all the information needed to allow the call (like the calling convention and the parameter types). This contrasts with many other scripting systems. Rather, you'll simply list in a special file all the functions of the host application that you want to expose to scripts. The same goes for exposing types (aka classes) and global variables, or conversely to easily specify script functions to be called from the host application. And from executing simple scripts stored in strings, to handling full repositories with hundreds of scripts and separate command sets, the integration can be as elaborate or simple as you wish. - BriskVM scripts are very accessible.
Thanks to its BASIC language roots, the scripting language is easy to follow even for beginners, allowing a larger audience for potential modifications by the end user of your application(s). Such extensibility (refered to as MODs in the video game industry, or more generally as "plugins", "scriptable applications" etc) has been a key part in the success of many software products released these latest years, and is very well worth considering. - BriskVM scripts are powerfull.
Despite its clean and simple syntax, the scripting language gives you a lot of expressiveness power, more than many would expect from a BASIC rooted language. You can either write scripts in a purely procedural style, or benefit from Object Oriented Programming. And you may use powerfull features such as runtime reflection, serialization, properties and more. Finally, scripts may be written in a very modular way, by importing other compiled scripts as needed. All these features are optional and can be switched off at your will. - BriskVM scripts can be debugged. Really.
Debugging scripts is traditionnally painfull in that they very often lack the least dedicated tool. With BriskVM you'll benefit from an external debugger with step by step execution and logging capability, and from a stack trace function callable at any time. Runtime error messages also specify the offending script file and line number, and a runtime execution console can be added in a matter of a few functions calls.
Click here to browse the online documentation