Update 32: April & May 2023

Hi all!

Grab a cup of coffee and start the music below. This one is going to be dense.

As mentioned in the last update, we decided to combine April and May’s development updates this month in favor of focusing on the results of the Stress Test in the last update.

I’ll keep this section short, so that you can start playing… err… reading through the content.

Enjoy!

Note: you can find more new music to relax to while reading this by skipping to the Audio section below.

 

Character Art

  • Worked on Shadow Knight Plate set

  • Plate Armor Updates for Red Mantles, and Copper Plate Set

  • Chain Armor updates

  • Leather Armor update

  • Human male model updated

  • New faces for female humans

  • Prepped Ogre male for new rig

  • Setup all weapons and shields on the lerping system

  • Added Wand model

  • Added Kukri model

  • Added Butcher's Knife model

 

Character Concepts

Class Illustrations (for use in a coming website update)

Mob Concepts

 

Environment Art

Night Harbor:

  • Fixed numerous seam issues.

  • Worked on completing the interior and exterior of previously gray-boxed areas in the western district.

  • Addressed most of the texture stretching on the front side of the Garrison building in the client build.

  • Resolved issues with water volumes.

  • Replaced the problematic building's ProBuilder mesh with an .fbx version to prevent it from disappearing in the client build.

  • Made adjustments to the nav mesh.

  • Created prefabs to occlude areas from baking into the nav mesh.

  • Added textures to some buildings.

  • Constructed a PvP fighting pit below the Night Market.

  • Added more trees to the western district of Night Harbor.

  • Attached temporary room number signs to the Shaded Bloom Inn.

  • Incorporated new ladder models into the Garrison gate chain towers.

  • Replaced the collision of most stair meshes inside Night Harbor, excluding the Docks district.

  • Improved the lighting quality for the Wyrmsbane zoneline.

  • Rectified a geometry issue causing shadow problems in front of Wyrmsbane Entrance.

  • Introduced a Post Processing volume to the Wyrmsbane zoneline cave.

  • Fixed the zoneline from Night Harbor into Night Harbor Fields.

Wyrmsbane:

  • Adjusted zone-wide post processing.

  • Added an extremely subtle directional light to the zone to assist with future vision-related post processing passes (e.g., dark vision).

Night Harbor Fields/Sungreet Strand:

  • Built out base terrain.

  • Optimized geometry that is calculated in the nav mesh bake.

  • Created nav mesh links from the top of buildings to the terrain.

  • Currently working on the mountainous region on the West side of the zone.

Customer Service Zone:

  • Developed a simple zone for CSZone.

  • Conducted an initial lighting pass.

Tel Ekir:

  • Started gray boxing the zone. Completed the first pass for several areas/points of interest (PoI).

Zone Template:

  • Created a template zone with the basic necessary zone elements for quickly initiating a new zone.

Shaders:

  • Created a shader for efficiently generating materials for statues from NPC textures.

  • Resolved various long-standing environment-related bug tickets across multiple zones in preparation for the stress test.

Prefabs:

  • Fixed an issue with door prefabs' initial animation state.

  • Created prefabs for quickly adding nav mesh obstacles to the scene.

  • 2D + 3D Props & Texture.

Bugs:

  • Closed out various backlogged environment bug tickets across multiple zones in preparation for the stress test.

  • Addressed various bugs found during the stress test.

 

Environment Concepts & 2D Art

Tel Ekir Concepts

Tel Ekir Previs

Signage

Night Harbor Typeface

Item Icons

Installer Update

 

Audio

Sound FX

  • Bat SFXs

  • Beetle SFXs

  • Ghoul SFXs

  • Zombie SFXs

  • Ship wood creaking SFXs

  • Teleport pads SFXs

  • Enter World stinger

  • Wood chopping SFXs

  • Spinning domes SFXs

 

Animation

Continued Animation Clean-up and Bug Fixing

Inverse Kinematics + Head Tracking explorations

Head Tracking

Environmental impact on animation using IK

Observing the subtle impact of head tracking

What do you mean I’ve had enough?! Do I look like I’ve had enough?!


Game Design

Character Controller

  • Increased slope allowance and step height.

Content

  • Most named mobs in the game have been rebalanced and received various immunity flags.

  • Generic named test Spell Merchants have returned for all classes.

  • Guards have longer aggro/social ranges.

  • Started base pop for Tel Ekir.

  • Several merchant npcs who no longer needed to be one, are no longer merchants.

  • Several barkeeps now properly stock goods.

  • The Suspicious Salesman has finally obtained his merchant license to open up shop (you can now buy/sell from him).

  • Many NPCs who misplaced their clothing are now clothed. If you see an NPC you think should be clothed, please let us know.

  • Clarification, adjustments & further work on history, lore, and future content planning.

  • Various crafting fixes.

Itemization

  • Some item slots, sizes, and weights have been adjusted.

  • Summoned Throwing Dagger is no longer No Drop.

  • Light Stones can now be used in Belt Slots.

  • All Wyrmsbane armor is no longer able to be sold to or purchased from merchants.

  • You can no longer wield several two handed staves in your offhand.

General Abilities

  • Mesmerize cast time reduced from 3 seconds to 2.5 seconds.

  • Necromancer/Shadow Knight Deluge Poison DoT Line has been rebalanced.

  • Necromancer/Shadow Knight Corruption Snare DoT Line has been rebalanced.

  • Skeleton Pet now does 25% less Melee Damage.

  • Initial pass for Necromancer and Shadow Knight Zombie and Ghoul pets (only different from skeleton aesthetically, currently).

  • Weak Heal healing changed from 3 (L1) to 6 (L4) to a flat 4.

  • Weak Heal cast time reduced from 1.5 to 1.0 seconds.

  • Minor Heal mana cost increased from 8 to 10.

  • Lesser Heal healing reduced from 30 to 25.

  • Lesser Heal mana cost increased from 20 to 25.

  • Heal healing reduced from 65 to 60.

  • Greater Heal healing reduced from 340 to 360 to a flat 250.

  • Exceptional Heal healing reduced from 800 to 600.

Beastmaster

  • Rat Pet now does 25% less Melee Damage.

Cleric

  • Impart Blessing healing reduced from 40 to 35.

  • Impart Blessing mana cost increased from 15 to 20.

  • Impart Prayer healing increased from 80 to 85.

  • Impart Prayer mana cost increased from 30 to 40.

Druid

  • Touch of Nature direct healing decreased from 20 to 17.

  • Touch of Nature heal over time decreased from 10 to 9.

  • Touch of Nature mana increased from 10 to 20.

  • Touch of Earth direct healing increased from 40 to 43.

  • Touch of Earth heal over time increased from 20 to 21.

  • Touch of Earth mana cost increased from 20 to 40.

Elementalist

  • Fire and Water Pets now does 50% less Melee Damage.

  • Earth Pet now does 25% less Melee Damage.

Enchanter

  • Added Shadowkin Pet Line.

Ranger

  • Can now use Corruption Protection.

  • Corruption Resistance changed from Level 44 to Level 24.

  • Fire Protection is now Level 7, down from 8.

  • Minor Heal is now Level 8, up from 7.

Shaman

  • Poisonous Gas has been rebalanced and now has it's full line in-game.

  • Malady has been rebalanced and now has it's full line in-game.

  • Filled out the Poison DoT Line with Abilities: Envenomed Cloud, Tainted Fumes, Billow of Blight, Toxicant Vapors, and Blistering Toxin.

  • Filled out the Disease DoT Line with Abilities: Infectious Disease, Shuddering Sickness, Afflicting Ailment, Irking Illness, Virulent Virus.

  • Melee Slow Line has been changed from -20%/-30%/-40%/-50%/-60% to -10%/-20%/-30%/-40%/-50%. Now categorized as a Primary Slow, which cannot stack with other Primary Slows, but stacks with Secondary Slows.

  • Healing Spores healing per tick reduced from 8 to 7.

  • Healing Spores mana cost increased from 10 to 20.

  • Salubrious Spores healing per tick increased from 16 to 17.

  • Salubrious Spores mana cost increased from 30 to 40.

Spellblade

  • Flameburst is now Level 7, down from 8.

  • Chilling Embrace is now Level 8, up from 6.

  • Magic Protection is now Level 6, down from 7.

  • Added new Abilities to the Infuse Weapon: Chilling Embrace line: Icy Embrace  (Level 24, 3% slow per application), Wintry Embrace (Level 40, 4% slow per application, 20% total), Frozen Embrace (Level 56, 5% slow per application, 25% total).

  • Infuse Weapon: Chilling Embrace line now has a lower chance to proc than it did previously (still higher than other Infusions).

  • Infuse Weapon: Chilling Embrace line now categorized as a Secondary Slow, which cannot stack with other Secondary Slows, but stacks with Primary Slows.

Wizard

  • Telekinetic Knockback is no longer unresistable.

  • Bolt of Frost renamed Frost Bolt.

  • Filled out Frost Bolt line with: Ice Bolt, Freezing Bolt, and Chilling Bolt

Full QA & review of all 18 class quests, highlights include:

  • Dialogue clarification on many quests.

  • Broken & missing dialogue fixed.

  • Several turn-ins & rewards now work properly.

  • Several quest items & rewards are no longer able to be traded or usable by other classes.

  • Several quest items that should stack, now stack.

  • Several rewards had slots adjusted and are now unique.

  • Several worn quest items & rewards now have graphics.

  • Sinastin’s instructions to you should be clearer to prevent confusion.

  • Sinastin’s quest line had several changes to prevent cheesing and skipping.

  • Harvallen Root & Decanter of Aged Ambergris are now properly dropping.

  • Some casters in the Smuggler camp have figured out how to cast their spells.

  • Ashira Shaman have discovered they are Shaman, and not Fighters.

  • Toma has decided to start wearing his ring more often.

  • Toma no longer is interested in keeping fingers as a keepsake – this should help with some confusion with quest drops.

  • Silver Slash now works properly and the resulting drop is confirmed (that doesn't mean it is guaranteed!).

  • The remaining quests to turn-in your newbie note for a chest item were removed now that all initial class quests are available.

 

Tech

These last two months we had 409 tech-facing commits to the game, and so rather than overwhelm you (and ourselves) with a massive list of bullet points, we thought we would highlight some and give more details.

We would like to reiterate that the biggest outcome of the stress test were refactors and optimizations to the net code where are described in last month’s update in detail. Please refer back to that if you were interested!


UI Updates

The UI so far has been an area which we have not put in much effort past basic functional. We have decided this last month to put in more work into it to go from functional to workable, with the knowledge that A LOT more work needs to go into it.

Some examples of UI work:

Really really small UI

Really BIG UI

New background texture and labels

You can make the font size really big too

Confirmation Boxes

The merchant UI got tons of upgrades with additional information showing up if you have the Commerce skill

Much better than the previous chat message that you got which was often missed

Hold the alt-key to show icon names

Skill trainers now show what level you need to be to gain a skill

 

In the near future, we are also refactoring the ability book UI. We want to make it much clearer which spellbook you are trying to scribe to or memorize from, as well as differentiate between skills, innate abilities, and spellbook abilities in many ways.

We are also in the process of working through the buff window to make it easier to figure out what is going on, harder to click off abilities by mistake, and generally make the whole window nicer and easier to use. In the process, we have introduced a buff limit that is a generous 30 buffs, which is in line with our focus on smaller player count content.


Fizzle Changes

We have made some changes to ability fizzling to make it both less exploitable and less punishing.

  • Fizzling now occurs at 25% cast time rather than at the end.

  • Interrupt is checked before fizzle and will block skill gain if you do not recover, even if the ability fizzles.

A popular exploit that was found (and then “verified” over, and over, and over, and over, and over) was running while casting a fizzling ability to rapidly skill up casting skills. That “feature” has been removed!


Quest and MUD Object conditions

New conditions for more robust interactions have been made available to the designers:

  • Checking for an item in your inventory while interacting with an NPC or a MUD action.

  • Checking for a buff or buff effect (such as See Invisible) when interacting with a MUD action.

  • Consuming of items or buffs (which can be hidden from the user) when interacting with MUD actions.

  • New MUD action type “trg” which can only be triggered by special conditions, such as entering a volume.


Item Activation

An issue we have always suffered through, and yet is critical to our game, is the usage of fuel from light emitting items. Simply having an item equipped was enough to consume its fuel even if we are using the light of a different item or a buff.

This has been changed by introducing activatable items.

Only one out of three light sources is active

You can now equip a torch but leave it deactivated so that you don’t use its fuel, or switch between items based on need.


Social Aggro Changes

Social aggro has been an area that was as well classified as functional, but not much past that. It was acting a bit unpredictably at times, both not picking up socials, and unexpectedly picking up socials (chaining or through walls). We have made a series of changes to address this:

Where the possible social NPC was close enough, we would use an “optimization” of skipping the line of sight check. This, in hind sight, was a very bad idea! We were picking up a lot of social aggro through walls where placement was very logical.

This used to Social Aggro through the wall.

This was found by introducing aggro visualization tools for GMs. We found a slew of other bugs relating to social aggro through walls. One nasty one was that we could social aggro through geo backfaces. This only happened when the line of sight check originates below the floor, which can happen when checking from NPC origin against an NPC below you.

The Social Aggro line of sight check used to go through the floor to the skeleton below.

This was addressed by moving the check origin up a bit.

We moved the lowest origin up to the knee height to avoid clipping the floor.

We were also social aggro checking immediately after the NPC engages in combat. This was causing chain aggro.

Previously, aggroing Red would social aggro Green, which would social aggro Blue.

This has been addressed by introducing social aggro start delays, a small delay on regular aggro, and a larger delay on social aggroed.


AI State

NPC AI is designed in a Finite State Machine. Every state has its own enter, exit, and update logic, and conditions for transitioning to another state.

Visualization of SOME of our AI states

After disengaging from combat, NPCs used to handle pausing and waiting before going back home in the NPC Commands AI. This was very complex, as the NPC Commands AI state became a state that serves multiple purposes, while itself being a finite state machine for the different commands available, such as Goto, Wander, etc.

Additionally, we were also handling pausing outside of the main AI (in the navigation logic).

We moved all of this logic into a new Pausing state and made our lives so much easier!

Pet Window

Pet commands used to be in the command palette, which means they are visible but disabled for all classes and whether you have a pet up or not. We moved all this into a dedicated pet UI that also includes a pet health bar, cast bar, and the ability to enable and disable ability usage (such as taunt).

Pet UI with Staggering Winds disabled


Fix Ranged Auto Attacking Bug

As many of you have found during the public test, ranged attacking was a little bit hit or miss (Hah!). Initially, we thought it was weirdness in the Line of Sight detection (though this is one system that has always been pretty solid). Upon further investigation, we found that it was a side effect of recent physics changes on the server.

At certain times, the server thought you were falling even though you are standing, which prevents ranged auto attacks. The underlying physics issue was fixed which fixed ranged auto attacking. We can’t wait for rangers and archers to give it another shot (oh no, we have devolved into a full-scale pun-a-thon).


Item Persistence Refactor

Items got a huge upgrade in May. We have had several item persistence related bugs, especially when looting from your corpse, that we have delayed fixing because we knew we were going to redo the item persistence system.

We had to redo the system in order to support persistent storage in: bags, world containers, boats, houses, pack animals, etc, etc, etc.

In the old system, we were persisting items in records related to your character inventory, with a slot identifier for every single possible slot. This meant that if we decided we wanted bigger bags, we had to create more slot identifiers. They also did not really have a concept of “containment”.

For example, “I100” was the first bag slot, while “I101” was the first slot in that bag. When moving the bag to slot “I200”, we would have to also move “I101” to “I201”. If there was a bag already there, we would have to write the existing items over to a virtual bag slot “_100” and all its containing items as well into “_101” etc, because the locations were enforced unique on the database.

This has been completely thrown out and redone. Items may now be owned by characters, bags, world containers, and other owner types. We now only maintain container and slot number, which is a lot more suitable for our future use cases.

We had to create special slots on the character record for inventory slots, bank slots, trade slots, etc which are defined in code, and we had to write loading code where it would audit the container inventory when its loaded in case of any incorrect slots and auto move them to valid slots.

Overall, this has also made our life much, much simpler.


Zoning Refactor

This month, zoning also got a huge upgrade. Zoning used work via a volume to a point transition, where we save the destination in the database before sending the client to the next zone.

The Night Harbor to Shaded Dunes zone line

There are fundamental problems even beyond the obvious in this process:

  1. We are moving from anywhere on a wide zone line to a point.

  2. The process depends on saving the destination, which means that if the destination zone is unavailable or incorrect then the character gets stuck.

  3. It is difficult to set up correctly because the destination is not visible in the editor, due to it being in a different zone from the one we are editing.

We have solved this issue by changing the entire process. We now:

  1. Have records of the zone lines in data.

  2. Set a destination zone on the client, an encoded position (as a factor of where within the zone volume we were), and the zone line ID.

  3. We then send the client to the destination zone.

  4. If anything goes wrong, we send the client back to the original zone and last position outside of the zone volume.

  5. If we are handed off correctly, the destination zone calculates the appropriate position and places the client there.

  6. This has the added bonus of having zone lines be connected zone line to zone line, which means that we can see both zone lines in the editor, and only have to link them together.

  7. We can also find an alternative appropriate destination if the original one is not suitable (for example by trying to find locations close to the original destination).

The new zone line places you where you expect to be

The zone line now correctly places you on the ground


Additional Tech Changes (though, some are mentioned above):

  • Added %tsay quest text command that sends a say message only to the target.

  • Improved issue where pressing a movement key just before submitting chat would sometimes cause your character to stand.

  • Updated ability book scroll texture background.

  • Cast bar clears properly when switching targets.

  • Cast bar shows properly when targeting an enemy that is already casting.

  • Fixed unit frame cast bar remaining when switching targets during cast.

  • Adjusted center of client character controller so they stand more firmly on the ground.

  • Fixed issue where unit frame cast bars would not appear if the entity's spell didn't have particle effects.

  • Updated default layout of UI elements.

  • Moved target frame cast bar below mana bar.

  • Increased vertical movement threshold required to interrupt memorization. To fix insta-interrupt bug.

  • Added chat opacity setting.

  • Fixed the order of some chat context menu options to be consistent with others.

  • Fixed invisible cursor if panning camera while disconnected.

  • Opening a merchant window will close the skill trainer window if its up, and vice versa.

  • UI scale setting now affects escape menu, keybinds menu, notes ui, and resurrection ui.

  • Fixed linking items that contain a colon.

  • Changed the minimum ui scale from 0.1 to 0.5. The 0.1 setting made some things unclickable.

  • Allow /chatfontsize to go up to 20.

  • Added pet UI that appears when you have a pet.

  • Players can now toggle which abilities pets use.

  • Fixed performance on some GM commands.

  • Added invite popup window.

  • Added scrolling for the note item UI, so long text don't overflow the window.

  • Added Unity integrated DB tooling for static objects.

In Closing

It’s been a massive update, so we’ll keep the closing brief.

If you’re not doing so already, you can follow our progress via videos in our Twitch category, the VODs we post on YouTube, and our Discord.

Be sure to join the Mailing List if you haven’t already.

Our thanks for the continued support! It’s been huge and continues to fuel the progress you’ve seen here.

Take care and see you on Discord/stream/etc!

Previous
Previous

Update 33: New Zones and More

Next
Next

Update 31: Stress Test Results