Video yükleniyor...

Video Yüklenemedi

Ana Sayfaya Dön

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 görüntüleme • 3 yıl önce •via X (Twitter)

11 Yorum

Ian Kettlewell profil fotoğrafı
Ian Kettlewell3 yıl önce

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.

Ian Kettlewell profil fotoğrafı
Ian Kettlewell3 yıl önce

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

Avi 💜 Magic Circle profil fotoğrafı
Avi 💜 Magic Circle3 yıl önce

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

Ian Kettlewell profil fotoğrafı
Ian Kettlewell3 yıl önce

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.

Wil Chung profil fotoğrafı
Wil Chung3 yıl önce

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

Ian Kettlewell profil fotoğrafı
Ian Kettlewell3 yıl önce

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.

Daniel Bakas profil fotoğrafı
Daniel Bakas3 yıl önce

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

Ian Kettlewell profil fotoğrafı
Ian Kettlewell3 yıl önce

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.

Andrii Maliuta 🇺🇦 😻 profil fotoğrafı
Andrii Maliuta 🇺🇦 😻3 yıl önce

Awesome!

🍞☁⛩️ (realms/acc) profil fotoğrafı
🍞☁⛩️ (realms/acc)3 yıl önce

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

Ian Kettlewell profil fotoğrafı
Ian Kettlewell3 yıl önce

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.

Benzer Videolar