Pitaya! is a PC 3rd Person Action game developed in Unreal Engine 5 as a capstone project at UCI made with a team of 8. The game is an interesting twist on the normally gruesome combo-based fighters on the market. Pitaya! will be coming to Steam soon!
Iterating Health – The health system went through three major iterations, each shaped by the core fantasy of embodying hunger rather than just surviving damage. By testing and refining how the player’s vitality interacts with the curse, I arrived at a design where the UI and mechanics reinforce the constant tension of being sustained and starved at the same time.
Giving Player Expression in Combat – I set out to design combat where every input mattered. Combos, blocks, and even healing had to feel like opportunities for expression. By pairing a flexible player toolkit with reactive enemy systems, I turned even a single enemy into a sparring partner that let players choreograph their own epic moments.
Building Interconnected Systems – I realized early that features on their own felt hollow, but when tied back to the skill tree they became part of a larger player fantasy. By tying combat, companions, quests, and exploration into one interconnected loop, I built a game where every choice shaped not just power, but identity.
Quick Links to Sections
Deliver a berserker fantasy where the longer you fight on the edge of death, the stronger you feel.
Avoid overwhelming the player with too many systems or UI distractions.
Ensure every attack feels like a gamble, trading survival for power.
I was designing for players who want to feel unstoppable, but who also crave tension in every moment.
They need a system that rewards aggression but punishes carelessness.
They want to feel empowered, but never safe.
My challenge was to capture that balance of risk and reward without breaking clarity.
My first solution was inspired by Yakuza and fighting games: three hunger bars (Peckish, Famished, Ravenous) next to the health bar.
What worked: Every hit filled the bars, making the player feel stronger and more dangerous as fights dragged on.
Why it changed: Four bars (3 hunger + 1 health) created visual clutter. Players felt confused and punished when the bars maxed out and started draining health.
I had achieved the fantasy, but the cost was clarity. The system rewarded aggression, but drowned players in UI that didn’t match the simplicity of the rest of the game.
To simplify, I reduced the system to one hunger bar + one health bar.
Eat Actions now tied to specific hunger thresholds.
At max hunger, the bar caught fire and began draining health.
Cleaner, but still flawed: at GDC playtests, players continued to die frequently at full hunger, feeling punished for doing well.
Cutting down the UI solved the clutter problem, but not the core design issue: hunger felt like a punishment disguised as a reward.
The breakthrough came when I asked: why separate hunger and health at all?
I merged them so the health became hunger.
Every attack now costs health, but the closer to death you were, the more powerful you became.
Eat Actions could be performed at any time, except at full health, where overeating caused the player to fall asleep. The sleep mechanic was added so that players must be intentional about their attacks.
Retrospect: If I had more time to iterate on this mechanic I would be interested in seeing ways to make the sleep not sneak up on the player while still keeping the visual clarity of less bars.
This pivot turned the mechanic from clunky to elegant. The fantasy was intact, the UI simplified, and the risk-reward system was now intuitive. It no longer punished aggression; it thrived on it.
Removing the hunger bar entirely seemed risky, but it unlocked the design’s elegance.
By fully committing to the berserker fantasy, the mechanic went from “just another resource bar” to the core identity of the game.
Deliver a combat system where players feel powerful and expressive but not mindless.
Create enemies that reinforce tension, positioning, and payoff.
Balance clarity and depth so players can improvise “epic” moments without confusion.
Combat design isn’t only about attacks and enemies It’s about creating a puzzle box where player choice feels impactful and enemies respond in meaningful ways. If either side falls flat, the entire system loses its sense of tension, rhythm, and payoff. My job was to ensure combat supported expression on both ends so players felt powerful and challenged.
Player expression comes from flexible tools that reward creativity and improvisation.
Enemy expression comes from clear reactions and behaviors that give those tools purpose.
Encounters live or die on tension: managing space, timing, and rhythm is just as important as flashy moves.
The system created real expressive depth, but it quickly became clear that combos only felt satisfying if enemies responded with equal richness. The next challenge was giving them that vocabulary.
Built a 5-hit light combo that could branch into 4 unique heavy attacks at any point. Each heavy had a different setup effect: knockback, knock-up, or stagger that naturally led into juggling or finishers.
Allowed defensive actions at any moment. Blocking was always available, but a perfectly timed block became a parry that flipped tension into triumph.
Integrated the Eat Action into the loop: players had to heal and fuel hunger mid-combo otherwise they would starve to death which rewarded creative chaining of lights, heavies, and chomps.
The system created real expressive depth, but it quickly became clear that combos only felt satisfying if enemies responded with equal richness. The next challenge was giving them that vocabulary.
For combat to truly feel alive, enemies couldn’t just be hit point sponges. They needed to communicate clearly, react consistently, and set up opportunities for the player’s expression to shine.
Designed a full enemy damage state machine: hit, flinch, stun, knock-up, knockback, knockdown, and death. Each one tied into a different branch of the player’s toolkit.
Scoped down from three enemy types to one, prioritizing the “punching bag” enemy. This trade-off freed our single 3d artist to focus on environments and VFX while I deepened the design of one enemy to fully support player expression.
Even with only one enemy type, using edited Paragon Unreal Assets we could still give them varied behaviors: idle, notice, run, reposition, two distinct attacks so it still interacted with players in different, readable ways.
Cutting scope forced me to lean harder on systems thinking. By building deep states into a single enemy, I ensured players always had satisfying reactions to trigger, without needing a full enemy roster.
An expressive player and reactive enemy weren’t enough since the fight itself needed tension. I wanted encounters to feel like choreographed brawls: space, timing, and rhythm all mattered.
Built an Aggression Token system so only certain enemies could attack at a time. This created controlled chaos, letting tension build while keeping the player from being swarmed unfairly.
Layered in positioning rules: enemies had to move into melee zones in order to attack or orbited the fight on the outer circles before attacking, echoing kung fu movie staging where combatants circle until their moment.
Enemies avoided crowding each other, giving purpose to different states like knockback or flinch. Knocking one enemy into another wasn’t just visual flair, it reinforced the player’s control over the battlefield.
This framework transformed even a simple bird enemy into a fun sparring partner. By balancing aggression, positioning, and reactive states, I turned “just one enemy” into a canvas for player expression.
Aggression tokens, positioning zones, and spacing rules gave players the feeling of orchestrating the fight without overwhelming them. Designing systems to manage tension is just as important as designing flashy attacks.
Even the best combos fall flat if enemies don’t respond in meaningful ways. The player’s toolkit and enemy behaviors need to be designed in tandem to create satisfying interactions.
Make every system feel meaningful by tying it back to the skill tree.
Support a holistic player fantasy where combat, exploration, and progression overlap.
Ensure players feel their choices matter, shaping both playstyle and pacing.
I’ve found that if systems don’t talk to each other, they quickly lose their weight. For Pitaya, I made it a rule that every mechanic had to tie back into a central backbone. That way:
Combat wasn’t just about fighting → It was about manipulating the battlefield.
Exploration wasn’t just about moving → It was about finding new routes and secrets.
Progression wasn’t just about numbers → It was gaining new ways to interact.
they all pushed on each other. This approach kept me disciplined as a designer: no feature survived unless it had a clear purpose in the larger web.
At first I treated the skill tree as an after thought but quickly realized that I was wasting the potential of the skills and how it teaches the player the game. Moving forward it was the scaffolding that held the entire game together. Every new mechanic had to justify its existence by tying back into a branch of the tree.
Designed 24 skills across exploration, combat, and traversal, ensuring no skill was isolated.
Used mind maps to visualize connections if a feature didn’t link back, I redesigned it until it connected better to other systems.
Structured branches around three distinct playstyles: defensive (staying fed), risky (trading hunger for damage), and utility (kneadlings + traversal).
Impact: The skill tree became the narrative and mechanical backbone, letting players naturally experiment with different identities while staying anchored to one core system.
Impact: Kneadlings gave the system emotional weight so that progression wasn’t just stats, it was nurturing companions that reflected player choices.
Kneadlings were companions, tools, and extensions of the player’s creativity. To make them feel indispensable, I designed them to interlock with combat, progression, and exploration.
Mechanics like throwing, splitting, feeding, and harvesting created a loop where kneadlings supported the player, but also demanded care in return.
Feeding them monsters drops tied combat directly into progression. Players had a reason to engage with every enemy encounter.
Kneadlings grew stronger through player investment, mirroring skill tree upgrades and reinforcing long-term bonds.
Quests weren’t written as narrative filler. They were built like mini demos, each one designed to highlight a different facet of the interconnected systems. Besides the first tutorial quest each one was unlocked by getting a specific skill in the Skill Tree that unlocked the respective zone.
Quest A: Kill enemies to collect 10 ingredients → teaches the importance of loot and feeding kneadlings.
Quest B: Defeat a larger boss → reinforces combat mastery and progression payoffs.
Quest C: Use Kneadling Throw to knock down trees and gather flowers → shows traversal tools and their impact on exploration.
Quest D: Climb a mountain with limited resources → creates a linear, high-stakes showcase of how systems interlock under pressure.
Impact: Each quest taught players to think in systems, not isolated mechanics. It was less about “do X” and more about “see how X connects to everything else.”
Impact: This systemic pacing gave players agency. They weren’t just told how to play, they discovered how the game’s interconnected systems shaped their adventure.
I greyboxed 4 zones, each structured to layer systems at the right time and have players return to the hub to upgrade themselves. The level design wasn’t just about geography. It was about pacing the introduction of mechanics.
Early zones emphasized basic combat + resource gathering, anchoring players in the core loop.
Some zones layered in exploration and traversal, highlighting the value of kneadling abilities unlocked via the skill tree.
Other zones combined everything, requiring the player to juggle hunger, combat expression, and traversal mastery simultaneously.
Without the skill tree as an anchor, the game risked becoming a pile of features. With it, everything felt purposeful.
By designing quests and zones as system showcases, I learned that the best tutorials don’t feel like tutorials at all.