I have exported a small game for the web using the HTML5 export in project settings. Nothing fancy mostly all standard. On Android and PC no problem to load the game, but on iOS 15.8 I get a weird error in the Javascript console and loading stops, so the loading bar stays on the screen. After some back and forth with an LLM it seems that opcode 250 or SIMD in webassembly can be the culprit because that isn’t supported in iOS 15.
So i created an empty game with only a main 2D scene and a Hello World label and tried again. Still not working on iOS 15, but on iOS 25 there is no problem at all and everything loads like expected. According to the LLM SIMD is added in iOS 16.
So I have some questions:
Is there an option in the export to disable SIMD
Should I report this to the bugtracker because there is no mention of minimal OS-version in the documentation
It’s on iOS and I’m on a GNU/Linux so copy-past isn’t going to work . Back to hard typing labor. There are different errors, the first time I load the page with the game, I get:
CompileError: WebAssembly.Module doesn't parse at byte 88: invalid opcode 253, in function at index 231
Repeatedly reload the page and I always get:
CompileError: WebAssembly.Module doesn't parse at byte 5: can't get Function local's type in group 1, in function at index 0
This is a from a game with just one scene with a label and then exported as a HTML game.
I think iOS 15.8 is too old for modern godot web versions.
Apples implementation of WebGL technically exists on iOS 15.8 but as far as I know it has a lot of bugs and that’s most likely causing godot to simply fail.
If you absolutely need to support older devices with web builds, I recommend Godot 3 instead.
Yeah well, I’m keeping it for the moment, but to test the game on iOS, I had an iPhone 7 laying around with the latest 15.x. After starting the game I got the error so I digged into it to see what could cause it. Others with newer versions of iOS reported the game working so no big drama.
I will report the issue however so others can be made aware of this.
Because the entire rendering engine and backend was re-written from scratch. This is quite normal, when technology moves on, older devices won’t be able to keep up.