soundmud / soundrts

A real-time strategy audio game
http://jlpo.free.fr/soundrts
Other
44 stars 32 forks source link

Install and update a mod from an URL #10

Closed soundmud closed 10 years ago

soundmud commented 10 years ago

Instead of including a mod in the default SoundRTS, an URL would be provided. This way, mod makers would provide new versions from their own web site.

Maybe the URLs would be included in a file called cfg/mods.txt. A tool, included in SoundRTS or not, would install, update, and start mods. Maybe a very small script would be enough.

The URL would contain a zip archive, or maybe a list of zip archives, so it would be possible to provide patches, and the size of some updates would be very small.

Standalone servers should install and update mods easily. At least the update should be easy to do from a command line shell. Maybe a command-line option would be enough, even with the client version. For example, the Crazy Mod would have an URL for version 8, and a command would be: soundmud.exe --mods=soundpack,CrazyMod8 --modurls=http://pragmapragma.free.fr/soundrts-crazymod/download/version8

craigbrett17 commented 10 years ago

How do you imagine this working from the perspective of a mod creator?

Speaking as someone who's having trouble explaining to someone how to install a mod I'm developing because they want a look, this is a good enhancement to have.

soundmud commented 10 years ago

At the moment the simplest way for a mod creator is to provide a customized portable Windows zip archive with "mods=" already set in "user/SoundRTS.ini". For example, some players find the Crazy Mod easier to install than vanilla SoundRTS because "srapi = 1" is already defined.

Anyway, I'm not completely sure about how installing mods will work. It's complicated. I need to think about it, but here are more thoughts:

craigbrett17 commented 10 years ago

I definitely agree that it should be a menu thing rather than a shortcut, it doesn't feel like something that needs a shortcut, and shortcuts can get a little crowded if everything has one.

The way I'd imagine this working is a player going to a menu. They would then be connected to a metaserver of some kind that then checked with all relevant servers for mods which would also receive mod versions. These could be sent back to the client and checked against their existing versions. The player would then be given a list of any mods they either don't currently have installed or mods that have a newer version and told that their is an update. They could then download this mod. I'd imagine these mods to be a zip file of some kind that would mirror the structure of the main SoundRTS directory. So probably only containing a Mods directory with the mod in question and maybe a Single directory with any mod specific campaigns inside. This could then be extracted out. Of course, there's the danger that someone might misuse this, but there's always that risk with user contributions. That would be up to the mod server (or metaserver) maintainers to check the mods that they host. Or if these additional urls are being added by users and aren't coming from a metaserver, then its at the user's disgression.

I'm sure I've oversimplified it a little, but I hope I've made my idea clear.

soundmud commented 10 years ago

Yes, menus would be better. The maps or campaigns might have to be installed separately, in a menu too maybe.

soundmud commented 10 years ago

Implemented in the commit 817e1e3ce2608d57f4da6e230fb3a9a124744710 . Some details might be improved later.