Video wird geladen...

Video konnte nicht geladen werden

Zur Startseite

I'm making progress on the auto-sync WebAssembly project. This video shows a live-editable AssemblyScript program. Both the program and its state are auto-synced between browser windows.

30,809 Aufrufe • vor 3 Jahren •via X (Twitter)

11 Kommentare

Profilbild von Ian Kettlewell
Ian Kettlewellvor 3 Jahren

AssemblyScript didn't work great with this initially so I introduced a new rollback strategy that performs better for Wasm produced by AS. For now the library will pick a rollback strategy based on a heuristic or optional setting. I'd like to simplify that but for now it works.

Profilbild von Ian Kettlewell
Ian Kettlewellvor 3 Jahren

Next steps: * Chase down rare desyncs * Fix a few time synchronization issues * Improve how disconnects / reconnects work

Profilbild von Avi 💜 Magic Circle
Avi 💜 Magic Circlevor 3 Jahren

This looks super cool - can you share more about what you’re building?

Profilbild von Ian Kettlewell
Ian Kettlewellvor 3 Jahren

Thanks! I'm building a library that lets you write multiplayer / synced WebAssembly programs, but you don't need to think about the networking details at all. It effectively makes the same Wasm program 'magically' run in multiple places at once.

Profilbild von Wil Chung
Wil Chungvor 3 Jahren

Is there a name to the project? Will it be stand-alone open source or baked into Bloom?

Profilbild von Ian Kettlewell
Ian Kettlewellvor 3 Jahren

I'm still thinking about a name. See this thread: This will be stand-alone from Bloom. My ideal plan: Open-source the core so people can hack it, improve it, and self-host it. But also offer paid hosting with a free tier that is dead-simple to use.

Profilbild von Daniel Bakas
Daniel Bakasvor 3 Jahren

Hi again @kettlecorn! Question here: Could this work with Three.js?

Profilbild von Ian Kettlewell
Ian Kettlewellvor 3 Jahren

Someone would have to write a layer to communicate between this and Three.js, but otherwise there's no reason it couldn't. A possible scenario is all networked logic runs in this library and all rendering / visual stuff runs in Three.js.

Profilbild von Andrii Maliuta 🇺🇦 😻
Andrii Maliuta 🇺🇦 😻vor 3 Jahren

Awesome!

Profilbild von 🍞☁⛩️ (realms/acc)
🍞☁⛩️ (realms/acc)vor 3 Jahren

How many connect users have you tried? This is very interesting

Profilbild von Ian Kettlewell
Ian Kettlewellvor 3 Jahren

I haven't stress tested it yet. In theory it can scale to many users but it may be limited by overhead in the peer-to-peer connections. If it scales poorly there are approaches to fix that but those wouldn't be implemented right away.

Ähnliche Videos