Skip to content
This repository has been archived by the owner on Jul 19, 2024. It is now read-only.

demonixis/C3DE

Repository files navigation

C3DE : Cool 3D Engine

The project

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.

preview

Status & branch strategy

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.

Setup & Requirement

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.

Build

# 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

Features

  • 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

Platforms

Platform Backend Status
Windows DirectX Supported
DesktopGL OpenGL Limited support (bad shader support)
Android OpenGL On Hold
UWP DirectX On Hold

Help needed

I need help to port the Oculus Mobile SDK to Xamarin

About OpenGL and MonoGame

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.

Virtual Reality

C3DE supports OpenVR (headset + controllers) and Oculus (headset only), please take a look at the wiki.

Contributions

You're free to submit pull requests, however thank you to follow the coding convention.

License

C3DE is released under the MIT License, please take your time to read the LICENSE file for more informations.