Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags
(1 edit)

Thank you for the explanation. The way you've written Strigoform, it looks to me that all drawing operations are being delegated to Javascript (with HTML5 canvas?) Wouldn't another codeflow be to have WASM for backend, JS for drawing the bitmap on screen and SharedArrayBuffer for the bitmap (shared between WASM and JS)? Is this possible?


edit: I'm reading the Hoot manual now, trying it out.

(1 edit) (+1)

All the drawing operations have to be delegated as a wasm module cannot perform any i/o without support from the host system. It's not currently possible to write to a SharedArrayBuffer from wasm (should get resolved some day), but if it was then you could write a purely software renderer in Scheme and just send the final bitmap over to JS to render in a canvas. You could do this without SharedArrayBuffer right now but it requires a byte-by-byte copy from wasm to JS which isn't great. I wouldn't recommend this approach anyway because your game wouldn't be utilizing the GPU at all. HTML5 canvas uses hardware acceleration, which is why I think it is a good option for the time being.

In the future, when we can efficiently share blobs of binary data without copying, WebGL/WebGPU will be the way to go. This will open up the path for existing Guile game libraries like Chickadee to run on Hoot.