Skip to content

Zolniu/DigitalRune

 
 

Repository files navigation

DigitalRune Engine

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.

Documentation

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

Notes

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!

Experimental Features

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.

MonoGame Fork

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.

Build instructions

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:

  1. Update all git submodules recursively (to load the MonoGame submodules).
  2. Run Source/MonoGame/Protobuild.exe to generate MonoGame project files and solutions.
  3. 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.
  4. Build the DigitalRune content by running Build-Content-Release.cmd.
  5. Build the sample content by running Samples/Build-Content-MonoGame-<Platform>.cmd.
  6. Build the Visual Studio solution DigitalRune-MonoGame-<Platform>.sln again. Now, the projects should build successfully.
  7. Run the sample project Samples/Samples-MonoGame-<Platform>.csproj.

How to build the DigitalRune Engine for XNA

  1. Build the Visual Studio solution DigitalRune-XNA-Windows.
  2. 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.

  1. Build the Visual Studio solution DigitalRune-XNA-Windows.sln (Configuration: Release, Platforms: Mixed Platforms).
  2. Build the Sandcastle project Documentation/Documentation.shfbproj.

The output can be found in _help/.

Media

Terrain Rendering Example

Water Rendering Example

Water Rendering Example

Have a look at our YouTube channel for more videos.

License

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.

About

DigitalRune Engine - .NET libraries for developing 3D games with XNA and MonoGame

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 82.3%
  • Smalltalk 14.3%
  • HLSL 3.0%
  • FLUX 0.4%
  • PowerShell 0.0%
  • Batchfile 0.0%