Show HN: WebAssembly runtime embedded in Godot game engine
github.comA WebAssembly runtime embedded in Godot game engine projects. Interact with Wasm modules from GDScript.
Accessing Wasm modules via GDScript provides the following benefits. - Sandboxed environment allows safely loading zero-trust mods/extensions to a project. - Single target means that Wasm modules can be built from any language e.g. Rust, Go, AssemblyScript and the single binary can be run on all platforms. - Fast execution compared to GDScript allows for offloading compute-heavy operations or running bots/mods/etc. at high FPS.
This might be useful for loading mods, bot AI, or entire games (similar to the WASM-4 fantasy console), offloading compute-heavy tasks without using GDExtention C++, or just writing some game logic in your favourite Wasm-supported programming language.
Supports Wasmtime, Wasmer, and other runtimes that adhere to the Wasm C API. Basic function and global access, memory operations via the standard StreamPeer interface, and limited WASI support. Installable for both Godot 3 and Godot 4 as a GDExtension/GDNative addon or as engine module.
Happy to hear feedback and/or receive PRs! How does this perform when exported to the browser? Really looking forward to more language support/features in godot regardless. Unfortunately, web exports are not yet supported. See https://github.com/ashtonmeuser/godot-wasm/issues/18 for more details. Web support is on the roadmap.