chore: initialize repository with project scaffold, gitignore and readme
This commit is contained in:
28
.gitignore
vendored
Normal file
28
.gitignore
vendored
Normal 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
11
Program.cs
Normal 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
46
README.md
Normal 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
15
VoxelEngine.csproj
Normal 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
16
VoxelEngine.sln
Normal 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
|
||||||
Reference in New Issue
Block a user