ekolis / stars-nova

Clone of the classic 4X game Stars!. Fork of original svn repo on SourceForge.
Other
17 stars 6 forks source link

Moddable components #11

Open ekolis opened 4 years ago

ekolis commented 4 years ago

Describe the feature you'd like to see The game should have the capability to store multiple sets of components and/or deltas in a folder structure for use with various mods. Creating a game should prompt to choose a mod, defaulting to the stock Components.xml.

Benefits Players can play modded games without manually replacing Components.xml.

Describe alternatives We have two options:

  1. SE4 style wholesale file replacement mods (mod contains a Components.xml which replaces the stock file)
  2. Dominions style delta based mods (mod contains add/remove/edit commands)

Additional context One concern I have is syncing mods from a game host to players. A basic implementation of a mod in Nova is much smaller than a FrEee mod, meaning that auto-syncing by storing the mod in the game state file might be feasible - however this could change if we start including things like graphics. Manual syncing like FrEee could work in that case; maybe with a checksum to make sure the Components.xml is up to date (but don't crash if it doesn't match, just warn the player!)

thegreatpl commented 4 years ago

I suspect that this might be possible if you make the nova.conf file be selectable. That already (supposedly, there is a bug about the races on sourceforge) keeps track of the Graphics foilder, Race folder and Components files to use. However, might need to modify this to make sure the server and serverstate files are moved out of here and it no longer writes to file every time it is saved.

Use .conf to store mod files, and something else to store last played game?

ekolis commented 4 years ago

I'd lean toward doing it the other way - use the conf file to store non mod related configuration settings, and then store the names of the mod files used in the savegame files, like FrEee does. Also, I think the conf file should be moved out of the Nova directory and into a user directory - I think we already have a C:\Users\Whoever\Documents\Stars! Nova folder used for storing savegames, so we could put the conf file there. That way we don't run into permissions issues if the game is installed in Program Files.