Summary
This patch addresses a lot of the bugs and problems that have plagued the game since day 1. It serves as a foundation for further development by having automated testing and continuous integration. There are no extra features or changes in level design, this is mostly for redesigning, refactoring and fixing of the original rushed #mizjam1 release.
Enhancements
- Optimized tetromino solving (confirmed by an automated test summoning 100 tetrominos without slowdown)
- Player can now smoothly glide against walls and blocks without getting stuck like glue
- Players can push and dash multiple enemies out of the way to avoid getting swarmed by ducks
- Options menu now has volume and resolution control
Bugfixes
- Prevent rotating and placing tetrominos at the same time which creates a race condition resulting in overlapping blocks
- Resolved release build crashing due to dangling references, now the builds are exported as release builds rather than debug
- Prevented boss from teleporting to the same place as gunners in Level 03
- Fixed memory leaks and improved performance by reducing the number of _physics_process() calls
- Fixed a visual bug with the flamethrower that made it seem like blocks had no effect if they are summoned at the origin point of the flames
- Fixed multiple blockmancer race condition where they could all summon at the exact same space and instakill the player; now they could still all target the same space, but only 1 block can actually appear and damage the player for any given space
- Fixed unstuck logic so players will be properly moved to an adjacent empty space if trapped by dead block summons; note that it is still possible that under some circumstances, the player can be moved over the walls if there is not enough space
- Prevent duck area damage and single tetromino solve from damaging the same entity more than once
Balance
- Slightly faster player move speed
- Player tetromino summoning time changed from 1 second to 0.5 seconds
- Player tetromino decay time changed from 3 seconds to 4 seconds
- Dead block damage lowered from 50 damage to 40 damage
- Flames no longer instantly kill the player, they now do 20 damage every 0.5 seconds
Other
- Moved player speech bubble from bottom HUD to slightly above the character to make it more attention-grabbing so players can read and close the dialog rather than ignoring and forgetting about it until it becomes a subtle visual impairment