In-Game Mod Tracker

Started by Kiame, November 30, 2017, 12:02:34 PM

Previous topic - Next topic

Kiame

I would like to formally request a Ludeon lead mod tracker.

There have been efforts made in this direction - ModSync - but put against Steam's service it will be very hard for a single person to create a platform which can compete.

Speaking as a modder there are three areas where modding for RimWorld is tedious and cumbersome.

  • Multiple places to upload mods to. Steam is, i believe, where most people get their mods but to make a mod available to everyone a second service is required such as dropbox or github.
  • No mechanism to control releases. Steam forces everyone to get the most recent release and with direct download it's up to the individual to keep checking each of their mod's forum post for the latest update
  • Not all modders have the steam version so cannot post their mods on steam

What RimWorld really needs is a unified approach.

ModSync is a good starting place for the in-game interface. On the Ludeon side I'd like to see a server/db stood up which modders can log into with their forum credentials. The db would have a few fields like:

  • mod_id - unique for each mod, maybe using the steam id for steam mods and a function to create an id for non-steam users
  • mod_name - the name of the mod
  • desc - description of the mod
  • version - version or the game this supports
  • updates - either a text field or ref to multiple time-stamped text fields with updates
  • url - where the mod can be downloaded from.
  • last_updated - date last updated
  • user_id - author id but preferably a reference to a list of authors who can update the mod

When a modder updates their mod they can log into the server/db and hopefully just hit a button saying update last-updated. For beta releases they could update the description saying it's a beta release.

Users would be able to go to the in-game menu and view each mod that's been updated. The user would then have the choice of what mods they want to update.

Nightinggale

To have a low server load, it could be beneficially to generate an xml with just ID and newest version of that mod. This will allow the game to request the file rather than making a database lookup, which would greatly reduce CPU load. It would likely also reduce lag, which would otherwise occur when mods are requested one at a time.

It would also be nice to have a list of required mods. This will allow a mod update to add the requirement of another mod and then games, which downloads the update will realize this and download the requirement as well.

If the database gets a frontend where you can browse mods (ingame or web based) and filter based on tags, then it would totally beat steam. Right now you can filter on steam to get mods for 0.18 and that's it. They all show up. If you can filter based on useful tags like animal, power, weapon, furniture and so on, then we might actually be able to search for a feature we want rather than just random browsing. This is in no way needed for auto updating, but it would be quite useful to have thought of from the start if it is added and is successful and becomes widely used.

There is no need for any chat or posting system. Just add a field for a forum link.

Quote from: Kiame on November 30, 2017, 12:02:34 PM

  • mod_id - unique for each mod, maybe using the steam id for steam mods and a function to create an id for non-steam users
  • version - version or the game this supports
I propose using those two as a pair. This mean you can have the same id for both 0.18 and 0.19, yet they link to different mods. This will solve the current issue on steam about should you update the mod to a new version and break the games, which haven't updated or should you create a new mod and make everybody subscribe to a new one. If people use the 0.18 version and update to 0.19, then the game should be able to figure out that it should download the 0.19 version of the mod with the same id.

Not sure if we should use the steam ID. It might be better to just assign new ones in the order the mods are added.
ModCheck - boost your patch loading times and include patchmods in your main mod.

Kiame

Good points Nightinggale.

I like the idea of mod_id and version being a primary/secondary pair. The browser could search by mod_id and display all versions of the mod.
--This is very much a sql db in my mind :P

I'm imaging this can more easily be integrated with steam's mods initially if the mod id is in some way tied to or can be looked up by steam id. So when the user first starts using this system their mods get tied into the system's update cycle and moves away from steam's (make that a preference for the user oc). Maybe instead of the mod_id being tied to steam (as i agree this unique id should be totally managed by Ludeon) maybe another column "steam id" which is optional and is a reference to a list of steam ids in the case a mod has multiple steam versions.