Just released version 2 of my arcade platformer which takes place in an increasingly unstable world.
Stability Failing: https://professir.itch.io/stability-failing
Based on player feedback over the past few days, I focused this patch on these areas:
- tightening up the physics
- reducing the difficulty
- quality of life for returning players
Deep dive on design decisions for fellow game developers:
Physics
On initial release, the platforms felt slippery and there were inconsistencies in the collision detection. The slipperiness was addressed by reducing the maximum horizontal speed allowed when on the ground and introducing a drastic reduction in horizontal velocity upon first contact with a platform. This allows the player to "stick" the landing and it feels much better.
The collision detection inconsistencies boiled down to the size of my hitboxes. In order to avoid clipping through a platform at high vertical velocity, I made the platform hitboxes a few pixels tall. This solved the clipping issue, however it introduced inconsistencies in vertical positioning of the player on a platform. Sometimes the player would be standing on the platform and sometimes they would be a few pixels above the platform. To address this, I simply forced the player's position to be a pixel above the platform upon first contact with the platform.
Difficulty
The difficulty was reduced in a couple ways. First, the starting platform increased in size by 66%. Second, the time it takes for platforms to fade away after contact was increased. Since platform fade-away time decreases on each level, this change flattened the difficulty curve a bit for both earlier and later levels.
Quality of life
Since my game breaks down over the first 11 levels (to fit the "unstable" theme of Ludum Dare game jam), it sometimes feels like the game doesn't really "start" until level 12 for returning players. Thus, I added an option to skip the tutorial in the menu. This allows anyone to start the game at level 12 (when things get interesting and more difficult).