diff --git a/AGRARIAN_DEVELOPMENT_ROADMAP.md b/AGRARIAN_DEVELOPMENT_ROADMAP.md index f9e5fc3..b48dd7d 100644 --- a/AGRARIAN_DEVELOPMENT_ROADMAP.md +++ b/AGRARIAN_DEVELOPMENT_ROADMAP.md @@ -176,7 +176,7 @@ Remaining version 0.01 cleanup before moving deeper into new gameplay: - [x] Implement Linastorage incremental project backup job. - [x] Implement quiesced VM backup job for Windows-Builder and Ubuntu-Codex. - [x] Create repeatable dedicated server build instructions. -- [~] Finish required plugin documentation. +- [x] Finish required plugin documentation. - [ ] Confirm the project opens cleanly from a fresh checkout, not just the current working share. - [ ] Organize `Content/Agrarian/` folders and move starter/prototype assets into clearly named locations. - [ ] Launch near-term MVP map-tile serving cloud VM. @@ -214,7 +214,7 @@ Goal: Prepare the project so all future development is controlled, recoverable, - [x] Create repeatable local build instructions. - [x] Create repeatable packaged build instructions. - [x] Create repeatable dedicated server build instructions. -- [~] Document required plugins. +- [x] Document required plugins. - [x] Disable unneeded plugins. - [x] Confirm project compiles from a clean checkout. - [ ] Confirm project opens from a clean checkout. @@ -1418,7 +1418,7 @@ Earliest incomplete foundation items: - [x] Implement Linastorage incremental project backup job. - [x] Implement quiesced VM backup job for Windows-Builder and Ubuntu-Codex. - [x] Create repeatable dedicated server build instructions. -- [~] Finish required plugin documentation. +- [x] Finish required plugin documentation. - [ ] Confirm project opens cleanly from a fresh checkout. - [ ] Create the core design document. - [ ] Create the technical design document. @@ -1434,4 +1434,4 @@ Earliest incomplete foundation items: Immediate next item: -- [~] Finish required plugin documentation. +- [ ] Confirm project opens cleanly from a fresh checkout. diff --git a/Docs/RequiredPlugins.md b/Docs/RequiredPlugins.md new file mode 100644 index 0000000..4c9dc20 --- /dev/null +++ b/Docs/RequiredPlugins.md @@ -0,0 +1,82 @@ +# Required Unreal Plugins + +Agrarian should keep plugins boring and intentional. Every enabled plugin must +either be required by compiled code, required by checked-in content, or clearly +limited to editor workflow. + +## Current Enabled Plugins + +These are the only plugins intentionally enabled in `AgrarianGame.uproject`. + +| Plugin | Required For | Runtime Needed | Notes | +| --- | --- | --- | --- | +| `StateTree` | Template AI code that still compiles under `Variant_Combat` and `Variant_SideScrolling` | Yes, until those template variants are removed or rewritten | Required by `StateTreeModule` includes and dependencies. | +| `GameplayStateTree` | StateTree AI component support used by the template AI controllers | Yes, until those template variants are removed or rewritten | Required by `GameplayStateTreeModule` and `UStateTreeAIComponent`. | +| `ModelingToolsEditorMode` | Editor-side terrain, mesh, and prototype world-building workflow | No | Keep enabled for developer/editor use. Revisit before shipping if it adds unnecessary packaging overhead. | + +## Module Dependencies Tied To Plugins + +`Source/AgrarianGame/AgrarianGame.Build.cs` currently depends on: + +- `StateTreeModule` +- `GameplayStateTreeModule` + +Do not disable `StateTree` or `GameplayStateTree` until the template AI source +under these folders is removed or refactored: + +- `Source/AgrarianGame/Variant_Combat/` +- `Source/AgrarianGame/Variant_SideScrolling/` + +The roadmap already tracks a decision on whether to keep or remove current +Unreal template variants. If those variants are removed, revisit this document +and remove the StateTree plugin/module dependencies if no Agrarian-specific AI +code needs them. + +## Explicitly Not Enabled Yet + +These plugins are intentionally not part of the baseline yet: + +- `OnlineSubsystemSteam`: enable only when Steam account/session integration is + ready to implement and test. +- `GameplayAbilities`: decide after the core survival/crafting/combat model is + better defined. Do not add it just because it may be useful later. +- Marketplace content plugins: add only when the asset is actively used by the + current build and the repository storage policy has been checked. +- Visual Studio tooling plugins: avoid committing machine-specific editor helper + plugin references. + +## Add Or Remove Plugin Checklist + +Before enabling a plugin: + +1. Confirm whether it is needed at runtime, editor-only, or only for one-time + asset authoring. +2. Check the license, redistribution terms, and whether it can be used in + packaged builds. +3. Run `Scripts/audit_repo_storage.sh` if the plugin brings assets into the + repository. +4. Update `AgrarianGame.uproject`. +5. Update `Source/AgrarianGame/AgrarianGame.Build.cs` only when code needs the + plugin's modules. +6. Build `AgrarianGameEditor` after the change. +7. If runtime code or packaged content depends on it, build a packaged client + and eventually the dedicated server target. +8. Update this document and the roadmap note for the plugin decision. + +Before disabling a plugin: + +1. Search source, config, Blueprints, maps, and data assets for references. +2. Remove unused module dependencies from `AgrarianGame.Build.cs`. +3. Open the project and fix missing asset/class references. +4. Run the editor build and relevant automation checks. +5. Package a client if runtime content was affected. + +## Current Decision + +Keep `StateTree`, `GameplayStateTree`, and `ModelingToolsEditorMode` enabled for +version `0.01`. + +Do not add additional plugins until a roadmap item requires them. The next +likely plugin review is the template-variant cleanup item, because that may +allow the project to remove StateTree dependencies if the template AI code is +deleted.