Coder Social home page Coder Social logo

Comments (4)

zicklag avatar zicklag commented on June 2, 2024

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.

zicklag avatar zicklag commented on June 2, 2024

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:

from arsenal.

zicklag avatar zicklag commented on June 2, 2024

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.

zicklag avatar zicklag commented on June 2, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.