From d592cef1a0e02e3f9474c09fa8fc072e5fa350fe Mon Sep 17 00:00:00 2001 From: Chewico Date: Fri, 9 Oct 2026 18:56:21 +0200 Subject: [PATCH] Sync variables --- .../include/deerith/SyncBuffer.h | 12 -------- deerith_engine_core/include/deerith/engine.h | 4 +-- .../include/deerith/universe/sync_buffer.h | 29 +++++++++++++++++++ .../deerith/universe/universe_definition.h | 9 ++++++ .../include/deerith/universe/user.h | 19 ++++++++++++ .../include/deerith/universe_definition.h | 11 ------- deerith_engine_core/src/user.cpp | 6 ++++ deerith_engine_server/src/universe.cpp | 1 - sandbox/src/common/common.h | 13 +++++++++ sandbox/src/common/user_definition.cpp | 16 ++++++++++ 10 files changed, 94 insertions(+), 26 deletions(-) delete mode 100644 deerith_engine_core/include/deerith/SyncBuffer.h create mode 100644 deerith_engine_core/include/deerith/universe/sync_buffer.h create mode 100644 deerith_engine_core/include/deerith/universe/universe_definition.h create mode 100644 deerith_engine_core/include/deerith/universe/user.h delete mode 100644 deerith_engine_core/include/deerith/universe_definition.h create mode 100644 deerith_engine_core/src/user.cpp create mode 100644 sandbox/src/common/common.h create mode 100644 sandbox/src/common/user_definition.cpp diff --git a/deerith_engine_core/include/deerith/SyncBuffer.h b/deerith_engine_core/include/deerith/SyncBuffer.h deleted file mode 100644 index aa292a6..0000000 --- a/deerith_engine_core/include/deerith/SyncBuffer.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once -#include - -namespace deerith -{ - template - class SyncBuffer - { - private: - public: - } -} \ No newline at end of file diff --git a/deerith_engine_core/include/deerith/engine.h b/deerith_engine_core/include/deerith/engine.h index 10460ec..4766732 100644 --- a/deerith_engine_core/include/deerith/engine.h +++ b/deerith_engine_core/include/deerith/engine.h @@ -3,8 +3,8 @@ // At #define UNIVERSE_SIMULATION_TICK_FREQ 50 -#define NETWORK_RELATIVE_UNIVERSE_TICK 2 -#define NETWORK_DELAY 6 +#define NETWORK_RELATIVE_TICK 2 +#define NETWORK_DELAY 10 namespace deerith { diff --git a/deerith_engine_core/include/deerith/universe/sync_buffer.h b/deerith_engine_core/include/deerith/universe/sync_buffer.h new file mode 100644 index 0000000..c795e64 --- /dev/null +++ b/deerith_engine_core/include/deerith/universe/sync_buffer.h @@ -0,0 +1,29 @@ +#pragma once +#include +#include +#include + +#define BUFFER_SIZE (NETWORK_DELAY + 20) + +namespace deerith +{ + class sync_buffer + { + public: + virtual ~sync_buffer() = default; + }; + + class float_sync_data : public sync_buffer + { + public: + private: + std::array float_buffer; + }; + + class vec2_sync_data : public sync_buffer + { + public: + private: + std::array buffer; + }; +} \ No newline at end of file diff --git a/deerith_engine_core/include/deerith/universe/universe_definition.h b/deerith_engine_core/include/deerith/universe/universe_definition.h new file mode 100644 index 0000000..8699817 --- /dev/null +++ b/deerith_engine_core/include/deerith/universe/universe_definition.h @@ -0,0 +1,9 @@ +#pragma once +#include +#include + +namespace deerith +{ + + void define_client_callback(std::function); +} \ No newline at end of file diff --git a/deerith_engine_core/include/deerith/universe/user.h b/deerith_engine_core/include/deerith/universe/user.h new file mode 100644 index 0000000..f820b77 --- /dev/null +++ b/deerith_engine_core/include/deerith/universe/user.h @@ -0,0 +1,19 @@ +#pragma once +#include +#include +#include + +namespace deerith +{ + class user + { + public: + void *user_data = nullptr; + + void add_sync_buffer(sync_buffer *sync_buffer); + + private: + std::vector sync_buffer_container; + }; + +} \ No newline at end of file diff --git a/deerith_engine_core/include/deerith/universe_definition.h b/deerith_engine_core/include/deerith/universe_definition.h deleted file mode 100644 index 51e5ee5..0000000 --- a/deerith_engine_core/include/deerith/universe_definition.h +++ /dev/null @@ -1,11 +0,0 @@ -#pragma once -#include - -namespace deerith -{ - class Client - { - }; - - void define_client_callback(std::function); -} \ No newline at end of file diff --git a/deerith_engine_core/src/user.cpp b/deerith_engine_core/src/user.cpp new file mode 100644 index 0000000..232186f --- /dev/null +++ b/deerith_engine_core/src/user.cpp @@ -0,0 +1,6 @@ +#include + +namespace deerit +{ + +} diff --git a/deerith_engine_server/src/universe.cpp b/deerith_engine_server/src/universe.cpp index 47df82b..3b1fdcd 100644 --- a/deerith_engine_server/src/universe.cpp +++ b/deerith_engine_server/src/universe.cpp @@ -1,5 +1,4 @@ #include -#include #include #include diff --git a/sandbox/src/common/common.h b/sandbox/src/common/common.h new file mode 100644 index 0000000..b63a3a9 --- /dev/null +++ b/sandbox/src/common/common.h @@ -0,0 +1,13 @@ +#pragma once +#include +#include +#include + +#include + +struct sandbox_user_data_t +{ + deerith::vec2_sync_data position; +}; + +void define_user(); \ No newline at end of file diff --git a/sandbox/src/common/user_definition.cpp b/sandbox/src/common/user_definition.cpp new file mode 100644 index 0000000..4dfeb93 --- /dev/null +++ b/sandbox/src/common/user_definition.cpp @@ -0,0 +1,16 @@ +#include "common/common.h" +#include +#include + +void user_definition_function(deerith::user &user_data) +{ + deerith_trace("adding user data to new user"); + + sandbox_user_data_t *sandbox_user_data = new sandbox_user_data_t(); + user_data.add_sync_buffer(&sandbox_user_data->position); +} + +void client_definition() +{ + deerith::define_client_callback(user_definition_function); +} \ No newline at end of file