Welcome back to another Depths of Erendorn devlog! This week’s update comes with a ton of highlights, from sacrificial altars and environment progress shots, to spidery animations and developments with the UI. This is also the first devlog with our new Programmer, who joined the team a couple of weeks ago – so keep reading to see what they’ve been getting up to! As always, you can find us on Twitter, Instagram or Reddit for daily updates on our online game in development, but for now – let’s get started! 

3D Modelling

Resculpting Lions & Bases

Last week, our 3D Modeller’s priority was making some tweaks to existing character sculpts. Starting with the Plains and Mountain Lions, they gave these feline beasts a brand new mane that had a little more character to it than the previous sculpt. The paws were also scaled up so that they would translate better in animations.

The new lion mesh was then sent to our Animator, who binded it to the rig to see if it fit well. Here are some of the progress shots:

Next on the list was resculpting the human female base mesh, which needed its proportions and face details changing. This work mainly involved refining areas of the anatomy so that they look more realistic. Here’s a before and after: 

Animating the Zentragal

A few animations were worked on for the Zentragal Illusionist last week, including a nice left and right shuffle (which gave a few us some mild bouts of arachnophobia). In addition, our Animator also created an animation for ‘Spiderling Implant,’ an ability that the Zentragal can use to summon a Spiderling from the impending death of an enemy – if they’re lucky, that is. 

The animations were then cleaned up and exported – check them out below:

These are the new animations for the Zentragal Illusionist

Environment Design

Set Piece Design

First up in Environment Design is some new props and set pieces that were created for the game. These include new candles, which use an emissive map that fakes subsurface scattering. These will be placed around altars and other assets in order to add some good old gothic lighting to the dungeons. 

Three new set pieces were also created, including a sacrificial altar, a destroyed camp, and an abandoned mining cart complete with scattered chunks of crystal. All of these will be procedurally generated throughout our dungeons as a hint towards past events, from failed excursions, as shown by the destroyed camp, to sinister creatures who make bloody sacrifices. Different variations for each of these will be worked on in the future, but for now here’s a look at everything created last week: 

Game World Environment

Next up, the world’s environment! Work in this area mainly involved making a few necessary tweaks, like remaking spruce trees, improving grass and tree spawning, optimising boulder meshes for foliage placement, and refining the outer world play area to be less bumpy. We also tested a method for creating dungeons in the world, but this will need to be worked on a bit more before we can get it properly working. 

Visual FX

Last week, our VFX Artist was mainly concerned with refining a few pre-existing visuals and planning for future effects, like the Watertarg Excursionist’s level 3 abilities. As usual, our VFX Artist is creating a concept sheet for these abilities where they can sketch out all the different colours, textures and movements that they want each effect to have. They will then use this to guide the creation process. Now, we would show you it, but it’s only stick figures and text at the moment – but come back next week to see how it all turned out!

Sound Design: Footsteps

Our Sound Artist spent the whole of last week recording a variety of footsteps, all of which can be altered or combined together to work for a huge amount of characters in the game. When recording these sounds, our artist decided to use a pair of shoes with soft rubber soles. This is because they don’t create as much sound as a harder sole would, making them fairly indistinguishable and easier to use for more characters.

They also had to take into account all the different types of surfaces that characters will be walking across in the game, from rock, gravel, and grass, to soil, stones, and different combinations of all of these terrain types. That said, footsteps were recorded for all of these different surfaces – give them a listen below:

Jogging on soil
Jogging on rock slab/ stones
Walking on rock slab/ stones
Walking on hay/ grass

Programming

UI Development

Last week was focused on returning to UI development, with special attention paid to the turn display:

  • New Portraits: Our UI Artist has rendered new portraits to be used with characters in the game. These portraits are an improvement on the previous ones as they make use of transparency, giving us the ability to use them in silhouette and other creative ways.
  • Turn Character Health Display: Characters in-game now have their health displayed with their portraits in the turn display. Showing this information laid over character portraits provides players with a better chance at making strategic decisions during gameplay.
  • Scrolling Timeline: The turn display has been updated to allow the turn order to be scrolled, which frees some up prime screen real-estate while remaining intuitive.

Server Rework

We also welcomed a new team member to the Programming department last week, and now that they’ve had a chance to settle in, we thought we’d start including what they’ll be getting up to! So, after spending a week catching up with how the project functions and how all the code operates, our new Programmer got down to their first bits of serious work: creating new things for our Golang server, which is being set up to replace the old PHP server.

That said, here’s what’s been worked on so far: 

  • Enemy select code: This decides what enemies the game is going to spawn from predefined enemy groups, and even ranks some of them up to being elites if there is spare xp leftover! This means that whenever a player or party enters a dungeon, we can spawn a group of random enemies perfectly suited to the level of xp the party is currently at (in addition to a little bit of randomness, of course).
  • Server configuration file: We’ve put all the information that the servers need to talk to each other into a configuration file called a .yml. This means we no longer need to hard code in a server’s IP address, password, etc., as text inside the code itself. Having a file means not only are our servers a bit safer, since you can’t just look at the password in the code any more, but we can also change the information in the file easily should our backend servers ever need to be switched around.
  • Connecting Settlement server to Dungeon server: We’ve created code using the new .yml files described above to allow two of our Golang servers to speak to each other for the first time! This is the first step in having working dungeons on our Golang server as it’ll allow us to have the Settlement server pass you off to a new Dungeon Server when you walk through the spooky cave entrance.

In addition to all of this, our Programmers also spent some time in the client and server:

  • Client: We’ve started to use instanced static mesh in the wall and ceiling generation, which has given us a nice fps boost since these objects now take much less power to render. This leaves us with more time to render other things, whilst simultaneously lowering the hardware requirements for running what is currently in game.
  • Server: We’ve moved from one websocket package to another, a transition that brings with it built-in secure websockets as well as built-in message compression, which will help a lot going forward.

That’s it for this week – see you next Monday!