We’ve got loads of development updates for you this week as we continue working on our fantasy RPG, Depths of Erendorn. Let us know what you think in the comments, and be sure to follow us on Instagram, Twitter and Reddit if you want to see more of what we’re doing!
In last week’s devlog, we mentioned how our 3D Artist was in the middle of researching how to best create a character customisation system, which we will eventually implement in the game. From this research, we decided that using a modular pawn system would be the best approach for Depths of Erendorn:
- A modular pawn approach involves splitting up the base mesh of a character into various parts, such as the head, torso, arms, legs, etc.
- It should then allow us to swap out parts of the base mesh for the respective clothing mesh, enabling players to modify their characters however they like.
We will use this approach when it comes to the customisation of clothes and armour. For things like body proportions, which will also be customisable, we’re planning on using bone scaling - but we’ll talk more about that when it comes to it.
With the modular pawn system outlined and approved, our 3D Artist began working on creating the customisation system in UE4, using Unreal Engine’s visual scripting tool, Blueprints. Then, after spending some time getting to grips with it, we managed to get the most basic functionality of the modular pawn system working - the ability to swap out meshes:
- We’re aiming to use a modular pawn system because it can swap between different meshes, allowing us to reduce clipping as much as possible.
- In a nutshell, the modular pawn system works by swapping between meshes according to which customisation slot a mesh is designed for.
- For this to work, the character has been split up into customisation slots that correspond to marked areas on the base mesh, including the hair, head, upper body, hands, lower body and feet.
- These marked areas represent the parts of the base mesh that will be able to be swapped out for something else, like different clothes, armour and even equipment.
- This will mean that we won’t have meshes underneath whatever a character is wearing because we should be able to swap out, for example, the torso mesh for a shirt.
Our Animator also had a role to play in our quest to build a character customisation system. In order for the meshes to be successfully swapped out, our Animator had to first split up the human base mesh into the marked areas we mentioned above. Each body part was then exported with its own rig so that our 3D Modeller could start testing the modular pawn system in UE4.
For testing purposes, our 3D Modeller decided to use different colours to represent different meshes being equipped - and you can check out this process down below! Our next step will be to create a simple interface, also for testing purposes, and begin working on the ability to change the character’s body proportions with sliders.
This is an example of how we are able to swap out different meshes on a character.
When they weren’t splitting apart meshes, the rest of our Animator’s week consisted of them continuing to get to grips with the new Action System that our Programmers implemented. After reading some documentation for animation implementation, our Animator began adding back in some animations for the Human that had gone missing from the engine.
They then created Animation Controllers for three of our playable characters, including the Watertarg Excursionist, the Earthen Dwarf and the Human. Animation blends and ability triggers were created first for these characters’ Animation Controllers. We then updated and added animation states before assigning animation triggers to each one of these states.
Lots of progress was made on the Houdini Rockifier this week, a massive tool that we will be using to efficiently generate rocks throughout our caves, dungeons and environments. If you need a quick recap, the Rockifier works by accepting a base mesh which it can then generate complex rock sculpts on top of.
There were a few improvements that were made to this tool this week:
- We minimised stretching that was occurring on corner areas of displaced and deformed meshes.
- We added a new section to the Rockifier graph in order to address mesh intersections.
- A mesh auto low-poly process was also added to the graph before we made improvements to mesh auto UV unwrapping.
- Noise generation and rock form definition were also improved. We did this by creating large rocky base shapes which we added striations and finer noise to later on.
After these improvements were made, our Environment Artist imported the Rockifier into Substance Designer to ensure that the workflow was watertight. They then performed a test bake to see how it all functioned - and the end result was pretty impressive! To finish off this test, a smart material was created for desert-style rocks, and we used that to texture the model. There are a few more things we need to do in order to get the Rockifier fully optimised, but so far we’re stoked on how useful this tool is proving to be.
More visual effects were created for the Earthen Dwarf’s abilities this week. Our VFX Artist used similar themes in this set as they did in last week’s (fiery colours, particle effects, rocky imagery and dust clouds) so that the Earthen Dwarves’ identity as an underground mining race was prevalent in their visuals:
- Precise Strike: This deals an accurate strike that targets the weak parts of an enemy.
- Shattering Blow: This reduces the Resilience of a chosen enemy for a long 20 turns.
- Stone Blood: This temporarily turns an enemy’s blood to stone, causing them to lose Health.
- Smite: This deals high amounts of Air Damage and causes the enemy to lose a lot of Energy.
- One With the Earth: This restores some Health and grants the player with Resilience for 1 turn.
- Juggernaut: This gives you the chance to gain extra Strength for every enemy that dies per enemy spawn. When this happens, the Dwarf also grows in size - though this advantage is lost once all enemies have been defeated.
Just as our VFX Artist mirrored the Earthen Dwarf’s character identity in its visuals, so did our Sound Artist tie the sound effects in with the Dwarf’s proclivity for mining and exploring underground tunnels. They did this by using noises that resembled crumbling rocks, such as in Earthquake; hollow, echoing passageways, such as in Earthen Rage; and the metallic tinkering of tools, such as in Thorn’s Aura.
But it was a bit of a technical week for our Sound Artist besides this. Like our Animator, they also had to continue getting to grips with the new Action System, and spent some time creating Blueprints in UE4 for generic skills. They then started to add sound sequences and cues to these Blueprints so that they know when the sound fx on a particular skill should be triggered.
Our Sound Artist ended the week on a high by implementing sound profiles for characters, as well as setting up the first sound of footsteps in the game. We’re still a long way off, but with the addition of things like sound cues and footsteps, Depths of Erendorn is really starting to feel like a finished product!
These are the draft sounds for 'Earthquake.'
These are the draft sounds for 'Earthen Rage.'
For our Programmers, this week has been a frustrating one, filled with infinite loops and strange editor crashes. Regardless, the main goal for this week was to replace walls that do not touch the edge of the playing field with other objects. These objects will still block the LoS (line of sight) in the same way that the walls would, but will instead offer more visual interest and variety in the dungeons.
However, while nearing completion, this feature isn’t quite ready, and there’s still some tweaking and improving that we need to do before we can be happy with the results. In the meantime, our Programmers continued to work with our other team members, ensuring that they had the tools and workflows to use the Action System. This will allow them to more efficiently implement Animations, Sounds and Visual FX - though there has been a specific focus on adding integration between audio and animation, specifically for character sounds:
- Together with our Sound Artist, our Programmers developed a system to give characters their class-specific audio assets for basic attacks, hit reactions, deaths and footsteps. These are the ‘sound profiles’ our Sound Artist spoke about implementing earlier.
- Once these have all been added, it means that we’ll be able to generate a list of sound fx slots and modify them in-engine as the assets are implemented.
- After this, we then integrated Animation Controllers to trigger sound FX from character profiles based on newly created animation SFX events.
Following this, a bit of work was done on ability templates, too. As well as ensuring the generated templates work within the system, our Programmers have taken the next step in streamlining the creation of ability templates by making it so that they no longer need to be implemented specifically. Instead, they require an Ability Data Asset to be automatically detected and spawned.
Moving on, some improvements were made to enemy intentions this week. Our Programmers added the ability for aggressive enemies to update their displayed target to the closest player. While these enemies behave correctly, their targets weren't getting updated in the client during turns, so some logic has been applied to get an accurate result as characters are moved.
These are the draft sounds for 'Thorn's Aura.'
And that about wraps it up! Thanks for joining us for another development update on Depths of Erendorn. If you liked what you saw, come and say hi to us on social media!