remyroy / CDDA-Game-Launcher

A Cataclysm: Dark Days Ahead launcher with additional features
MIT License
422 stars 105 forks source link

Load mod lists from a registry of mods #413

Open damien opened 4 years ago

damien commented 4 years ago

Is your feature request related to a problem? Please describe.

Currently, manual work is required for new mods to be added to the launcher.

Describe the solution you'd like It would be nice to support a mod registry defined outside the launcher. The details of what this would look like or how it would work need to be discussed, but the end goal in my mind would be:

  1. User enters a registry URL into the launcher
  2. The launcher downloads some kind of manifest that lists all available mods that may be downloaded from that registry. This manifest may include other useful info, like mod descriptions, mod URLs, and where to report issues for that mod.
  3. The launcher uses this data to populate the section of the launcher users access to install/remove mods

Describe alternatives you've considered

  1. We can continue cutting PRs for this repo to add individual mods, but I suspect that this may not scale well as the community grows. I suspect offloading work non directly related to the launcher code from this repo would be desirable.
  2. Have CDDA mainline add mod management in mainline. As far as I’m aware there are no plans or interest in adding such features to mainline CDDA.

Additional context

  1. CDDA recently started enforcing minimum maintenance standards on mainline mods. As a result of this, mods that haven’t been actively maintained are being deprecated. Deprecated mods do not show up on the CDDA mod menu when creating new worlds.
  2. For non-mainline mods—basically any mod that isn’t up to date and shipping with CDDA—this launcher is the easiest way for users to become aware of mods and install them. I think the community as a whole would benefit from making it as easy as possible to do this with the minimum amount of effort from people maintaining CCDA or any CDDA launcher/mod manager.

Would love to kick off this discussion, let me know what you think!

remyroy commented 4 years ago

This is related to #411.

ZhilkinSerg commented 4 years ago

https://github.com/remyroy/CDDA-Game-Launcher/issues/173

remyroy commented 4 years ago

This is an interesting idea. The devils is in the details. I've been thinking about doing some kind of open public web-based and community managed repository for a while. Something like https://mods.factorio.com/ for Factorio. However, I have limited time to invest in this project and I fear it will not be enough to have good support.

The initial idea for using a .json file for the mod repository was to have it download on start instead of being bundled with the launcher. Maybe that idea could be expanded to have a list of configurable external URLs to mods containing .json files and merge everything in there as the final available mods repository. That could be something that would not require too much time.

It would still need time from someone else to manage those external repositories which would shift the burden somewhere else but if some people are willing to get involed with that, it could happen.

damien commented 4 years ago

@remyroy I’ve been looking into this, but I’m new to the CDDA dev scene. Me and a couple others have taken DinoMod and I’ve been thinking about processes we could use to decouple most dev from mainline while still keeping the mod visible. I’ll write something up and share it here to see what you all think.

damien commented 4 years ago

@remyroy RFC in progress: https://discourse.cataclysmdda.org/t/request-for-comments-c-dda-mod-registry-for-c-dda-launcher/22741?u=damien

clwebb89 commented 4 years ago

This game makes me want to get into modding, there are a few things I would like to add. So we cant use some older mods anymore?

damien commented 4 years ago

@clwebb89 sort of. The mods that are going away we’re abandoned by their authors. Some may come back if interested individuals pick them up and keep them up to date and compatible with brewer versions of C:DDA.