Comments (4)
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.
from arsenal.
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:
- amethyst/amethyst#1729
- https://community.amethyst.rs/t/scripting-what-do-we-need-to-get-there/958/9?u=zicklag
from arsenal.
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.
from arsenal.
Closing as we prune issues, but the start to this effort has been made for bevy here: bevyengine/bevy#623.
from arsenal.
Related Issues (20)
- Scripted Asteroids Demonstration 🚀
- Fix Mac Arsenal Compile HOT 2
- Export Default Material for glTF
- Clean Up and Organize Makefile HOT 3
- Automated CI Builds HOT 1
- Handle Unsaved Export More Gracefully
- Expressing my interest in developing Arsenal HOT 7
- Exporting Large Meshes Causes Overflow Error HOT 1
- How Can I Help Arsenal Development? HOT 14
- Create Arsenal Dev Guide
- Dependabot couldn't find a Cargo.toml for this project HOT 1
- Dependabot couldn't find a Cargo.toml for this project HOT 1
- Create Cross-Compiling Documentation HOT 1
- How to get the addon HOT 10
- Iconic Arsenal logo needed HOT 10
- Benchmark Legion and Amethyst HOT 2
- PhysX physics engine HOT 2
- Use armory_templates as examples
- Optimize Exported Meshes with Meshoptimizer
- Establish Arsenal Scripting Plugin
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from arsenal.