
Shards of The Banished | 2025
A fallen king, a cursed queen, and a power-hungry usurper have plunged the land into ruin. As the exiled heir, you must rise, face powerful foes, and reclaim what is rightfully yours in this dark fantasy souls-like setting. Besides being the biggest project I worked on, this game was also my graduation project from Futuregames, where I was part of an amazing team that transformed a demo into a full game in just 10 weeks!
10 Weeks | 13 students
Combat & Technical Designer
Dark Fantasy & Souls-like
Unreal Engine 5 | PC
Next
Game
- Contribution -


I worked on designing two boss battles for the game, heavily collaborating with animators, VFX artist and programmers to execute our designs.



I designed different enemy types, and enemy encounters, patrol points, distribution and placement for an intentional difficulty curve throughout the open world area.



I designed, and helped implementing a skill tree based on the game scope, target audience, difficulty, playtime and enemy strengths/weaknesses through multiple iterations.

I created different camera states for combat and exploration as well as tweaking many other gameplay variables influencing the overall combat, game feel and 3Cs.

I built a spawner tool for testing combat and enemy features faster and in a more flexible way.
- Combat Design -
My first step in designing the boss fights was to define rules and design pillars. These served as a foundation for me and other team members as we expanded on the bosses. With this approach we were able to make intentional design decisions while maintain a unified vision for the game's boss encounters. Over time, these principles also influenced the design of other enemies, ensuring they remained consistent and cohesive in relation to the bosses. Big thanks Thomas Schinas for collaborating with me on this!


_edited.jpg)









Regarding balancing, I followed the workflow shown below to iterate on enemies and taking advantage of the spawner tool. I aimed for each enemy to offer different challenges, and that these challenges scaled consistently across the enemy hierarchy. For example, when adjusting a stat like health (e.g., +5 HP), I ensured that tougher enemies scaled proportionally in my balancing workflow, preserving their intended difficulty relative to weaker enemies in the game.


Camera States
The camera has two states which the game switches automatically as needed, one for combat in which the camera zooms out to give a better sense of close surrounding areas and enemies, and another state for outside of combat where exploration is encouraged and player's focus is drawn to distant landmarks and forward ahead rather then their surroundings.
The transitions are handled by smoothly adjusting the location of the camera using timelines when the players is engaged with an enemy.


Exploration Camera
Combat Camera
Enemies
Over the 10 weeks of production, I continuously tweaked a wide range of variables directly tied to combat feel and difficulty, iterating after each playtest. This balancing ended with the creation of the following enemy types and their corresponding power hierarchy:
-
Regular Ghoul: The standard enemy type, with no notable strengths or weaknesses.
-
Archer Ghoul: A fragile, ranged variant designed to pressure the player from a distance.
-
Shield Ghoul: Similar to the base ghoul but equipped with a shield that blocks light attacks and interrupts player combos.
-
Armored Ghoul: A sturdier version of the base ghoul that retains its speed and stamina despite its increased durability.
-
Heavy Ghoul: Mini-boss tier enemies, three are hidden across the map. Defeating them is required to unlock the gates leading to the final boss.

Regular Ghoul

Archer Ghoul

Shield Ghoul

Armored & Heavy Ghoul

Kimazra

Kimazra

Bobugal

Bobugal
In addition to the ghoul variants, I applied the same continuous iteration process to the game's bosses that I've been designing, including the first and final boss encounters, as well as a variant of the first boss found in the open world:
-
Kimazra (First Boss): A fast and agile boss whose attacks are largely blockable. While initially intimidating, Kimazra becomes manageable after the player has naturally leveled up in the first area. This encounter serves as a skill check to determine if the player is ready to leave the starting zone and enter the open world.
-
Light Kimazra: A lighter variant of Kimazra encountered in high-risk areas of the open world, often accompanied by elite ghoul enemies. Though less durable, it features the same attacks from the original boss.
-
Bobugal (Final boss): Slow and imposing, but capable of ranged attacks and sudden gap closing charges. Bobugal excels at parrying and features the longest, highest damage combos in the game, rewarding precision and punishing mistakes.


In my work I largely utilized a combat system our lead programmer has built and requested changes when needed as the designs have expanded. The combat system included an easy setup of a combat component and an animation montage which included all the information about attacks.
When designing each boss battle, I collaborated closely with animators to create the individual animation assets for each attack. Once those were in place I created combos by chaining together different sets of these animation assets inside an animation montage.

List of settings I worked with for each enemy





This animation montage was then referenced by the boss’s combat component. The component would read through the sections of the montage, allowing me to adjust the damage values (weight) and attack type (heavy, light, long range etc) for every combo.
For even more flexibility, I created simple scripts using animation notifiers to trigger temporary changes within a combo, for example, toggling whether the next attack is blockable or not.
Other factors such as weapon trace, motion warping and when the attack can cause a knockback were also adjusted in this animation montage.
Encounters
I designed and balanced a variety of enemy types, each with distinct behaviors, strengths, and roles within the game. Alongside that, I carefully planned enemy encounters, patrol paths, and spawn distributions to create a deliberate difficulty curve across the open world area. The goal was to make sure each part of the world felt engaging and appropriately challenging. I also iterated on placements and pacing to support exploration flow, reward risk-taking, and ensure encounters felt natural within the environment.


Skill Tree


I shaped the structure and pacing of the tree by thinking about how players would progress, how long they'd be playing, and what kinds of enemies they’d face and how many would they engage. I went through several design passes to make sure each skill unlock felt like a smart and satisfying choice. I also worked closely with programmers to get the skills up and running in-engine, I was able to adjust any number in engine using data tables.

- Technical Design -
While working on different enemy types, bosses, and overall combat design, I realized the need for a simple tool to spawn these actors in the level for quick testing. So, I started building one myself. I continued to expand and improve it throughout development, and it became a valuable tool for testing and balancing enemy and boss encounters. It also proved useful for my teammates, helping them test animations, VFX, and AI features that are tied to the bosses whenever and whereever in the game.

Spawn enemies

Spawn bosses


Set spawn distance
Spawn weapon
Essentially, the spawner contains a map of boss and enemy types, where the keys are the names that populate the dropdown menus, and each key corresponds to a blueprint class that will be spawned at a specified distance and in a given numbers.


Demonstration
Every spawned actor is added to an array, which helps keeping track of additional enemies or bosses in the level. If the tester wishes, they can clear all spawned enemies or bosses by destroying the actors in this array and resetting it. There are also debug shapes to mark actors relevant to the settings that are being adjusted.
Because of the size and aggro range differences between enemy and boss types, I noticed the need to adjust the spawn distance variable from time to time. To address this, I added an adjustable distance setting using a slider, which calculates the distance based on the player’s location and rotation. While doing so, I made sure to copy the player’s Z axis directly to ensure all actors spawn at reasonable positions, avoiding issues like spawning actors under the map due to landscape slopes etc.


The spawner itself is a simple widget blueprint which can be toggled on and off through player blueprint, enabling or disabling the cursor input and visibility along the process.

Reflection & Learnings
This game was my biggest group project and an incredible learning opportunity! Joining the development a bit later was a unique experience, as I had to first understand and adapt to the systems that were already in place. It was a rewarding challenge, and my team was very welcoming of my suggestions for improving those systems and tools. Collaborating with the programmers to bring my designs into the final product became a valuable learning journey.
As a team, we also had the amazing opportunity to showcase our game at an indie game event at Game Town, where we received feedback from a wide range of game developers. Seeing our game attract attention among so many other amazing indie titles was a huge motivation to keep polishing it ahead of our Steam release!


Online Coverage:
MoistCr1TiKaL Streams Shards of The Banished:
Skumnut Plays Shards of The Banished:
Articles by Gaming Bible

Steam Charts
-
Top #5 “New & Trending” (Free Games)
-
Top #10 “New & Trending” (Souls-like Games)
Futuregames Awards 2024
-
Winner of Best Visual Effects




