July DevLog | Game Development Summary
July was one hell of a month for our online RPG in development. We’ve got a bit of something for everyone in this devlog, from 3D modelling and asset creation, to tips on sound effects and an in-depth look at how we’re programming Depths of Erendorn. Remember to check us out on Twitter, Instagram and Reddit for daily updates on our indie game – now let’s get into it.
A lot of new characters from the game were brought to life this month, namely enemies and NPCs. Our 3D Modeller’s workflow typically starts with sculpting the character in ZBrush, including blocking out the initial mesh. The sculpt is then retopologised and unwrapped in 3DCoat, baked in Marmoset, and textured in Substance Painter.
The new characters that were modelled this month include the:
- Earthen Dwarf Merchant: This will be one of the many Merchants in Erendorn who you can trade with. Each Merchant will have their own unique stash of merchandise, and the Earthen Dwarf is no different. Hailing from the Dwarves’ secret underground tunnels, these Merchants possess a lot of valuable minerals, resources and weapons that can’t be found elsewhere.
- Storm Elf Javelineers: These will be formidable enemies in Depths of Erendorn who you will have to fight. As with all Storm Elves, the Javelineers are able to hone powerful lightning magic, as well as being resistant to Lightning Damage. But what really distinguishes these enemies are their lightning-charged javelins, which always hit their target with precision.
Three variations of Deadly Plants were also worked on this month. This class of enemy is native to Erendorn’s jungles, but some have been known to grow in the dungeon depths. And these aren’t just your average fantastical plant – Deadly Plants are carnivorous, flesh-hungry, and some can even regenerate:
- The Hydra Plant: Looking like the post-apocalyptic three-headed mutation of a Venus Fly Trap, the Hydra Plant lures its victims closer under the guise of being harmless plant life. Then, when you’re close enough, it’ll lash out for a quick bite or two. Their weakness lies in the fact that their energy decreases proportionally to their remaining health – so kill it fast!
- The Predator Plant: Striking an uncanny resemblance to the demonic anglerfish, the Predator Plant is also a carnivorous plant that is capable of dealing high amounts of damage. Fortunately for the players, Predator Plants can only attack one target at a time. This gives you the opportunity to work strategically with your team to defeat this enemy before it eats you.
- The Thrasher Plant: Completing our trifecta of nightmarish flora, Thrasher Plants were also modelled this month. This opponent will literally stun you into submission, and it comes in two classes: the Deadly Thrasher has Stun that bleeds over time, while the Lifestealing Thrasher has Stun that will eat away at your Health.
When sculpting these complicated creatures, our 3D Modeller kept all the parts separate from each other, including the heads, stems, leaves and roots. This meant that they could be sculpted much more easily. Some animation tests were also carried out along the way so that we could make sure the mouths would open and close properly.
Then, once we had finished their meshes and baked their maps, we could finally start texture work. We only managed to texture the Hydra Plant this month, with its tropical colour scheme that makes it look alienesque, and the mottled texture that was emphasised around the base of its head. Check out our weekly devlog to hear more about how we textured this awesome character. We’ll be working on the Thrasher’s textures next, so August is already shaping up to be an exciting month!
Our Animator was in the engine a lot this month, working on getting all of our characters and their animations up and running in the game. This involved:
- Creating new run cycles for some playable characters, as well as some bipedal animals
- Animation blends were then updated to make these characters’ movements more seamless
- Bipedal enemies, including the Zombie and Bandit, were imported into Unreal Engine
- Animation controllers were created for many entities, from the rat to playable characters
- Spell animations were also added to characters, like the playable Watertarg Excursionist
- The unique skeleton and skeletal meshes for turtles and crocodiles were also brought into UE4
- The turtle’s animations were adjusted to the new rig, cleaned up a little and then imported
- Draft animations for the crocodile are currently being worked on so that it can also be imported
The next thing our Animator improved was timing animation. This refers to how long it takes for an action to be carried out. In some cases, our animations were moving a bit too fast, making it hard to see certain moments. In other cases, the animations were taking too long to complete an action, making it feel a bit clunky.
Our Animator played around with a few timing changes before striking the perfect balance. Now, movements feel a lot more fluid and natural when you play. We noticed a real difference in the animation for ‘Impair,’ for example, where the swinging of the sword had to move at the right speed in order to feel satisfying and realistic.
Tombstones and Urns
A huge variety of tombstones and urns were created for the game’s environment this month. These assets will be used to set dress our dungeon rooms, representing ancient relics from past eras. To make this clear, every tombstone and urn was patterned with small cracks, and textured with a weathered stone material.
To really show how long these artefacts have been in the dungeons for, we decided to make some destroyed variations of these assets. To do this:
- The original meshes of the sculpts were split up
- A stone material was added to where the meshes were split
- Further damage was added through the use of cracked stone decals
When creating these game assets, it was important to keep the lids of the urns as separate meshes. Not only will this aid in future animation, it also means that we can swap the lids around to create more variations of urns. This will eliminate the risk of repetition in the game’s environment.
Creating an Interactable Lever
There are going to be a few different styles of levers in the game that players will be able to interact with. We won’t give any clues away yet about what they do or where they lead, but it’s sufficed to say that our Junior Environment Artist had to find a way of ensuring that this prop could be animated:
- In order for the lever to work, the different mechanisms needed to be separated
- This led our artist to separate the cogs and the lever in the blueprint so that they could turn
- When the lever is pulled, the cogs will thus be able to turn independently from the lever
Both stone and metal textures will be able to be used on these lever variations. We’re currently using a stone material in order to make the asset blend into the scene better, but this can be easily swapped to metal if it’s ever in a dark, fiery dungeon room where metal would look better.
Improving Decals for Runes
An exciting development this month was the use of decals in projecting rune carvings onto some of our environmental assets, like shrines and altars. Decals are essentially used to project images onto surfaces. In this context, it means we can easily decorate our assets with unique, pre-designed rune combinations without having to create the runes individually (which would take forever).
There was one issue with this method, however:
- The rune decals originally relied on both a normal map and a diffuse map
- A normal map makes something look 3D, while a diffuse map adds colour
- While we want some rune carvings to look painted, we want others to just look like stone
- Unfortunately, there wasn’t an option in the engine to turn off the diffuse map on these decals
- This meant that we couldn’t use the normal map on its own, meaning that every rune had colour
But hope was not lost. Our Junior Environment Artist managed to work around this issue by creating two separate materials: one with colour, and one without. With those in place, we only need to use a normal map for the colourless material, allowing us to create both painted and non-painted rune decals for our assets!
Creating Settlement Assets in UE4
This month also saw the inception of the game’s first ever settlement. Our artists kicked this project off by creating some of the generic assets that will appear inside, including things like tables and chairs. Rather than individually sculpting and painting all of these props, our artists instead decided to make sure of midpolys in UE4:
- Midpolys already have their key details in the geometry
- This allows textures to be applied directly to them in the engine
- We will use a custom material to texture different parts of the mesh
Material IDs will be used to identify what materials are needed on specific parts of the mesh, such as wood for the planks or metal for the accents. With this method, only one texture will be needed for a number of midpoly assets, which saves a lot on time and texture budget.
We’re also using a texture atlas to add materials onto certain assets, like books or the stew inside a cooking pot. A texture atlas is basically one giant patchwork image that is made up of lots of smaller images that are packed together. This means it has a variety of texture in one image:
- Using the texture atlas, we can duplicate the mesh of a specific asset, like a book
- We can then move its UVs to a different part of the texture atlas to get a whole new texture
- This process means that only one mesh and one unwrap will be required for an asset
- We can also get a lot of variations by using different parts of the texture atlas for different assets
While decals were getting improved and assets were getting created, a ton of updates were being made to the environment of our cave dungeons, specifically for things like rubble, wall materials, and cave terrain materials:
- Rubble mounds were created and implemented. This involved texturing 40+ rocks in Substance Designer. 100+ rubble rocks were also created and scattered throughout our caves.
- The cave wall material was refined so that we can add colour variance to meshes, depending on world position.
- The cave terrain material was reworked literally from the ground up in order to fix tessellation issues, as well as to improve the textures.
- A large-scale terrain material was also created for the outside environment, including settlements. This will continue to be worked on in the coming weeks.
- Placeholder weapons, including swords, staffs and warhammers, were implemented into the engine, where they’re being used as set dressing pieces.
- Post processing voluming was changed in order to increase contrast in darker areas. Doing this will also help to reduce colour washout caused by near fog.
- Cave dungeon entrances were created in Houdini and brought into the engine. This gave us an example of how our dungeons will appear from the outside.
Another exciting thing to happen in the environment this month was the creation of a brand new scene in UE4 that will be used to display characters, weapons and assets. This scene will not only become the new backdrop to our weekly character profile cards, they will also allow us to test our models under specific lighting conditions and camera setups.
After testing out all of the visual fx in the engine, our VFX Artist had to make some adjustments to abilities this month. While some were too small, others were too big, and there were even some that were just spawning weirdly. The Forest Druid, in particular, had a couple of abilities that needed tweaking:
- The VFX for ‘Reserved Power’ were made a little bigger in order to give them more impact
- ‘Earthbloom’ also had a lot of changes made to it because it wasn’t cohesive with newer VFX.
All of this is being done in an effort to get the visual effects working great and looking even better. This is also why our VFX artist used the new node system for projectiles to test some unique effects:
- Back in May, we created Projectile Custom Steppers. In a nutshell, these allow us to implement a series of VFX and SFX that are triggered one after the other from when the player casts an ability.
- Our VFX Artist is using this new system to test out different variations of projectile effects. Once it’s fully up and running, it will be a much more efficient way of handling projectiles in the game.
- This is because each phase of the projectile – i.e. the launch, travel and impact phases – triggers a specific asset. In this case, it would trigger visual fx.
Our VFX Artist also spent some time improving the firefly particle system so that our Programmers could start using it to implement light sources in rooms. These will add a fantastical element to our otherwise sinister dungeons.
Using Borax to Create Sound FX for Birds
Yes, you read that right. When creating the sound effects for Erendorn’s Silver Hawk enemy, our Sound Artist wanted to really capture the savagery of their attacks. There were a few ways they did this, one of which involved dragging knives against each other in order to replicate the slicing sound of razor-edged talons. But Borax was the starring role here:
- When mixed with water, Borax forms a slimy, malleable goo
- Our Sound Artist would then rip, tear, squelch and splat this slime
- The wet sounds of the Borax was an ingenious way to convey blood, skin and viscera
- These sounds were then recorded, and became the basis for the Hawk’s wounding attacks
Adding SFX to Characters
Parakaws are a highly intelligent race of spellcasters in the game. To emphasise this, a delayed vocal layer with a slightly different pitch was played behind their main voice. This created an extra layer of chorus, making the Parakaws sound resonant, magical, and transcendental.
Drovals, on the other hand, are vicious humanoid dogs whose vocalisations combine the sounds of wolves, coyotes, and other canines. A vocoder was also used to make these enemies sound even more savage and unique.
New sound profiles were also created in UE4 for a few following low-level beasts, including the Giant Rat, Grey Boar, and Swiftstrike Jaguar. Now that these characters all have sounds assigned to them, we can attach these to their relevant animations and test how they function in the game. It’s pretty cool to see all models, visuals, and sounds come together in this way – it won’t be long now until all of our characters are at the same level!
How to Create Spider Footsteps without Overlap
When it came to implementing the footsteps for the Zentragals, which are humanoid spiders that you can play as and fight against, our Sound Artist had to ensure that there would be no overlap. Since Zentragals have eight legs, aligning every footstep to each individual foot is not only difficult, but also just sounds bad. This is because the amount of feet creates a lot of overlap.
Our Sound Artist resolved this issue by using a technique that is common in films:
- When dogs appear in films, only three paws are being recorded for their footsteps
- This is because recording all four paws creates overlapping and messy sounds
- This lead our artist to apply steps to only some of the Zentragal’s feet, instead of all eight
- This reduced the amount of overlap without making it sound like there weren’t enough steps
Weapon Sound Effects
A lot of sound fx for weapons were worked on this month. As a result of that work, we now have sfx for one- and two- handed spears, axes, hammers, and non-magic wands that will be used for melee attacks.
Creating sound effects for the heavier weapons involved a lot of chopping and cracking of different items, as well as heavy amounts of layering in editing. Each of these weapons now have their own distinct sound and feel to them, so hopefully we can start using them with animations soon!
As always, it was a pretty hectic month for the Programmers of Depths of Erendorn as they continued working on getting the game fully up and running. Here are some key highlights for you:
Replacing Internal Walls with Rocky Assets
After a fair few weeks of work, internal wall meshes in the game are now replaced with authored pieces that our Environment Artist has been working on. This includes a lot of different rock formations that come together to make our dungeons look like the subterranean caves of dreams.
Upgrades were also made to exterior walls this month, which are now stacked very high. The highest stack now also has greater freedom to be offset so that it can create interesting shapes.
Procedural Prop Placement
Our Programmers cracked the art of procedural prop placement by developing a system where collections of props are put into Prop Families. Each ‘family’ contains a particular category of props that are similar, but can be used in a variety of ways. This means that our generated environments will have good variation among their props whilst maintaining a consistent art style.
A Prop Volume blueprint was then created so that the system knows where to spawn Prop Families:
- A Prop Volume blueprint identifies the suitable locations where a Prop Family can spawn
- The blueprint will place primary props first before placing secondary props radially around them
- The same process happens with tertiary props, i.e. the more generic props in a Family
To know where to place Prop Families, our Programmers added a function that identifies the open spaces in a room before populating these with Prop Volumes, the size of which is determined by how big the space is. We’ve also introduced a method that detects any open space around a Prop Volume so that the props can make better use of the space, rather than being clustered together.
We now have the ability to generate any number of environment combinations whilst keeping our assets consistent. This was made possible through the use of a Room Profile class, which defines things like internal wall models, sets of lighting props, ambient sound effects, and Prop Families.
In a nutshell, this means that we can use any variation and combination of these assets when generating a room, without worrying about things clashing or not looking cohesive.
Balancing Out Enemies
A problem that started affecting gameplay was the amount of enemies spawning in a dungeon and how difficult they were. This was a problem because the turn-based nature of the game meant that a lot of time was spent waiting for enemies to take their turns, which quickly became quite boring.
To remedy this, our Programmers put a limit on how many enemies can spawn in a given room. However, since each enemy has a predetermined XP value, we were concerned that this new limit would make the rooms too easy.
So, any remaining XP will now be used to level-up the enemies to an elite status. This will ensure that a room’s difficulty will be balanced even when there are fewer enemies present. Using this system, we can effectively balance the difficulty of a dungeon fight with the amount of waiting time between turns.
Simultaneous Turn-Based Combat
When testing Depths of Erendorn, we weren’t just waiting a long time between enemy turns, but also between player turns. This is very common with turn-based games like ours, and it can unfortunately affect the instant gratification that gamers want to feel when playing an RPG.
This led us to the idea of creating a simultaneous turn-based combat system that will allow players to cast abilities together in one turn:
- Previously, players were only able to have their turns separate from each other
- Our new system will drastically reduce the amount of waiting time between turns
- It also enables a much higher level of communication and coordinated teamplay
That’s it for this devlog! If you made it this far – well done, you deserve a medal, and we hope you enjoyed reading about how we’re developing our online RPG. Stay tuned to our weekly devlogs if you want to stay in the loop, or head over to our socials and say hi to us there!