C3DE aims to become a 3D game engine powered by the MonoGame Framework with all features you can except from a modern "Garage Game Dev Tool". It features a Forward, Light PrePass and Deferred Renderer, as well as Virtual Reality support. Please take a look at features below.
This project is in early stage. Use the master
branch for testing and the develop
branch for latest and instable changes. Keep in mind that all branches other than master
are probably broken on non Windows targets.
The first step is to install some MonoGame tools using the command line
dotnet tool install -g dotnet-mgfxc
dotnet tool install -g dotnet-mgcb
dotnet tool install -g dotnet-mgcb-editor
mgcb-editor --register
You need an internet connection the first time to download nuget packages.
# Win64 + DirectX
dotnet publish -c Release -r win-x64 /p:PublishReadyToRun=false /p:TieredCompilation=false --self-contained .\C3DE.Demo\Windows\C3DE.DemoGame.csproj
# Crossplatform + OpenGL
dotnet publish -c Release -r win-x64 /p:PublishReadyToRun=false /p:TieredCompilation=false --self-contained .\C3DE.Demo\Windows\C3DE.DemoGame.Desktop.csproj
dotnet publish -c Release -r linux-x64 /p:PublishReadyToRun=false /p:TieredCompilation=false --self-contained .\C3DE.Demo\Windows\C3DE.DemoGame.Desktop.csproj
dotnet publish -c Release -r osx-x64 /p:PublishReadyToRun=false /p:TieredCompilation=false --self-contained .\C3DE.Demo\Windows\C3DE.DemoGame.Desktop.csproj
- Component based
- 3D Model support + Custom Mesh geometry
- Terrain: Flat, Random, Heightmap
- Materials: PBR (in progress), Standard (Phong + Extras), Terrain (multi-textured) and few extras
- Lighting: Directional, Point, Spot
- Forward Renderer: Single Pass multi-lighting, up to 128 realtime lights with Direct3D and 16 with OpenGL
- Hardware Instancing
- Reflection Probe
- Deferred Renderer (wip)
- Shadow mapping (Hard shadow only)
- Input management: Keyboard, Mouse, Gamepad, Touch
- Procedural texture generation
- Post Processing
- Instant GUI system
- Virtual Reality (supported on all renderers)
- Physics using Jitter Physics
Platform | Backend | Status |
---|---|---|
Windows | DirectX | Supported |
DesktopGL | OpenGL | Limited support (bad shader support) |
Android | OpenGL | On Hold |
UWP | DirectX | On Hold |
I need help to port the Oculus Mobile SDK to Xamarin
The OpenGL shader compiler is limited to the shader model 3, some effects are not supported on this platform. Physically Based Rendering and Post Processing are very limited.
C3DE supports OpenVR (headset + controllers) and Oculus (headset only), please take a look at the wiki.
You're free to submit pull requests, however thank you to follow the coding convention.
C3DE is released under the MIT License, please take your time to read the LICENSE file for more informations.