|
Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
|
Although the current plugin system supports a lot of functionality, the upcoming system is more comprehensive.
Plugins appear in arbitrary order in a .json file and list:
Sources are resolved using Plugin Source Resolvers, which are pluggable. Examples include:
localgitperforceResolvers themselves can be plugins.
There are multiple plugin manifests used in a typical setup:
| Scope | File | Managed By | In Source Control? |
|---|---|---|---|
| Project-wide | plugins.json | Project | ✅ Yes |
| User per-project | plugins.user.{USERNAME}.json | Local developer | 💭 Optional |
| Global user | plugins.global.json | Local developer | ❌ No |
A plugin.lock.json lockfile is generated to capture resolved sources, versions, and commits. This lockfile should be checked into source control to ensure reproducibility.
A central plugin registry is planned. Initially, this will be a JSON file in a Git repository, containing:
Users can add custom registries as well.
Benefits:
Each plugin lives in its own folder and contains:
plugin.meta.json (metadata)bin/PluginRuntime.dll, bin/PluginEditor.dll)assets/)src/, include/)src/CMakeLists.txt)This structure allows:
Each plugin contains a plugin.meta.json manifest file, written in JSON, that includes:
editor, runtime, or both)