Jordan Newton
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 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
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
Combo Scriptable Object
Attack Scriptable Object
Combat code example
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
Inspector & Code
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.