I creating the game using Unity engine and want powerful plugin system.
- Plugin authors can add new assets to the game using Unity Asset Bundle
- Plugin authors can add new code to the game, using C# runtime, or I even can use such addons from Asset Store like ModTool or UMod
- Plugin authors event can use and extends code from my game if I compile it to separate .dll file
But...
How can plugin authors reuse resources from my game (like specific shaders, materials, textures or prefabs) without duplicating them?
Imagine, that author wants to create specific scene and use a lot of existing objects in my library, or just add some unique shaders to their items. The only way, that I see now is import to plugin full game as Asset Bundle, remove all redundant parts and export as plugin Asset Bundle, but in that case all that items will be duplicated, batching will be broken and size of plugins will be inflated.
The main problem with this part, that a lot of features (everything, except Core: e.g. units, buildings, etc) I wanna see as separate plugins, which reuse some Core code and Core resources.