- hide UI when gamepad is in use, enable when mouse is in use
- indicate selected UI button using hue rotation animation
- support for gamepad hat
- support for disconnecting and reconnecting gamepads
- sanitize collected data in WASM build and write files per session
- add function for finding the closest UI button in a given direction
- bug fix: prevent character from moving when level loads or play is resumed from the pause menu
- bug fix: cancel character walking sfx when paused
- added Windows 64 bit build target
- added a distributable ZIP to the Linux build target
- added demo build config
- made arcade prompt compatible with demo mode
- add mute button
- add walk and reverse adaptive sound effects to character
- add more flexible error handling to PHP log of play time
- set total memory to 200MB in web build
- add precision to enemy angles to account for accumulating drift
- add challenge coin parameters to wave enemy
- fix flame mirror drift by resetting position each cycle
- fix fish angle desync by using time since init to calculate angle
- scale the field object so it is 16:9
- set active texture once
- add controls for 3D rotation, zoom, and character movement
- update and apply projection and view transformations
- add character class for tracking character logic
- functions for transforming coordinates from world to clip, ndc, and window
- slightly offset UV in fragment shader to workaround character display issue
- fix mixing of texture and color data in fragment shader
- add field of play background plane
- replace non-destructive transforms with resetable destructive transforms in Pad class