47 lines
1.2 KiB
Markdown
47 lines
1.2 KiB
Markdown
# 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.
|
||
|
||
```bash
|
||
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
|
||
|
||
- [x] Baseline: window, fly-camera, one face-culled textured chunk
|
||
- [ ] Procedural terrain (noise)
|
||
- [x] Multiple chunks + frustum culling
|
||
- [ ] Player controller + AABB collision
|
||
- [ ] Block break / place
|
||
- [ ] Lighting
|