summaryrefslogtreecommitdiff
path: root/src/engine.h
diff options
context:
space:
mode:
authorAaditya Dhruv <[email protected]>2026-01-30 00:17:39 -0600
committerAaditya Dhruv <[email protected]>2026-01-30 00:17:39 -0600
commit8150b91d4076d15f8df5cd66acc1b8076a2ee1a9 (patch)
treefe74fd18e409a215ed05074efe29b3b0a465bfd5 /src/engine.h
parent3729fe29b862a8b1d58967c45942535e7087b73b (diff)
Update chunk rendering, improve chunk loading
- On world_init, LOAD_CHUNK amount of chunks are preloaded - Chunks are loaded around the player's current chunk, in a square shape. The size of the shape is controlled by CHUNK_DISTANCE - Allow chunks struct to be independent of a position. We load a chunk TO a position in the world chunk grid (x, y). This allows us to "wrap" chunks, so we have an endless world, but we are really just wrapping around
Diffstat (limited to 'src/engine.h')
-rw-r--r--src/engine.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/engine.h b/src/engine.h
index 2eb7518..0633bcc 100644
--- a/src/engine.h
+++ b/src/engine.h
@@ -2,12 +2,21 @@
#include "window.h"
#include "shader.h"
#include "junk/vector.h"
+// CHUNK_DISTANCE is essentially render distance, it shows you how many chunks
+// around the user you can see
+// The number of loaded chunks can be determined as follows:
+// We want a square around curr_chunk, and a side of the square will be 1
+// (center chunk) + 2 * CHUNK_DISTANCE (either side of center)
+// loaded chunks = (1 + CHUNK_DISTANCE * 2)^2
+#define CHUNK_DISTANCE 5
+
struct engine {
struct window* window;
struct shader* shader;
- struct vector* objects;
struct camera* camera;
int game_loop;
+ int curr_chunk[2];
+ struct world* world;
};
/**