chore: initialize repository with project scaffold, gitignore and readme

This commit is contained in:
2026-05-28 11:00:02 +02:00
commit 9c4f5a86fe
5 changed files with 116 additions and 0 deletions

28
.gitignore vendored Normal file
View File

@@ -0,0 +1,28 @@
# Build output
[Bb]in/
[Oo]bj/
[Oo]ut/
artifacts/
# .NET
*.user
*.userosscache
*.suo
*.dbmdl
project.lock.json
project.fragment.lock.json
# Rider / JetBrains
.idea/
*.sln.iml
# Visual Studio
.vs/
# Local design docs — kept out of the repo by request
docs/
# OS noise
Thumbs.db
desktop.ini
.DS_Store

11
Program.cs Normal file
View File

@@ -0,0 +1,11 @@
using OpenTK;
namespace VoxelEngine;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}

46
README.md Normal file
View File

@@ -0,0 +1,46 @@
# 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
- [ ] Baseline: window, fly-camera, one face-culled textured chunk
- [ ] Procedural terrain (noise)
- [ ] Multiple chunks + frustum culling
- [ ] Player controller + AABB collision
- [ ] Block break / place
- [ ] Lighting

15
VoxelEngine.csproj Normal file
View File

@@ -0,0 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="OpenTK" Version="5.0.0-pre.16" />
<PackageReference Include="StbImageSharp" Version="2.30.15" />
</ItemGroup>
</Project>

16
VoxelEngine.sln Normal file
View File

@@ -0,0 +1,16 @@
Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VoxelEngine", "VoxelEngine.csproj", "{1636629D-00D6-45A5-878F-7E1417FD87F7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1636629D-00D6-45A5-878F-7E1417FD87F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1636629D-00D6-45A5-878F-7E1417FD87F7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1636629D-00D6-45A5-878F-7E1417FD87F7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1636629D-00D6-45A5-878F-7E1417FD87F7}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal