Skip to content

emmyleaf/Lutra

Repository files navigation

Lutra Game Framework 🦦

Lutra is a framework for making 2D games in C# with a focus on cross-platform builds, pixel perfect rendering, and ease of use. It adapts code from (and functions as a spiritual successor to) Kyle Pulver's Otter framework.

This project was started with the aim to port games away from Otter's dependency on SFML.NET, due to various cross-platform runtime issues. The renderer was built from scratch using Veldrid, which provides a low-level graphics API with many backends.

Current status

Lutra is still in development, but has been used to make games already! During these early stages, dev work is being done in a private repository and synced here for releases.

You can either clone this repo or download the source of the latest release from the tags page.

See the changelog for more details about the latest release.

Future plans

  • A new renderer using SDL3's GPU API
  • Support Windows/macOS/Linux across both x64 and arm64
  • Better Otter compatibility and more Otter features, for ease of porting
  • An optional ECS game structure, slotting in beside the traditional object-oriented one

Features

  • Code-first & quick to set up
  • Object-oriented Scene/Entity/Component structure
  • Quadtree based Collision
  • Rich text with fancy formatting options
  • ImGui based debug UI with console
  • Useful utility functions
  • Custom shader support (guide coming soon!)

Platform support

Platform1 Vulkan Direct3D 11 Metal OpenGL
Windows x64 🆗2
Linux x64
macOS x64 3

✅: Recommended, 🆗: Tested, 🚧: Support in progress, ❌: Non-functional.

Games made with Lutra!

Porting games from Otter

Lutra and Otter do not have identical featuresets, but porting games from Otter to Lutra is a goal of the project.

See the OTTER article for more information.

Licenses

Lutra is licensed under the MIT License.

Please also see the list of third party dependency licenses

Footnotes

  1. Testing was done on Windows 10, Arch Linux, and macOS 15 Sequoia.

  2. Vulkan on Windows has been found to have issues with certain AMD hardware.

  3. OpenGL on macOS is deprecated and does not support all the features required for Lutra.