96b8fffcd4686e06adf93704ef92802c41f8a6d6
UpdateSpawnReady required every chunk in the spawn columns down to bedrock. With full-column loading, those deep chunks carry the lowest load priority in the whole render volume (dy^2 * VerticalPriorityWeight), so they stream in last -- the loading screen waited for nearly the entire render distance to generate (minutes on a tall mountain spawn, appearing as a hang). Gate readiness on just the near-surface band (surfaceTop-2 .. surfaceTop) of the spawn area instead. Those are the highest-priority chunks, so spawn-ready now flips in ~350ms. Deep chunks are occluded at spawn and stream in afterwards. Extracts a SurfaceTopChunk helper shared with CollectTargets.
VoxelEngine
A learning voxel engine written in C# (.NET 10) on top of OpenTK 4 / OpenGL 3.3.
Status
Early baseline. The current goal is rendering a single face-culled, textured 16×16×16 chunk that you can fly around with a free camera — the structural core the rest of the engine builds on.
Tech stack
- .NET 10 / C#
- OpenTK 4.9.4 — windowing, OpenGL bindings, and math
- StbImageSharp — texture (PNG) loading
Build & run
Requires the .NET 10 SDK.
dotnet run --project VoxelEngine.csproj
Once the baseline is running: WASD to move, mouse to look, Esc to quit.
Project layout
Core/ game window + loop
Rendering/ shader, texture, camera, chunk renderer (OpenGL)
World/ block model, registry, chunk, mesher (no OpenGL)
Assets/ shaders + texture atlas
The World/ layer is intentionally free of any OpenGL dependency so the voxel logic can
be unit-tested headless.
Roadmap
- Baseline: window, fly-camera, one face-culled textured chunk
- Procedural terrain (noise)
- Multiple chunks + frustum culling
- Player controller + AABB collision
- Block break / place
- Lighting
Description
Languages
C#
97.9%
GLSL
2.1%