Skip to content
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

Add WASM module loader for AI and other pluggable functionalities #89

Open
samoylovfp opened this issue Jan 24, 2023 · 1 comment
Open
Labels
ai Enemy or Character behavior enhancement New feature or request gamemod game logic related server

Comments

@samoylovfp
Copy link
Collaborator

samoylovfp commented Jan 24, 2023

Proposal to add foundation for a WebAssembly module loader. This will allow developing sandboxed plugins, developed in any language that can target WebAssembly

Options I found are

1. Wasmer

Pros

  • Industrial strength interpreter guaranteeing correctness and performance.

Cons

  • Contains native code, limits platform support to amd64-{darwin,linux,windows}.

2. KTWasm

Pros

  • Pure-kotlin implementation.
  • Only ~3k lines of code, should be easy to debug and improve.

Cons

  • Seems abandoned, lacking thorough documentation.

I would go for the second option, I don't think performance will be of an issue. Switching between options should be fairly straightforward as well.

If this sounds like a good idea I would require help with packaging or vendoring the dependency and integrating it into the game loop

@samoylovfp samoylovfp added enhancement New feature or request ai Enemy or Character behavior gamemod game logic related server labels Jan 24, 2023
@demoth
Copy link
Owner

demoth commented Feb 12, 2023

So far the option 3. GraalVM WASM looks most promising approach

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ai Enemy or Character behavior enhancement New feature or request gamemod game logic related server
Projects
None yet
Development

No branches or pull requests

2 participants