An easy 2 use and simple the extend 2D/3D Game Engine with Vulkan and DirectX12 Rendering Backend
The rendering backend is fully multi-threaded and thread safe.
Rendering | Windows | Linux | MacOS | Android | iOS |
---|---|---|---|---|---|
Vulkan | X | X | X | X | X |
DirectX12 | - | - | - | - | - |
Metal | - | - | - | - | - |
- Node (Base class for each node)
- Viewports
- Windows (Installs a new window with its own rendering thread)
- CanvasItems (Contains 2D Rendering stuff like, create rectangles, draw text, etc.)
- Mesh
- Control (based on CanvasItems) and Control Elements like Buttons, etc.
- Camera3D (Camera instance for an scene)
- EditorGrid (Editor grid the preview window)
For 2d rendering we using an css-style positioning system (px or percent, relative or absolute).
- GraphicsService (Rendering Backend)
- NodeTreeService (Node manager)
- InputService (Input manager)
The goal is to provide a simple and easily extendable game engine. We rely exclusively on C# (also applies to the backend) and visual scripting as the programming language. The entire engine, including the backend, is therefore high-performing and also easy to expand.
Similar to Godot, we rely on a node system without components and entities. But all the more on services.
Classic structure looks like this: Scene -> Node -> Resource
We particularly rely on OOP.
- Silk.NET.Math (Fully integrated and modified)
- Veldrid (Most parts changed, not ready yet.)
- Freetype (For font-rendering)
- AssimpNet (For 3d model parsing)
- BinaryPack and Json.NET (For serialization)
- ImageSharp (For image import)