From 3729ece918cda16bc1e112243e094f0d632207d0 Mon Sep 17 00:00:00 2001 From: HappyTanuki Date: Sat, 21 Jun 2025 22:48:29 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A0=9C=EC=B6=9C=20=EB=B2=84=EC=A0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Server/src/server.cpp | 5 ++++- impl/vulkan_engine/vulkan/engine.cpp | 15 +++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/Server/src/server.cpp b/Server/src/server.cpp index 8a4e8a6..af53cbd 100644 --- a/Server/src/server.cpp +++ b/Server/src/server.cpp @@ -149,9 +149,12 @@ void ClientRefresher(utils::ThreadPool* tp, Network::IOCP* iocp) { header_serialized.end()); send_data.insert(send_data.end(), model_serialized.begin(), model_serialized.end()); - if (!model.second->needsUpdate && !needs_all_update && + /*if (!model.second->needsUpdate && !needs_all_update && !model.second->shouldBeDestroyed) { continue; + }*/ + if (!needs_all_update) { + continue; } model.second->needsUpdate = false; if (iocp->send(client, send_data) == -1) { diff --git a/impl/vulkan_engine/vulkan/engine.cpp b/impl/vulkan_engine/vulkan/engine.cpp index 078e53d..42e5df0 100644 --- a/impl/vulkan_engine/vulkan/engine.cpp +++ b/impl/vulkan_engine/vulkan/engine.cpp @@ -4,6 +4,9 @@ #include "socket/packet.h" #include "utils/utils.h" +#define TICKRATE 10 +constexpr double TICKDELAY = (1 / TICKRATE); + namespace veng { void Engine::init() { @@ -156,11 +159,19 @@ void Engine::NetUpdate(std::shared_ptr sock) { } void Engine::NetworkUpload(std::shared_ptr sock) { + static double last_all_updated; + auto current_time = glfwGetTime(); + bool needs_all_update = false; + if (current_time - last_all_updated >= TICKDELAY) { + needs_all_update = true; + last_all_updated = glfwGetTime(); + } + std::vector data; for (auto& it : models_) { std::lock_guard lock(it.second->modding); - if (!it.second->networkReplicated) continue; - if (!it.second->needsUpdate) continue; + if (!it.second->networkReplicated && !needs_all_update) continue; + if (!it.second->needsUpdate && !needs_all_update) continue; Packet::Header header; header.opcode = Packet::Opcode::UPDATEMODEL;