I've been using #Knitfile for a while and it's pretty good.
https://zyedidia.github.io/blog/posts/3-knit-better-make/
But now I get annoyed with Lua `require()` which doesn't allow arbitrary path. I think replacing Lua with #Rhai script should solve the problem. Unlike gopher-lua, rhai provide a way to customize the syntax. However, the whole project (:knit) need to be rewritten in Rust 😅
One thing that occurred to me is that if you are using an embedded scripting language, you can hide all the messiness of #ECS from the user and make it look like OO. I'm pretty sure this is exactly what #Godot is doing behind the scenes.
You can also provide generic inner loops in native code, like NumPy does with Python. In fact, Pandas dataframes have a lot in common with ECS worlds, given that both are essentially columnar databases.
#ecs #godot #rust #3d #scenegraph #Rhai
How we customised #Blockly for #Rhai Script and BL602
https://lupyuen.github.io/articles/rhai?19#appendix-customise-blockly-for-rhai
Drag-n-Drop #Rhai Scripts for BL602 with #Blockly
https://lupyuen.github.io/articles/rhai?18#drag-and-drop-rhai-scripting
Transcoding #Rhai Expressions and Function Calls to #uLisp
https://lupyuen.github.io/articles/rhai?12#transcode-expression
Rewriting "let" and "for" statements ... From #Rhai Script to #uLisp
https://lupyuen.github.io/articles/rhai?11#transcode-statement
What's an Abstract Syntax Tree? Why is it perfect for converting #Rhai Script to #uLisp?
https://lupyuen.github.io/articles/rhai?9#abstract-syntax-tree
Converting #Rhai Script to uLisp ... In #BL602 WebAssembly Simulator
https://lupyuen.github.io/articles/rhai?8#convert-rhai-to-ulisp
Here's how we add the #Rhai Scripting Engine to our BL602 Simulator in #RustLang
https://lupyuen.github.io/articles/rhai?5#add-rhai-scripting-to-simulator
Our #Rhai Script transcoded into uLisp #BL602 runs correctly! 🎉
https://github.com/lupyuen/bl602-simulator/blob/transcode/bl602-script/src/transcode.rs#L393-L622