In this month’s game development update on Depths of Erendorn, we’ve created creatures of lava, built new settlements, recorded ambient sound effects and made the gameplay experience much smoother. Follow the progress of our online game in development on Twitter, Instagram, or Reddit - now let’s get into it!
Three major character classes were worked on for the game this month. All enemies, these characters include the Deadly Plants, the shapeshifting Zullra, and the igneous Magmarai. These are all powerful opponents in Depths of Erendorn that players could encounter inside or outside the dungeons.
Adding The Finishing Textures To The Deadly Plants
If you were with us for last month’s devlog, you’ll remember that we were almost finished with our lineup of the Deadly Plants. This refers to a particularly carnivorous family of flora in Erendorn, including the Hydra Plant, Predator Plant, and Thrasher Plant.
Well, the Hydra Plant was polished off a few weeks ago (you’d know that if you read our last devlog summary - hint, hint, go read it) so all we had to do was texture the remaining two plants:
- The Thrasher Plant was given the characteristic purple colour pallet that the concept art showed. This gives the enemy a particularly alien quality, which is useful because it makes them unmistakable, giving you more time to hightail it outta there.
- The Predator Plant is a nasty piece of photosynthesis and was given a nice, sickly green texture to reflect this. Our Character Artist went one step further and added an almost wet, mucoid glisten to the Predator’s texture to make it look even more insidious.
Once they were all textured, we posed the Deadly Plants individually in a UE4 display scene that we use to test characters, lighting, and assets.
To give you a brief recap of what each of these enemies does, the Hydra Plant is like the more evil cousin of the venus fly trap, luring its victims closer until it can take a bite... or an entire arm, whichever. Meanwhile, the Predator Plant is capable of dealing high amounts of damage with its razor-sharp teeth, and the Thrasher Plant uses its tentacular arms to attack its victims.
Creating Shapeshifting Sand Creatures
By which we mean the mighty Zullra - invisible rulers of the desert, creatures of the sand, capable of becoming ten foot tall or disappearing in ten seconds flat. As you can imagine, they’re going to be tough enemies to defeat. But this character was even tougher to model, trust us.
Because they’re made of sand, we wanted to create a moving sand effect so that it appeared like the sand was constantly flowing over the body and being replenished. To do this, our 3D Modeller and VFX Artist worked together to create a cascading sand shader. In order for this to flow well, the model’s UVs had to be arranged in a particular way so that the textures didn’t just swim around
All of this is still a work in progress while we continue refining the shader, so in the meantime our 3D Character Artist moved onto a different kind of creature - one of fire.
Bringing The Magmarai To Life
The Magmarai are some of the coolest enemies you’ll come across in Depths of Erendorn, which is ironic considering that they’re made of literal lava. You see, Magmarai were once human exiles who happened to be in the wrong place at the wrong time - that is, near the mouth of a volcano moments before it erupted. It’s a long story, really, so you can read all about Thullan and the Magmarai origins over here.
The catastrophe worked out pretty well for the Magmarai, however, who are now resistant to Fire Damage and have mastered a few deadly fire tricks of their own. Here’s how our 3D Artist recreated the Magmarais’ badass, yet complicated design:
- A human base mesh was brought into ZBrush and used as the foundation for the Magmarai
- Plates of rough, organic rock were added on top of and around the body, especially the muscles
- Areas without plating were given a lava material to create the igneous veins and molten areas
- The plating was textured to be obsidian, with glasslike properties and an emissive map
- Orange tones were added around the emissive map to create the illusion of subsurface heat
- Overlaid concavity was also added to the emissive map to subtly highlight the obsidian material
- The next step was to add the veins of lava, which were painted on by hand to get the desired flow
- Some emissivity was then added to the veins as well as the eyes to enhance the fiery element
- The textured model was then brought into UE4 so that we could make the Magmarai even hotter
In Unreal Engine, we created a black and white mask of the Magmarai’s veins. We used this, alongside a panning lava texture, to add movement to the lava. We also set up emissive intensity so that the Magmarai would gradually dim and brighten. This represents its life force, and adds a formidable energy to the character.
Animating Crocs, Wasps, And 8-Legged Freaks
Animation sets were created for some of the game’s low level enemies, including the Redriver Crocodiles, the Mega Wasps, and the spine-tingling Spiders. Here’s a brief glimpse at the workflow:
- The enemies were first all skinned to their rigs
- Their skeletal meshes were then cleaned up and exported
- Animation sets include walk cycles, idles, hit reactions, attacks, and death animations
- The animations were then imported into the engine along with the enemies
- In UE4, animation blends and controllers were created and assigned
Everything was then tested out in-game to see how it all performed. With the wasps, for example, our Animator wanted to make sure that they hovered at the right height when swarming players. To test this, we unleashed a few of them on a Knight travelling alone in the cave dungeons...
Building The Game’s First Settlement
As we continue our efforts towards creating the first settlement of Erendorn, a huge range of props have been created, including food items, market stalls, books, potions, and much more. We’ve also started making the first building that will be added to settlement.
Prop Design: Quixel, Midpolys, and Book Trims
We used the almighty Quixel Megascans to find a huge range of generic assets for our settlement. As a result, we now have wheelbarrows, benches, tools, and picnic food galore! For other generic props, like beds and tables, we used Unreal Engine’s midpolys in order to streamline the workflow.
The work of creating all our different props involved:
- Applying wood and metal materials to various assets
- Ensuring wood grains were the right size and going in the right direction
- Scaling everything up to ensure it was visible from the player’s camera distance
- Creating a texture atlas for the soups and stews inside cauldrons and pots
- Making some glass vials and potions in various shapes and sizes
Some of our favourite props that we’ve created, however, are the books. To make these, we applied a leather material to a book mesh, and then placed a plane on top of this that we could add details to. These details will be unique from book to book, and will include symbols, emblems, and intricate trims.
Building A Guard House In MAYA
The first thing we did to create the new settlement was make a preliminary blockout of it in UE4. This gave us the rough lay of the land and allowed our Environment Artists to start thinking about where houses and other props could be positioned.
The first building we’re making for the settlement is the Guard House. Our incredibly talented digital artist concepted this for us a few months ago, with the idea that it could be used as headquarters for some guards or soldiers. We also want players to be able to enter this structure, so some work was carried out on the interior as well:
- We started by blocking out the initial shape of the Guard House in MAYA
- Everything was then measured to ensure that it would be built to the right scale
- Some modular wall and window pieces were then created
- Wheels were added next, which are an integral part of this building’s design
- We also created a ladder entrance to add some dynamic elements to the structure
- The walls and roof texture were worked on and perfected throughout the process
Whilst the Guard House was getting properly built in MAYA, we were all itching to see it inside the new settlement. This is a good thing to do for testing purposes anyway, so our Environment Artist quickly put together a WIP version of it in Unreal Engine. This allowed us to put a small scene together and make use of some of the recent generic props, giving us a clearer idea on how the settlement is coming along.
This is how the settlement and WIP Guard House look in UE4:
This is what the Guard House looks like in MAYA so far:
Visual FX For Playable Characters & NPCs
Most of the month has been about engine work for our VFX Artist, which means they’ve been fixing, tweaking and remaking some playable character abilities. This includes things like Tempest, a generic spell that allows you to deal Lightning Damage to all enemies in a room. You can use this no matter what playable character you choose to storm Erendorn with.
The fruits of our Visual FX Artist’s engine work all paid off when it was announced that the deceptive Zentragal Illusionist, one of our creepier playable characters from the game, now has a complete set of ability effects. *distant cheering echoes through the internet*
Here are some quick facts about our Zentragal (or you can read their backstory here):
- Zentragals are eight-legged humanoid spiders that hail from the Dead Forest
- Here, they live in broods, and occupy an underground an labyrinthe accessed by spider holes
- These creatures specialise in dark, deceptive magic, and love nothing more than toying with prey
- Broodmother Atova leads the Zentragals, and appears as a formidable enemy in the game
- Zentragal Illusionists, however, have abandoned their brood in the Dead Forest
- Instead, they choose to skitter through Erendorn alone, searching for powers and valuable troves
We’ve put together a little show of the Zentragal Illusionist using all its abilities, so keep scrolling to see if this is the kind of character you can imagine playing as!
Now, moving on to the Magmarai, even though our 3D Character Artist already made this enemy look like a humanoid volcano, our VFX Artist still needed to add a few touches to give it an extra bit of umph. This included placing fiery embers strategically around the body, and making them fade into black wisps of smoke as they radiate from the Magmarai. A soft heat distortion field was also added to this character’s chest in order to emphasise the indication of subsurface heat radiating through it.
These are the VFX for the Magmarai:
There are two main things that we created sound effects for this month: Snapping Turtle’s and ambient sounds for our dungeons. One is a low-level enemy from the game, while the other is what’s going to make you feel like you’re a part of the game. Here’s how we did it:
Creating Sound Effects For Snapping Turtles
We can already sense the question you have swimming around in your head: what on earth does a snapping turtle sound like? Well, we decided to focus their sound design around a lot of aquatic, gurgling noises, which our Sound Artis had some interesting techniques for:
- They recorded themselves gargling with water and making various “graarrr” noises
- These were then slowed down, some even reversed, to create a croaky vocalisation
- The combination of gurgles and water achieved a prehistoric, aquatic sound that fit perfectly with these reptilian creatures
For the attack sounds, we used crunching veg and staplers to enforce the powerful bite that Snapping Turtle’s are famous for. The veg acted as the bones being crunched, while the staplers gave a good firm click that we reworked to sound like a puncture wound.
For their vocalisations, our Sound Artist added some expression to the turtles’ voices to make them sound less like cold-blooded villains, and more like the cold-blooded animals that they truly are. Their expression becomes even more pronounced when a player wounds or kills one - this may make you feel a little guilty (and it should), but it also adds a sense of realism to the game that makes the experience more believable.This is one of the Snapping Turtle's hit reactions.This is another draft sound for a hit reaction.These are the WIP sound fx for a Snapping Turtle's death.
This is the Snapping Turtle's hit reaction.
This is the Snapping Turtle's death.
Ambient Sound Recording & Manipulation
When creating the ambient sounds for Erendorn’s caves and dungeons, the goal was to make them sound deep and full of reverberation, in order to reference the vastness, as well as eeriness of the game. Ambient sounds are basically just the background noises that bring depth and realism to a scene.
Our Sound Artist actually travelled to several geographical locations so that they could record many different voices in nature, from the gentle roar of coastal islands and the winds that whip through Alpine mountains, to the babbling sounds of streams, which became the basis of our first cave ambience:
- The recordings of streams were slowed down to accentuate the rumble of water
- Slowing it down also eliminated any notes that made the recording sound like a stream
- The result was a deep, spacious sound, which we layered with water drops and breaths
- A harmonic drone, as well as reverb were then added to emphasise the deep, hollow sound
Because they were hiking, our Sound Artist could only use a single mic when recording these noises. This meant that they ended up with loads of mono recordings that they then had to blend together into stereo recordings. We’ll actually have a wider use for all of these sound samples than just for cave ambience. Because they’re RAW files, we will be able to edit them down the line in order to make them evocative of different environments in the game, from creepy forests to perilous mountains. These are the WIP ambient sound effects for Erendorn's caves.This is the recording of the stream it was created from.
This is the first draft for cave ambience sfx.
This is the original stream recording that was manipulated.
Programming In UE4
It was another busy month inside Unreal Engine for our Programmers, whose main focus was to improve the gameplay loop and get items, equipment, and inventories working.
Putting An End To Kiting - Sort Of
One of the things we wanted to get working wasn’t actually mentioned above, but it’s just as important all the same. We’re talking about the pursuit mechanic, which relates to how long it takes an enemy to attack its target (i.e. you). In a nutshell, if an enemy takes more than two turns to attack, the pursuit mechanic will give it an additional +1 Movement per turn until they manage to reach the player.
Now, this may sound wildly unfair, but we implemented the pursuit mechanic for a reason. Before it was working, players would be able to endlessly kite an enemy, making the gameplay too one-sided and, in all honesty, a little too easy. By the pursuit mechanic giving enemies increased Movement after a certain number of turns, it adds a little urgency to the game and necessitates some strategic battle plans.
Never fear, though, if kiting gets you going you’ll still be able to do this somewhat in Depths of Erendorn. This is because an enemy’s Movement is reset once the enemy reaches its target, so you still have the chance to once again start kiting.
Improving The Gameplay Loop
The main focus for any game developer is ensuring that there is a smooth gameplay experience, and it’s no different for us. 5 main improvements were explored this month as ways to speed up and smoothen the gameplay loop - here’s what we did:
- Refactoring Work:
Originally, we had groups of managers that would get set up when a new game was created, and then listen simultaneously for information about the game. After refactoring the manager initialisation, however, as well as how the game data is applied, the managers now initialise and update in a chosen order, giving us a clearer idea of how fast assets are loaded, and what part of the setup phase contributes to the longest wait times.
- Staggering Enemy Movements:
Because Depths of Erendorn is a turn-based game, we needed to introduce some measures that sped up how long it takes for players to complete a room. One major aspect that was causing long wait times was actually enemy movements. This is because several enemies can be in a given room at any one time, and waiting for each of them to complete their movement ended up taking a while.
To remedy this, our Programmers trialed staggered enemy movements. This works by allowing the next enemy to start its turn before the current enemy has finished its own. Before this, enemies had to wait until their predecessor had completed its turn before moving, which is what was causing long waiting times.
In theory, it sounds like the perfect solution, right? Well, when we looked at the client and server codebases, the conclusion was reached that this method of turn-timesaving has a large probability of causing disparity between what is being displayed, and what is occurring on the server. So we unfortunately had to abandon ship.
- Updating Movement Calculations:
Enemy movements weren’t the only things causing long waiting times during rooms. Another major contributor were movement animations, which led us to updating movement calculations. As a result, animations now use a movement speed that is specific to the character. This is calculated as a ‘meters per second’ movement value, and it works by judging the length of the movement a character has to take. We’re hoping that this makes the gameplay feel more seamless by reducing the amount of waiting time. This is what the Zentragal Illusionist's abilities look like in the game.
These are the Zentragal Illustionist's abilities in game.
- MoveSpeed Scaling:
We also added MoveSpeed Scaling as a potential solution for making the gameplay a little faster. Once the length of movement for a character has been calculated, the MoveSpeed Scaling feature allows players to speed up how long it takes them to travel over a certain distance. If a move covers more than x amount of tiles, for example, the player or enemy will be able to increase their movement speed to compensate for the distance.
- Loot Selection:
Something else that was causing levels to take a long time to generate was an issue with loot selection, where the server was making a large number of invalid queries when searching for items to drop into our dungeons. We’ve now made this a lot faster by reducing the amount of invalid queries the server is able to make. This not only means that loot selection is a lot faster, it also means that the time it takes to load a level has been improved by a whopping 400%.
Items, Inventory, and Equipment
We had a quest this month - a quest to get items working in the game, to get the inventory manager working, and to allow players to start viewing their equipment. The inventory manager was the first thing we had to focus on because until this was up and running, things like items and gear weren’t able to be added to the game.
Here’s some information on what the inventory manager is and what it allows us to do:
- The inventory manager will manage all the items on a given entity
- It will also allow us to add these items back into the world once they’ve been dropped
- When the inventory manager is complete, we’ll be able to add equipment and entity inspection UIs
- These will allow players to view their equipped items, as well as their friends’ and enemies’
Moving on, in order to allow players to view their inventory in the main menu, items were given a placeholder hover panel. This displays stats and item information, making it easy for players to manage their inventory. We also remade how the inventory system works by implementing a new drag-and-drop equip functionality.
Finally, after reworking the login process in the client, a character’s inventory is now requested from the client when a player logs in. This means that the inventory screen now shows which items are equipped on a given character. Similarly, lobby data and character selection information now also include data about equipped items so that later, we can show a preview of characters with their equipped items.
See you soon for another weekly update!