Git Product home page Git Product logo

lutra's Introduction

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. โ†ฉ

lutra's People

Contributors

emmyleaf avatar

Stargazers

well.james avatar Konstantin Zakharov avatar  avatar johnjoemcbob avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.