isadorasophia / murder

Murder is a pixel art ECS game engine.
https://isadorasophia.com/murder/
MIT License
2.45k stars 61 forks source link
fna game-engine gamedev monogame multi-platform

Murder logo

Welcome to Murder Engine!

This is the source for Murder Engine, a pixel art ECS game engine built on top of FNA.

Publish release License

🚧👷 Warning Proceed at your own risk. This is an in-development engine, which is another way of saying that it will change quite a lot. We do our best to keep release branches stable, but expect a lot of breaking changes and things that are not perfect (yet!).

How to build it?

If you're good at just digging examples and figuring things out, I recommend starting out with our game jam project or the Hello World project. These projects show what to expect from the Murder architecture and how to create a world, entities and components, which ECS is all about.

...I realize this is quite redundant because the Hello World references this repository as a documentation source, but hang with me.

This is what the architecture looks like:

└── root 
    └── resources
    └── src
        ├── game
        │   ├── bin (final game)
        │   ├── packed
        │   └── resources
        └── game.editor
            ├── bin (game editor)
            └── resources

You may notice that there is no external editor.exe, only your own project. This is so you can have full control of your project! Very similar of what you expect developing a MonoGame or a FNA project, for example.

The idea of a separate project for the editor is that editor code never touches your beautiful and efficient game code, and you can do whatever you want on the editor side.

There is no nuget package for Murder yet, so the recommended way is to keep a git submodule to reference in your .csproj, see example.

For more information on how the ECS applies to the engine, I recommend checking out the documentation for Bang, the framework that Murder uses.

Requirements

We support developing (which means, running the editor) on Linux, MacOS, Windows and even SteamDeck. All you really need is .NET 8 SDK installed. The game obviously also ships to all these architectures.

Console support is still on progress.

Contributing

This is still super early, but feel free to contact me or saint11 if you have any suggestions. I am very interested in people trying it out and any feedback you may have!

✨ Editor examples

Murder logo Murder logo Murder logo