August DevLog | Game Development Summary
It’s been another busy month spent developing Depths of Erendorn, from modelling different enemy types and creating new animations to implementing a character customisation system. As well as this, our budding fantasy world now includes water! We’ll also be showing off some brand new visual fx for abilities in the game, so if you haven’t already seen those on Twitter, Instagram or Reddit, then make sure you stick around!
3D Character Modelling
After we completed modelling the Tribed series of Lionmen in our last game development update, this month we moved straight onto creating the Untribed series. These can be a particularly ruthless group of enemies since they are bound to no rules or leader, enabling them to really indulge their savage instincts.
With the base meshes for the bodies and manes already made back in July, all there was left to do on the Untribed series was to create their clothing – and, since their clothes were not too dissimilar from our Tribed Lionmen, it didn’t take too long!
- We started by blocking out and detailing the different pieces of clothing.
- While the Tribed Lionmen wear shorts with an armoured front, Untribed Lionmen wear more gladiator-inspired skirts.
- They also wear slightly different armour over their shoulders, and instead of bandages they have studded leather cuffs around their wrists and ankles.
- After blocking everything out, we added more sculpt details like folds in the skirt’s cloth, their rope belt and the necklace they wear.
- After all the modelling was complete, we created low meshes for them and then baked the maps so that the full model would be ready for texturing.
Next, we focussed on creating the clothes for the Tribal Leader, whose base mesh was already modelled and baked in our last game development update. Even still, the clothes that this character wears were a lot more detailed than the previous sets we had made so it took a little extra elbow grease.
- The rope belt this model wears was made using splines in 3ds Max, which allowed us to make the interconnected loop shapes you see.
- Tassets were made for the side of the Leader’s legs, while an extra cloth piece was designed for the front of the skirt.
- Metal cuffs were made for the Tribal Leader’s wrist armour, rather than the simple bandages worn by members of the tribe.
- As always, when all the various clothing and armour pieces had been sculpted, low meshes of them were created and the maps then baked.
With all the clothes modelled and out of the way, we could finally move onto texturing! It was actually quite challenging to accurately replicate all the different fur tones in a lion. To make life a bit easier, we decided to use a photo of some lion fur and then used a cell filter to pixelate all the different shades. This allowed us to more accurately colour pick from the various tones, leading to a more realistic result.
Starting with the medium sized Lionman model, we:
- Used a procedural fur pattern to generate the shorter hairs on the body.
- We then textured the mane by projection painting it from a photo.
- This process ensured a much higher level of accuracy.
- All the other sized bases were then textured using the medium base’s textures.
- This was possible because we made sure, while modelling, that all Lionmen had the same UV layouts.
- This meant that the exported textures of the medium Lionman could be used as a foundation for texturing the other bases.
- The manes, however, had different UV layouts and so were repainted separately.
- Different musculature cavity overlays were then also created for the different body sizes.
After the base textures were done for all the body types, we started texturing the clothes. Luckily for us, many materials, like cloth and leather, could be produced quickly and built upon, which massively streamlined our entire process. We were able to do this due to a library of custom materials that we have been steadily growing with every character creation.
Our production process was also sped up by the fact that we detailed some parts during the texturing phase instead of the sculpting phase. The parts made from bone, for example, were detailed while texturing because of the simplistic forms they had.
The final part of texturing the Lionmen was to simply add a lot of awesome details:
- Creases and stitches were added to the Tribed Lionmen’s shorts.
- A unique pattern was painted onto the Tribal Leader’s front cloth piece.
- Dirt and scratches were added to the Untribed Lionmen’s clothes and armour.
- Black stitching was added to the Untribed Lionmen’s red skirt.
- The cuffs on the Untribed Lionmen were given metal studs that stood out from the leather.
- A headpiece was created for the Tribal Leader to reflect its prominent, more regal position.
And with that, we closed the book on the Lionmen! We had so much fun creating this race of enemies, and we know you’re all going to love fighting them in the game. But they’re not the only enemy type we boxed off this month. We also completed the Wolvajin character series, another race of enemies who are known for their guile, precision and speed – and for stalking their prey at night.
We already completed the first Wolvajin model back in May, so we finished off the series by simply creating the rest of the meshes for the stronger Wolvajin variants. We did this by inflating areas of the body to make them appear more muscular. With a now-complete set of Wolvajins, we could move onto creating yet another race of enemies – but you’re gonna have to come back for our next game development update if you want to find out what that is! (Or, head over to our game site, where we post weekly game devlogs!)
Character Customisation Systems
Much of this month has been spent researching and testing possible systems for character customisation in the game. While Depths of Erendorn has zero pay-to-win features, we do want to give players to opportunity to customise their characters however they like, whether that be their proportions, facial features or clothes and armour. Therefore, we need a system that will allow players to easily do this.
When it came to finding a system for customisable clothing, we thought that the best approach would be a modular pawn approach:
- A modular pawn approach involves splitting up the base mesh of a character
- This should then allow us to swap out parts of the base mesh for other pieces of clothing or armour
- This will enable players to modify and customise character’s clothing however they like
Meanwhile, we decided that bone scaling would be the best way to approach customisable body proportions in the game. This is because bone scaling also influences the size of the clothing and armour so that they adjust to match the altered proportions. Therefore, if a player wanted to make their character more muscular, the clothing would be fitted to the new body size.
For customisable facial features, we found that blend shapes and morph targets would be one of the most efficient systems to implement:
- Blend shapes and morph targets are essentially stored pieces of information on the location of vertices
- They also allow for interpolation between the values of the default target and the values of the morph target
- In a nutshell, this means that players will be able to literally slide between two set size ranges of any facial features – from a small nose, for example, to a large nose (or any size in between)!
To get this character customisation system working, we’re using the Unity Multipurpose Avatar (UMA) plugin, which provides a good framework as well as many additional features for us to work with. To test this, we have created and skinned a character to use as a dummy – but we’re having some trouble implementing this character customisation system into the game (because Unity hates us and all of humanity).
There’s still lots of troubleshooting that we’ll have to do before we can get this system up and running. Hopefully the plugin we’re using works, or we can find another one that works, because otherwise our programmers are gonna have a lot of work to do… so we’ll keep you posted!
One of our playable characters from the game, the Watertarg Excursionist, received a lot of attention this month. We started by updating several of its animations, like Leaping Strike which the Watertarg can now perform with a two-handed sword. We also made another version of the Sprint animation so that the Watertarg can also Sprint while holding one-handed and two-handed weapons.
We also created several new animations for this awesome character:
- Giant Strike: This enables the Watertarg to perform a heavy strike with its sword, dealing a significant amount of Damage.
- Swift Hit: A fun little combat move, Swift Hit not only deals Damage but also has the chance to stun enemies.
- Pulsating Wound: This gnarly-sounding attack deals Damage to enemies for five turns as well as affecting their Movement.
- Leap: This is a generic skill that allows the Watertarg to jump from up to 4 tiles away, giving them a rather dramatic entrance.
- Basic Attack: A one-handed basic attack allows the Watertarg to use a weapon to attack opponents.
Following this, we imported several Watertarg animations into Unity so that we could test them in the game. After that, we decided to focus on the Parakaw Astromancer for a bit, since this playable character also needed a few animations created for it. These included a simple shuffle from left and right as well as an animation for the teleportation ability that Parakaws now have.
With all of that out of the way, we then went on to create basic, out-of-combat idles before adding them to the characters who still needed them – like the Knight, Parakaw Astromancer and Twilight Elf Assassin. These were then imported into the game engine so that all the characters could be updated.
We also imported Swamp Rats, Giant Rats and their respective animations into Unity. Rats are common, low-level enemies in Depths of Erendorn that can deal a fair amount of Damage, especially if you underestimate them. With all of these different characters and enemies getting imported, we can continue testing their playability as well as start adding VFX to them – which is pretty exciting!
August was a momentous month for us in the Environment Art department because we finally managed to add water to our scenery! To do this, water material was created with edge foam and dynamic depth colour in order to establish a more realistic look.
Getting foam to appear around objects that intersect the water was a crucial detail that we wanted to utilise in order to make the environment feel more immersive and complete. We also wanted to improve the visual quality of the bodies of water that we were introducing, and to do this we decided to look into flow maps.
Flow maps are useful because they give directional information to textures. This comes in handy when creating something like a running river or a lava stream since the flow maps essentially tell the textures where and how to flow. Utilising flow maps like this will really help to enhance the overall realism of water and lava, both of which can be found all over Erendorn!
This month in the Environment Art department, we’ve also created a procedural rock generator. Trust us – it’s more exciting than it sounds! That’s because this new procedural rock generator will allow for high resolution rocks, cliffs and walls to be generated from base meshes at the touch of a button. The main benefit of doing this is that it makes for a much faster production process – hence why we’re so excited!
Last month, we mentioned that we had decided to use a modular weapons system in which our weapons would be broken down into their components so that they could be procedurally generated in the engine. That work continues into this month as we created several new high poly sword components. We then created low poly versions of all five swords. This was actually quite challenging because some pieces, like the twisted metal hilt, were difficult to create without using a lot of polygons.
With the low poly versions of our weapons done and dusted, we UVd, baked and textured all our swords in Substance Painter. In accordance with the modular weapons system, these were then imported into Unity as separate components to allow for component customisation.
Unlike the character customisation system, doing this will allow us to create lots of different weapon variations from these components by combining them in interesting ways, rather than giving the player the ability to customise their weapons directly (although, in the future we will be introducing a range of weapon skins that players can choose from!).
Another important thing we did this month was discuss the design of the GUI, a crucial feature for any game that should really focus on enhancing the user experience. This is why it was important for us to establish:
- What information would be most necessary to players
- Where this information should be displayed on the screen
- How this information should be presented so that it is clear and appealing
To get the general gist down, we started by making a UI blockout before discussing character frame layouts. This blockout has been through many revisions since its initial conception and has been really useful in helping us determine a visual theme. What work we’ve done on the GUI so far can actually be outlined in 5 key phases:
- We started by doing some good old fashioned research, like collating images from other games that inspire us. We tried to keep in mind how players would interact with the UI so that we wouldn’t run into any user experience (UX) problems.
- Taking this inspiration, we continued to add more elements to our GUI blockout in order to figure out where all the different aspects would go – like the abilities bar, the character details and stat sheets, and so on.
- Next up were the character frames. When designing these, we tried to ensure that they would display all of the necessary information a player would need whilst being visually concise. Otherwise, our scene would look cluttered and confusing.
- We then began discussing and testing the layout for the inspector panel, the XP bar placement and the Available Movements indicator.
- The final phase involved us fleshing out the detail panels and other UI elements. We also finally decided what our overall visual theme should be, so we are currently working on bringing that vision to life!
So, in our last game development updated, we gave a little hint about something new that was to be expected in the next devlog. Well, the day is here and we’re ecstatic to say that we have welcomed a new VFX Artist to the team! With them on board, we can begin adding visual effects to our characters, their animations, abilities and everything else in between. It’s really awesome to see the game get brought to life in this way, so we can’t wait to share some updates!
This month, our VFX Artist added a ton of textures and materials that will be used with visual effects. They also began reworking some of the effects for the generic spells and skills in the game:
- Bash and Dirk Kick, two generic skills in the game, had a little umph put into them by our artist adding a dust cloud shockwave effect.
- Fireball was given a bit of a facelift by its smoke trail being made more dynamic with the use of embers and less linear movement. Its hit explosion effect was also worked on.
- Acid Bolt was made to look more fantastical by adding moving pinpoints of light floating around it – although it’s lacking some of the deep, dark colours from the artwork, so we’ll be working on improving that over the next few weeks.
Meanwhile, our artist was also working on a secret Ultra Shader that will help to optimise their workflow. Once they’ve got this bad boy working, our VFX Artist will be unstoppable! So we’re really eager to get it up and running. Wrapping things up, some of the new VFX were added into the game to see how they looked – and they look great! More of the skills will be getting worked on next month, so keep your eyes open for our next devlog if you want to see how they all turn out.
Believe us when we say that there is a lot to get through from the Programming department this month, so we’ll try to keep it short and sweet for you. A lot of work this month has gone into improving the items in our game by redesigning how they’re generated and how stats are assigned to them.
As a result, players will no longer get two stats from each item; they will get a different number of stats from different items, and these stats will change depending on their rarity levels. This means that the rarer the item is, the more varied stats a player will gain and the more their character will progress. We feel a lot better about this new system and have made sure to balance it out by ensuring that certain stats will be gained earlier in a level as well.
Since the number of stats on an item is now based on the rarity of the item, we needed to ensure that an item’s rarity level was set by its item power for its level. This would mean that higher rarity items would have a different balance of primary and secondary stats than low rarity items, which give players standard stats. For example:
- Low rarity, i.e. poor items will give players 1 primary stat, like Strength or Resilience
- Common and uncommon items will give players 1 primary as well as 1 secondary stat, like Energy Regeneration
- Rare and epic items will give players 1 primary stat and 2 secondary stats
- Legendary items, because they’re the rarest, will give players 2 primary and 2 secondary stats
This shows how different items can progress a player’s character in different ways. In order to enable all of these changes, the Item Generator has been reworked. We now feel that the gameplay experience of Depths of Erendorn is more diverse and enjoyable since players can progress their character even more depending on the items they loot.
New loot-dropping code has also been worked on this month, and this was done in conjunction with determining how and what stats are assigned to items. Before the change in item rarity levels, the majority of items only gave players two, quite common stats – like Critical Hit. The new code addressed this by randomising the stats and finding items to match them, rather than just choosing a random item. These items can then be more purposefully placed throughout the game so that there is a better variety of loot. This will increase the type of stats a player gains from an item, making the game’s loot feel a lot more rewarding and varied.
While we’re on the subject, here’s a fun fact about the items in the game: so far, there are over 2.2 million lootable items at Level 1. Hopefully, this gives you an idea of the endless possibilities Depths of Erendorn has to offer – and of the turmoil our programmers have been going through to get this working!
But there was a huge range of things that we worked on in the Programming department this month:
- Enemy portraits were added to the Turn Order display.
- A new pipeline for bug tracking was implemented.
- We replaced the light for any unlit fires on walkable prop tiles.
- Correct materials now show on snowy props.
- Floor props were added and modified.
- Mushrooms and rocks were added to potential wall props.
- All props were moved to addressables, which we spoke about here.
- A bridge was added to the room builder.
- Sound effects (SFX) were added for when a player’s turn starts.
- We then fixed the ear-piercing SFX that sounded during a turn change!
- Dead enemies are now successfully removed from the Turn Order.
- The Turn Order display also no longer covers the top half of the screen!
This month has also been focussed on making improvements to the game client’s level generation. One way we have done this is with the implementation of the Addressables system, which we spoke about in our last game development update. In a nutshell, it allows large assets to be compressed into separate ‘Asset Bundles’ and loaded when needed, reducing the game’s memory footprint. Therefore, we will be using the Addressables system in conjunction with the prefabs that are used to build rooms categorised by biome and tile type.
Another way we have improved the game client’s level generation is by simplifying the room builder’s generation. This was achieved by adding a series of asset slots for all walls, floors and prop prefabs. We also added an option to generate a map from a specified biome, which will only affect the client that has it selected.
We could go on forever about all the things we’ve been up to this month, but we think we’ll leave it here! Remember to join us on Twitter, Instagram and Reddit for daily updates on Depths of Erendorn – and if you can’t wait until next month to scratch that game development itch, head over to our game site where we post weekly devlogs every Friday!