Taming the Dash | Thomas Claiborne | 02/27/2025
The Problem:
During this week's sprint for our Ascension Zero project, I encountered an unexpected issue while implementing the character dash mechanics. The dash feature was intended to give players a quick burst of movement in any direction they're inputting (or forward by default), both on the ground and in midair. However, testing revealed that our air dash was launching the player significantly farther than the ground dash, despite both using the same dash distance variable.
This inconsistency would create poor player experience, as users wouldn't develop reliable muscle memory for the dash mechanic. In a combat-focused game like ours, where precise positioning is crucial, having predictable movement mechanics is essential. The exaggerated air dash was causing players to overshoot platforms and miss attack opportunities, creating frustration during playtesting sessions.
The Solution:
After investigating the issue, I discovered that the discrepancy was caused by the different physics states between grounded and airborne movement. When a character is in the air, they experience less friction and have different movement constraints compared to being on the ground. This meant our character launch function was applying the same impulse force in both states, but the resulting movement was dramatically different due to these underlying physics differences.
To solve this problem, I implemented an air dash distance modifier in our character controller class. This solution involved several key steps:
- First, I added a system to detect whether the character was grounded or in the air when the dash was triggered using the character movement component.
- I created a configurable "Air Dash Percentage" variable that designers could adjust through the editor to fine-tune the feel. This percentage would determine how much of the normal dash distance should be applied when in the air.
- When the dash is triggered, the system now applies a scaled-down distance value for air dashes, using the ground dash distance multiplied by this adjustable percentage.
- I also temporarily modified several physics properties during the dash to ensure consistent behavior, including friction and air control values, restoring them after the dash completed.
After implementing these changes and running several playtests with different percentage values, I found that 45% of the ground dash distance provided the most consistent feel between ground and air dashes. The result was a much more predictable and satisfying dash mechanic that players could rely on regardless of their state.
This solution not only fixed the immediate issue but also gave us a flexible system that can be easily tweaked during playtesting to fine-tune the game feel. Our dash system now offers consistent spatial control for players, which is critical for the combat and movement precision our game requires.
Get Ascension Zero
Ascension Zero
An Action RPG where you train and fight to become the strongest!
Status | In development |
Authors | BrokenPixelStudios, Thomas Claiborne, JGBrokenPixel, CJMireles |
Genre | Fighting, Action, Role Playing |
Tags | Action RPG, Singleplayer, Unreal Engine |
More posts
- Time is NOT an Ally3 days ago
- Fixing Assets3 days ago
- Implementing Settings | Jeylon Guidi | 02/26/20254 days ago
- The Stutter Bug9 days ago
- Hit Detection Challenges | Thomas Claiborne | 02/21/20259 days ago
- The Journey Continues... (Part 1)9 days ago
- UI Widget Construction | Jeylon Guidi | 02/20/202510 days ago
- The Journey for Assets16 days ago
- Turning the Enemy Around (Literally)16 days ago
Leave a comment
Log in with itch.io to leave a comment.