Closed fire closed 1 month ago
Logs from @lyuma
With this design, wasm modules would expose methods which would implement godot methods, and we would come up with some design for exposing properties (perhaps _get, _set and _get_property_list methods) in short, instead of an object that a user would have to manually instantiate and reference from GDScript, a Wasm module would be a first-class Godot script
the main challenge we're going to have to solve is interfacing with Godot's Variant type, possibly as a buffer representing a serialized variant (array of bytes), or converting ints, floats and so on into their respective types
we did have a CustomCallable implementation in our previous wasgo implementation for binding signals which is basically a wrapper around a function from a wasm module
@ashtonmeuser What the last piece external memory support?
Closing due to work done elsewhere. Thanks!
V-Sekai aims to provide a high-performance platform for virtual worlds and avatar-based social games. The current implementation relies on GDScript or C++ native modules, which may not offer the desired performance, user agency, complex calculations, graphics rendering, and algorithm execution.
The proposed solution uses WebAssembly (Wasm) to enhance performance and functionality in V-Sekai through User-Generated Content (UGC) Wasm modules. These modules are attached to an existing base node as a script, enabling them to provide property data and behavior for nodes in the virtual world or game.
https://v-sekai.github.io/manuals/decisions/20230611-wasm-in-v-sekai.html