Choose abilities that change how your character fights.
I was the sole Unity/C# developer for the version of Frosty Brawler Go! reviewed here. I designed and built the game’s code: a journey of 60 in-game days, automatic turn-based battles, and a choice of three abilities at each level-up. These abilities add attacks, change existing attacks or improve the character’s combat stats.
I programmed the game. The team supplied art, audio and design input.
I was responsible for Unity/C# programming. The team supplied art, audio and game-design input.
My responsibility
Unity gameplay and supporting code
I built the journey, battles, abilities, attacks, status effects, enemies and interface behavior. I also built a reusable system that coordinates character animation with gameplay, connected the game’s services, updated the code during development and configured Android builds.
Team contribution
Art, audio & game-design input
The team supplied the visuals, audio and game-design input. I programmed their work into the Unity game and maintained the code as it developed.
How the journey progresses
A working ability can change the next battle.
Journey events, automatic battles and ability choices all affect the same character. As the player advances, their choices change the character’s attacks, effects and stats.
01
Journey
Advance one day
Each day brings a story message, a stat change, experience, healing or a battle. The journey history records the result of each event.
02
Battle
Resolve the battle
Player and enemy attack queues execute in controlled turns. Damage, blocking states, periodic effects, death and revive outcomes complete before the journey continues.
03
Ability choice
Choose one of three
At each level-up, the player chooses from three abilities. The available choices can add an attack, change a compatible sword attack or improve a combat stat for the current journey.
04
Build
Use the new ability in later battles
The new attack, effect or stat change becomes part of the character’s current abilities. It changes how they fight as the journey gets harder.
How abilities work together
Supported abilities change the character’s current attacks and stats.
The game starts from reusable ability templates. Supported upgrades change copies of those templates for the current journey, and the battle system carries out their actions in order.
01
Choose an ability
Ability choice
The game selects three options from ability definitions stored in Unity ScriptableObjects.
02
Apply the change
Add or modify
The supported abilities add an attack, add an effect to a compatible sword attack or change a character stat.
03
Current journey
Separate copies for each journey
The game creates copies of attack and effect templates that can change during the current journey.
04
Battle result
Resolve each action in order
Turns resolve attacks, chance, status duration, blocking and cleanup in a predictable order.
03
Three ways an ability changes the character
Add an attack
Add another attack to each turn.
Fire and thunderstorm upgrades add attacks after the attacks the character already has.
Sword baseline
Fire attack
Thunderstorm attack
Modify the weapon
Change what the sword can do.
Critical, poison and freeze upgrades add their effects to compatible sword attacks the character already has.
Critical chance & damage
Poison over time
Freeze / skipped attack
Change the run
Improve health, attack or defence.
Health, maximum health, attack and defence upgrades feed the same parameter model used by journey events and enemy scaling.
Health & max health
Basic attack
Defence
Why abilities use reusable code
Add abilities without rewriting the battle system.
Each ability makes a specific change: it adds an attack, attaches a compatible effect or changes a stat. The shared battle code still manages timing, targets and the end of each action. This makes it easier to add abilities and understand how they work together.
Supporting game systems
Abilities connect to the rest of the journey.
Journey events, battles and player progress track what happened and what comes next. A separate reusable system handles inventory and saved data.
Journey events
A journey of 60 in-game days.
The audited build sequences 21 parameter events, 13 battles, 13 experience events, 11 narrative messages and two healing events into one journey.
Day route
Event history
Experience & levels
Completion / defeat
Combat systems
Managing turns, enemies and temporary effects.
Player and enemy coroutines coordinate attack queues, targets, damage, active effects and cleanup across five enemy archetypes with day-based scaling.
Six concrete attacks
Three status effects
1.5% daily scaling
Revive flow
Inventory & saves
A separate system manages items and saved data.
A separate inventory module supports fixed, dynamic and unlimited containers, stacking and sorting, plus local JSON saves with backup and integrity checks. Item data includes rarity and effect definitions; equipment bonuses are not wired into the live combat loop.
Fixed · dynamic · unlimited containers
Stacking & sorting
Rarity & effect definitions
Save recovery
Mobile services
Audio, analytics, rewarded ads and Android builds.
Zenject composition, DOTween sequences, FMOD audio routing, Firebase and Meta analytics hooks, AdMob rewarded flows and Android build settings connect the gameplay to a testable mobile product.
Analytics events
Rewarded reroll
Rewarded revive
Android version code 54
Project code and content
The project in numbers.
These counts cover custom code under Assets/Scripts in the July 2025 project version reviewed here. They describe code and configured content, and do not measure player numbers or commercial results.
234
Custom C# files
10,600+
Nonblank lines of custom code
60
Configured journey days
106
Non-merge commits touching custom scripts, attributed to Artem
Unity 6
Audited project version
Ability data
Each journey has its own ability data.
ScriptableObject definitions create attack, effect and parameter instances for each run, so abilities can safely mutate the active build without rewriting shared source assets.
Custom animation controls
Character animation follows the action.
I built a reusable unit-animation orchestration layer on top of Unity Animator. Per-character ScriptableObject profiles map shared states to character-specific clips and configurable speed, start offset, layer, impact timing and transition overlap. Cross-fades, clip sequences, curve-based position interpolation and callbacks coordinate movement, attacks, hits and deaths. The shared controller uses 10 profiles across 14 character visuals in the audited snapshot.
Difficulty curve
The player and enemies grow stronger.
Player stats and abilities accumulate through events and level-ups, while enemy health and attack scale by elapsed day; encounter selection prefers unused eligible enemy types and falls back when that pool is exhausted.
Startup & testing
Organized startup and inventory tests.
Boot scenes and dependency injection organize startup, while pooled damage text reduces repeated allocations. The repository includes ten Unity editor-test methods for inventory behavior; their current pass status was not independently verified.
Public project video
Watch a new ability change the next battle.
The 1:18 public gameplay video shows the day route, narrative and parameter events, battles resolving after the Battle prompt, a three-choice skill draft, Freezing added to the weapon and triggering in combat, plus defeat and the revive decision.
Gameplay video and thumbnail were published by Artem Shkabura on his public YouTube channel on May 27, 2025.
Completed work
What I built for this project.
01Unity programming for the journey, battles, abilities, enemies, interface and player progress
02A configurable journey of 60 in-game days with battles, experience, stat changes, story messages and healing
03Reusable attacks and effects that let upgrades change the character’s abilities within the existing battle system
04Custom controls built on Unity Animator that select character clips, blend animations smoothly and time movement and attacks to gameplay
05A separate inventory save system, analytics connections, rewarded-ad actions, audio integration and Android build configuration
This case documents my Unity/C# implementation, the inspected July 2025 project snapshot and publicly visible gameplay. Repository counts are scoped to Assets/Scripts in that snapshot. It does not claim authorship of the art, audio or game design, a store release, current availability, audience size, retention, revenue or live campaign results. Experimental ECA and reflection layers are excluded from the delivery claims above.