A free cross-platform game development framework.
 
 
Go to file
cosmonaut 1f0e3b5040 Audio Improvements (#47)
- Audio is now processed on a background thread instead of the main thread
- Audio tick rate is now ~200Hz
- MoonWorks.Math.Easings class completely rewritten to be easier to understand and use
- SoundInstance properties no longer call into FAudio unless the value actually changed
- SoundInstance property values can now be interpolated over time (tweens)
- SoundInstance tweens can be delayed
- SoundInstance sets a sane filter frequency default when switching filter type
- StreamingSound classes can be designated to update automatically on the audio thread or manually
- StreamingSound buffer consumption should now set Stopped state in a more sane way
- Added ReverbEffect, which creates a submix voice for a reverb effect
- SoundInstance can apply a ReverbEffect, which enables the Reverb property
- Audio resource tracking improvements
- Some tweaks to VideoPlayer to make its behavior more consistent

Reviewed-on: MoonsideGames/MoonWorks#47
2023-03-07 23:28:57 +00:00
lib FAudio 23.02 2023-02-07 12:31:37 -08:00
licenses add Matrix3x2 and rename Matrix to Matrix4x4 2021-02-16 18:07:50 -08:00
src Audio Improvements (#47) 2023-03-07 23:28:57 +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 Theora video support + audio improvements (#20) 2022-08-02 21:04:12 +00:00
MoonWorks.csproj Make video shaders optional and search for them in the root output directory (#42) 2023-01-21 23:37:01 +00:00
MoonWorks.dll.config Theora video support + audio improvements (#20) 2022-08-02 21:04:12 +00:00
MoonWorks.sln Combine all dependencies into the main csproj (#21) 2022-08-14 20:44:55 +00:00
README.md https links in README 2022-08-22 17:49:43 -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

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

For an actual API reference, the source is documented in doc comments that your preferred IDE can read.

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.