Welcome back to another devlog, everyone! Featured this week are new assets, new visual fx and sound effects, as well as an update on our Storm Elf Warrior model. We’ve also been busy setting up a new unique rig for some of our beasts, and have been working tirelessly in UE4 to get Depths of Erendorn up and running for future testing. Before we get started, you can check out our daily updates on Instagram, Twitter or Reddit – so head over there if you want to see more from our fantasy RPG in development! 

3D Modelling 

This week, our 3D Artist finished sculpting the Storm Elf Warrior that we began in our last devlog. Of course, once this was done, the sculpt was retopologised and unwrapped – although, both the mesh and unwrap had to be revised a few times. These revisions had to be done for a number of reasons:

  1. At first, the waist armour and gambeson that the Warrior wears were made as one mesh. However, after a few issues with the unwrapping, and after thinking more carefully about how these pieces could be reused for our future character customisation system, our 3D Artist decided to split off those parts.
  2. Another revision involved making some changes to the unwrap in order to ensure that the gambeson had enough UV space. As the straps on it will be baked on normal map details, our 3D Character Artist needed to give it more UV space so that these details would not become too pixelated.

Now that we have finalised the retopology and unwrap, we can finally move on to texturing the Storm Elf Warrior. So far, our 3D Artist has already sorted out the materials for the thick cloth of the gambeson, as well as the dark metal for the armour. Some tweaks will have to be made here and there, so we’ll see you next week with the finished result!

Animation

This was more of a technical week for our Animator as they began setting up a new unique rig in the engine that will be used with some of our smaller beasts. Like our existing unique rig that all bipedal characters are sharing, this new beast rig will be shared by our lower-level quadrupedal enemy types, such as the Skyhound, Jaguar, Lion, Wolf, Dog and Rat. 

To get started on this, our Animator:

  • Adjusted the beasts’ unique rig to fit the Skyhound, Jaguar, Plains Lion and Rat.
  • They then spent some time troubleshooting and tweaking the rig, which is important to do to ensure that all enemy types perform well with it. 
  • Each beast was then transferred from its old rig to a new one that matches the unique rig.
  • Our Animator then cleaned up and exported the new rig and placeholder animations for each beast type.
  • Finally, everything was imported into a test scene in Unreal Engine, where each beast was assigned to the new unique rig. 

Since each beast has its own rig that matches the new beast rig, it means that they share the same hierarchy and names with the unique rig for quadrupeds. Therefore, when they’ve been imported into the engine, it makes it possible for each of them to be assigned to this unique rig. 

As we mentioned earlier, for now we will be using placeholder animations to test how each character responds to the new rig set-up. Once everything is running smoothly, our Animator will then work on the final animations for these characters.

Quadrupedal beasts weren’t the only enemies our Animators worked on this week. In addition to the new beast rig, they also updated the unique rig for bipedal characters. One improvement they made was adding some of the Zombie features to the rig, like the grotesque tongue and drooping eye.

After working on this for a bit, our Animator has made it so that Zombies and Skeletons can now share the same rig in the engine that other bipedal, humanoid characters share, including Humans, Elves, Dwarves and everything in between. As a fail-safe, these Undead enemies will also be able to have a separate rig if necessary, but we’re hoping that everything will work out – if we use as few rigs as possible, character generation in the game will be much faster, which is a big bonus! 

Bipedal enemies, like the Zombie, are able to share the same unique rig that other humanoid characters share.
All quadrupedal beasts now also share the same unique rig in the engine. Doing this reduces the amount of rigs in the game, which will make character generation much faster.

Environment Art

Following our Environment Artist’s work on the stone portal, which is currently being finalised, the sculpting of assets continued this week. The end goal here is to have some nicely detailed and aged looking props for use in Erendorn’s cave dungeons. With that in mind, high poly models were sculpted for the following assets this week:

  • A fire pit;
  • A runestone;
  • A set of urns;
  • A stone coffin.

Before entering the baking and texturing process, these assets will be made to look even more weathered, and will be detailed with cracks and chips. It’s also worth mentioning that at this stage, we’re actively avoiding adding any defining features, like symbol or rune designs, to common assets like these. This is because they will be reused throughout our dungeons, so we want to avoid creating any easy-to-spot repetition.

A row of game assets in ZBrush
These common assets will appear throughout Erendorn’s cave dungeons, which is why we have decided to keep their design free of easily distinguishable features.

Visual FX

Our VFX Artist started working on the effects for some of the Human Knight’s skills and abilities this week. The first skill they created visual fx for was Block which, after it has been selected, blocks the next normal attack from a given enemy. There were a few more exciting abilities worked on in addition to this:

  • Slay: This automatically kills an enemy that has less than 50% Health. Since this is such a powerful ability, we balanced it out by making it only usable against 1-tile enemies that are either humanoids or beasts. 
  • Zeal Master: This increases a player’s Zeal by 12. Zeal is a secondary resource that can only be used by the Knight. The player can then spend Zeal on specific Knight abilities that cost Zeal to use – so to have more of this resource is always useful.
  • Fist of the Titans: This allows you to target a random 1-tile enemy in a room. Not only does it stun them for one turn, it also grants you 1 extra Zeal per turn. 
  • Test of Allegiance: This restores a small amount of Health to a friendly target, like another member of the team. Alternatively, if you choose, it deals a significant amount of Physical Damage to an enemy target. 

Sound Design 

This week, our Sound Artist created the sound effects for two Twilight Elf Assassin abilities: Crippling Strike, which deals Physical Damage as well as roots an enemy, and Rupture Kick, which also deals Physical Damage whilst simultaneously reducing an enemy’s Strength. Sound effects were also worked on for the generic Counter ability, which can be used by the Knight and Watertarg

Then, for the rest of the week, our Sound Artist spent some time getting used to a new software that will be used to create monster and creature effects. They started with the Zullra, a shapeshifting desert race that appear as enemies in the game. These characters are interesting because they work slightly differently to other enemies, given that they are made of sand and, when they die, reappear from the sand as smaller versions of themselves. This meant that our Sound Artist had to put in more layers than they have previously done for other enemies. An example of this is the impact sound:

  • Usually, an impact sound is related to the attack, not the reaction. 
  • If you hit a Zombie, for example, your sword’s ‘slash’ is the impact sound, while the Zombie’s ‘groan’ is the reaction. 
  • Since Zullra are made of sand, both the weapon and the Zullra will need to have an impact sound.

Depending on how the visuals are designed, the sound effects for the Zullra’s death will also be interesting to create as they split into smaller, and thereby weaker versions of themselves. This means that the death sound will also have to include the reforming of smaller Zullra from the sand.

In addition, the Zullra are massive and intimidating enemies, so our Sound Artist has been working on making their size apparent in their sound design. They are also fairly mysterious beings that have no eyes, instead relying on some kind of unknown sight or intuitive way of understanding the world. This inspired our Sound Artist to create their sounds as though they are a part of Erendorn itself – so huge, deep reverberating noises that would travel far seemed pretty fitting for this. 

Our Sound Artist is currently working on the Bonelair Gargoyles. They’ve already got the right effect parameters made up, so now it’s just a case of recording a few extra vocal pieces and adding in some attack sounds. Footsteps and movement sounds will be created for these enemies next week, so stay tuned for that! 

These are the WIP sound effects for the Zullra’s movement.
These are the WIP sound effects for the Zullra’s idle.
These are the WIP sound effects for the Zullra’s hit reaction.
These are the WIP sound effects for the Zullra’s attack.
These are the WIP sound effects for the Zullra’s death.

Programming

A lot of work was carried out by our Programmers this week in the continued effort to get Depths of Erendorn playable in the engine. Starting with the Room Builder, this benefited from the addition of terrain sublevel loading, allowing us to move away from building rooms out of individual tiles. Instead, we will be loading combinations of set pieces and terrain pieces to populate room environments. 

Our Programmers also created an ability controller for handling abilities that accept both entities and tiles as targets. Once this entity-tile targeting ability controller was created, we had to add different spline visual positions for every entity-tile ability, including Displacement, Kinetic Crush and Leaping Strike. 

There were also many new additions made this week:

  • A fading tooltip widget was added for ability details as well as for status effect details.
  • Ballots now have a ‘Ballot type’ which allows our Programmers to set what type of Ballot it is, meaning we can have the client treat them differently depending on what they’re for.
  • The first example of a Ballot we have is a reroll vote, where players can choose to reroll the room they are about to enter in a dungeon.
  • We also added the foundations for the client’s understanding of the pings and chat messages from the server. Later, VFX and chat boxes will be integrated with these foundations. 

A placeholder grid material was also added to the engine this week. This placeholder grid was then integrated with the camera. The grid responds to a player’s cursor position, and it also has various parameters that we can control if we need to change the colour, size and fade distances of the grid. This will make it a lot easier to understand the spaces between enemies and players, and will also better help our testers try out the game properly in the future. 

Moving on, game events were added to the room detail panel this week. This is a panel that shows you what you will face in the next room so that you can decide whether you want to reroll or not. Game events vary in their content and effects – they can do anything from changing stats, to spawning special enemy encounters. While we’re on the subject: 

  • The Game Event Manager has been integrated with logs from the server. This means that when events start, they are added to the Event Manager.
  • This then fires off an event that we can attach other functions to. These functions then run with and respond to new events. 
  • Game events now also use the notification panel and a new on-screen pop-up in order to display their effects when they are triggered.
  • This will make testing the game and understanding what is happening much easier as the players will be given more information. 

Following on, several new events specific to each game state were created so that we can hook up different things in the client to when the client enters and exits these states. These types of events concern the changing game states – like pause, for example.

Finally, our Programmers added Damage and Heal numbers to the health bar object so that future testers can see exactly what Damage has been done and how Heal has affected an entity. This will help to ensure that we can test and double check our values. As well as this, the client can now parse and make use of Damage and Heal logs from the server, allowing us to create the UI objects for Damage and Heal numbers. 

These are the visual FX for ‘Test of Allegiance.’

That wraps up our week! Remember to check out our socials for daily updates on Depths of Erendorn, and we hope you all have a great weekend!