From e437cc99ce9b31f3f0bd3e542f6a8affe106486a Mon Sep 17 00:00:00 2001 From: MihailRis Date: Mon, 6 Nov 2023 00:20:58 +0300 Subject: [PATCH] EngineSettings.chunksLoadSpeed; removed unused assets --- res/block.png.old | Bin 16462 -> 0 bytes res/block.png.old.old | Bin 8247 -> 0 bytes res/crosshair.glslf | 7 ------- res/crosshair.glslv | 10 ---------- res/img.png | Bin 793 -> 0 bytes src/assets/AssetsLoader.cpp | 1 - src/maths/voxmaths.h | 8 ++++++++ src/{ => objects}/player_control.cpp | 20 ++++++++++---------- src/{ => objects}/player_control.h | 0 src/voxel_engine.cpp | 11 ++++++++--- src/voxels/ChunksController.cpp | 23 +++++++++++++++++++++++ src/voxels/ChunksController.h | 4 ++++ src/world/Level.cpp | 2 +- src/world_render.cpp | 2 +- 14 files changed, 55 insertions(+), 33 deletions(-) delete mode 100644 res/block.png.old delete mode 100644 res/block.png.old.old delete mode 100644 res/crosshair.glslf delete mode 100644 res/crosshair.glslv delete mode 100644 res/img.png rename src/{ => objects}/player_control.cpp (95%) rename src/{ => objects}/player_control.h (100%) diff --git a/res/block.png.old b/res/block.png.old deleted file mode 100644 index 1fb83555b47ec08165c4766b34984bbb86dd6ee1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16462 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 diff --git a/res/block.png.old.old b/res/block.png.old.old deleted file mode 100644 index 5e2512c7d531cc21c8c2cb913134d300f2800ef2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8247 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 XpfruEIeo9p00000NkvXXu0mjfCmwBk diff --git a/src/assets/AssetsLoader.cpp b/src/assets/AssetsLoader.cpp index 86b85ae4..45b583cd 100644 --- a/src/assets/AssetsLoader.cpp +++ b/src/assets/AssetsLoader.cpp @@ -81,7 +81,6 @@ void AssetsLoader::createDefaults(AssetsLoader& loader) { void AssetsLoader::addDefaults(AssetsLoader& loader) { loader.add(ASSET_SHADER, "res/main", "main"); - loader.add(ASSET_SHADER, "res/crosshair", "crosshair"); loader.add(ASSET_SHADER, "res/lines", "lines"); loader.add(ASSET_SHADER, "res/ui", "ui"); diff --git a/src/maths/voxmaths.h b/src/maths/voxmaths.h index 59fe85c7..da17c815 100644 --- a/src/maths/voxmaths.h +++ b/src/maths/voxmaths.h @@ -25,6 +25,14 @@ inline int min(int a, int b) { return (a < b) ? a : b; } +inline int64_t max(int64_t a, int64_t b) { + return (a > b) ? a : b; +} + +inline int64_t min(int64_t a, int64_t b) { + return (a < b) ? a : b; +} + static unsigned int g_seed; inline void fast_srand(int seed) { diff --git a/src/player_control.cpp b/src/objects/player_control.cpp similarity index 95% rename from src/player_control.cpp rename to src/objects/player_control.cpp index dc4cea9b..c2d75303 100644 --- a/src/player_control.cpp +++ b/src/objects/player_control.cpp @@ -1,15 +1,15 @@ #include "player_control.h" -#include "objects/Player.h" -#include "physics/PhysicsSolver.h" -#include "physics/Hitbox.h" -#include "lighting/Lighting.h" -#include "world/Level.h" -#include "voxels/Block.h" -#include "voxels/voxel.h" -#include "voxels/Chunks.h" -#include "window/Camera.h" -#include "window/Events.h" +#include "Player.h" +#include "../physics/PhysicsSolver.h" +#include "../physics/Hitbox.h" +#include "../lighting/Lighting.h" +#include "../world/Level.h" +#include "../voxels/Block.h" +#include "../voxels/voxel.h" +#include "../voxels/Chunks.h" +#include "../window/Camera.h" +#include "../window/Events.h" #include #define CROUCH_SPEED_MUL 0.25f diff --git a/src/player_control.h b/src/objects/player_control.h similarity index 100% rename from src/player_control.h rename to src/objects/player_control.h diff --git a/src/voxel_engine.cpp b/src/voxel_engine.cpp index b1f670ec..1d4bbbca 100644 --- a/src/voxel_engine.cpp +++ b/src/voxel_engine.cpp @@ -49,12 +49,15 @@ struct EngineSettings { int displayHeight; int displaySamples; const char* title; + /* Max milliseconds that engine uses for chunks loading only */ + uint chunksLoadSpeed; }; class Engine { Assets* assets; Level* level; + EngineSettings settings; uint64_t frame = 0; float lastTime = 0.0f; @@ -70,6 +73,8 @@ public: }; Engine::Engine(const EngineSettings& settings) { + this->settings = settings; + Window::initialize(settings.displayWidth, settings.displayHeight, settings.title, settings.displaySamples); assets = new Assets(); @@ -117,7 +122,7 @@ void Engine::updateHotkeys() { level->player->debug = !level->player->debug; } if (Events::jpressed(GLFW_KEY_F5)) { - for (unsigned i = 0; i < level->chunks->volume; i++) { + for (uint i = 0; i < level->chunks->volume; i++) { shared_ptr chunk = level->chunks->chunks[i]; if (chunk != nullptr && chunk->isReady()) { chunk->setModified(true); @@ -140,7 +145,7 @@ void Engine::mainloop() { updateHotkeys(); level->update(delta, Events::_cursor_locked); - level->chunksController->loadVisible(world->wfile); + level->chunksController->update(settings.chunksLoadSpeed); worldRenderer.draw(camera, occlusion); hud.draw(level, assets); @@ -172,7 +177,7 @@ Engine::~Engine() { int main() { setup_definitions(); try { - Engine engine(EngineSettings{ 1280, 720, 1, "VoxelEngine-Cpp v13" }); + Engine engine(EngineSettings{ 1280, 720, 1, "VoxelEngine-Cpp v13", 10 }); engine.mainloop(); } catch (const initialize_error& err) { diff --git a/src/voxels/ChunksController.cpp b/src/voxels/ChunksController.cpp index 942375f5..ca806c97 100644 --- a/src/voxels/ChunksController.cpp +++ b/src/voxels/ChunksController.cpp @@ -9,9 +9,11 @@ #include "../files/WorldFiles.h" #include "../world/Level.h" #include "../world/World.h" +#include "../maths/voxmaths.h" #include #include #include +#include #if defined(_WIN32) && defined(__MINGW32__) #define _WIN32_WINNT 0x0501 @@ -20,9 +22,13 @@ #include #endif +#define MAX_WORK_PER_FRAME 16 #define MIN_SURROUNDING 9 using std::shared_ptr; +using std::chrono::high_resolution_clock; +using std::chrono::duration_cast; +using std::chrono::microseconds; ChunksController::ChunksController(Level* level, Chunks* chunks, Lighting* lighting) : level(level), chunks(chunks), lighting(lighting){ @@ -31,6 +37,23 @@ ChunksController::ChunksController(Level* level, Chunks* chunks, Lighting* light ChunksController::~ChunksController(){ } +void ChunksController::update(int64_t maxDuration) { + int64_t mcstotal = 0; + for (uint i = 0; i < MAX_WORK_PER_FRAME; i++) { + auto start = high_resolution_clock::now(); + if (loadVisible(level->world->wfile)) { + auto elapsed = high_resolution_clock::now() - start; + int64_t mcs = duration_cast(elapsed).count(); + avgDurationMcs = mcs * 0.2 + avgDurationMcs * 0.8; + if (mcstotal + max(avgDurationMcs, mcs) * 2 < maxDuration * 1000) { + mcstotal += mcs; + continue; + } + } + break; + } +} + bool ChunksController::loadVisible(WorldFiles* worldFiles){ const int w = chunks->w; const int d = chunks->d; diff --git a/src/voxels/ChunksController.h b/src/voxels/ChunksController.h index a3868886..f71dadf4 100644 --- a/src/voxels/ChunksController.h +++ b/src/voxels/ChunksController.h @@ -1,6 +1,8 @@ #ifndef VOXELS_CHUNKSCONTROLLER_H_ #define VOXELS_CHUNKSCONTROLLER_H_ +#include "../typedefs.h" + class Level; class Chunks; class Lighting; @@ -13,10 +15,12 @@ private: Level* level; Chunks* chunks; Lighting* lighting; + int64_t avgDurationMcs = 1000; public: ChunksController(Level* level, Chunks* chunks, Lighting* lighting); ~ChunksController(); + void update(int64_t maxDuration); bool loadVisible(WorldFiles* worldFiles); }; diff --git a/src/world/Level.cpp b/src/world/Level.cpp index c9be21ba..7fb7e0fe 100644 --- a/src/world/Level.cpp +++ b/src/world/Level.cpp @@ -6,10 +6,10 @@ #include "../voxels/Chunks.h" #include "../voxels/ChunksController.h" #include "../voxels/ChunksStorage.h" -#include "../player_control.h" #include "../physics/Hitbox.h" #include "../physics/PhysicsSolver.h" #include "../objects/Player.h" +#include "../objects/player_control.h" Level::Level(World* world, Player* player, Chunks* chunks, ChunksStorage* chunksStorage, PhysicsSolver* physics, LevelEvents* events) : world(world), diff --git a/src/world_render.cpp b/src/world_render.cpp index 67d22708..ac143f0d 100644 --- a/src/world_render.cpp +++ b/src/world_render.cpp @@ -20,7 +20,7 @@ #include "world/LevelEvents.h" #include "objects/Player.h" #include "assets/Assets.h" -#include "player_control.h" +#include "objects/player_control.h" using std::shared_ptr;