This Week In Veloren 116
This week, we see lots of changes in the realm of network physics. New crafting stations are being implemented, and music is getting optimized. Inventory improvements are also being made.
- AngelOnFira, TWiV Editor
Contributor Work
Thanks to this week's contributors, @xMAC94x, @zesterer, @imbris, @Capucho, @juliancoffee, @James, @Sam, @UMR1352, @aweinstock, @nwilder, @XVar, @Sharp, @Yusdacra, @DaforLynx, @gGmMsS123, @Slipped, @hqurve, @Pfau, @holychowders, @kinggred, @socherbyc, and @Frinsky!
@DaforLynx recompressed all the music and converted all sounds to the OGG format, as well as changed the stone footstep sounds again - new ones are made by @alfy. @Sam made safe zones remain permanently in the spawn chunk. @Sam also did some backend work on blocking and parrying, it now just needs animations. Both will use the same button, however, if you release the block button quickly, it will become a parry, if you hold the block button it will remain a block.
@Pfau and @zesterer have been working on crafting stations: sprites like anvils, cauldrons, workbenches, and cooking pots that are required to craft certain recipes. Hopefully, it'll add an extra layer of depth to the crafting system. Crafting stations are shown in the crafting menu now. Interacting with a station opens the corresponding crafting tab.
@XVar added a button to sort your inventory, which toggles between 3 different sort orders. They also fixed a bug that caused UI components to move around when they shouldn't, and the Diesel to Rusqlite MR was merged. @Christof worked on an older merge request by @Ada about displaying English as a fallback translation. After a deep dive into asset manager and its data structures @Christof came up with a novel design that the borrow checker could agree to. It still needs some work to get mergeable though.
Server physics by @aweinstock
I added a per-player setting to switch between server-authoritative and client-authoritative physics. With client-authoritative physics, which was previously the default, anyone could set their position and velocity arbitrarily, allowing them to teleport and fly. This isn't possible with server-authoritative physics, which makes it nice to have as an option (which admins can force with the /server_physics command).
Server-authoritative physics is currently less smooth, and causes you to feel more of the latency of the connection to the server. Despite feeling less smooth, it gives you a more accurate understanding of your position, which prevents issues like wandering into a dungeon, thinking you've avoided some attacks successfully, and then dying minutes later because your inputs arrived too slowly. Once we get better interpolation (and possibly rollback netcode) and server-authoritative physics is sufficiently smooth, I hope that server-authoritative physics can be made the default mode.
Dodge roll and fireball staff previously required skill points to be spent on unlocking melee invulnerability-frames and fireball explosions, respectively. To make these skills more useful to new characters, I made these upgrades available by default, and refunded the points that existing characters had spent on them. The fireball staff now starts out with smaller explosions, but has an extra rank of radius-upgrade and gives a bigger increase per level (15% vs 10%).