MDietermann 34f923cbca refactor: store-owned diff snapshot and drop dead ChunkJob.ExistingChunk
TryGetDiff now returns an independent copy so callers can safely retain the
reference; removes the defensive copy from ChunkStreamer.DispatchLoad.
ChunkJob.ExistingChunk was never populated (DispatchRemesh uses closures
instead), so the field is removed along with its misleading record-level
comment.
2026-06-01 13:31:05 +02:00
2026-05-28 13:35:31 +00:00

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
No description provided
Readme 1.1 MiB
Languages
C# 97.9%
GLSL 2.1%