From 556f0dbb2704f8fca2d75657d71f5b262b3ed4b2 Mon Sep 17 00:00:00 2001 From: Nikolai Rodionov Date: Sun, 9 Feb 2025 23:52:16 +0100 Subject: [PATCH] WIP: Migrating to node3ds --- godot/scenes/characters/character_wrapper.gd | 2 +- godot/scenes/player/server_node.gd | 6 ++---- godot/scenes/player/server_node.tscn | 3 --- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/godot/scenes/characters/character_wrapper.gd b/godot/scenes/characters/character_wrapper.gd index e6bf0dd..1909515 100644 --- a/godot/scenes/characters/character_wrapper.gd +++ b/godot/scenes/characters/character_wrapper.gd @@ -5,7 +5,7 @@ class_name CharacterWrapper @export var owner_placeholder: CharacterBody3D = null @export var server_node: Node3D # The real synced node from the server -@export var interpolation_delay: float = 0.01 # Stay 100ms behind for smooth interpolation +@export var interpolation_delay: float = 0.1 # Stay 100ms behind for smooth interpolation @export var snap_threshold: float = 2.0 # If desync is larger than this, snap instantly var position_buffer = [] # Stores past positions (tuples of (timestamp, position, rotation)) diff --git a/godot/scenes/player/server_node.gd b/godot/scenes/player/server_node.gd index d1a7b0e..fa3014c 100644 --- a/godot/scenes/player/server_node.gd +++ b/godot/scenes/player/server_node.gd @@ -57,12 +57,10 @@ func _physics_process(delta: float) -> void: shared_node.velocity.z = move_toward(shared_node.velocity.z, 0, consts.DEFAULT_CHARACTER_SPEED) shared_node.move_and_slide() - - @rpc("authority", "call_remote", "unreliable_ordered") func update_position(real_position: Vector3): if not multiplayer.is_server(): - shared_node.global_position = lerp(shared_node.global_position, real_position, 1.0) + shared_node.global_transform.origin = lerp(shared_node.global_transform.origin, real_position, 1.0) @rpc("any_peer", "call_local", "unreliable") func jump(): @@ -89,7 +87,7 @@ func set_rotation_y(y: float): func _on_reconciliation_timer_timeout() -> void: if multiplayer.is_server(): _veryfy_position_and_rotation.rpc_id(owner_id) - #update_position.rpc(shared_node.global_position) + update_position.rpc(shared_node.global_transform.origin) $ReconciliationTimer.start() @rpc("any_peer", "call_local", "reliable") diff --git a/godot/scenes/player/server_node.tscn b/godot/scenes/player/server_node.tscn index 352648b..77cd451 100644 --- a/godot/scenes/player/server_node.tscn +++ b/godot/scenes/player/server_node.tscn @@ -16,9 +16,6 @@ properties/2/replication_mode = 1 properties/3/path = NodePath(".:jumping") properties/3/spawn = true properties/3/replication_mode = 2 -properties/4/path = NodePath("SharedNode:position") -properties/4/spawn = true -properties/4/replication_mode = 1 [node name="ServerNode" type="Node3D"] script = ExtResource("1_bau14")