Skip to content

ElegyEngine/ElegyEngine

Repository files navigation

Elegy.Engine

C# and Vulkan game engine, specialised for developing retro-style first-person shooters and similar games from the late 90s and early 2000s.

Check out Elegy.TestGame for an example game module, as well as the other tools and plugins:

For level designers who use TrenchBroom, a game config is provided. Other level editors are likely unsupported but could work depending on how well they do Quake 3.

Note: early WiP, check back in Q4 2024!
Right now the engine is not usable for gamedev of any kind.

Building

Prerequisites

  • .NET 8 (link)
  • Vulkan SDK 1.3.224 or newer. Related to it you'll need:
    • glslang
      • Comes with Vulkan SDK
      • Just make sure it's in your PATH variable
      • i.e. you can just call glslang from the commandline
    • a GPU that supports VK_KHR_fragment_shader_barycentric (find out if yours supports it here)
  • PowerShell 7 (link)

Building the code

If you're brave enough to touch this code, you can get started with simply running build/setup_firsttime.ps1.
It will create all the projects, compile the shaders and copy everything needed into testgame/.

For debugging it's a good idea to create a debug profile for Elegy.Launcher2 whose working directory points to testgame/. Also every time you build one of the projects in Plugins/ you will need to copy them using build/copy_dlls.ps1.

Other notes:

  • if you decide to make NuGet packages, you may find some of the other scripts in build/ useful, just make sure to adjust the paths
  • building & testing your game/plugin code will be more streamlined in the future

Licence

MIT licence. The Elegy.Common module contains code adapted from Godot Engine.

Releases

No releases published

Packages

No packages published

Languages