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