top of page

Souls-like combat prototype 

In this project I tasked myself with recreating some mechanics from the 'souls-like' genre and also used it as a reason to work on my level design skills.
 

Navigation

Level Desgn

Level Design

For this project I wanted to design a level for myself to play around in while creating the other systems for the game.

Whilst I went into the designing of the level without much of plan and just let myself create on the fly, I knew I wanted to have a path leading up into a dungeon imbedded  into a cliff.

I used a combination of the Unity terrain tool as well as assets from various different art packs and blended them together to create the visual style for the level.

Once the level was done I added a skybox and found some assets to add
volumetric lighting and water to the level to bring it all together.

Overall the level took me around 4 hours to complete from start to finish, however as I continued to work on the project I would often tweak and change small parts of the
level to improve the player experience and pathing.

Gallery of screenshots from the level inside of unity
 

Code

Combat system

The first mechanic I needed to make was the combat system. I used a player controller asset as a base for this project and build the system around it.

The system works by using scriptable objects containing all the information relating to the currently selected weapon. This includes damage and a reference to another scriptable objects that holds the attack combo for the weapon. The attack combo scriptable holds a list of attacks related to that weapon. The attacks are also scriptables which hold information like the sound the weapon plays, how much stamina the attack uses and reference to an animation override controller that contains the animation for
the attack.

Player Combat Script

Weapon Scriptable Object

combat script.jpg

Combo Scriptable Object

combo scriptable.jpg

Attack Scriptable Object

attack scriptable.jpg

Combat code example

combat code example.jpg

For this code I used a tutorial as a bouncing point and then modified the code to suit my needs and incorporate it into my inventory, damage and stats systems.

By splitting up the weapons from their animations through scriptables I was able to reuse the same scriptables for attacks for the enemies, giving me more control over their animations.

Resource Bars

The dynamic resource bars I made for this project were designed to be modular so that I could display any information I needed to the player in a visually appealing way.

I used these bars to display the health of the player and enemies, the players stamina levels and the players mana levels

The bars are several unity sliders layered over each other, using DoTween to smoothly blend the sliders from their current to new values.

In-Game resource bar examples

resource bars example.jpg
resource bars example enemy.jpg

Inspector & Code

resource bar code example.jpg
resource bars example 2.jpg

Soul Step mechanic

For this project I wanted to also have something unique so that I didn't feel like I was just making a carbon copy of something done a thousand times before, even if it was just for fun.

I came up with a souls step mechanic which allowed the players 'soul' to leave their body and explore the level. When soul stepping the player can see enemies and chests highlighted through the level to help them with navigation. Players also heal when
performing a souls step.

The soul stepping involves using camera stacking in unity for highlighting enemies and chests as well as changing the post processing volumes to make the player feel like they've entered a different realm.

If I was to continue to work on this project I would have the soul step allow the players to access unique areas and would also use the mechanic for puzzles and more.

soul step example.jpg
itch logo.png
bottom of page