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.
> 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.