Silly physics fun in the browser, but not a complete game (yet).
276 karma · joined July 28, 2021
Silly physics fun in the browser, but not a complete game (yet).
Something strange is going on here.
Nevertheless, I don't disagree with you on your general sentiment towards browser games, I like fast native executables as well.
I'm glad you liked it and will continue to work on it some more, you had some great suggestions that I certainly want to try out.
Yeah, I'm aware of this error, it seems to be related to the shared hosting I'm using, I can't replicate it when serving locally. But as long as it is "falling back to ArrayBuffer instantiation" all is good, and I didn't investigate further because this fallback mechanism actually loads the WASM module faster than the "streaming compile" method (these things are provided by Emscripten).
I have no idea why it didn't load on the first try for you though.
All in all the performance is great for highly interactive stuff that does some fair amount of client side data processing.
This web app is a different take on the typical hex editor/viewer tool. Using this graymap visualization you can easily get a quick overview over binary data and spot interesting structures.
One good example to try out is the Windows Media Creation Tool (MediaCreationTool21H2.exe). If you throw that in you'll quickly see that almost half the data of the 18 MB executable consists of uncompressed bitmaps, which seems kinda wasteful.
Small note on using these OLEDs with 5V: Typically they expect 3.3V Vcc and logic levels, although almost all of them seem to work just fine with 5V. In my experiments with a regular 5V Arduino some OLED modules made weird coil whining noises, I presume this is from the charge pump circuitry. Driving them with 3.3V as specified removed the coil whine completely.
A C++ application compiled via Emscripten ships (a fairly large amount) of JS glue code that exposes all relevant Browser APIs like WebGL, Fetch or other HTML5 stuff to the actual WASM program. As others commented, for WebGL an additional API translation is applied. If the source targets OpenGL ES 2 (or 3 for WebGL 2), this step has almost no overhead however.
And I agree that MS set themselves up for success with this type of scenery, it is fascinating how well the end result looks overall.