Elegy Engine
A love letter to the 90s, gamedev and modding~
- Overview
- Philosophy
- About
Note: This engine is a very early work in progress! 🛠
Check out the development articles in the meantime.
Modular - Plug-in, plug-out
Elegy is practically a framework. There are several modules to facilitate game and app development, 2D and 3D alike. Or even CLI tools! You can extend the engine with plugins too.
Retromodern - Best of both worlds
Elegy's workflow is quite similar to the likes of Quake and Source engine. However, it uses widely-supported file formats (glTF 2.0...), meaning there are no complications while importing assets.
Optimised - Light as a feather
Written in high-performance C#, with a Vulkan backend and small filesize, Elegy swiftly runs on hardware from 8 years ago. It also provides you with plenty tools to optimise your game!
Productive - Batteries included!!!
That's right! The Elegy Game SDK has you covered: client-server model, weapon system, AI system, player controllers, all out of the box. Make games by modding!
General workflow
Elegy's workflow philosophy is all about decreasing friction and keeping things simple. Modern engines are designed for huge teams of specialists, which makes them inherently clunkier than necessary for small devs.
In most game engines, you have an integrated engine editor, where you import assets into the engine's own file formats, and you run the game in-editor. That is not the case here.
Instead, you just place assets into directories, and run the game. There's no import step either, simply export your glTF from Blender into a location like mygame/models/
and you're done, it's ready to be used.
In short, it's just you and the filesystem. No bloat in between.
Modding
It should never be the gamedev's job to have to explicitly add mod support later on. That's why Elegy provides this out of the box, as part of its virtual filesystem.
Any game asset can be overridden by a mod, including code. Custom levels can have their own custom shaders and all kinds of things.
Graphics
While Elegy was primarily designed for more authentic retro FPSes and such, it still offers plenty in the graphics department, but not in the way you think.
Elegy has a concept of "rendering styles", which define how surfaces are to be shaded. The builtin styles include RenderStyle99
and RenderStyle2004
. One looks very much like Unreal and Quake 3, while the other looks like Half-Life 2.
This means you can basically pick your own style of shading (or choose from custom, community-made ones!), or write your own. In theory, if you want a completely modern PBR renderer, you can have it. Even a ray-tracer. Not that the engine is built for that, but I mean, who's going to stop you?
There is also a data-driven shader system, so if you want to write a new shader, you don't have to touch any of the rendering code at all. Just write your GLSL shader and compile it with Elegy.ShaderTool
!
Level design
Elegy provides first-class support for TrenchBroom, the Quake level editor.
There is also partial support for J.A.C.K. and NetRadiant-custom, mostly coming down to file formats that those editors support.
In essence, you make your levels directly in the level editor, place all objects (entities) inside, including triggers and lights, and bake/compile the level. If you need more complex level geometry, e.g. terrain, you can sculpt it in Blender and embed it into the level.
This approach is not too different from modern engines, except the level editor is independent of the game engine (a standalone app), and you already have an easy solution for level scripting with triggers. And with the Game SDK, you can already start trying out ideas, playing with different contraptions that come with the SDK.
Greek elegeia/ἐλεγείᾱ: a poem, mourning the long-gone past.
What Elegy is
Elegy Engine is an umbrella project that encompasses the following:- A game engine specialised for retro FPS games and the like.
- Think Quake, Half-Life, Unreal, Thief, System Shock.
- Written in C#, targeting .NET 8, running on Windows, Linux and Android/VR.
- Uses Vulkan 1.3 for rendering.
- MIT-licenced, free for everyone, for any purpose, forever.
- Tools to aid the above:
- Map compiler
- External developer console
- Project wizard
- Model inspector
What Elegy isn't
- A Unity/Unreal clone, or competing with any engine per se.
- This isn't your typical modern-day game engine. There is no integrated engine editor. Work is done in external tools, and when it comes to project management, it's just you and the filesystem.
- The workflow will feel right at home if you've modded Quake or Half-Life.
- It's not designed for big teams/AAA studios. Rather it's meant for solo devs and tiny teams.
- Meant for all genres, or even 2D.
- Elegy aims to be usable for interactive first-person games. Whether it's a full-blown immersive sim shooter, or a walking simulator, that is the constraint.
- Up until February 2024, this engine was a specialisation of Godot. So, if you would like to make games of other genres (racing, puzzle, turn-based strategy) or dimensions than 3D, definitely consider using Godot itself.