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:
local
git
perforce
Resolvers 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
)