#Wasvy - WASI Modding

14 messages ยท Page 1 of 1 (latest)

smoky gyro
timber glade
#

Merci!

compact berry
#

just wanted to chime in and say this is really exciting :) my game's nowhere close to wanting mod support but this'll be the first crate I look at it when I get to that stage

timber glade
#

Wasvy is also made by @severe vapor

smoky gyro
timber glade
#

Thank you!

timber glade
# compact berry just wanted to chime in and say this is really exciting :) my game's nowhere clo...

Thanks! That sounds awesome. We still have a lot of work left to do, and modding is still a bit clunky at the moment. We're working on a CLI that will solve a lot of problems with creating new mods! I'm aiming to have that ready for the bevy 0.19 release.

The idea long term is not just to support modding just for modders, but also for game developers! Wasvy can hot-reload mods and their systems while your game is running (and theoretically much faster than what the dioxus cli currently offers).

Implementing custom features in wasm could allow you to easily swap features in and out at runtime for easy development. You could build debugging overlay mods that you ship with your game and disable. That way there is no runtime cost, but modders can still enable it if/when they need to.

compact berry
#

Honestly part of the reason I'm interested is that my game is a programming game- I'm currently just targeting Python support to keep things super simple, but in the future I'd like to allow players to write their programs using Wasm allowing a bring-your-own-language approach. It'd be even cooler if they could use a similar workflow for mods, just with a different WASM interface.

timber glade
# compact berry Honestly part of the reason I'm interested is that my game is a programming game...

That should be possible! The cli has out of the box support for distributing any custom interfaces your game might have (in addition to wasvy-ecs.wit). And by using the cli's lib directly in your game, it can be in charge of locating build sources on the filesystem, creating new sources, updating, and building code without needing external tools for players.

The thing I'm not sure of is how to integrate coding from inside the game with the external sources that are needed to build the wasm binary; along with other nice to have things that IDEs often provide for you. But definitely reach out if you want to brainstorm some possible ideas or need advice ๐Ÿ˜„

whole lagoon
timber glade
#

Sure. When configuring ModloaderPlugin::devtools you can configure what wit interfaces are shared with the CLI via bevy remote (this code exists on main, but the CLI is not yet functional). The default includes wasvy-ecs, but that can be easily be overriden. Though you won't be able to achieve very much without it. I encourage you to read the wit interface, where you'll find stand-ins for bevy schedules and components among others. Basically the untyped primitives everything else is built on.

#

Wasvy is currently missing a way to restrict component access by type. You can restrict what entities via ModAccess/Sandbox. I want mods to be able to access any component in the game, whether the game developer has generated wit interfaces for the components or not (because it's hard to predict exactly how modders will want to mod your game). But of course I also want the game developer to have more control when necessary, to restrict access to sensitive components. But I am biased by my own usecase. We have a discussion for this topic here: https://github.com/wasvy-org/wasvy/issues/22 feedback would be appreciated ๐Ÿ˜„

GitHub

There should be a role-based permissions system defining what components/resources different mods have access to. At runtime this affects the results returned by mod queries, and prevents mods from...

timber glade
#

@whole lagoon in case you haven't seen my replies above ๐Ÿ˜‰