In this week’s devlog, we’re texturing Zombies and spawning some newly completed set pieces, including a Blood Altar and a rather hypnotic Cauldron. We’ve also got some updates on the new Golang server our Programmers have been working on, so stick around for that! As always, join us over on Instagram, Twitter or Reddit for daily updates on Depths of Erendorn - now let’s get into it!
3D Modelling
In our last devlog, we showed you the new sculpt for the game’s Zombie, a common enemy that will appear inside and outside the dungeons. Well, after retopologising and unwrapping the mesh, our 3D Modeller began texturing this gruesome character:
- For the body texture, they started with creating the materials for the muscle and skin layers
- Then, using a mask to blend between these layers, they painted torn shapes on the skin to reveal the muscle material underneath. Height information was also added to give a sense of depth
With the standard Zombie all wrapped up, our 3D Modeller then went on to create a couple of different versions of this character. While there are a total of five classes of Zombies in Depths of Erendorn, we only had time last week to finish up three class types, including the standard Zombie and the:
- Feeding Zombie: Slightly stronger than the generic Zombie, this class will eat any corpse that’s next to it, and regenerate Health as a result
- Plagued Zombie: The next class up from the Feeding Zombie, this enemy is less common but way more grotesque
Animation
Lots of animation work was carried out on the Human rig last week, including:
- Adjusting its run cycle
- Adjusting its basic idle so that it’s a bit simpler
- Adding the idle and run cycle animations to the engine
- Adjusting skin weights for the Human Guard and Merchant
- Creating Animation Controllers for the Guard and Merchant
- Exporting Guard and Merchant skeletal meshes and added them to the engine
Environment Design
Set Pieces
Last week, we created some set pieces using old meshes that hadn't yet been implemented to spawn in the dungeons. New set pieces include:
- A Blessed Pool
- A Blood Altar
- A Pulsating Cauldron
We had particular fun with the cauldron, where we created a function in the liquid master material that uses vectors to create a swirling animation, giving the potion inside the cauldron a hypnotic effect. We may not keep this but it's been fun to experiment with as it uses no textures!
We’ve finally set all of these set pieces to spawn in the randomly generated dungeons, which is awesome to see when play testing. Check them all out below!
Programming
Last week, the client saw the addition of weapons to in-game characters, as well as the integration of these weapons with their animations:
- Weapon Classes: Created blueprints for weapons to integrate with character classes. Enabled weapons to be equipped and unequipped to sockets on character meshes, giving us the ability to adjust and preview weapons in the editor.
- Equip Animation Logic: Implemented mechanisms for character animation controllers to trigger equip animations before performing weapon dependent actions, such as melee attacks and physical abilities. These mechanisms also trigger unequip animations before performing hands-free actions, like casting spells.
Golang Server
Last week was also a really productive one for the new Golang server. For starters:
- The test client is now fully complete for its first stage, meaning we can now join a game with it connected to the settlement and dungeon server. We can also use the test client to create and delete randomly generated characters, providing the gateway for fully automated debugging and stress testing, should we ever need it. We can even create fake bot 'players' that we can use as AI companions, should we ever feel the need to.
Additionally, the decision has been made to test out all the players having their turn in real-time:
- Implementing a real-time system basically means that players’ actions will happen immediately. Currently, players’ actions are put into a queue, and each action is done after the animations are completed for the previous action. This could lead to some annoying mistakes where, for example, you would see a low hp enemy, right click to kill them, only for someone else to already be killing them in the queue and for your attack to be wasted - which would suck.
With the new system, everything will happen the instant the player clicks, meaning that teams can coordinate to pull off their combos, rather than hope their teammates haven't already done it and its all queued up.
To handle this new real-time system, which we've yet to code, the way servers handle commands has had to be overhauled to accept delayed damage (as the spell flies through the air) and other parameters.
That’s it for this week - see you next Monday!