This week’s focus has been purely engine focused with a lot of back-end groundwork for the ability system implemented and refined, improvements to existing mechanics for added “game-feel”, and a start on the level design.
Abilities – Scripting & VFX
This week I have been working heavily on implementing and refining the abilities, as well as more importantly their VFX (post-processing, shaders, and particle effects). I have also refined the groundwork to provide me with more control when scripting the abilities (something that is constantly being refined).
I am using a component based design paradigm when it comes to scripting these abilities, where each ability is its own blueprint actor (object) which inherits from the base class (BP_Ability_Base) which includes all the base functionality and virtual functions which I can override, but are handled by the base class as all the abilities and equipment follow a consistent control standard (i.e. tap/hold controls etc) – this essentially makes me base class an abstract class as this itself will never be implemented.
Following the component & object orientated paradigms I have added more systems to make it easier to script gameplay – this works well as Dishonored uses a systems based design paradigm in which gameplay is created by making the systems interact with each other.
For example I have created a system for creating explosions which is handled internally in its own actor, as well as a component which when added to anything compatible will apply fire damage over time and destroy itself when completed – this makes it easy to apply fire damage to anything by simply adding that component to the actor, as well as for these systems to interact with each other (i.e. explosions will apply fire damage to enemies within range).
For example this explosion blueprint is handled in this script here, and then neatly cleans up after itself by destroying itself which keeps the object orientated approach and makes sure the memory is freed after it has been used.
But this can be spawned easily using the SpawnActor function which also exposes all the variables I have selected to customise how the explosion visually and functionally. For example this is how the fire hold ability works which simply spawns an explosion at the player’s hand, but if I wanted to make a grenade I could use this exact same system without any changes other than to the inputs and where I’m spawning the explosion.
Level design is a huge part of the Dishonored franchise, and while my project is not focused around this I do feel it’s still important to put the time into developing a well flowing level with multiple entry & exit points, different routes, and emergent gameplay opportunities. This is to best showcase the powers in a real-time game scenario and allow the player to just experience using them in a tested environment.
*Be aware that lighting hasn’t been baked in many areas and buildings haven’t been vertex painted or had proper decal passes as those are lost when tweaking – so when an area is finalised those will be dealt with.
As mentioned previously having multiple entry/exit points is an important part, so as you can see here with the interior there are multiple points which the player can use to move between different points in the environment, or bypass entirely in this case! To provide incentives for the player to say explore the environment in this case I have provided 2 safes which will hold pickups for the player to help them progress (i.e. health vials).
This interior is completely level however with no verticality – in this case I will most likely leave it as a single level to avoid too much complexity with the exterior transitions.
To combat this I created a back alley area which will allow the player to avoid combat by entering an interior environment through an open window, where I will then develop an interior with a staircase (on my to-do list in the upcoming week!) to provide access to the upper levels. In terms of level flow this will provide access to the vantage point of the pipes to either get a drop on some enemies which will be in the alley, or to bypass them and gain access to the overseer’s office (red building).
To provide small visual landmarks I have made sure all the buildings have different heights, shapes, colours, architectural styles, and even small unique details such as the roof exit point on the green building. This allows the player to navigate the environment with ease and return to earlier points without getting lost.
Where to go from here?
There is still a lot to go however and in order to further the environment I will be taking a small step back and just working through some more assets such as foliage (bushes, grass, trees, leaves), roof pieces (ceramic tiles, and roof pieces with windows), and interior pieces (staircases, floor material, wall material etc). This in order to give myself the most flexibility when designing the level further.