C# Wrapper for LÖVE 2d game engine(https://love2d.org/). Website : https://github.com/endlesstravel/Love2dCS


Keywords
2d, game, engine, native, 2d-game-engine, csharp, game-engine, love2d
License
MIT
Install
Install-Package Love2dCS -Version 11.0.50

Documentation

logo

Love2dCS - C# Wrapper for LÖVE

discord channel here: https://discord.gg/nF9wMkK


中文版 | gitee-国内访问速度较快

Love2dCS is a C#/F# Wrapper for LÖVE game engine, it can be used your C#/F# based Application.

Links

Support Platform

  • windows-x86 / windows-x64 / ubuntu-16 x64 / ubuntu-18 x64 / MacOS 10.12+ x64 with .net startard 1.2 (.NET Core | .NET Framework 4.5.1 | Mono 4.6)

Status

Love2dCS was designed to be as close as possible to the original LÖVE API, as such the documentation provided from LÖVE largely covers usage of Love2dCS. There is a difference between Love2dCS and LÖVE where is :

  • The Love.XXX.New* in C# can access to files anywhere. In the original functin can only access the contents of the current folder.
  • The love.timer.getTime in C# as The time in seconds since the start of the game beacuse of C# double to float precision
  • The love.math module in LÖVE is named Love.Mathf in Love2dCS
  • The love.system module in LÖVE is named Love.Special in Love2dCS
  • The love.thread module in LÖVE is not supply, you can use Threading.Thread in C# instead.
  • Most index begin from 1 at LÖVE. However, but index will begin from 0 at Love2dCS
  • Love2dCS provide more build-in module to convience use.
  • You can work with lua as well, but only love.load love.update and love.draw are native supported : Work with lua. The rest of callback function is not supported.
  • Love2dCS currently based on LÖVE 11.1

Examples

Drawing text

using Love;
class Program : Scene
{
    public override void Draw()
    {
        Graphics.Print("Hello World!", 400, 300);
    }

    static void Main(string[] args)
    {
        Boot.Run(new Program());
    }
}

Next to development

  • Improve the document : in development
  • Fully support Love 11.2 : in development

Finished:

  • [√] Support Ubuntu : now support ubuntu 16/18
  • [√] Add support for .net core
  • [√] Support call lua function : Love.Lua.Call(name, ...arg) / Love.Lua.LoadString / Love.Lua.LoadFile (here)
  • [√] Support helpper function : Keyboard.IsPressed / Keyboard.IsReleased / Joystick.IsPressed / Joystick.IsReleased / Joystick.IsGamepadPressed /Joystick.IsGamepadReleased
  • [√] Add support for Physics

Test

Module Process code comment Test ubuntu Test Remark
Audio 80% 80% 50% test
Data / / Need to binding
Event 50% /
FileSystem 80% 80% 90% test detail
Font 80% 90%
Graphics 80% 00%
Image 80% 90%
Joystick 80% 00% Need add code comment
Keyborad 95% 95% 95% test detail
Mathf (love.math) 80% 90%
Mouse 90% 90% 90% test Mouse.SetRelativeMode will crash, need to repair
Physics 80% / 20% test Need more test case
Sound 90% 90%
Special (love.system) 90% 90% 90% test
Thread / / Not supported / No need to support
Timer 95% 95%
Touch 80% 00%
Video 80% 80% 90% test
Window 80% 80%

develop log

change log

Distribute

Development

Develop document

Contributor

  • thanks matej-zajacik for his contribute on add and improve document. Without him, the grammatical errors of documents would flourish everywhere.