This Week In Veloren 147

6 minute read 22 November 2021

This week, we hear about changes being made to dungeon difficulty. We also dive into how skill persistence is being changed. Finally, we learn about some proposed changes to the Site2 system, and the addition of giant mushrooms!

- AngelOnFira, TWiV Editor

Contributor Work

Thanks to this week's contributors, @imbris, @xMAC94x, @Sam, @IsseW, @UncomfySilence, @Treeco, @zesterer, @Kemper, @Pfau, and @Limofeus!

Did you miss last week's blog? No worries, @Dalyc recorded an overview of everything you need to know!

Dungeon difficulty by @UncomfySilence

I made some alterations to the dungeon mobs and loot tables to allow the dungeon difficulty to scale a bit better until T6 (cultist dungeon). Previously, players would be able to rush through dungeons T1-T5 even without much experience. Once they reached T6 the insanely powerful cultists would make anything and everything painful, primarily due to their humanoid AI. To accommodate for this I varied and increased mobs skills based on tier, and gave them other stats to their armor (although slightly sacrificing their overall defense).

  • Gnarling armor count - 7 previous being 7
  • Adlet-bow armor count - 39 previous being 62
  • Sahagin armor count - 71 previous being 88
  • Haniwa armor count - 96 previous being 91
  • Myrmidon armor count - 152 previous being 161

Furthermore, all bosses ranging from T0 to T3 drop equipment one tier higher than their code gear, ie T0 drops T1 gear. (Ingame T3s now drop T3 loot and so on).

All these factors should force players, particularly inexperienced players, into joining groups. It should also add more grind time to "complete" the game as newer players would be inclined to "over level" their characters to effectively complete the next tier.

Skill persistence overhaul by @Sam

I've recently worked on an overhaul of the way that we persist skills, to allow it to be more flexible to both future balance changes and future changes to skills. The first change I made is that we no longer store how many skill points you have, instead, we store the total amount of experience that you have earned. In the future, this will allow us to adjust the amount of experience required to earn skill points, and have your number of skill points automatically adjust to account for it. The migration to convert does require (ab)using bit shifting to emulate an exponential function (which sqlite does not have as a supported function). However, so far some skill points there may be a slight error in conversion, but it should always be less than 100 exp.

The second change is that rather than storing skills in a separate table from skill groups, skills are now stored as an array in the table with skill groups. In making this change, we will now also no longer need a conversion function from each skill to a string and back again, instead, we are just serializing the vec of skills directly, and handling the case of failing to serialize or deserialize safely by invalidating your skills in that skill group (more on this in a lower section).

Because of how we handle the failure case, this also allows us to no longer need a migration when we change skills. This change was made so that we can verify that the skills you have can still be acquired. For example, if we made changes to which skills are a prerequisite for other skills, this will correctly not let you have skills if you don't have the new prerequisite. It also can handle the case of changing the skill point cost required to unlock a particular skill, where it will not give you the skill if we increased the cost of skill points and you didn't have excess.

The third change is that we now store a hash with each skill group. This hash is currently defined from the skills available to unlock in a particular skill group, as well as their max level. We persist the hash from when your skills were last persisted, and then next time you log in compare that persisted hash to a newly calculated hash, and if the two differ we invalidate your skills in that particular skill group.

Now for the largest benefit of this skill persistence overhaul; the ability to automatically invalidate your skills. What this means is that when you load into the game, any skills you had in the skill group are cleared, and you have the ability to respec your skill points in that skill group as you wish. Further, this respec only occurs within the skill tree that was invalidated (unless it has skills that other skill trees depend on, e.g. how all of the weapon skill trees depend on the general skill tree).

For the most part, this respec will be triggered when we make any balance changes to skill trees both as a precaution to ensure that it is still possible to reach your current skillset with the experience you have and the order you acquired skills in, and as a way to allow you to potentially respec with the changing opportunity cost of any balance changes we make. If we change the amount of experience required per skill point, the skill points required to unlock a skill, what skills are in a skill group, the max level of the skills in the skill group, or the prerequisites required to unlock a particular skill, it should trigger a respec.

When this change hits master, don't be surprised to see all your skill points refunded, as it was a necessary measure to take to ensure that stuff is properly migrated to the new format.

Site2 work and giant mushrooms by @floppy

Recently, @floppy has been making some test modifications to the site2 system. These aren't the final form and are being reviewed by the worldgen team. @floppy has modified the spot structure to scale with plot size and prepared offsets and options that allow generating variations of the structure. The variations from plot size alone are quite plentiful with only the larger shrooms generating the carved-out home. Variations could be extended and tweaked after testing in the actual spot environment and connecting RNG.

@floppy has also been working on creating giant mushrooms. Here are the current variations/options:

  • 2 Color Schemes
  • offsets to "grow" structure differently
  • dents for more organic appearance
  • carved home
  • water puddle at the bottom
  • smaller side-mushroom
  • broken window
  • outside pool from decomposing shroom-top

In the video, all options are enabled giving all larger shrooms interior, water-puddle, side-shroom etc.

A postcard to send home! See you next week!

Support our devs!

Veloren Open Collective