OmegaEngine is a general-purpose 3D graphics for .NET Framework and DirectX 9. The engine is designed to be light-weight, modular and gameplay-agnostic. It is designed to be:
- light-weight (core engine including dependencies < 8MB),
- modular (use only the parts you need for your project) and
- gameplay-agnostic (also suitable for visualization projects, etc.).
OmegaGUI is a GUI toolkit for OmegaEngine with an XML file format und Lua scripting.
The AlphaEditor contains a WYSIWYG editor for the toolkit.
AlphaFramework is a complementary framework for OmegaEngine.
It provides base classes for designing a game world using the Model-View-Presenter pattern.
FrameOfReference is the official sample game for OmegaEngine.
It is intended as a sample/reference for developers working on other games.
Prerequisites
You must install these components before you can use OmegaEngine:
First steps
Create a WinForms project targetting .NET Framework 4.7.2 or newer with the platform set to x86
.
Add a reference to the NuGet package OmegaEngine
. Then add the following code to render a textured sphere:
var engine = new Engine(this, new EngineConfig { TargetSize = ClientSize });
var scene = new Scene
{
Positionables = { Model.Sphere(engine, XTexture.Get(engine, "flag.png")) }
};
var view = new View(scene, new TrackCamera()) { BackgroundColor = Color.CornflowerBlue };
engine.Views.Add(view);
Paint += delegate { engine.Render(); };
NuGet packages
Package | Namespace | Description |
---|---|---|
OmegaEngine | OmegaEngine | 3D graphics rendering based on DirectX 9. |
OmegaEngine.Foundation | OmegaEngine.Foundation | Rendering-agnostic infrastructure like storage and data structures. |
OmegaGUI | OmegaGUI | GUI toolkit with XML file format und Lua scripting. |
AlphaFramework.World | AlphaFramework.World | Basis for engine-agnostic models of game worlds. |
AlphaFramework.Presentation | AlphaFramework.Presentation | Basis for presenters that visualize game worlds using the engine. |
AlphaEditor | AlphaFramework.Editor | Toolkit for creating editors for games based on AlphaFramework. |
Dependencies
flowchart TD
engine[OmegaEngine] --> foundation[OmegaEngine.Foundation]
gui[OmegaGUI] --> engine
world[AlphaFramework.World] --> foundation
presentation[AlphaFramework.Presentation] --> world
presentation --> engine
editor[AlphaEditor] --> presentation
editor --> gui
Project templates
The OmegaEngine project templates help you create C# projects that use OmegaEngine, OmegaGUI and AlphaFramework.