It has been a busy and technical week for the team! The team working on hairstyles have been working on optimisation. Meanwhile, the wizards of coding have been improving the movement system and doing some major bug fixes with all newly added features. During this time, the environment team has been researching and implementing the best method for set-dressing the landscape within the initial settlement of Erendorn. Finally, the animation team has been updating some more complex animations and the VFX team has been concepting a new range of character abilities as well as some experimenting. 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!
As the hairstyles for characters of Erendorn start to take shape, the team have taken some time to optimise the current hairstyle. This process will be beneficial to the team in a couple of ways. Firstly, while optimising the hairstyles, the team will take up less processing power when the hairstyle is rendered into the engine. This gives the team an idea as to how much they can achieve with the current process of creating hairstyles. Secondly, with the information from the previous point, the team will be able to make a more impressive hairstyle while keeping the processing power lower. Creating a more optimal hairstyle will also come as the team get more familiar with the hair tool within Blender. An example of a hairstyle going through the optimisation process can be seen below.
This week has seen big improvements to movement input, animation and function, as well as a big reduction in the number of logs generated when running Step classes. Additional work completed by the client-side team can be seen below.
- Optimised character movement to keep track of the next relevant step as movements progress, reducing the amount of function calls per-character-per-frame when updating character positions. This has greatly improved performance when a large number of characters are moving simultaneously.
- Updated movements to path locally for the first step, this ensures characters aren't teleporting to the first step of their movement. If a character's respective Server and Client locations don't match, either by connection delay or other unexpected faults, the Client is now capable of correcting the start of the path to smooth out the result.
- Added the ability for a movement to be cancelled before it has begun if it was queued ahead of the current movement. As a result of movement in the World of Erendorn being tile-based, not every movement command can be executed immediately (in the case that a new movement command is sent as a character step between tiles, the ongoing movement must finish before the next begins). Rather than adding a new movement for every request made before the next movement begins, new requests now only update for the next queued path.
- Implemented the Active Effect Template Library and Builder to spawn and be accessible to Sessions, this means Active Effect functions and information no longer require a Combat to be functional.
- Reduced and refined logging across all Step classes, and moved repeated logs for success or failure from individual Blueprints to the Step base class. Added debug settings for displaying finer detail.
- Fixed doubled-up checks in the vendor throwing errors.
- Updated the dungeon lobby widget and removed its blocking of movement controls.
- Fixed party update messages falsely calling out a player leaving a party when going from solo play to a group.
- Started fixing portrait display for parties.
- Interactables in sessions now correctly clear themselves on the session end.
- Fixed combat music audio.
- Fixed zone 1 day music not playing.
The majority of the week has been spent bug fixing and smoothing out features that have been implemented throughout the previous weeks. Additional work completed by the server team can be seen below.
- Adjusted the start of movement code to improve the way it looks in the client.
- Fixed Caged NPC world event activity logging and activation radius.
- Optimised and improved the GetNearestTile function used at the start of open-world combat.
- Added extra merchants in the settlement and changed the existing merchant.
- Moved merchant locations.
- Fixed vendor price modifiers.
- Corrected entity placement at the start of open-world combat.
- Removed test NPC dialogue from the settlement.
The environment team have been in the engine throughout the last week. The majority of the time has been spent researching methods that can be used to set dress the landscape floor as the game is rendered. The team have worked with a couple of different methods to see which can be applied with a smooth transition, eventually settling on using an RVT as a decal. Some alterations were made to the landscape material so the RVT can be projected onto it, instead of being rendered. This will help save processing power when the game is run. Further implementation experiments will be completed throughout the next week, as the team works to blend the RVT into the ground with a smoother transition. They will also work on removing the grass and small foliage from the areas the RVT is being projected onto. An example of the decal above the ground and its projection within the landscape can be seen below.
The animation team have been gathering new references for some unique animations throughout the week. Collecting references and imitating them within the animations is one of the best ways to get more accurate movement cycles. This becomes more apparent when the character the team is animating is bipedal. The team would take these new references and ideas and start updating animations for the game. Starting with the Double Strike movement cycle for the Human Knight, the team used their references to show the power within the swing of the Knight's sword. The pullback and swing of the weapon is the critical movement within this cycle and will be the focal point when the character attacks. Using exaggeration and anticipation, two animation principles, the team has portrayed the sword with a nice amount of weight that needs the Knight's entire body to generate enough force to swing. Without references the team have gathered and used for inspiration this movement can look rigid and unconnected. An example of the Double Strike animation can be seen below.
It has been an incredibly busy week for the VFX team, starting with some work with Niagara. The main focus has been on a new module that will allow them to use the full mesh of an object as an emitter. This can be used in a range of different ways that will be able to show off buffs/debuffs and auras that can affect characters and weapons alike. The final examples of the emitters below show the capacity for detail the team can achieve with this new module. The team will continue to experiment with these new modules and their implementation over the coming weeks. Examples of these can be seen below.
The team has also started the concepting phase of the next set of character abilities. The team has used a variety of colours and shapes to show off the new abilities through these concepts. From these examples, we can see the easily distinguishable silhouette of each effect that will be created. They have done this to help players distinguish between their abilities as they are used within the dungeons and overworld. The team has also created a gesture sheet that will accompany the abilities as they are created. These gesture sheets are a good reference to show animators exactly what the visual effects team are looking to achieve with the character's ability. The team will continue to work on the concepts and start creating the visual effects over the coming weeks. Examples of the concepts for character abilities can be seen below.
That’s it for this week’s devlog, but have you seen our monthly roundup of October yet?!