We wanted to hit the ground running this year, and we did exactly that! We have big plans for this year, most importantly getting the first playable alpha into your hands! January saw developments from our 3D modelling team, programmers, animators and more. As always, join us on Twitter, Instagram, or Reddit for daily updates on Depths of Erendorn - now let’s get into it!
The 3D Modelling team finished off the most recent armour sculpt they had been working on. As a reminder, this armour set will be cosmetic and won't offer any benefits in-game, other than looking badass. With the sculpt complete, they moved onto the retopology and texturing aspects of the project - this is where the model starts to see some real flare, and where the initial theme is brought to life in-engine.
Now complete, the model heads into retopology and unwrapping. Retopology is the process of simplifying a complex 3D model into a low resolution, simplified mesh of polygons.
Once complete, texturing began! This is an exciting step in the process of making models, items, armour, etc. Our team can reference back to the initial concept artwork created by our artists, and apply unique touches and aspects. For example, the model we're currently discussing will harness the power of electricity. Although this cannot be seen in initial sculpts, as textures and colours are applied we get a sense of the theme.
This one is nearing completion, so make sure you stay tuned to the coming weeks to see the finished model! Once done, it'll be handed off to other departments to really bring the set to life.
Set Piece Design
Our Junior Environment Artist had an incredibly busy start to the year. With the recent upgrade to Unreal Engine 5, they began testing out a technology called Nanite. Nanite is Unreal Engine 5's new virtualized geometry system which uses a new internal mesh format and rendering technology to render pixel scale detail and high object counts. Basically, this allows us to make incredibly detailed models at a reduced impact on performance and file size. Our artist began by creating a Bounty Hunter statue:
With this only being a test of the Nanite technology, there's no guarantee that it'll make it into the game. The Bounty Hunter statue then had a weathering effect applied, and although this was just a test, the experience gained will be paramount going forward.
The team then moved onto blocking out and planning our next settlement. This process is used to see how the layout of a town/city will be before any serious work goes into the creation of assets. This new settlement will be home to around 10 NPCs, and is a place where you can rest, resupply, pick up quests and group up with other players.
Fast forward from our Bounty Hunter Nanite test above, and the team began working on creating some new assets with the intention of adding additional detail now, rather than leaving more work for texturing. The pot below has had grooves added toward its base. This effect would normally be achieved using a texture, rather than actually modelling each individual groove. However, with Nanite we're able to add this in much easier, freeing up additional texturing work later down the line. It may sound and look simple enough, but saving small amounts of time over the course of the project really add up, granting more freedom later down the line.
The Programming team have been working incredibly hard since our move to Golang (our new server), the benefits of which massively outweigh the workload. With the new server in place we have greater control, more assets at our disposal and will enable us to deliver a much better user experience for the players. The team have also been working on the transition from Unreal Engine 4, to 5. Although this is much more seamless than a full engine change (moving from Unity to Unreal for example), it still came with some challenges. Overall it was a fairly painless move, with the only major issues coming from plugins that didn't automatically upgrade from UE4 to UE5.
Take a look below at some of the programming work that took place in January:
- Building and using the source code version of UE5 allows us to make changes to core functions of the engine, giving us greater customisation when it comes to solving technical limitations of the standard engine.
- Movement Mapping Tool started and worked on using the idea of our Gridnode system, improving and optimising it for the open world gameplay.
- Map & Navigation can be generated in the client and exported for use on the server.
- Map & Navigation data can now be re-imported from exported data files.
- Created several debugging displays to represent the map data.
- Added the ability to change the settings on the go and recalculate.
- Added logic for closing and removing Websockets when play has ended. As a result of some changes made to UE5, Websockets no longer automatically close even when play mode is exited, leading to multiple connections providing server data which caused crashes. This is now resolved.
- A number of widget displays were disrupted by the engine switch, these have now been returned to normal.
- Event information is now stored when entering a dungeon and is displayed to players when room voting is available.
- Pathfinding in the open world now moves around obstacles.
- Exporting and Importing of MapData has received some fixes.
- Debug displays for the open world pathfinder now works and shows the route taken.
Our Sound Designer dove straight into the new year, capturing wave and environment ambience while on holiday! We believe fantasy RPGs should be a place where you can truly immerse yourself in the world. Walking through a valley should be accompanied by the sound of the wind, birds singing in the distance or the faint trickle of water from a nearby stream. Depths of Erendorn will be a living breathing world and the sound needs to reflect that, just as much as the game itself!
Wave Ambience 1
Wave Ambience 2
The team also worked on a whole host of weapon and enemy sounds. Some being updates to existing files and others being brand new. For example, the wand took some additional planning as we looked at what exactly "arcane magic" might sound like. A wand attack needs to be "lighter" than an ability or spell, but still deliver a distinct sound.
Heavy Husk Beetle
The team also began applying sounds to actual models. This can come with some additional tweaking, as they match the sounds to the movement, intensity and body language of the model.
The Environment Team have been working non-stop since the engine transition took place. With a whole host of new features and technology to play with, they've been hard at work testing and experimenting with all that UE5 has to offer. We previously saw examples of Lumen, a technology that allows us to create and manipulate lighting in ways that wasn't possible in Unreal Engine 4. This time round however, the team is looking at terrain improvements - snow masks, tweaks to terrain generation and VTHM (Virtual terrain height field mesh). Below is a breakdown of their work, along with some examples of it working in-game!
- Implementation of experimental technology "Virtual terrain height field mesh" testing as a more optimised replacement for Tessellation in the terrain material.
- Research into improvements to foliage.
- Research into HLOD layers.
- Terrain auto material upgraded to blend between more layers.
- Snow layer added.
- Terrain improvements made using Gaea.
- New snow mask generated and imported from Gaea to UE5.
- Grass generation tweaked so that it does not populate on steep slopes or above a certain altitude.
- Distance shadows added.
- Fern generation tweaked to be less common.
- Rocks and rubble now generate on steep rocky slopes.
The Animation team began their year on the front foot, creating a whole host of meshes, skin weights and animation sets for new and existing models. We saw the Frogs of Erendorn spring into life, Lizard animations being applied to more models and our Harpy model taking its first steps. Check out their work below:
That's all for this month! Missed our December monthly roundup? Click here to find out more!