Software Updates: Go and Webassembly
Another project I worked on briefly at the start of this year was a space-scavenging game in Python-arcade; after thinking about packaging for less technical users I started looking into using Webassembly so it could be browser-based, and maybe learning Go and/or Rust.
First experience with Go, Webassembly and EbitEngine
After looking at a few Rust and Go game engines which supported WASM I was drawn to EbitEngine, a Go 2D game engine formerly known as Ebiten. 2D wasn’t a problem for me as I struggle to get anything done and had to keep things as simple as possible anyway.
Speaking of which, I struggled with Rust although it appeals to me more as a language (especially the emphasis on compile-time optimisation and safety). Go isn’t as performant but it seems to work better for my PTSD-shattered brain which hasn’t been doing full time development for a decade now.
EBStarsTest
After some struggle I eventually got a proof-of-concept going - you can see the results on this page (which should load an *18 MB* WASM file on compatible browsers). Note that touch input isn’t supported, only mouse and keyboard.
This was just enough to get all the “essential” components of a 2D game going:
Sprite graphics
Input and movement
Collision detection
Sound effects
After this point I became a bit disheartened by a few things. Mostly unrelated disasters like a household plumbing emergency, but also the fact that such a limited binary that could barely be considered a game still took up 18MB - larger than everything else in my site put together (11 MB).
The main problem however was another reminder that my medical problems are their own full time job and being disabled just isn’t compatible with working on something that requires code, art, testing, etc.
New Software/Games Page
I’ve reorganised the /software index and moved the old Games & Mods content off to it’s own page (at /software/games. There’s not too much there apart from old mods and stuff from 20+ years ago.
The Numlock game I made for Java 1.5 is a prime example, and if I do manage to spend some time and energy on coding games I’d like to redo this, possibly in JS as a traditional web-based game (not WASM).