- .NET SDK 10 — pinned in
global.json(rollForward: latestMajor); projects targetnet10.0(the two source-generator projects targetnet8.0for compiler compatibility) - Vulkan SDK
- CMake
- Python 3
- Conan (
pip install conan) — used to fetch/build the native C++ dependencies - Task — runs the native build/pack pipeline defined in
Taskfile.yml
The managed projects pull the native libraries (Vulkan graphics backend, Miniaudio, the Slang shader compiler, etc.) as NuGet packages from a local feed (.feed/, wired up in NuGet.Config). Build and pack them once before opening the solution:
task pack-all
This builds each native module (via Conan + CMake) and dotnet packs it into .feed/. Re-run the relevant task (pack-native, pack-audio-miniaudio-native, pack-graphics-vulkan-native, pack-slang-native) whenever you change that module's C++ source.
dotnet build rin.sln
Pick any project under Examples/ (SceneTest, Sponza, AudioPlayer, ViewsTest, NodeGraphTest, RLTest, ChatApp):
dotnet run --project Examples/SceneTest/SceneTest.csproj
Or open rin.sln in Visual Studio/Rider and run an Examples project directly.
Engine/— core engine:Rin.Core,Rin.World,Rin.Graphics.Vulkan,Rin.Audio.Miniaudio,Rin.SourceGeneratorsSlang/— managed Slang shader compiler toolchain (Rin.Slang,Rin.Slang.Compiler,Rin.Slang.Cli, ...)native/— native C++ modules (Rin.Native,Rin.Audio.Miniaudio.Native,Rin.Graphics.Vulkan.Native,Rin.Slang.Native)Shaders/— shared.slangshader sourcesTools/—Rin.Editor,RinLauncherExamples/— sample/demo appsExperiments/— prototype/throwaway projects