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 initial 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 cross-platform renderer potentially based on kelp-2d
  • An optional ECS game structure, slotting in beside the traditional Otter-like one
  • Better Otter compatibility and more Otter features, for ease of porting

Features

  • Quick set up
  • 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!)
  • Instanced rendering for particles (to be extended to other basic graphics!)

Platform support

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

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

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.

  • TMFBMA was fully ported within a week, while completing Lutra version 0.1.0.
  • DA-DA-DASHBONK was fully ported within 2 days, while completing Lutra version 0.2.0.

See the PORTING article for more information.

License

Lutra is licensed under the MIT License.

Footnotes

  1. Testing was done on Windows 10, Arch Linux, and macOS 11 Big Sur.

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