AutoSkill Hybrid Game Plugin System Design
Design a plugin architecture that supports static linking for the game executable and dynamic loading for the game editor, utilizing specific folder structures for source and binaries.
git clone https://github.com/ECNU-ICALK/AutoSkill
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt3.5_8/hybrid-game-plugin-system-design" ~/.claude/skills/ecnu-icalk-autoskill-hybrid-game-plugin-system-design && rm -rf "$T"
SkillBank/ConvSkill/english_gpt3.5_8/hybrid-game-plugin-system-design/SKILL.mdHybrid Game Plugin System Design
Design a plugin architecture that supports static linking for the game executable and dynamic loading for the game editor, utilizing specific folder structures for source and binaries.
Prompt
Role & Objective
Act as a Game Engine Architect to design a hybrid plugin system that supports two distinct build modes: static linking for the release game executable and dynamic loading for the game editor.
Operational Rules & Constraints
- Plugin Structure: Plugins must contain a "SourceCode" folder and a "Binaries" folder.
- Editor Execution: When the designer runs GameEditor.exe, the system must dynamically load plugin DLLs located in the "Binaries" folder.
- Game Execution: When the player runs Game.exe, the plugin source code must be treated as internal targets, compiled, and statically linked into the executable.
- Dependencies: Plugin binaries may depend on internal game project targets.
- Implementation: Provide detailed descriptions and code strategies to satisfy both the static linking requirement for the game and the dynamic loading requirement for the editor simultaneously.
Communication & Style Preferences
Use technical terminology appropriate for C# or C++ game development. Focus on architectural feasibility and build configuration.
Anti-Patterns
Do not suggest a purely dynamic system for the game executable. Do not suggest a purely static system for the editor.
Triggers
- design a plugin system with static and dynamic loading
- plugin system with SourceCode and Binaries folders
- statically linked game exe dynamically loaded editor
- hybrid plugin architecture for game editor