-
-
Notifications
You must be signed in to change notification settings - Fork 671
WebAssembly
Hajime Hoshi edited this page Aug 26, 2018
·
28 revisions
As there are differences between the latest Go and Go 1.11 beta, I recommend to use the latest Go here.
The easiest way is to use WasmServe with Go 1.11 or later.
Note that you'd need the master branch of Ebiten (v1.7.x doesn't work with WebAssembly).
GOOS=js GOARCH=wasm /usr/local/go/bin/go build -o yourgame.wasm github.com/yourname/yourgame
cp /usr/local/go/misc/wasm_exec.js .
<!DOCTYPE html>
<script src="wasm_exec.js"></script>
<script>
// Polyfill
if (!WebAssembly.instantiateStreaming) {
WebAssembly.instantiateStreaming = async (resp, importObject) => {
const source = await (await resp).arrayBuffer();
return await WebAssembly.instantiate(source, importObject);
};
}
const go = new Go();
WebAssembly.instantiateStreaming(fetch("yourgame.wasm"), go.importObject).then(result => {
go.run(result.instance);
});
</script>
TBD