mojira.dev

Duffy Springpat

Assigned

No issues.

Reported

MC-302347 Server entity updates are arbitrarily delayed and display incorrectly to the client Plausible MC-301010 Explosion particles behave differently compared to 1.14.4 Works As Intended MC-300266 Loading Terrain has a delay when changing dimensions or respawning Awaiting Response MC-298658 Locator Bar shows inaccurate positions after respawn Fixed MC-298499 Explosions don't send damage direction to the client Confirmed MC-298394 Freezing in Powdered Snow is very inconsistent and jittery Fixed MC-298355 Sitting animals produce footstep sounds Confirmed MC-297570 Block breaking overlay not affected by environmental fog Fixed MC-297143 Clouds no longer render underwater on fabulous settings Won't Fix MC-297142 The "Leave Bed" button is invisible Fixed MC-296973 Villager Trading GUI Discount slash not displaying properly Duplicate

Comments

I do admit my analyzation was a little rough because I’m only checking modern code rather than old code. But it does seem that it’s simply just outdated networking code that wouldn’t hurt to be updated. Making it configurable even, allowing server/clients to control the update/interpolation rates depending on what their system can handle.

The knockback example was attached before I knew that bug report was the root cause. That’s what I thought was related to this report. This is a separate issue, maybe more so a feature request, because if you actually try forcing impulses to true at all times, you will notice a difference. Try it out for yourself.

Discovered a fix:
In ChunkMap, removeEntity calls broadcastRemoved. Simply remove the call to broadcastRemoved for ServerPlayer in the isDeadOrDying state. This fixes the issue without causing respawn issues.

This is caused because of how LivingEntity handles death events. When an entity is killed and finishes their death animation, RemovalReason “KILLED” is called which removes said entity from chunk tracking. While this works for regular entities, players can still see the world on the death screen, and being “removed” as a player causes a ghost world state where all ticks are frozen, entities stop updating, and block updates are ignored.

Figured it out, ServerPlayer returns isClientLoaded(false) when “die” is called. This causes the client to stop sending movement updates on the death screen to every other player on the server

Theres no non-directional tilt handling in GameRenderer, the client side class that handles damage tilt. It’s as simple as making it so any DamageTypes that are non-directional redirect to a default left/right tilt.

Can confirm, with the local difficulty at the highest I see a lot of copper and leather armored mobs, but gold and iron armored mobs were much less frequent and a pretty rare sight.

This visual inconsistency causes issues with targeted commands/ effects, where it prioritizes the server players death location over the client players “fake” death location after taking knockback

On the client players death screen, it still shows them taking knockback from the source. However, on the server side, other players will just see you stationary.

Sorry about that, got it fixed up

[media]
[media]
[media]
[media]

3060ti, framerates average around 400 on a fresh world AFTER chunk loading with 12 render and simulation distance. During chunk loading it can see dips down to 200 with consistent spikes. Having a busy world with a sizeable amount of entities can see dips down to 200-90.

[media]
[media]
[media]
[media]
[media]

Still in 1.21.5 and 1.21.6 snapshots.

Can confirm in 1.21.5 and 1.21.6 snapshots. Explosions look incredibly unappealing without these

Can confirm, lag spikes are much more severe and noticeable