Vespera Bononia
- Genre: Roguelike 3rd Person Shooter
- Type: PC/Console Release (Steam and PS5)
- Software: Unreal Engine 5
- Duration: 8 Months
Role: Game designer, Q&A Tester
(Research and concept, documentation, prototype, balance)
Goal
My Objective was to make solid mechanics that would increase the amount of unique gameplay scenarios drastically through synergistic and emergent gameplay.
- I needed to create many Items and Spells, but this needed an underlying system that allow me to make them all unique and interesting.
- I needed to make new Enemies that would create different scenarios for the player, so combat would feel like a puzzle to be solved through target prioritization.
- I had to make the entire encounter with the Final Boss in a away that would emphasise its epicness, while also being a challenging fight that felt fair, keeping lore and game aesthetics in mind.
Overview
Game Premise: Vespera Bononia is a 3rd Person Shooter Roguelite with 4 different classes the player can switch to in order to defeat waves of enemies that increase in difficulty as time goes by.
Defeat the Idols of fear, statues that can be activated and challenged across the 4 different levels of the game, in order to unlock a fight against one of the powerful servants of the Abyssal Messiah. Defeat them all and finish all the levels while empowering your character through unlocking new abilities and items until you’re ready to defeat the Abyssal Messiah himself and free the mindscape of Bononia.
Highlight 1 - The Element System
- Created 4 Basic Elements, and assigned each of the 4 Characters one signature element. When characters attack enemies with spells, they are affected by the corresponding element.
- When two different Elements are present on an enemy, they combine. This makes 6 Combination Effects incentivising players to Switch between the 4 characters in order to trigger the powerful combo effects.
- An enemy can be affected more than once from the same Basic Element, empowering its effects. All Combo effects have two parameters, determined by how powerful the two Basic Elements that trigger the combo are. Each basic element was given a “theme” for what parameter it’s supposed to improve in its combo effects. (See image left)
Highlight 2 – The Horror System
Threshold-based meter and state trigger: Incoming damage from specific sources fills a Horror bar; at 100% it applies DAMNED and sets the bar to full.
Run-scoped escalation: A per-run internal counter tracks how many times the player has been DAMNED, resetting each run.
Cumulative tier effects: Curse effects scale with the counter and stack cumulatively across tiers.
Time-based pressure: While DAMNED is active, debuff stacks apply every X seconds (multiple periodic effects).
One-time “on-application” spikes: Additional effects trigger once at the moment DAMNED is applied.
Indefinite duration + kill-to-cleanse loop: The curse persists until the player kills enemies to drain Horror using each enemy’s Danger value, removing DAMNED when the bar reaches zero.
Mechanic Highlight 3 - The Spells
- Spells were made using different parameters in order to ensure each spell felt unique, with its own advantages and synergies. To do this, each spell was made by checklisting a series of attributes:
- Is it meant for a Single target or Area of effect?
- Does it deal many small instances of damage or just one?
- Does it apply an Element?
- More…
- Spells were made by having them be answers to different game scenarios, sometimes having them overlap on eachother in some areas, while lacking in others. This way, the spell list became effectively a list of tools for the player, divided into ways the player can force certain game scenarios and ways the player can solve those scenarios.
- Players would recieve randomly through Loot Chests the spells they could add to their kit for the run. Since every spell had multiple uses, this increased the replayability of the game significantly.
- For example, an AoE attack that dealt small amounts of Crosis (DoT) could either be used in a DoT heavy build, or in combo with another Aoe spell to apply any of the combo effects. This is 5 different playstyles and uses for 1 ability.
Process Breakdown
Prototyping
Paper Prototype
Result: A gameplay prototype that let me tune the decision-making, feel and variety of all spells without needing an In-Engine prototype. With this setup I was able to test 32 spells total, add and validate 2 new enemy types, iterating multiple times per hour.
Goal: Do spells meaningfully change what the player does moment-to-moment? Do they feel responsive? Are they worth casting compared to shooting? The problem is that spell tuning in a roguelike TPS becomes painfully slow if every change requires full AI/pathing/level dressing.
Solution:
Combat was simulated without needing in-engine prototyping, enemies are grouped by areas to simulate close-quarters fights (where AoE, CC, and sustain mechanics are most revealing). Four swappable characters, each with two spell slots one FAST and one SLOW just like in the final product. This makes iteration fast and perfect for balancing “feel” as well as numbers.
Rapid Prototype
Spells & Abilities
Result: Bloodrush is now a slow-cast that reshapes your next combat window. It pushes you toward sustained basic attacks and creates a “commit or bail” moment when pressure ramps up rewarding a consistent playstyle instead of being an auto-win button.
Goal: Keep Bloodrush powerful without turning it into a guaranteed win button. In clustered fights, early versions either broke balance (just obliterated enemies) or led to one obvious optimal pattern, which clashed with the swap-and-cast loop.
Solution:
Tested a kill-refresh momentum version and dropped it when it snowballed in grouped spawns (the player should be encouraged to swap)
Rebuilt Bloodrush around a time limited basic-attack buff so value comes from staying in and shooting through pressure
Tuned how it behaves across swaps so it fits rotation rather than encouraging instant disengage
Rapid Prototype
The "Gurgul" Enemy
Result: Gurgul ended up as an enemy you can’t ignore, but you also don’t need to panic about the moment it spawns. One or two of them hang back and feel manageable, but let several stay alive and the whole group “wakes up” becoming a powerful group of enemies.
Goal: I wanted an enemy that slowly became a threat while starting out as not that dangerous.
Solution:
Switched the design target from “tough individually” to “dangerous in numbers” so the pressure comes from accumulation.
Added count-based behavior tiers (the more gurguls are active, the stronger they are) and made the escalation stick per enemy (once they reach tier 2, they stay tier 2)
Used a clear tell (the group howl) to signal to the player that they waited too long and Gurguls have reached the final difficulty tier