nommiin / Luna

A custom implementation of the GameMaker runtime

Home Page:https://blog.nomm.dev/tagged/luna

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This repo is NOT abandoned, development has just been set aside for now. Contributions are still welcome!

Banner

A custom implementation of the GameMaker 2.3 runtime in C#

Features

  • Parses the GameMaker IFF file for some assets
  • Allows for object instantiation
  • Runs an event loop and executes objects' bytecode
  • Implements input and rendering via OpenTK

Why?

Nothing like this really exists. I don't want to make this to be some sort of super performant crazy alternative to the base GameMaker runner, instead I think it'd be cool to implement improved/new features the base Runner doesn't have. Long term I'd like to have Luna running most GM games (unlikely). Maybe I could add some sort of scripting implementation to allow for modding games at runtime. Who knows! This is mostly just a fun project for learning how stuff works. Do I know what I'm doing? Not really!

Goals

  • See "Long Term" header in TODO.md
  • Function Coverage: 0.45% (88/~1954)

Notes

Special Thanks

  • Thanks to @Shana6 for the numerous contributions
  • Thanks to @YellowAfterlife for assistance with figuring out bytecode
  • Thanks to @DatZach for assistance in improving Luna's performance early on
  • Thanks to @i_am_thirteen for designing Luna's logo

About

A custom implementation of the GameMaker runtime

https://blog.nomm.dev/tagged/luna

License:MIT License


Languages

Language:C# 100.0%