top of page
SKELETALSKIRMISHGIF-ezgif.com-optimize.gif

Skeletal Skirmish is a top down twin stick action game where you fight off waves of enemies by either converting them to be your allies or stealing their life force.

SkeletalSkirmishLogo.png

ROLE

Game Designer / Technical Designer

The Game

My Role and Responsibilities.

​The goal of this project was to create a top-down twin-stick game using a template project based on the core (unique) essence of the Shadow of Mordor/War games.

Since this was a solo project it was my responsibility to design, implement, test and document the entire game and progress based on the following core pillars:

Large hordes:
I personally found that the core essence or fun of the Shadow of Mordor/War combat was both a power fantasy as well as overcoming large odds and turning the tides. To support this, I made the enemies not individually powerful but have large numbers to both overwhelm players, but also give the player the sense of commanding a large army when they convert enemies.

Melee combat:
Both inspired by the reference game, as well as identifying that a ranged weapon would result in passive conversion gameplay, I opted for melee combat.

Survival:
I found that a wave based survival system would fit best as the player goal, as points for killing enemies wouldn't really work well since that would discourage the player from converting enemies, or the opposite would happen where the player wouldn't care for points.























​
This led me to do the following:

1. Designed and created the player melee weapon.
Developed a melee weapon system to keep combat challenging and stay true to the reference game.

2. Scripted enemy/ally AI.

In order to create the large hordes of both enemies and allies I was going for, as well as the melee combat I had to develop a melee attacking enemy and make some tweaks to the base enemy behavior provided in the template project.

3. Built a combat arena.
​​To facilitate the wave-based survival and combat by building an arena.

4. Implemented an enemy wave spawner.
In order to create an increase in difficulty for the survival aspect of the game a wave spawner is used, I had to iterate upon the template spawning system in order to fit my game better.

5. Meticulously balanced the game's combat loop and game mode.

Iterated on weapon mechanics, enemy difficulty, and ally balance to maintain engaging, strategic gameplay.
SkeletalSkirmishProposal.jpg
Large hordes:
The key selling point of the game is the ability to convert enemies to your side, making the player feel like they are fighting alongside a large legion they created. Constantly facing harder challenges, but also growing stronger when overcoming these challenges.
​
Top-down melee combat:
Players use a sword to fight off enemies in melee range using a twin-stick control scheme.
​
Survival:

The goal of the game is to survive as many waves as possible, the waves constantly increase in difficulty by increasing enemy numbers and adding new enemy types.

​​

​

​​

SkeletalSkirmishSS1.png
SkeletalSkirmishSS2.png
SkeletalSkirmishSS3.png

Scripted Enemy/Ally AI

To enable large-scale battles with hordes of enemies and allies, I developed a melee enemy and modified the base enemy AI.

I also adapted the template enemy logic to create ally AI, adjusting targeting so:

  • Enemies attack allies if they’re closer than the player.

  • Allies target the nearest enemy instead of just the player.

For melee enemies, I repurposed the player’s melee system, using a behavior tree task to trigger weapon swings. I also tweaked navigation behavior to prevent clustering.

Finally, I introduced an Elite melee enemy with more health and damage, and added distinct colors for clear differentiation.

This system effectively enabled dynamic large-scale battles.

Enemy Types

Horde Fighting

Built Combat Arena

To facilitate wave-based survival and combat, I designed and built an arena. Since level design is not my strong suit, this process involved several iterations based on playtesting feedback.

I initially created a layout with enemy spawners in the corners and sides to prevent players from camping. I added walls to increase enemy travel time and provide cover from ranged attacks. However, feedback indicated there were too many walls, and the central pillar allowed players to loop enemies for safety.

​

​​

​

​

​

​

​

​

​

​​

​

​

​

To improve flow, I reduced the walls and removed the central pillar. This design helped split the enemies and gave players more opportunities for cover and maneuvering. I also changed the enemy spawn points color from black to white, then red, to avoid confusion. Later, I randomized the spawn points across the map using a custom enemy spawning system.

​

​​

​

​

​

​

​

​

​

​

​

​

Finally, I added art assets and tilted the camera to enhance the visuals making the game feel more complete. This did result in the walls being less clear. I’d refine the arena further with more time.

SSMap1.png
SSMap2.png
SSMap3.png

Implemented an enemy wave spawner

To enhance the survival difficulty, I revamped the wave spawner system. The original template had fixed spawn points, allowing players to farm allies, and its difficulty simply increased spawn rates over time, which I found uninteresting.

I modified the system to use one central spawn radius, randomly spawning enemies at navigable locations after each wave was cleared. The spawn array evolved as the player advanced, introducing new enemies with each wave. For example, Wave 1 had 2 melee and 1 ranged enemy, while Wave 10 had 2 melee, 2 ranged and added 1 elite enemy to the array. The array composition influenced spawn rate per enemy type.

I also created a particle effect which is added at the spawn location with a short delay before the enemy appears, giving players time to reposition.

This system made combat more dynamic, unpredictable, and progressively challenging, keeping players engaged.

Enemy Spawning

Meticulously balanced the games combat loop and game mode

The biggest challenge of the project was ensuring engaging gameplay through balanced combat and progression. To achieve this I:

  • Reworked the scoring system: Originally, kills granted points, but testing showed this led to passive gameplay, as players could rely on allies. I switched to a high score based on waves survived to encourage active engagement.

  • Adjusted ally and enemy balance: Initially, allies were too weak. I tested an increased conversion range and auto-conversion on ally kills, but both were too strong. The final balance gave allies more health and damage, letting them kill 1–2 enemies before dying without being overpowered.

  • Refined the weapon system: The conversion vs. life-steal mechanic initially led to repetitive gameplay. Cooldowns and charge mechanics felt restrictive, so I implemented spell-swapping, adding strategic depth while keeping combat dynamic.

The final balance worked well, though higher waves became repetitive. If I revisit the project, I’d explore adding more enemy types to improve gameplay variety.

TSJConvertBuff1.png
TSJAbilityIteration.jpg
TSJConvertBuff2.png

 Designed and created the player melee weapon.

To keep enemy conversion challenging and stay true to the "Shadow of" franchise, I implemented a melee weapon system from scratch.

Starting from existing weapon pick-up and damage logic, I researched top-down twin-stick games and designed a rotating melee weapon triggered by button presses depending on time held.

Initially, light attacks allowed players to convert enemies at low health through the use of a conversion radius ability, while heavy attacks dealt more damage and led to life-steal on kill. However, players found conversion much stronger than heavy attacks, because they could quickly spam light attacks and convert enemies. Making the system feel unbalanced.

To address this, I introduced a "spell swapping" mechanic, allowing players to switch between conversion and life-steal spells, both activated on kills. Additionally, I refined attack balance:

  • Light attacks no longer cleave, preventing spam, but useful for last hitting a weakened enemy.

  • Heavy attacks now cleave, making them useful for crowd clearing.

Finally, I added a sword model, camera shake, and sound effects to enhance feedback. The final system received positive feedback from peers and lecturers.

Light vs Heavy Attack

Spell Swapping

bottom of page