Brawl Heaven
Brawl heaven is a platform fighter where you can draw! The objective is to knock your opponent out of the map and you got all the creative tools that you need! While drawing you have the option to change the shapes property to one of 4 things:
black hole: It sucks in everyone to the center
Explosion: After a few second detonate an explosion that knocks away everyone it touches
Smoke screen: Place a smoke screen in the designated area and shape
Healing zone: Place a zone where everyone inside of it heals for a small amount
Development
Brawl Heaven was my third project, and it pushed me to grow a lot in terms of planning and scope management.
I focused on creating unique mechanics where players could draw shapes that turned into different gameplay effects, like a black hole that pulls in opponents, an explosion that knocks players away, a smoke screen for cover, and a healing zone for recovery.
These mechanics taught me about designing abilities that change how players approach a fight.
One of the biggest lessons I learned from this project was the importance of scoping and polish.
While the core gameplay worked, I realized how crucial it is to refine the “feel” of mechanics and focus on usability.
Designing the drawing mechanic along side the combat taught me how challenging it is to balance creativity and usability.
Looking back, I would improve the project by optimizing the controls, smoothing the overall gameplay flow, and adding more polish to the visuals and feedback systems. Despite its flaws, Brawl Heaven gave me valuable experience in experimental design, scope management, and iteration that I’ve applied to later projects.
Project Info:
Role: Programmer & Scrum
Team: Silver , Sam & Can
Time: 8 Weeks
Github
Game Trailer
Explanation
This script controls the Painter character’s ultimate ability in Brawl Heaven. The ultimate lets the player draw a custom shape in real time, which then gets turned into a mesh with different gameplay properties.
When the ultimate is activated:
The player’s movement is paused and a cursor system is spawned to allow drawing with the analog stick
The script tracks drawn points and ensures the loop closes properly before generating a mesh
A custom triangulation algorithm converts the drawn shape into a 2D mesh with UVs and colliders
The generated mesh is given one of several properties (explosion, smoke screen, black hole, healing zone), depending on player input
Particle systems and materials are applied to visually represent the chosen effect
This script was one of the most technically challenging parts of the project, since it required combining player input handling, real-time mesh generation, collider creation, and custom geometry logic into a single system.
Code Snippet
Everything I have learned
Local Multiplayer
This is the first time I made a proper local multiplayer game and I learned the importance of good code structure.
At the beginning I struggled with separating the players and their controllers., and after it was managing the UI with a controller.
Messy Code
I had to write a player controller and I realized how big of a hassle it was to keep all the interactions organized.
The code was not modular or easily scalable at all which made it hard to work in.
This led to either bugs, less fluid gameplay or unnecessary development time since it was hard to keep up with the logic. Every script did a little bit of everything.
Animations
This was the first time I had to implement animations and add proper collisions to it.
After the project was over I learned about animation events and I think that would’ve made it a lot easier to handle collisions and other timings.
Scope Creep
We wanted to add allot of stuff to the game before the fundamental game was even done.
I added unnecessary mechanics that only made it harder for me to work on the game which hindered the development and made me cut corners on things that were more important.
So now we know the importance of proper planning and documentation.