-
-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Amethyst Scripting Support #10
Comments
We are currently investigating possibilities for scripting in Amethyst. Right it looks like integrating WASM would be ideal for its performance and sandboxing. That is very experimental. If WASM was integrated we could use WASM Python to support Python scripting and maybe support Dyon as well. We want to support Python because of its overwhelming presence inside of the Blender community, and I am interested in Dyon because of its lack of a garbage collector and how integrated it is with Rust. If we do some benchmarks and Dyon is faster than Python, then we might use Dyon as the compilation target for our Logic Nodes. The goal for Logic Nodes will be to have them compile to the fastest language that isn't complicated to write. This will keep it so that less advanced programmers can still create their own Logic nodes without much trouble, but still provide the best performance out of our available scripting languages. |
I'm going to try wrapping the Arsenal runtime with a C API for scripting instead of using WASM. WASM will be great for modding because of its sandboxing, but we don't want to use it for the core game because it will have a performance hit. If I get a working C API, then we will look into how we want to integrate a C scripting API into the Amethyst codebase. Once we have a C API we should be able to script Arsenal with Rust. After that we can attempt Python bindings with Rust through the C API. References: |
For scripting support we are switching gears a bit because of the potential for Legion to be a candidate to replace Specs as Amethyst's ECS. There has already been some work done on a scripting API to Legion in this fork. We decided that it makes more sense to work on proving out whether or not Legion will work for Amethyst than to invest work in a scripting API for Specs. The discussion is here. We are currently working on benchmarks to validate that Legion will provide the performance benefits that we feel that it might. |
Closing as we prune issues, but the start to this effort has been made for bevy here: bevyengine/bevy#623. |
Get basic scripting support in Amethyst.
The text was updated successfully, but these errors were encountered: