DirectX 9-based general-purpose 3D graphics engine for .NET Framework 2.0 and up
The OmegaEngine is a general-purpose 3D graphics engine written in C# using the .NET Framework 2.0 and DirectX 9 via SlimDX. The engine is designed to be light-weight, modular and gameplay-agnostic.
The complementary OmegaGUI, AlphaFramework and AlphaEditor help you build games using the OmegaEngine.
Renders a textured sphere:
var engine = new Engine(...);
var scene = new Scene
{
Positionables = {Model.Sphere(engine, XTexture.Get(engine, "flag.png"))}
};
var view = new View(scene, new TrackCamera());
engine.Views.Add(view);
Prerequisites:
The AlphaFramework is a Model-View-Presenter framework for creating game worlds based on OmegaEngine.
The OmegaEngine Templates Visual Studio extension can help you to quickly set up a suitable structure for an OmegaEngine project.
“Frame of Reference” is the official sample game for the OmegaEngine. It is included in the OmegaEngine source code but is not a part of the released library binaries.
The FrameOfReference\Game
project places the files _portable
and config\Settings.xml
in the build directories which together cause the game content files to be loaded from \content\
.
When releasing the binaries as standalone applications these files are not present and game content files are instead expected be located in a subdirectory of the installation path named content
.
To open the Debug Console when running the sample project press Ctrl + Alt + Shift + D
.
Command-line arguments for the sample project:
Usage | Description |
---|---|
/map MapName |
Loads MapName in normal game mode |
/modify MapName |
Loads MapName in modification mode |
/benchmark |
Executes the automatic benchmark |
/menu MapName |
Loads MapName as the background map for the main menu |
Path | Description |
---|---|
\build.ps1 |
A script that compiles the entire project |
\src\ |
The actual source code in a Visual Studio project |
\lib\ |
Pre-compiled 3rd party libraries which are not available via NuGet |
\nuget\ |
Specification files for building NuGet packages |
\templates\ |
Source code for Visual Studio templates |
\doc\ |
Files for creating source code documentation |
\content\ |
Game content files (.X files, PNGs, …) |
\artifacts\Debug\ |
The compiled debug binaries (created by \src\build.ps1 Debug ) |
\artifacts\Release\ |
The compiled release binaries (created by \src\build.ps1 Release ) |
\artifacts\Packages\ |
The compiled NuGet packages (created by \nuget\build.ps1 ) |
\artifacts\Templates\ |
The packaged Visual Studio templates (created by \templates\build.ps1 ) |
\artifacts\Documentation\ |
The compiled source code documentation (created by \doc\build.ps1 ) |
VERSION
contains the version numbers used by build scripts. Use .\Set-Version.ps1 "X.Y.Z"
in PowerShall to change the version number. This ensures that the version also gets set in other locations (e.g. GlobalAssemblyInfo.cs
).
The build.ps1
script assumes that Visual Studio 2017 or newer is installed. To compile the included shader code the DirectX SDK needs to be installed.
The engine requires shader files to be located in a subdirectory of the installation path named Shaders
.