This repository consists of a few separate projects. More detailed documentation on each project can be found in their own readmes:
Directory | |
---|---|
/Example |
A minimal example GameMaker project for using FML. |
/FmlLib |
A C++ project that creates the shared library (.dll/.so/etc) referred to by the FML GameMaker extension asset. FmlLib interfaces with the FMOD library. |
/FmlYy |
A GameMaker project where the FML extension is written. In this project there are also automated tests. |
/TestFmodStudioProject |
An FMOD Studio project to create the banks used by the automated tests in /FmlYy. |
/docs |
Source code of the FML user documentation, partially auto-generated by /fml-docs-generator. |
/fml-docs-generator |
A Rust project to generate parts of the user documentation in /docs, particularly the API Reference parts. Reads and parses the /FmlYy in order to generate the documentation. |
/fml-extension-generator |
A Rust project to auto-generate parts of the extension in /FmlYy. Reads and parses /FmlLib to find all the functions that are to be provided by the extension. |
The projects are very much tied together and especially some of the tooling like fml-docs-generator and fml-extension-generator are hard coded to work with only this project instead of being general purpose tools.
TODO: Write a general overview of the project and how the sub-projects work together!
Looking for instructions on how to actually use FML in your project? See the user documentation instead.