Copyright (C) DigitalRune GmbH. Authors: Helmut Garstenauer, Martin Garstenauer
The DigitalRune Engine is a collection of middleware libraries and tools for developing 3D games, VR simulations and CAx applications. The software is written in C# for the Microsoft .NET Framework and Mono. It supports the Microsoft XNA Game Studio and MonoGame.
The documentation is available online: Link
Please note that the documentation has not been updated for the open source version.
The documentation refers to DigitalRune blog and forum articles. A backup of these articles can be found here: Link
The software was designed to serve as a personal reference implementation. It should be easy to use, yet rich with features. It was initially written for the Microsoft XNA Framework 4. Several limitations of the XNA Framework are still present in the software. By focusing on .NET 4.6+, C# 6+, DirectX 11+ many things could be solved more elegantly.
Several newer, planned features and optimizations are not yet included in the open source project, for example: DirectX 11/12 features, physically-based rendering (PBR), temporal reprojection techniques, improved game object system (game object behaviors), scripting and NuGet support.
The engine was designed for small to medium games ("indie games"). But there is room for optimizations: You can trim features that are not needed and optimize where necessary.
Please note that the original contributors are no longer involved with further development of the open source project. Currently, the open source project does not have a maintainer. At the moment we do not accept pull requests. But feel free to fork the project!
The solution includes several WPF libraries, an MVVM framework for WPF and an early version of an IDE (integrated development environment) for games. See DigitalRune Editor.
The DigitalRune Engine uses a forked version of MonoGame: MonoGame fork for DigitalRune
The MonoGame fork contains a few documented changes compared to the original MonoGame. Ideally, those changes are merged with the original repository or removed to use the original MonoGame version directly and get rid of the fork.
Here are instructions for building the DigitalRune Engine. Please note that there is no automated build system. (The original build infrastructure is not available for the open source project. Due to a limited amount of time, it was not possible to set up a new build system.)
Before you start, check the Prerequisites.
How to build the DigitalRune Engine for MonoGame
MonoGame content projects are not included in the Visual Studio solutions. A few manual steps are required:
- Update all git submodules recursively (to load the MonoGame submodules).
Source/MonoGame/Protobuild.exeto generate MonoGame project files and solutions.
- Build the Visual Studio solution DigitalRune-MonoGame-<Platform>.sln (Configuration: Release, Platforms: Mixed Platforms). A few projects will fail because the MonoGame content projects haven't been built yet.
- Build the DigitalRune content by running
- Build the sample content by running
- Build the Visual Studio solution DigitalRune-MonoGame-<Platform>.sln again. Now, the projects should build successfully.
- Run the sample project Samples/Samples-MonoGame-<Platform>.csproj.
How to build the DigitalRune Engine for XNA
- Build the Visual Studio solution DigitalRune-XNA-Windows.
- Run the sample project Samples/Samples-XNA-Windows.csproj.
To use the Microsoft XNA Game Studio with Visual Studio 2012 (or newer) follow these instructions: Link
How to build the documentation
The DigitalRune assemblies for the XNA Framework are used as the documentation source. The documentation can be built using the Sandcastle Help File Builder.
- Build the Visual Studio solution DigitalRune-XNA-Windows.sln (Configuration: Release, Platforms: Mixed Platforms).
- Build the Sandcastle project Documentation/Documentation.shfbproj.
The output can be found in _help/.
Have a look at our YouTube channel for more videos.
The DigitalRune Engine is licensed under the terms and conditions of the 3-clause BSD License. Portions of the code are based on third-party projects which are licensed under their respective licenses. See LICENSE.TXT for more details.