Devlog 11: The End!
Technical
Dylan
Hey everyone! This week won’t include a dedicated Technical Deep Dive, because this post will serve as such!
With no major features left to implement, my focus was mostly on polishing, bug fixing, and making sure the game plays and feels as good as possible.
Oh, and I also made the trailer, which you’ll find at the end!
New Arena Design
The last new map!
For this one, I aimed to shift the focus away from getting knocked-off and more toward getting kills. The design is asymmetrical, with smaller platforms to encourage combat and map flow.
Crown Movement
The crown now visibly moves between players, traveling from the previous round's first-place player to the new leader. This helps make the King of the Crown mechanic and current leader much easier to read and follow.
Bug Fixed and Adjustemts
Aim Offset Correction
Originally correct, but after several weapon iterations and an incorrectly imported weapon mesh the aim offset slowly got worse.
Using a gizmo tool from Laurens, I recalibrated it. Players now shoot straight again!
Grenade timers
A grenade could be thrown, picked up, and re-thrown to reset the timer.
That’s fixed now. The grenade can be:
-
Cooked
-
Thrown
-
Picked up
-
Re-thrown
…without breaking the fuse logic.
Zombie Glitch
A classic bug: when a player was ragdolled and then died, their mesh turned grey but the "get up" timer was still active.
So the player would stand up after dying, partially controllable and completely invincible.
Fixed now, but quite funny (and horrifying) moment during testing! It even opened up the idea for a zombie mode card!
Ragdoll Timer reduced
The initial ragdoll time was 3 seconds, lowered to one second. With the addition of interacting with other's ragdoll it made ragdoll weapons way too strong!
Helmet Collision disabled
Juggernaut helmet wascausing ragdoll physics glitches due to their collision settings.
Collision has now been disabled for helmets during ragdoll to prevent weird behavior.
Disable outlines on death
To improve readability, a dead player’s outline is now removed.
This helps clearly distinguish between alive and eliminated characters during chaotic moments
Throw grenades on throw weapon buttons
Throwing grenades was confusing for some players so throwing grenades will always behave the same and start the fuse regardless of which button is pressed to throw it!
Players receiving points on new cycle
With the new crown system, some players’ end-of-round points (especially from round 5 or the podium level) were carried over to round 1.
This is now resolved, rounds start fresh, as expected
Thunder Gun through the wall
This was the biggest fix of the week.
Players could shoot through walls. The Thunder Gun has now been redesigned to:
-
Allow hits around tight corners
-
Prevent hitting through solid walls
Balancing power and fairness was tricky and needed an overall redisign. Using stacked up colliders instead of one big one. The stacked up colliders all behave the same way, being disbaled when hitting the ground. Escencially allowing the blast to hit around corners without hitting through the ground!
As the raycast would simply not work this was my original solution which I implemented over the less loved raycast idea.
Grenades through the wall
Fixed a similar issue where grenades could damage players through walls. This time using a simple raycast. I could improve it further using more raycasts but it is perfectly acceptable the way it is currently. The raycast is performed when the player is hit by the blast to check the validity of the hit. This is done for performance over raycasting everywhere!
Ghost Grenade
If a grenade exploded in a player’s hand after being picked up, the player would stand up holding an invisible grenade and couldn’t pick up anything else until the ghost grenade was thrown triggering an update on the player's state.
This happened because I forgot to reset the released boolean when picked up again!
Honorable Mention
This week I learned something big:
Unreal’s physics are not always frame-rate independent.
Unlike Unity, which uses FixedUpdate for physics (ensuring consistent results across frame rates), Unreal doesn't automatically handle this. I’d incorrectly assumed otherwise. I currently do not know the extent of which Unreal's physics is frame rate dependant and which is not.
Luckily, our game is:
-
Local-only (couch co-op)
-
Not very performance-intensive
So everyone experiences the game the same way. But it’s definitely something I’ll keep in mind for future projects.
Trailer
And finally, here’s the trailer I made to showcase Brawlstorm in all its chaotic glory:
Wrap Up
And that’s a wrap!
Thank you so much for following along throughout development. This devlog marks the end of this project but definitely not the end of the journey. I’ve learned so much, and I’m excited to carry these lessons into future games.
I hope you enjoyed it as much as much as we enjoyed making it!
Feel free to drop any questions, feedback, or comments. The game is free to play and download here on itch!
Until next time, see you in the next project, Dylan out! 🎮
Files
Get -Brawlstorm-
-Brawlstorm-
Status | In development |
Authors | Diji69, SamDK, Mkyv2210, InquisitiveOctopus, alessandromanzini |
Genre | Fighting |
Languages | English |
More posts
- Devlog 10: Polishing Up29 days ago
- Devlog 9: End Of Second Sprint!37 days ago
- Devlog 8: Content In, Bugs Out!44 days ago
- Devlog 7: New additions!51 days ago
- Devlog 6: Easter Break!58 days ago
- Devlog 5: Square 2?85 days ago
- Devlog 4: Back to Square 1!92 days ago
- Devlog 3: Game Demo!99 days ago
- Devlog 2: Playable PrototypeMar 03, 2025
Leave a comment
Log in with itch.io to leave a comment.