This Week In Veloren 146

3 minute read15 November 2021

Authored by AngelOnFira

This week, we see some videos of the new dynamic weather. We also hear about how the new EXP sharing system works.

- AngelOnFira, TWiV Editor

Contributor Work

Thanks to this week's contributors, @xMAC94x, @Sam, @Oolnokk, @zesterer, @XVar, @Slipped, @imbris, @UncomfySilence, and @Socksonme!

@Pfau is working on a new outfit for our merchants

Veloren ran its first Code Reading Club!

Dynamic weather by @zesterer and @Isse

This week, @zesterer and @Isse worked on dynamic weather. Time for some rainy weather!

EXP sharing by @XVar

This week I implemented EXP sharing, which replaces the previous behaviour of the entity (NPC or player) that deals the final blow getting 100% of the EXP for a kill. This mechanic encouraged EXP stealing and didn't fairly reward players when multiple players or groups contributed to a kill.

EXP on kill is now shared between damage contributors. A "damage contributor" is either an individual entity, or a group - depending if the attacker is in a group. This means that not only does the "killing blow" no longer get 100% of EXP, but multiple groups and individuals all receive their fair share of EXP on death (assuming they are still within range of the entity when it dies).

The diagram below shows a scenario where two groups of players and a solo player contributed damage to an NPC that was killed. As you can see, the EXP is split based on damage contribution but once it reaches a group the EXP is split evenly to members within the group regardless of their individual damage contribution. This ensures that all players within a group, even those playing a support/healer role get their fair share of their group's EXP even though they contributed less damage.

Damage from a given individual or group only counts towards a kill for 10 minutes since that individual or group's last damage to the entity - after this period their damage contribution is removed. This avoids the list of damage contributors growing excessively large for an entity that does a lot of combat but never dies.

The Damage Contribution calculations implemented for this feature are also planned to serve as the basis for further enhancements to team play and anti-griefing measures - for example loot distribution may use the same calculation to decide which player or group gets a drop.