Hello everybody! April has flown by in a flash meaning that it’s time for a new Dev Log!

This month has been a good mix of developing new features and polishing existing ones with a good mix of the bug hunting and removing struggle.

Major milestones for April include a complete optimization overhaul for the main castle, designing the “Level 1” hub town, expanding and redefining the shortcut system, adding a consumables system, creating a form of currency, a multitude of new audio features and finally, a number of early prototype enemies have been added featuring procedural and keyframe animation. 

As always, you can find the latest news and developments on a regular basis on the Holomento Twitter.

Main Castle Optimization

I’m going to be straight with you all here, the “main castle” has been an unruly beast of static mesh actors that has been piling up since Holomento’s inception. At the beggining of this month, the behemoth contained over 12,000 individual actors. High actor counts typically equals more draw calls and inefficient occlusion culling. To address this, I merged actors together into chunks that relieves some pressure on the UE4 renderer. As of today, I have reduced the actor count to <1,000 Static Mesh Actors. This number will be even lower in the future, however several areas of the castle are in a half-finished state where I can’t merge actors yet. Overall, my efforts thus far have resulted in performance gain on my system in-editor of 15-20fps.

Hub Town

The unnamed Hub Town of the game is a central location featuring an item shop, tavern, inn and a relic shop. The town starts out in a ruined state before being upgraded by the player. Every aspect of the town will be upgraded as the player helps the townsfolk by completing tasks, buying goods and donating money to upgrade each of the individual shops. As the shops are upgraded, the paths, fountains, lights and more will change to reflect the impact the player has had on the town. Below is an example of manually upgrading the fountain (feat. cute dog).

Below shows a more complete view of the Town Ruins with upgrade-able paths and lights!

Shortcut System

Shortcuts are an integral part of Holomento. Heavily inspired by the Souls-Bourne series, shortcuts give the player quicker access to previously explored areas or new locations entirely. Once a shortcut has been opened (either through activation, building or buying), it will stay opened permanently. That means that even after you die, the shortcut will remain opened for you for future runs. This creates a unique setting for a risk-reward system where reaching and opening a shortcut may require you to defeat tough foes or find a hidden path but will reward you with a permanent new route making future runs easier. Two examples are shown below, a drawbridge and an elevator.

Consumables System

Like items, consumables are an integral part of Holomento’s gameplay. Unlike items however, consumables are a one-time-use ordeal. Consumables will have a unique variety with many different abilities. For now though, they can simply give you temporary stat boosts and health recovery.

A fun example of the consumables system is shown below where the player uses a speed potion to bypass a turret that would otherwise be impassable.

Currency System

What good is an RPG without some sense of economy? In Holomento, your cash stays with you between runs (at least part of it) making it one of the only constants post-mortem. Holocoins (not sure if I’ll keep that name) can be used to purchase items, consumables, relics, shortcuts, shop upgrades and more! You can see some elemental enemies satisfyingly explode into Holocoins (it’s growing on me) below.

New Audio Features

If you haven’t heard already, Wilfried Nass has taken the lead on all things audio for Holomento. I’m very excited to have him on the team as he brings a great deal of experience to the team. Wilfried has been developing all of the core audio systems for Holomento in Wwise. Here are a few of the features he’s been developing throughout April:

– A spline system that is used for river audio that follows the path of a river. A river SFX loop is placed on the splines and follows the player when he’s close to the river so that only 1 event (well, 2, as we have two splines) is used for all the river surface.

– There’s also a “water dripping in water” SFX playing along the river SFX that only activates when it’s raining, so going close to the river when it’s raining allows the player to hear the rain dropping in it.

– SFX for the waterfalls in the game is pretty straightforward. A neat thing to note is that there are actually 2 waterfall SFXs per waterfall. One of the SFX’s is one you hear from afar that basically sounds like white noise. As you approach the waterfall, you hear a more detailed water-y sound (the 2nd SFX).

– There is also a footsteps system has been added with detailed audio. There’s a left/right system implemented for a more natural footstep sound. In addition, the system includes animation detection + surface detection, which is implemented in Wwise as a switch within a switch.

Footsteps implemented in Wwise

– Finally, the trickiest audio bit added this month was a custom system for detecting nearby trees. Since the trees are implemented as UE4 Foliage Instanced Meshes, a simple “get nearest” action isn’t possible. Instead, a custom system had to be designed. In short, the system uses a sphere trace to detect all objects with a specific trace layer (foliage). This is then applied to all trees that will have a rustling sound applied to them. The player actor then sphere traces for trees and does internal calculations to find the nearest 3 trees for the system. 

The trickiest part is that when you sphere trace foliage systems, you get multiple traces for each tree. To resolve this, a buffer system was added that filters out duplicate traces for a single tree. The system is shown below where yellow represents traces to all nearby trees, green traces are filtered yellow traces flattened into a 2D plane at the player’s waist and red represents the 3 closest trees.

Overall, a ton of math for a relatively hidden feature, but still an interesting challenge that took most of a Saturday night!

Procedural and Keyframe Enemies/Characters

To streamline development, procedural animation has become a popular form of animation in the world of indie game dev. For those of you who aren’t familiar, there are primarily two types of animation that modern game devs care about: keyframe animation and procedural animation.

Keyframe animation is similar to the traditional animation technique of frame-by-frame animation where each frame is animated individually. The primary difference is that for keyframe animation, the animator only animates key poses and the computer software interprets all the poses in-between. This is a much more efficient form of animation than frame-by-frame but still requires the animator to create keyframes by hand.

Procedural animation is bone-based animation driven by math. Procedural animation uses a wide array of tricks to achieve a decent effect. Most developers will use Inverse Kinematics (IK) as the underlying system when creating procedural animation. Alan Zucconi wrote a fantastic series of articles explaining procedural animation including IK for Unity3D. You can checkout the first article here.

In Holomento, procedural animations are used for a variety characters both friend and foe. Below is an example featuring a dog that looks at and faces the player when they are nearby. All of these animations are procedural.

The best part about procedural animation is that it is extremely scale-able. I was able to quickly create these terrifying spiders with 8 procedural legs in a few short hours. Doing this with keyframe animation could have taken days (without even factoring in leg ground placement).

Of course, you can’t have procedural animation without a fair share of bugs such as owl-like dog heads, a good boy who stretches a bit too long or a terrifyingly thin and unintentional daddy long legs…

Looking Forward

So what’s next?

Despite the chaos in the world right now, the Holomento Alpha is still on track for a June introduction! If you’re interested in getting super early access to the game for FREE and giving feedback on bugs and features for the game, there is still time for you to signup on the Holomento Discord. Simply navigate to the #request-alpha-access channel and ping me with @SheenWeedy. I will be limiting the free alpha to the first 100 signups so don’t delay!

Finally, I’d like to thank you for your continued interest in my passion project. I’m so happy with the reception the short clips I release to the Twitter Reddit and Discord communities. I plan to release some longer videos in the coming months on the Youtube channel so stay tuned and please stay safe!

Sean