From cf3d5d44166e7214700b73d657aa10018167ae0c Mon Sep 17 00:00:00 2001 From: metamuffin Date: Thu, 18 Dec 2025 22:49:15 +0100 Subject: only send movement packets if changes; bots send less inputs --- server/src/server.rs | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'server/src/server.rs') diff --git a/server/src/server.rs b/server/src/server.rs index b925a577..be5fee3f 100644 --- a/server/src/server.rs +++ b/server/src/server.rs @@ -528,7 +528,7 @@ impl Server { let diff = pos - pd.movement.position; pd.movement.position += diff.clamp_length_max(dt.as_secs_f32()); if diff.length() > 1. { - replies.push(PacketC::MovementSync { player }); + pd.movement_must_sync = true; } } } @@ -698,13 +698,21 @@ impl Server { }); for (&pid, player) in &mut self.game.players { - self.packet_out.push_back(PacketC::Movement { - player: pid, - pos: player.movement.position, - dir: player.movement.input_direction, - boost: player.movement.boosting, - rot: player.movement.rotation, - }); + if player.movement_input_changed || player.movement_must_sync { + player.movement_input_changed = false; + self.packet_out.push_back(PacketC::Movement { + player: pid, + pos: player.movement.position, + dir: player.movement.input_direction, + boost: player.movement.boosting, + rot: player.movement.rotation, + }); + if player.movement_must_sync { + player.movement_must_sync = false; + self.packet_out + .push_back(PacketC::MovementSync { player: pid }); + } + } } let mut players_auto_release = Vec::new(); -- cgit v1.3