You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Ellpeck f0b65daf68
fixed GetSelfWidth receiving the default and custom font inconsistently
10 hours ago
.config updated build script 3 months ago
.github Update FUNDING.yml 1 year ago
Demos Allow formatting codes to have an arbitrary custom width 11 hours ago
Demos.Android resolved some build warnings 3 months ago
Demos.DesktopGL resolved some build warnings 3 months ago
Docs added DynamicEnums to Friends of MLEM list 1 month ago
FNA@ab59f5f2f6 adAdded TokenizedString.Realign 3 months ago
FontStashSharp@6e6fc608be Multi-target net452, making MLEM compatible with MonoGame for consoles 3 months ago
MLEM fixed GetSelfWidth receiving the default and custom font inconsistently 10 hours ago
MLEM.Data Made JsonTypeSafeWrapper.Of generic to potentially avoid reflective instantiation 1 week ago
MLEM.Extended Added Range extension methods GetPercentage and FromPercentage 4 weeks ago
MLEM.Startup Added trimming and AOT annotations and made MLEM trimmable 1 month ago
MLEM.Templates Added trimming and AOT annotations and made MLEM trimmable 1 month ago
MLEM.Ui cleaned up element addition/removal code 2 weeks ago
Media fixed the text formatting demo being too dark for drop shadows to be visible 6 months ago
Sandbox Improved the way InputHandler down time calculation works 4 weeks ago
Tests Allow formatting codes to have an arbitrary custom width 11 hours ago
.editorconfig added markdown editorconfig settings 3 months ago
.gitignore publish MG and FNA test results separately 3 months ago
.gitmodules added MLEM.FNA 6 months ago
CHANGELOG.md Allow formatting codes to have an arbitrary custom width 11 hours ago
FNA.Settings.props resolved some build warnings 3 months ago
Jenkinsfile Revert "restore android workload when building" 4 months ago
LICENSE updated license year 2 years ago
MLEM.FNA.sln use FNA core for tests and demos 3 months ago
MLEM.sln exclude the android project from build 3 months ago
NuGet.config updated remaining dependencies 2 years ago
README.md added DynamicEnums to Friends of MLEM list 1 month ago
build.cake changed local CI nuget source 2 months ago

README.md

The MLEM logo

MLEM Library for Extending MonoGame and FNA is a set of multipurpose libraries for the game frameworks MonoGame and FNA that provides abstractions, quality of life improvements and additional features like an extensive ui system and easy input handling.

MLEM is platform-agnostic and multi-targets .NET Standard 2.0, .NET 6.0 and .NET Framework 4.5.2, which makes it compatible with MonoGame and FNA on Desktop, mobile devices and consoles.

What next?

Packages

  • MLEM is the base package, which provides various small addons and abstractions for MonoGame and FNA, including a text formatting system and simple input handling
  • MLEM.Ui provides a mouse, keyboard, gamepad and touch ready Ui system that features automatic anchoring, sizing and several ready-to-use element types
  • MLEM.Extended ties in with MonoGame.Extended and other MonoGame and FNA libraries
  • MLEM.Data provides simple loading and processing of textures and other data, including the ability to load non-XNB content files easily
  • MLEM.Startup combines MLEM with some other useful libraries into a quick Game startup class
  • MLEM.Templates contains cross-platform project templates

Made with MLEM

If you created a game with the help of MLEM, you can get it added to this list by submitting it on the issue tracker. If its source is public, other people will be able to use your project as an example, too!

Gallery

Here are some images that show a couple of MLEM's features.

The MLEM.Ui demo in action:

A gif showing various user interface elements from the MLEM.Ui demo

MLEM's text formatting system, which is compatible with both MLEM.Ui and regular sprite batch rendering:

An image showing text with various colors and other formatting

Friends of MLEM

There are several other libraries and tools that work well in combination with MonoGame, FNA and MLEM. Here are some of them:

  • Contentless, a tool that removes the need to add assets to the MonoGame Content Pipeline manually
  • GameBundle, a tool that packages MonoGame and other .NET applications into several distributable formats
  • MonoGame.Extended, a package that also provides several additional features for MonoGame
  • Coroutine, a package that implements Unity-style coroutines for any project
  • Illumilib, a simple keyboard and mouse lighting library with support for Razer, Logitech and Corsair devices
  • DynamicEnums, which provides enum-like single-instance values with additional capabilities, including dynamic addition of new arbitrary values and flags