From ba61405ca30238cb90a4bf863a57d529ed223c37 Mon Sep 17 00:00:00 2001 From: unfa Date: Sun, 28 Nov 2021 19:16:46 +0100 Subject: [PATCH] Replaced ping implementaion with built-in. Improved connection status disaply. --- Game/Assets/HUD/Performance.gd | 24 +++++++++++++++++------- Game/Assets/UI/GUI.tscn | 1 - Game/Main.gd | 22 ---------------------- Game/Main.tscn | 6 +----- 4 files changed, 18 insertions(+), 35 deletions(-) diff --git a/Game/Assets/HUD/Performance.gd b/Game/Assets/HUD/Performance.gd index c398573..d45b3a7 100644 --- a/Game/Assets/HUD/Performance.gd +++ b/Game/Assets/HUD/Performance.gd @@ -12,16 +12,26 @@ func _ready(): # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): - if not get_tree().multiplayer.has_multiplayer_peer(): text = "Offline" elif get_tree().multiplayer.is_server(): - text = "Hosting" - else: - if main.ping_time >= 0: - text = "Ping: " + str(round(main.ping_time * 1000)) + " ms" + text = "Hosting · " + var peers = get_tree().multiplayer.get_peers().size() + var word + if peers == 0: + text += "no peers" + elif peers == 1 : + text += "1 peer" else: - text = "Ping unknown" - + text += str(peers) + " peers" + else: + text = "Connected · " + var own_peer = get_tree().multiplayer.multiplayer_peer.get_peer(get_multiplayer_authority()) + var ping = own_peer.get_statistic(ENetPacketPeer.PEER_ROUND_TRIP_TIME) + var packet_loss = own_peer.get_statistic(ENetPacketPeer.PEER_PACKET_LOSS) + text += str(ping) + " ms · " + str(packet_loss) + + + text += "\nFPS: " + str(Engine.get_frames_per_second()) text += "\nLiblast 0.1.1 pre-alpha" diff --git a/Game/Assets/UI/GUI.tscn b/Game/Assets/UI/GUI.tscn index 25519e9..f7ace87 100644 --- a/Game/Assets/UI/GUI.tscn +++ b/Game/Assets/UI/GUI.tscn @@ -23,7 +23,6 @@ rect_min_size = Vector2(0, 575) size_flags_horizontal = 0 size_flags_vertical = 0 texture = ExtResource( "2_oueme" ) -script = null __meta__ = { "_edit_use_anchors_": false } diff --git a/Game/Main.gd b/Game/Main.gd index 3ba1901..73e954f 100644 --- a/Game/Main.gd +++ b/Game/Main.gd @@ -10,11 +10,6 @@ const NET_SERVER = "localhost" var peer = ENetMultiplayerPeer.new() -var ping_time = -1 -var ping_sent = 0 -var ping_recieved = 0 -var ping_token = 0 - var role = MultiplayerRole.NONE: set(new_role): role = new_role @@ -27,23 +22,6 @@ var player_scene = preload("res://Assets/Characters/Player.tscn") @onready var chat = hud.get_node("Chat") var local_player: Node = null -@rpc(call_remote, any_peer, unreliable) func ping(token:int = -1): - if get_tree().multiplayer.is_server(): # we are the sever - reply to pinging client -# for i in range(0, 100): -# print(i) - rpc_id(get_tree().multiplayer.get_remote_sender_id(), &'ping', token) - else: - if get_tree().multiplayer.get_remote_sender_id() == 1: #recieve answer from server - if token == ping_token: # if the token is correct - ping_recieved = uptime - ping_time = ping_recieved - ping_sent - #else: - # ping_time = -1 - elif token == -1: # send ping - ping_sent = uptime - ping_token = randi() - rpc_id(1, &'ping', ping_token) - class PlayerInfo: var name: String var team: int diff --git a/Game/Main.tscn b/Game/Main.tscn index a5ad4f3..43c05c4 100644 --- a/Game/Main.tscn +++ b/Game/Main.tscn @@ -3,7 +3,7 @@ [ext_resource type="PackedScene" uid="uid://b1078bn8gy2qf" path="res://Map.tscn" id="1"] [ext_resource type="PackedScene" uid="uid://b856vwmg8a6o4" path="res://Assets/UI/GUI.tscn" id="2"] [ext_resource type="Script" path="res://Main.gd" id="3"] -[ext_resource type="PackedScene" uid="uid://bff5uslrxesjx" path="res://Assets/HUD/HUD.tscn" id="4"] +[ext_resource type="PackedScene" uid="uid://bs80rhfpgh2m2" path="res://Assets/HUD/HUD.tscn" id="4"] [ext_resource type="AudioStream" uid="uid://j42e203vte7h" path="res://Assets/Announcer/Go.wav" id="5_ilayd"] [ext_resource type="Script" path="res://Assets/Announcer/Announcer.gd" id="6_gcsgr"] @@ -276,15 +276,11 @@ stream = ExtResource( "5_ilayd" ) bus = &"Announcer" script = ExtResource( "6_gcsgr" ) -[node name="PingTimer" type="Timer" parent="."] -autostart = true - [connection signal="toggled" from="NetworkTesting/CheckButton" to="." method="_on_CheckButton_toggled"] [connection signal="pressed" from="NetworkTesting/Host" to="." method="_on_Host_pressed"] [connection signal="pressed" from="NetworkTesting/Connect" to="." method="_on_Connect_pressed"] [connection signal="text_submitted" from="NetworkTesting/TextEdit" to="." method="_on_TextEdit_text_submitted"] [connection signal="color_changed" from="NetworkTesting/ColorPickerButton" to="." method="_on_ColorPickerButton_color_changed"] [connection signal="pressed" from="NetworkTesting/Button" to="." method="_on_Button_pressed"] -[connection signal="timeout" from="PingTimer" to="." method="ping"] [editable path="HUD"]