Re:Pause and Resume WebAssembly with Binaryen's Asyncify
by SpaceManiac on Wednesday July 17, 2019 @09:38PM
(#20465886)
I recently ported an early-2000s 2D game to WebAssembly and old Asyncify was too clunky and the Emterpreter was too slow to be useful. To get things working comfortably I ended up porting the game loops to use Clang's support for the C++ coroutines TS, with a simple scheduler that yields control back to the browser after every screen flip. I will have to see if this new Asyncify can do any better.
[ Parent
| on HN ]
Re:Pause and Resume WebAssembly with Binaryen's Asyncify
by aidanhs on Thursday July 18, 2019 @02:34AM
(#20467319)
> To get things working comfortably I ended up porting the game loops to use Clang's support for the C++ coroutines TS, with a simple scheduler that yields control back to the browser after every screen flip.
Oh nice, is this code (or a write-up) available anywhere?
A couple of years ago I was working on porting Wesnoth and got it working...except it was too slow with the Emterpreter.
I'll try this new asyncify, but your approach sounds like an interesting backup if I were to resurrect my efforts.
Re:Pause and Resume WebAssembly with Binaryen's Asyncify
by SpaceManiac on Friday July 19, 2019 @01:21AM
(#20476369)
I've been meaning to write a proper blog post for a while, but in the meantime here is a gist with notes[1] and the code in context[2].
[1] https://gist.github.com/SpaceManiac/79a507858fbe3946a0c40e99...
[2] https://github.com/SpaceManiac/HamSandwich/blob/emscripten/s...