Hello Guys!
In this post we’re gonna talk about the absorb mechanic, also know as “parry”, and some the design decisions behind it. This mechanic can be tested in our latest prototype:
https://kemonogames.itch.io/protocorgi-old-parry-prototype
When the player taps the absorb button the corgi will be able to absorb every bullet that hits him during a small time window, bullets absorbed this way will fill the “time stop bar”.
This is an optional mechanic designed to add depth to the game that isn’t required to play through the main campaign, but is desirable for score-based runs. The idea is to let the player discover this game changing mechanic just by looking at the attract mode or from another more experienced player.
The current parry prototype is an exception to this because we needed to polish this ability, so we designed a short stage for this purpose.
In this first implementation the use of the Absorb ability has a small cooldown to prevent the player from abusing this mechanic. If the absorb is successful it will increase the power stored in the “time stop bar”. Now the game has different absorb types, each one with different properties:
Standing Absorb: this one is when the user taps the absorb button and the corgi isn’t moving, the absorb window in the prototype is 0.2 ms and the bullets absorbed this way will fill the power by 0.15 units.
Moving Absorb: this one is when the user taps the absorb button while moving, the absorb window on the prototype is 0.14 ms and the bullets absorbed this way will fill the time stop bar by 0.3 units.
Both types have an extended absorb time of 0.2 ms and a cooldown of 0.06 ms after a successful absorb and 0.3 ms cooldown after a failed one.
After some feedback on the prototype, some players found the mechanic to be unresponsive, that was because they tried to absorb after the bullet hit, and our implementation only works when the player is alive. So we added a new absorb type to fix this issue:
Death Absorbing: this one is available after the player is hit by an enemy bullet and the absorb isn’t on cooldown, if this one is successful, the player is resurrected absorbing nearby bullets. This is the hardest absorb method with an absorb window of 0.1 ms and it fills the “time stop bar” by 0.3 units.
Another important change in the prototype is the player’s hitbox, in our first implementation we had a bullet hell style hitbox:
But in the game, because of the difference between the corgi sprite and the bound nobody could figure out where the real hitbox was, so we increased it’s size to almost match the corgi’s sprite:
This hitbox had more success, but is too big for the final game, this became more and more obvious when the players stopped time and tried to move between enemy bullets, with this hitbox size it’s almost impossible.
Basically the problem is the sprite size and we are aware of that, for the next prototype we will use a smaller bound but clearly outlined with an accessory or another sprite always visible on top of the corgi’s.