The pixel critters have been separated form their pixel parent. Smash pixels to re-unite them!
I also want to cross-build for the web to make distribution easier and to be able to say I've done something with WASM. To that end, I've broken out the game logic into a library and put the ggez client in a separate crate. They're tied together with a Cargo workspace. If I have time, I'll build a WASM version of the game library and build a Typescript client as well.
The game library is responsible for:
- defining game state and moves (including animation states)
- updating the game state in response to moves
The game client is responsible for:
- drawing the game state
- the game loop clock (because I can't rely on the hardware clock in the WASM library)
- handling effects (e.g. user input✓, sounds)
I want to have sub-pixel physics,✔ with gravity and collisions.✔ I want destroying blocks✔ to randomly perturb the ball's path to emulate chaotic collisions.✔
I want chunky low-rez sounds.
I want to do touch/mouse only controls✔ to make mobile-web clients easier.
I'll record my build process with Just.