It has been an exciting week for development! The protective bodice for the Zentragal has been retopologised and is ready for texturing. Additionally, the environment team have been working on the giant oak tree while animations are created for the Sabertooth Tiger enemy. Finally, the wizards of coding have been working on combat instances and fixing bugs with open-world combat. As always, join us on Facebook, Twitter, Instagram, and Reddit for daily updates on Depths of Erendorn. Alternatively, join our Discord for all the latest!- now let’s get into it!
3D Modelling
Now the sculpting for all sets of the Zentragal armour is complete. The team have moved on to retopologising and unwrapping the model. Each of the tiers has its challenges due to the increasing complexity. Using transparency within the texturing, the team will add the complex straps across the Zentragal's chest and back. This will come into effect most when applied to the face shield of the third-tier armour. With just the block out, the face shield appears to obstruct the enemy's view, which is not ideal for a magic user. Once textures are introduced, the face shield will have a webbing effect giving the enemy much-needed vision. Now, that this step has been completed, the team will proceed with adding a splash of colour to the armour sets.
Programming
Client
This past week has been focused on getting Combat into the World of Erendorn and implementing systems to handle the setup of Combat Instances when approaching enemies. As multiple Combats can occur and a higher traffic of Server messages are regularly received in a single World Session; debugging methods for some major systems have been refactored to include better control and greater precision. More work completed by the client-side team can be seen below.
- Tested and implemented the handling of World Combat Data messages.
- Updated the Combat Manager to be capable of preparing and initialising multiple Combat Instances.
- Implemented the groundwork for different levels of character 'relevancy' with the intention of giving us greater control over the amount of characters and the level of functional detail we want to provide them at different distances in the world.
- Implemented 'relevancy' into update Logs and Events to allow the system to analyse affected Entities and determine whether actions need to be performed fully or in brief.
- Created a Log/Event specific method for filtering Action System logs, using this method we can specify specific logs to focus on or filter out. This greatly reduces any unnecessary spam while still allowing us to debug specific systems.
- Fixed the context menu issues from last week and some ID recognition for inventory items.
- Added in the Delete Item function to inventory, still needs some proper testing following the overhaul below.
- Started overhauling the Inventory UI.
- Created the foundations of the Player inspection menu.
- Adjusted equipment slots to work with a new system and cut out some unused parts.
- Added equipment slot definitions to the PGC static library for some ease of reference in all the relevant systems.
Server
This week in the server has been mostly dedicated to fixing a lot of the new bugs discovered from open world combat now being implemented. As with anything new, there's a couple hundred lines of code minimum that have never been used before, and funky interactions are bound to happen. Additionally, some more combat specific bugs have been worked on as well, including summonable allies like charged spiderling not correctly moving how they should on your turn, and not transferring correctly into the next room of a dungeon when you complete the former one. Additional work completed by the server-side team can be seen below.
- WorldEvent spawning code done.
- WorldEvent framework for activating WorldEvents.
- Fixed an issue where rejoining a session would break parties.
- Combat area size adjustment.
- Zone border tile generation fixed.
- Fixed some methods when working with Coordinates.
- Fixed an issue with map reading and concurrency.
- Fixed a server crash on a badly formed message.
- Fixed an issue when comparing the distance between objects if an object was nil.
- Interactables added to the server and a command to trigger them.
- Vendor messages added opening the doors to adding vendors to the client.
- Adjusted vendor configuration and setup a vendor for the first settlement.
- Added a Vendor interactable which gives the client a route to trigger the vendor message.
- Fixed crashes at the start of Combat in the open world.
- Fixed start of combat movements that move the enemies and players into the start positions.
- Allowed movement/attacks and ability commands in the world session so they can be used in combat.
- Adjusted Inventory message sending.
- Adjusted when the server loads a players Inventory.
- Fixes crashes when saving gained items on dungeon completion.
Environment Art
After the tweaking within the updated engine was complete, the environment team worked with the Great Oak. The asset has been given some realistic texture on its bark, giving more depth. The leaves also got some attention through the last week, the team aim to make them more realistic by adding colour depth and variation. The root system has also been given a robust update, increasing the number of roots that run into the ground giving the grand oak tree a stable base to stand on. This great oak will be used as a unique asset within the engine, its one-of-a-kind nature is the reason for the increase in detail and texture. The majestic tree will be used as a small point of interest in the initial area of Erendorn, guiding the player through the vast landscape. Examples of the majestic tree can be seen below.
Animation
The team have been working on a modular rig throughout the last week. When creating lots of rigs and animations, setting up a skeleton that's usable on multiple different enemies will be a huge time saver. Many quadrupeds that roam the world of Erendorn, such as the Hyena and the Sabertooth Tiger, will have a similar setup for their rigs and movement cycles. Using this modular skeleton, the team have worked on the animations for the Sabertooth Tiger enemy, creating cycles for the idle, walk, run and attack. Taking reference from the big cats of our world, the animation team have portrayed the speed and size of the feline. Examples of the Sabertooth Tiger skeleton rig and movement cycles can be seen below.
That’s it for this week’s devlog, but have you seen our monthly roundup of June yet?!