Hi all,
There are major changes happening under the hood in UNION, and that is because I am implementing the mod system.
In order to make modding as flexible and robust as possible all of the game content in UNION, including ships, equipment, UIs, maps and missions, will be be packaged as mods. UNION will come with a UNIONBase ("UNION Base Content") mod which will contain all of the content we create for the game.
Mods can require, and use the content of, other mods. So people will be able to do things like create their own mission pack mod which uses content (like the UIs, maps, ships and stations) from UNIONBase.
In the case if UIs, the game doesn't care which mod they come from as long as all UIs exist between them. Mods have a priority setting, with conflicting content (like UIs) being taking from the mod with the highest priority. UNIONBase is set to the lowest priority by default.
I am at the point now where mods are loaded into the game at start. At the moment they only contain spaceship templates (spaceship definitions) but I will be adding UIs and maps soon.
I am currently integrating mods with the server, so that clients can only connect to a server if they have all of the mods that the server is using.
There's nothing visual to show at the moment, so here is the current mod config file contents (all config/data files will be JSON):
{
"Key": "UNIONBase", /* Each mod must have a unique key */
"Version": 12, /* The mod's current version */
"Priority": 0, /* This mod's priority. If there are conflicts with other mod content the mod with the higher priority "wins" */
"MinimumUNIONVersion": 43, /* The minimum UNION version (release number) required by this mod */
"Title": "UNION Base Content",
"Description": "This contains all of UNION's standard content, including spaceships, equipment, maps and missions.",
"IsEnabled": true,
"RequiredMods": [] /* A mod key and minimum version for each mod which this mod requires */
}
As always I'm more than happy to answer any questions.
Thanks for reading!
Mark