A free cross-platform game development framework.
 
 
Go to file
cosmonaut 4dbd5a2cbe MSDF font rendering + improved resource tracking (#52)
This is a major rewrite of the Font system. MoonWorks now uses MSDF font rendering, which allows high quality rendering of fonts at arbitrary sizes.

We now ship default embedded shader binaries for Video and Font. If you replace them with shader binaries of the same name located in your base directory, those will be used instead.

Many improvements have been made to resource tracking to prevent memory corruption, particularly on shutdown.

You must be careful not to leak AudioResource classes in particular, as there isn't much we can automatically do to recover from this without potentially crashing your game.

Reviewed-on: MoonsideGames/MoonWorks#52
2023-12-15 18:46:43 +00:00
lib MSDF font rendering + improved resource tracking (#52) 2023-12-15 18:46:43 +00:00
licenses add Matrix3x2 and rename Matrix to Matrix4x4 2021-02-16 18:07:50 -08:00
src MSDF font rendering + improved resource tracking (#52) 2023-12-15 18:46:43 +00:00
.editorconfig Formatting pass 2022-02-22 21:14:32 -08:00
.gitignore initial input handling 2021-01-18 23:29:07 -08:00
.gitmodules fix dav1dfile submodule 2023-06-07 15:35:07 -07:00
Doxyfile doxygen generator config 2023-09-19 17:55:17 -07:00
MoonWorks.csproj MSDF font rendering + improved resource tracking (#52) 2023-12-15 18:46:43 +00:00
MoonWorks.dll.config MSDF font rendering + improved resource tracking (#52) 2023-12-15 18:46:43 +00:00
MoonWorks.sln Combine all dependencies into the main csproj (#21) 2022-08-14 20:44:55 +00:00
README.md update README with API docs and Discord 2023-09-26 09:44:32 -07:00

README.md

MoonWorks

MoonWorks is a free cross-platform game development framework. Its implementation is heavily inspired by FNA, which is itself a free implementation of the Microsoft XNA API.

MoonWorks wraps native-code implementations in managed C# for clean high-level abstractions that still run fast. It's simple and it tries to stay out of your way as much as possible.

MoonWorks does provide the components you need to implement a functioning game: window management, input, graphics, 3D math utilities, and audio.

MoonWorks does not include things like a built-in physics engine, a GUI editor, or a standard rendering pipeline. These decisions and tools are better made per-team or per-project. In short, if you don't mind learning what a vertex buffer is, this framework is for you.

MoonWorks uses strictly Free Open Source Software. It will never have any kind of dependency on proprietary products.

Documentation

API Reference: https://moonside.games/docs/moonworksapi/

High-level documentation is provided here: https://moonside.games/docs/moonworks/

The source is documented in doc comments that your preferred IDE can read.

Join our Discord! https://discord.gg/ujhwdkHmhN

Dependencies

Prebuilt dependencies can be obtained here: https://moonside.games/files/moonlibs.tar.bz2

License

MoonWorks is released under the zlib license. See LICENSE for details.

MoonWorks uses code from the FNA project, released under the Microsoft Public License. See fna.LICENSE for details. By extension it uses code from the Mono.Xna project, released under the MIT license. See monoxna.LICENSE for details.