[50% OFF] BLAST – A burst compatible script engine – Published By NS-SOFTWARE

BLAST is a runtime bytecode compiler & interpretor that can interpret scripts from burst compiled code.


Disclaimer: This is a partly experimetal package, anything …

Keywords:

Tool, interpretor, bytecode, Scripting, compiler, Runtime, burst, statemachine, FSM

Short Description:

BLAST is a runtime bytecode compiler & interpretor that can interpret scripts from burst compiled code.


Disclaimer: This is a partly experimetal package, anything …

Rating:

Discount: 50% OFF

Asset Title: BLAST – A burst compatible script engine

Publisher: NS-SOFTWARE

Category: tools, visual-scripting

More Details about this asset:

BLAST is a runtime bytecode compiler & interpretor that can interpret scripts from burst compiled code.


Disclaimer: This is a partly experimetal package, anything listed in the documentation is guaranteed to be supported indefinately, the rest is under active development and very open for suggestions. Please log any issues at https://github.com/nijnstein/BLAST-Documentation/issues so we can handle them as efficiently as possible.

  • Made for fast execution of many small scripts.
  • Fast runtime compilation of text.
  • Very low memory use and allocation free execution.
  • SSMD = Single Script Many Data -> execute small scripts as vectors for unmatched performance.
  • Connect with other components through user defined operations implemented as burst function pointers.
  • Advanced memory layout control, split datasegment, code and stack for ultimate performance in every situation.
  • Extremely compact bytecode, you can truly have massive amounts of different (generated/ai) scripts
  • Movable datasegment pointer -> directly map variables to fields in IComponentData structures
  • Efficient constant data use based on packaging options
  • Easy to use, hard to master.
  • Ask anything, and if needed we will add samples for clarification.

Limitations:

  1. Datatype: Float[1-4]
  2. Bool32 available through special opcodes
  3. This is not a replacement for a full fledged scripting language but is intended to run many simple scripts as fast as possible and this is partly possible by limiting blasts scope: there is 1 datatype, NUMERIC, and it can be of vectorsize 1-4. There is a limited amount of variable data slots (127 float[1]’s). There is a max codesize of 32Kbyte although blast is intended to be used with much smaller scripts. SSMD does not support control flow instructions: ifthenelse, loops and anything that results in a conditional jump.

Documentation can be found on github: https://github.com/nijnstein/BLAST-Documentation


## Roadmap ##


Update 1.1 – Summer 2022

  1. Normal Packagemode: Design/Compiletime transpilation from bytecode into bursted functionpointers. This will void any performance penalty to using scripts instead of native code when scripts are known during design time.
  2. Int32 datatype extensions

Update 1.2 – Autumn/Winter 2022

  1. Control flow support in SSMD (conditional jump support)
  2. Int16, Half and Pointer|array datatypes

Version 2 – When done

  1. Many optimizations, BLAST isnt fast because its optimized, there are very many loops that would benefit greatly from optimizations at the cost of readability.
  2. Refactor of a lot of memory operations now used for simplicity in the ssmd interpretor, data could be directly indexed but it would become horrible to debug.


Leave a Reply