SharpEngine.Core.NET 0.0.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package SharpEngine.Core.NET --version 0.0.1
                    
NuGet\Install-Package SharpEngine.Core.NET -Version 0.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SharpEngine.Core.NET" Version="0.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SharpEngine.Core.NET" Version="0.0.1" />
                    
Directory.Packages.props
<PackageReference Include="SharpEngine.Core.NET" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SharpEngine.Core.NET --version 0.0.1
                    
#r "nuget: SharpEngine.Core.NET, 0.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SharpEngine.Core.NET@0.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SharpEngine.Core.NET&version=0.0.1
                    
Install as a Cake Addin
#tool nuget:?package=SharpEngine.Core.NET&version=0.0.1
                    
Install as a Cake Tool

<h1 align="center"> <a href="#"><img align="center" width="100" src="Resources/icon.svg"></a> SharpEngine
</h1> <div align="center">

NuGet Version

</div>

<div>

About

<i>SharpEngine</i> is a game engine written in purely in C# using Silk.NET as a wrapper for the graphics rendering pipeline. <i>SharpEngine</i> aims to enable developers to create <b>basic</b> applications using simple instructions or <b>advanced</b> applications by exposing <b>every</b> component.

<i>SharpEngine</i> tries not to do "<i>Magic Behind the Scenes</i> 🧙‍♂️✨". Developers create their applications using traditional .NET solutions. The engine components use dotnet commands to:

  • Create projects
  • Launch projects
  • More in the future? ..

Getting started

<h3 align="center"> All you need is the <a href>Core</a>!</h3>

Using <i>SharpEngine</i>, you can create your applications using a <i>Standalone</i> approach, where all you need is a reference to the <i>SharpEngine</i> <a href>Core</a>. You can use a local project reference from the repo or add a NuGet package reference using dotnet add package SharpEngine.Core.NET.

After you have installed the NuGet package you initialize the <i>Game implementation</i>, <i>Scene</i> and <i>Window</i>:

public static void Main(string[] args)
{
    var game = new Minimal(new DefaultSettings());
    var scene = new Scene();

    using var window = new SharpEngine.Core.Window(game.Camera, scene, game.Camera.Settings);
    window.Run();
}
public class Minimal : Game
{
    public Minimal(ISettings settings)
    {
        CoreSettings = settings;
    }
}

<h3 align="center">Maybe you want more?!</h3>

Developing multiple projects is easy with <i>SharpEngine</i>'s <i>Launcher</i> and <i>Editor</i> components.

<small>I'm not a UI developer, I will make these prettier later I promise 😃</small>

Editor

The <i>Editor</i> supports dockable windows that can easily be customized using the ImGui.NET library. You can easily create new windows by implementing the ImGuiWindowBase class and letting the <i>Editor</i> handle the rest.

Currently the <i>Editor</i> contains 5 different windows:

  • Actions Menu: Saves, loads and starts the game being edited.
  • Assets window: Contains all the files (even in subdirectories) in the project directory.
  • Context menu: Contains often used actions. Opened when you right-click anywhere in the <i>Editor</i>.
  • Properties window: Contains the properies of the active element.
  • Scene window: Contains a tree view of all the nodes within the active scene.

editor

Launcher

launcher

Examples

Roadmap and plans

The engine is still in it's infant phase where we are just barely hitting all required components working so that we can say the MVP version is done. The current plan is just to use the issues board and execute on that using the "waterfall" method where stuff is just thrown into the engine.

The long-term plan is to all the crucial functionalities we are still missing like:

  • #3 & #2 Loading meshes from files
  • #40 UI
  • #17 Audio
  • #15 Text renderer
  • #13 Ray tracing
  • #12 Particle system

This is just a few among many known issues / missing features from the engine and these will be implemented whenever time permits and we apologize for any inconvenience for now 😂

For more information about the future of the engine, see <i>A Sharp Plan</i>.

Contribution & other miscellaneous stuff

If you are interested in contributing to the project, see Contribution.

Icon created using the work of these lovely people:
Engine icon: Freepik, Shine icon: kornkun

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
1.0.0 223 3/10/2025
0.0.1 121 3/22/2025
0.0.1-test 119 3/22/2025