Holomento’s second month of development has concluded! This month has been a whirlwind of features, bug fixes, testing new workflows, building a social media presence and much more! I’m so excited to share details with you on all of the progress I’ve made on Holomento this past month! Let’s dive in!

Overview

During the January Devlog, I set several goals for myself for things I wanted to accomplish. Here’s a list with items crossed off that I accomplished:

    • Optimize the Hill-top Castle
    • Add animations for player combat
    • Create the player model
    • Create models for some items
    • Add items to player model when items are picked up
    • Cleanup look of chests and add more
    • Dial-in the look of Artimus
    • Add functionality to the museum
    • Create Graveyard NPC
    • Create Graveyard area and add functionality

Although I didn’t get to everything I wanted to, here are some tasks I was able to complete instead:

    • Filled out more of the castle including a basement, library interior (WIP) and more
    • Created basic enemy AI, spawning and pools
    • Created a basic “follower” based item that attacks enemies
    • Began developing the first boss
    • Added melee combat that changes with magic type
    • Created workflow for Blender 2.8 -> UE 4.24 for both static and skeletal meshes
    • Added new locations across Eventide Hollow including a rough draft of an upgrade-able “hub-town”
    • Added a zone system that modifies the weather and atmosphere
    • Started a social media presence (shout-out to all of my amazing followers!)
    • Created my first written tutorial!

Now, let’s dive into some specifics of what was accomplished!

Designing the Traveler (Player Character)

One of the more unique design choices I made early on in Holomento is that the player character is not a single character but rather a series of traveler’s journeying through the valley. Because of this, I wanted to shroud the traveler in a veil of mystery both aesthetically and lore-wise. This lets the player mold the traveler into anything they want them to be. The most fun aspect of this is that every time your run ends you get to create an entirely new story around your character.

An early design choice I made for the traveler is that they don’t have a visible face. This makes animation, customization and variety easier as I can focus attention on the traveler’s clothes which the player will see more often anyways (How often do you really look at a player character’s face in a third person game?)

With all of this in mind, I decided a large draping cloaked traveler would fit the aesthetic and game-play I had in mind. Once I decided on how I wanted the player to look, I dove right into Blender to design the character.

I started with the UE4 mannequin and built clothes around them as I felt this was the easiest method to get look I wanted. This also made rigging trivial and importing to UE4 a breeze as well. After a few hours modelling and shrink-wrapping clothes meshes around the mannequin, I decided I was satisfied with the “template traveler” look you see in many game-play videos.

The reason I call this a “template traveler” is because the look of the traveler will change drastically from run to run. This is due to basic customization options the player will have at the beginning of a run and the items a player picks up during a run that will “enhance” the player’s look.

Adding Player Items

In Holomento, items are essential. They alter player stats, appearance, weapon and even their elemental magic. In January, a basic item system existed but it was missing many key elements including changing the traveler’s appearance and modifying their run-specific stats.

Now, there are about 7 “placeholder” items that can be found in chests alter player stats. These items also appear on the player and attach to various bones of the skeletal mesh. Most of the items are rings that attach to the player’s fingers. The system is completely data table driven which makes adding and altering items extremely quick. To add a new item all I need to do is set which stats are altered, set the mesh for it’s world appearance, set the mesh for its appearance on the player and finally set the slot that it attaches to. This will make adding items to the game agile and won’t disrupt core development.

In the near future, I plan to add weapon items and clothing items that further alter the gameplay style. When you pickup a weapon item (you can only hold one at a time), it will add the weapon static mesh to the player character and add an overlay state for weapon animations. This will also alter how melee and ranged combat work, a sword weapon will limit your ranged abilities while a bow will limit your melee abilities.

Improving Combat

The combat loop was very rough at the start of this month. I had an initial vision but the execution just wasn’t there yet. As of today, combat is leaps and bounds ahead of where it was just 1 month ago. The player can now roll and melee in addition to firing projectiles to defeat foes. Items that have been picked up directly affect player stats and magic types. The video below demonstrates combat better than an explanation will.

Drafting AI

AI is something I have very limited experience with. Because of this I turned to several Unreal Marketplace Assets and plenty of online tutorials. Conveniently, the Open World AI Spawn System by TiMer Games went “free for the month” on the Unreal Marketplace. This was the perfect place to begin designing the AI and spawning system for Holomento.

Over the course of February, I played around with this spawning system and the default AI follow blackboard. From this I prototyped a master AI class that is being used for NPCs, enemies and bosses. I created a simple boss with a two-handed sword, a basic follow-player AI and a follower companion that glides through the air, follows the player and shoots enemies.

Inheriting from a “master” AI class has made it easy to add explosion reactions (with ragdolls) to all characters. In the future, I plan to use this feature in a similar way to add reactive physics when characters are hit by projectiles or melee attacks.

Expanding the World

Over the course of February, several areas in Eventide Hollow were expanded and added onto.

There are now two Autumn themed areas: one with traditional deciduous trees with orange leaves and a ruins area boss fight and another near the mountains with burnt-orange pine trees. I’m very happy with the style of the areas and I look forward to expanding them and adding more features to them in the future.

The castle at the end of January was not only incomplete on the outside, but completely hollow (heh) on the inside. This month I have been filling out the general player routes for the library, basement and museum sections of the castle. These areas still have a long way to go, but the general structure is now complete. 

In addition to these areas, I began drafting the basics of a Hub Town. This area features an item shop, tavern, artifact/relic shop and the builders shop. Each of these shops will serve a distinct purpose that will be further explained at a later date. It is also worth noting that all of these shops and the town as a whole will be upgrade-able. The footage you see below is a prototype of the “fully upgraded” town with “fully upgraded” shops.

Finally, I added a zone system that allows the player to discover new zones that are permanently added to their map. This system also controls area lighting, atmosphere and weather. Check out an example below!

Optimizing the World

Midway through February I began to experience some serious slowdowns when navigating the castle area in-editor. I checked the actor count for the world and found there to be ~12,000 actors! Wow! That’s a lotta draw calls!

I decided it was time to disrupt world development and focus some effort on optimization. My world optimization process so far is nothing fancy but has netted me significant performance improvements in-editor and in-game. The methods of optimizing can be summarized as follows: 

    1. Select meshes that can be combined to optimize occlusion and reduce draw calls
    2. Combine these meshes using the “Merge Actors” tool in UE4.
    3. Add the newly merged actor to the scene and align it so that it matches the exact placement of the existing meshes pre-merge.
    4. Delete the non-merged meshes and reorganize scene folders/hierarchies accordingly.

This is just the first step to optimizing the world. As I continue to develop and rehash the world of Holomento, I imagine more advanced optimization techniques will be required.

Goals for Next Month

A solid set of goals (even if they aren’t achieved) is key to making steady progress. After all, game dev is a marathon not a sprint!

Here is my vision for progress on Holomento in March:

  • Humanoid characters (player+enemies) implement weapon interaction enabling dynamic swapping of weapons using an overlay system.
  • Finish the “max upgraded” hub town. This includes buildings, town upgrades and more.
  • Populatehub town with some NPC’s. Possibly – item shop keeper, tavern bartender, construction manager and relic shopkeeper.
  • Working boss fight with collisions + damage + animations + win condition.
  • Implement individual runs – when you die, the run is recorded and a new one starts
  • Basic “cannon-fodder” non-humanoid enemy (slime? spider?) for combat testing
  • Modify player model so clothes are separate pieces that can be swapped like other items
  • Add more items – clothes items, weapon items and more! (20+ new items is a good target)
  • Modular blueprint system for shops (dynamic size and location)
  • Add more unique locations

Wrap Up

That’s it for this month’s devlog! I’m glad you’ve read this far and I hope you find these helpful or at the very least interesting! Before I close here, I’d like to mention some things that have been discussed with members of the Discord.

There will be an Alpha for Holomento!

At the current rate of development I feel that an exclusive alpha build of the game may be available by the beginning of summer 2020 and a full release will be 1-2 years out. What the alpha will contain is uncertain but I would like the basic combat, item system, run system and world layout completed by this time. The alpha will be a closed alpha released only to a select few. The purpose of this alpha will likely be to determine if core game-play loops and overall game experience need to be reworked. If you are interested in participating in the Alpha, please join the Discord and message me with a callout (@SheenWeedy). I will be limiting alpha testers to < 100 on a first come, first serve basis.

After a successful Alpha, further Alpha builds will follow. Beta and (potentially) early access builds will follow that. At this time, these dates can not be determined. I will release more info regarding the Alpha build during the March Devlog.

I will be starting a KickStarter around the time of the Alpha Release

The more I work on Holomento the more I realize the scale of the project. Because of the massive time sink this game has become, I’m seeking funding before release so that I may hire outside help if needed. I already have a number of kind individuals helping me develop music free-of-charge. However, I feel everyone should be paid for the work they do so I will allocate a percentage of KickStarter money to my wonderful composers.

Further, I will allocate the money to further social media outreach, possible advertising and other collaborators who jump on board the project. A majority of the funding from KickStarter will be reinvested in the project. I will be releasing more information regarding the KickStarter as summer approaches.

I will be launching a Patreon for myself.

Since I will be allocating most of the KickStarter money back into the project, I want to open up a space where generous contributors can donate to the developer: me! I don’t really expect anything to come from this Patreon, however I think it is a great platform for those who want to support me with donations to do so.

If there is enough interest, I will come up with some special rewards for those that kindly donate to my efforts on the project. The launch of the Patreon is TBD.

As always thank you for reading the Devlog. Give the project a follow on Twitter for up-to-date videos and screenshots. Join the Reddit and Discord communities for discussions and subscribe to the Youtube Channel for gameplay videos and more!

Sean