3DEngine 3.0.2
See the version list below for details.
dotnet add package 3DEngine --version 3.0.2
NuGet\Install-Package 3DEngine -Version 3.0.2
<PackageReference Include="3DEngine" Version="3.0.2" />
paket add 3DEngine --version 3.0.2
#r "nuget: 3DEngine, 3.0.2"
// Install 3DEngine as a Cake Addin #addin nuget:?package=3DEngine&version=3.0.2 // Install 3DEngine as a Cake Tool #tool nuget:?package=3DEngine&version=3.0.2
3D Engine - Get it in the Microsoft Store
Documentation
Windows App SDK
Use the WinAppSDK to create beautiful, modern apps for Windows 11 that are backwards compatible to Windows 10 October 2018 Update (build 17763 / version 1809)!
- Use your current installer (no requirement to use MSIX, but there are reliability/security benefits to using MSIX!)
- Additive platform APIs (only add what you need, leave the rest of your app as-is)
- Works with Win32, WPF, WinForms, and more apps
Vortice.Windows
Vortice.Windows is a collection of Win32 and UWP libraries with bindings support for DXGI, WIC, DirectWrite, Direct2D, Direct3D9, Direct3D11, Direct3D12, XInput, XAudio2, X3DAudio, DirectInput, DirectStorage, DirectML, UIAnimation and DirectSound.
This library targets .net7.0 and .net8.0 and uses modern C# 12, see CHANGELOG for list of changes between commits.
If you are looking for high-performance low level bindings, please visit Vortice.Win32
Entity Component System (ECS)
The Entity Component System is an architectural pattern often used in video game development. It facilitates code reusability by separating the data from the behavior. In addition, ECS obeys the "composition over inheritance principle," providing improved flexibility and helping developers identify entities in a game's scene where all the objects are classified as entities. One reason ECS is faster than a game object component system is that you put all the data you need together in the same place in memory. Doing so avoids the performance overhead of having to search around to find it.
NuGet Package
With the NuGet you can also only get the Engine with the NuGet Package Manager and create applications using the 3DEngine (w/o Editor) in a new project and implement all features via code.
If you want the Editor, this is the GitHub Repo for the complete 3DEngine.
dotnet new console -n Project
cd Project
dotnet add package 3DEngine
dotnet add package Costura.Fody
./Project.csproj
Engine usage:
sealed class Program
{
[STAThread]
private static void Main() =>
new Engine.Program().Run();
}
Use the Engine.Kernel to get to the Scene System.
Project Setup:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows10.0.22000.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<SatelliteResourceLanguages>en</SatelliteResourceLanguages>
<PlatformTarget>x64</PlatformTarget>
<PublishAot>true</PublishAot>
</PropertyGroup>
<ItemGroup>
<None Remove="FodyWeavers.xml" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="3DEngine" Version="2.0.1" />
<PackageReference Include="Costura.Fody" Version="5.7.0">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<Content Update="$(NuGetPackageRoot)\3dengine\2.0.0\contentFiles\any\net8.0-windows10.0.22000\Assets\Resources\Models\Primitives\Cube.obj">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Update="$(NuGetPackageRoot)\3dengine\2.0.0\contentFiles\any\net8.0-windows10.0.22000\Assets\Resources\Models\Primitives\Sphere.obj">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Update="$(NuGetPackageRoot)\3dengine\2.0.0\contentFiles\any\net8.0-windows10.0.22000\Assets\Resources\Shaders\ImGui.hlsl">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Update="$(NuGetPackageRoot)\3dengine\2.0.0\contentFiles\any\net8.0-windows10.0.22000\Assets\Resources\Shaders\Include\Common.hlsli">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
</Project>
Also set the Files inside the Assets Folder to "CopyIfNewer" in the Properties Panel inside Visual Studio, so it is included in the Build Folder. This will be obsolete in the Future by the USD Format.
Solution
The 3D Engine contains three Projects:
- 3DEngine (Package)
- Editor
- Engine
You can compile the 3DEngine (Package) for the Editor and the Engine as a standalone.
Upcoming Features and Development Roadmap
- Materials,
- Render Textures,
- Compute Shader,
- Post Processing,
- Gizmos,
- USD,
- Asynchronous Reprojection,
- Lumen (Erebus, Aruna),
- Nanite (Nano Tech),
- Networking,
- Spatial Audio,
- PhsyX 5,
- Export to UWP for Xbox Platform.
As a Unity Developer, I've gathered a collection of top-notch assets from the Unity Asset Store. I plan to incorporate my favorite ones into this game engine when the time is right for implementing them in the creation of various games. Here's a list of some plugins that I'll be integrating into the engine:
Build
In order to compile, you need to install Visual Studio 2022 with the following components:
Visual Studio Installer Modify Individual components with extra direct Download link:
Screenshots
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0-windows10.0.22621 is compatible. |
-
net8.0-windows10.0.22621
- AssimpNet (>= 4.1.0)
- FftSharp (>= 2.1.0)
- MagicPhysX (>= 1.0.0)
- Microsoft.CodeAnalysis (>= 4.10.0)
- Microsoft.CodeAnalysis.CSharp.Scripting (>= 4.10.0)
- Newtonsoft.Json (>= 13.0.3)
- System.Net.Http (>= 4.3.4)
- System.Numerics.Vectors (>= 4.5.0)
- System.Text.RegularExpressions (>= 4.3.1)
- Twizzle.ImGui.NET (>= 1.89.4)
- Twizzle.ImGuizmo.NET (>= 1.89.4.1)
- Twizzle.ImNodes.NET (>= 1.89.4)
- Twizzle.ImPlot.NET (>= 1.89.4)
- UniversalSceneDescription (>= 5.0.0)
- Vortice.Direct2D1 (>= 3.5.0)
- Vortice.Direct3D12 (>= 3.5.0)
- Vortice.DirectInput (>= 3.5.0)
- Vortice.DirectX (>= 3.5.0)
- Vortice.Dxc (>= 3.5.0)
- Vortice.DXGI (>= 3.5.0)
- Vortice.Mathematics (>= 1.8.0)
- Vortice.Win32 (>= 2.2.1)
- Vortice.XInput (>= 3.5.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
3.1.0 | 131 | 10/30/2024 |
3.0.99 | 132 | 10/30/2024 |
3.0.98 | 145 | 10/30/2024 |
3.0.97 | 141 | 10/29/2024 |
3.0.96 | 130 | 10/29/2024 |
3.0.95 | 112 | 10/29/2024 |
3.0.94 | 119 | 10/29/2024 |
3.0.93 | 108 | 10/29/2024 |
3.0.92 | 113 | 10/29/2024 |
3.0.91 | 106 | 10/29/2024 |
3.0.90 | 127 | 10/29/2024 |
3.0.89 | 147 | 10/29/2024 |
3.0.88 | 127 | 10/29/2024 |
3.0.87 | 115 | 10/29/2024 |
3.0.86 | 121 | 10/29/2024 |
3.0.85 | 109 | 10/29/2024 |
3.0.84 | 113 | 10/29/2024 |
3.0.83 | 128 | 10/29/2024 |
3.0.82 | 134 | 10/27/2024 |
3.0.81 | 115 | 10/26/2024 |
3.0.80 | 131 | 10/26/2024 |
3.0.79 | 113 | 10/25/2024 |
3.0.78 | 129 | 10/24/2024 |
3.0.77 | 112 | 10/24/2024 |
3.0.76 | 105 | 10/24/2024 |
3.0.75 | 138 | 10/24/2024 |
3.0.74 | 133 | 10/23/2024 |
3.0.73 | 137 | 10/23/2024 |
3.0.72 | 152 | 10/23/2024 |
3.0.71 | 123 | 10/23/2024 |
3.0.70 | 109 | 10/21/2024 |
3.0.69 | 129 | 10/21/2024 |
3.0.68 | 136 | 10/21/2024 |
3.0.67 | 121 | 10/21/2024 |
3.0.66 | 105 | 10/21/2024 |
3.0.65 | 114 | 10/21/2024 |
3.0.64 | 111 | 10/21/2024 |
3.0.63 | 130 | 10/21/2024 |
3.0.62 | 127 | 10/21/2024 |
3.0.61 | 116 | 10/21/2024 |
3.0.60 | 128 | 10/21/2024 |
3.0.59 | 118 | 10/21/2024 |
3.0.58 | 103 | 10/21/2024 |
3.0.57 | 115 | 10/21/2024 |
3.0.56 | 132 | 10/21/2024 |
3.0.55 | 131 | 10/21/2024 |
3.0.54 | 154 | 10/19/2024 |
3.0.53 | 140 | 10/19/2024 |
3.0.52 | 198 | 10/19/2024 |
3.0.51 | 175 | 10/19/2024 |
3.0.50 | 197 | 10/18/2024 |
3.0.49 | 128 | 10/18/2024 |
3.0.48 | 158 | 10/17/2024 |
3.0.47 | 130 | 10/17/2024 |
3.0.46 | 118 | 10/17/2024 |
3.0.45 | 146 | 10/17/2024 |
3.0.44 | 153 | 10/17/2024 |
3.0.43 | 138 | 10/17/2024 |
3.0.42 | 134 | 10/17/2024 |
3.0.41 | 143 | 10/17/2024 |
3.0.40 | 134 | 10/17/2024 |
3.0.39 | 139 | 10/9/2024 |
3.0.38 | 140 | 10/9/2024 |
3.0.37 | 112 | 10/7/2024 |
3.0.36 | 102 | 10/7/2024 |
3.0.35 | 104 | 10/7/2024 |
3.0.34 | 117 | 10/3/2024 |
3.0.33 | 139 | 10/1/2024 |
3.0.32 | 147 | 10/1/2024 |
3.0.31 | 149 | 9/30/2024 |
3.0.30 | 112 | 9/30/2024 |
3.0.29 | 115 | 9/30/2024 |
3.0.28 | 123 | 9/28/2024 |
3.0.27 | 143 | 9/27/2024 |
3.0.26 | 142 | 9/26/2024 |
3.0.25 | 132 | 9/25/2024 |
3.0.24 | 115 | 9/25/2024 |
3.0.23 | 128 | 9/22/2024 |
3.0.21 | 125 | 9/19/2024 |
3.0.19 | 135 | 9/19/2024 |
3.0.18 | 130 | 9/18/2024 |
3.0.17 | 127 | 9/18/2024 |
3.0.16 | 132 | 9/18/2024 |
3.0.15 | 180 | 9/17/2024 |
3.0.14 | 128 | 9/17/2024 |
3.0.13 | 129 | 9/17/2024 |
3.0.12 | 195 | 9/15/2024 |
3.0.11 | 165 | 9/15/2024 |
3.0.10 | 149 | 9/15/2024 |
3.0.9 | 144 | 9/15/2024 |
3.0.8 | 145 | 9/15/2024 |
3.0.7 | 151 | 9/15/2024 |
3.0.6 | 137 | 9/15/2024 |
3.0.5 | 146 | 9/15/2024 |
3.0.4 | 142 | 9/15/2024 |
3.0.3 | 159 | 9/15/2024 |
3.0.2 | 163 | 9/11/2024 |
3.0.1 | 173 | 9/11/2024 |
3.0.0 | 163 | 9/8/2024 |
2.2.2 | 153 | 8/11/2024 |
2.0.2 | 330 | 3/7/2024 |
2.0.1 | 267 | 2/25/2024 |
2.0.0 | 291 | 2/25/2024 |
1.0.7 | 744 | 10/20/2023 |
1.0.6 | 248 | 10/20/2023 |
1.0.5 | 308 | 10/19/2023 |
1.0.4 | 293 | 10/18/2023 |
1.0.3 | 336 | 10/18/2023 |
1.0.2 | 292 | 10/18/2023 |
1.0.1 | 363 | 10/18/2023 |
1.0.0 | 333 | 10/13/2023 |