top of page

The Hound of Visby  (2024)

Third-person Soulslike Boss fights

Unreal 5.3

4 weeks

Solo project

About the game

image.png

Third-person action

image.png

Soulslike

image.png

Strategic Combat

The Hound of Visby is a Souls-like vertical slice mainly featuring the combat system and boss fights. The player plays as a knight exploring the cursed town Visby and needs to defeat 2 challenging Bosses.

Design & Development process

image.png

This project started with a prototype I made for the thesis project of my Master's degree in Game Design at Uppsala University. The purpose of the thesis project is to study how the stamina system in soulslike games would influence the player experiencethrough doing A/B tests.

This project starts with a small level, one Boss, and a basic Soulslike melee combat system. After I finished my thesis, I further expanded the game with a new level, a new Boss, and more combat system mechanics.

During the pre-production phase, I deconstructed and analyzed the main features and mechanics that formed the unique combat system and experience in soulslike games, including:

  • Long anticipation & recovery animations

  • Stamina depletion

  • Lock-On system

  • Uncancellable animations

  • High damage dealt by enemies

These features and mechanics all kind of encourage players to play strategically and utilize the resources wisely in combat. Every action/decision comes with certain consequences, and button-smashing mindlessly in combat will be punished by the gameplay system. 

image.png

Then I started to try building a classic Soulslike melee combat system in the engine. I first started with the basic player functions, including walking, sprinting, lock-on system & locomotion, attack & melee combos, dodge roll, and shield blocking. I spent time and effort polishing how these things feel in the game through playtests and iterations, as they are all important components of the core gameplay loop. 

(Early testing of blocking and lock on functions)

(Early testing of basic combat and enemy ai)

(Blueprints for the lock-on system. Players can switch different enemy targets to lock on in combat)

(Blueprints for the lock-on system. Players can switch different enemy targets to lock on in combat)

Weixin Image_20260210194006.png

(Basic enemy behavior tree)

After the basic player combat system was finished, I started to work on the first Boss, Scorched Knight Hector

I applied a lava-like material to its mesh to give it a "scorched" feeling, and designed it to be a hulky, strength-type Boss. Its behavior pattern was designed to be simple and easy for the players to learn. When the player is distant from Scorched Knight Hector, it will launch fireball projectiles at the player, and the player needs to dodge roll or shield block to evade the damage. When the player is close enough, Scorched Knight Hector will conduct a random melee attack from an array of melee attack combos. Between every several attack moves, Scorched Knight Hector will also conduct a "roar" action, which deals no damage to the player and serves as a good chance for the player to strike back. 

Despite its simple behavior pattern, Scorched Knight Hector was still quite challenging due to its aggressiveness and high damage, and the player needs to practice the timing precision of dodging and blocking to defeat the Boss.

(Early testing of the Boss AI)

image.png

(Boss behavior tree)

(Blueprint for Boss AI)

After I finished the first iteration of the Boss Scorched Knight Hector, I invited dozens of people to playtest what I had, including both hardcore action game fans and more casual players. One of the most important feedback I had was that the lack of i-frames (player invincible frames) during dodge roll animation made the combat a bit too punishing and was against the player's intuition. Therefore, I added a long i-frame duration to the dodge roll animation to make the combat more lenient and easier to learn. In return, to make sure the Boss fight is still fun enough for players seeking challenges, I also enhance the Boss's aggressiveness by increasing its attack frequency and shortening the anticipation animation before the attacks. I constantly adjusted all the player character and enemy parameters based on what I learned from playtests.

(With dodge roll i-frames, the combat feels more fair, and the increased Boss aggressiveness also keeps the fun of a challenging Boss fight)

(Blueprints for dodge roll and player damage logic)

The other playtest feedback for improvement was more variety in combat strategy. Therefore, apart from the basic player combat mechanics of attack, dodge, and block, I added a new player mechanic called "Hound Mode". Hound Mode is an ultimate ability that players can activate by consuming a certain number of health potions. During the Hound Mode's duration (5 seconds), the player will have infinite health & stamina and enhanced attack speed & damage, and can use the "Soul Slash" ability, a powerful AOE attack that can deal significant damage to enemies. In return, this powerful mechanic also comes with serious side effects: player HP will be reduced to 1 when the Hound Mode duration expires. Therefore, Hound Mode is a high-risk, high-reward action to take, and the player needs to think about when to use it depending on the scenario. 

With the introduction of Hound Mode, players found the combat more engaging, and the choices of combat styles became more diverse.

(Hound Mode and Soul Slash)

(Blueprints for Hound Mode)

After I finished the iteration of the player combat system, I started to design and implement the second Boss, Voltaic Knight Torsten. Volatic Knight Torsten has a totally different style from Scorched Knight Hector. It is a fast and lethal, dexterity-type Boss with a more complicated behavior pattern than Scorched Knight Hector. Lore-wise, Voltaic Knight Torsten holds the power of lightning, so I added electrical element VFX to its charge and attack animations.

(Voltaic Knight Torsten Boss fight)

(Blueprints for Boss AI)

Voltaic Knight Torsten's AI can be mainly divided into 2 parts: Strafe and Attack.

The Boss will strafe around the player at first, which feels like it is trying to find a good chance to attack.

(Boss strafe AI testing)

(Blueprints for Strafe logic)

When the player is closer enough, the Boss will end the "Strafe" state and enter the "Attack" state with 2 different attacks: basic attack and teleport attack. The Boss will sprint towards the player and perform basic attacks first. After a few basic attacks, the Boss will launch the teleport attack, a powerful special attack that will be repeated several times in a row. After entering "Attack" state for a while, the Boss may also move away from the player and go back to the "Strafe" state, making the combat more dynamic and unexpected.

(Boss basic attack AI testing)

(Boss teleport attack AI testing)

(Blueprint for Boss combat logic)

​(The player has a chance to stun the Boss by attacking it while it is attacking, a high-risk, high-gain action)

(Blueprint for Boss receive damage logic)

The Hound of Visby is my first large 3D Unreal 5 project, and I learnt a lot of about visual scripting and iteration from the development of it.

bottom of page