Author Topic: Loading multi missions using an incompatible mod  (Read 3834 times)

0 Members and 1 Guest are viewing this topic.

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
Re: Loading multi missions using an incompatible mod
Ugh. OK, first thing. Dunno if it happens in Multi, but Single already warns a player if he tries to load a mission that's missing assets. We don't need to code auto-removing those missions from lists because that will make modding worse. Missions that are part of mods under development often have changing assets.

I still don't see what's so wrong about a black list of mission files or blacklist of mission directories like Yarn suggested.

I assume Galemp is looking for something similar to my original request for the game_settings.tbl to ignore campaign files. I've built a mod that's based on MediaVPs and retail data. I use my own ships.tbl, weapons.tbl, everything to trim the fat out of the mod in terms of what's being loaded into the engine. Modders have no way to trim the missions that could be loaded from up the mod's loading path.

FSPort is built on retail data. It changes a lot of crap, and in fact, uses it's own ships.tbl, weapons.tbl, etc. It simply needs a way to do with missions what we can already do with tables. Trim the fat from up the load chain.

All this automated stuff is overkill. If FSO is not warning about bad mission data in Multi like it does in Single, then that should be added. Then add a single mission blacklist somehow just like how we have a campaigns blacklist.
Cutscene Upgrade Project - Mainhall Remakes - Between the Ashes
Youtube Channel - P3D Model Box
Between the Ashes is looking for committed testers, PM me for details.
Freespace Upgrade Project See what's happening.

 

Offline niffiwan

  • 211
  • Eluder Class
Re: Loading multi missions using an incompatible mod
As far as I'm concerned, you start deleting retail data, you lose retail missions.  I don't see why it has to be any more complicated than that.  If you want to play retail missions, then fire it up without the mods.  If you want to play the mods, then play the mod's missions.

Yep, I mostly agree, but the devil is in the details. In Galemps user case (multi co-op FSPort "campaign") the issue is it's hard to tell which missions belong to which mod. That's the issue that Yarn's blacklist idea will address, FSPort could easily make a single table entry to ensure that missions in retail & standard mediavps directories would not be shown. I agree that a blacklist or whitelist per mission would suck to keep up to date, but at a directory level (where the directory represents the mod) there should not be any reason to update that table entry once it's created. That should only be needed if the required dependencies change their names, and by adding appropriate wildcards that should be able to be dealt with as well.

If we look at the other use cases, we have single player campaigns and standalone missions, either part of the mod, or user-created. Single player campaigns are already catered for (#Ignored Campaign File Names AND $Campaign File Name:). Standalone missions are rare, but could also be excluded appropriately by the above suggestion.

The only other solution I can think of here is to find a way to gracefully not allow a mission if its required assets aren't available.  Having any kind of list is going to be a nightmare for maintainability reasons, and I personally would recommend against it.

I thought that adding graceful failures to the mission parsing would be harder than adding the directory blacklist. However, based on what mjn.mixael just posted, maybe it wouldn't be.  I got the impression that selecting the wrong mission in multi caused a crash, and you're talking about modifying our glorious netcode.. maybe all servers & clients could pop the warning about bad assets, and then do what the "master" does (hopefully backout!), but I still feel like this is harder option.
Creating a fs2_open.log | Red Alert Bug = Hex Edit | MediaVPs 2014: Bigger HUD gauges | 32bit libs for 64bit Ubuntu
----
Debian Packages (testing/unstable): Freespace2 | wxLauncher
----
m|m: I think I'm suffering from Stockholm syndrome. Bmpman is starting to make sense and it's actually written reasonably well...

 

Offline Goober5000

  • HLP Loremaster
  • Moderator
  • 214
    • Goober5000 Productions
Re: Loading multi missions using an incompatible mod
I got the impression that selecting the wrong mission in multi caused a crash, and you're talking about modifying our glorious netcode.. maybe all servers & clients could pop the warning about bad assets, and then do what the "master" does (hopefully backout!), but I still feel like this is harder option.

I think, when a mission is selected, all the players' computers try to load it at the same time.  Why not modify the sequence so that when the host selects a mission, it is examined (via a bare-bones parsing) for missing ships and weapons.  Only if there are no entries missing does it then start to actually load the mission and send a signal to all the clients for them to load it as well.

By tying this code to the Commit button, rather than the loading of the menu, the performance delay is brief and only limited to the selected mission rather than every mission in the list.

 

Offline Galemp

  • Actual father of Samus
  • 212
  • Ask me about GORT!
    • Steam
    • User page on the FreeSpace Wiki
Re: Loading multi missions using an incompatible mod
That still doesn't address the issue. If I want to fire up FSPort multi, there's loads of missions listed I can't use. What, do I have to attempt to load three or four Dogfight missions before I find the right one? And what if we want to agree on a mission first, then find out it's not available? Menu options that aren't available shouldn't be shown.

It seems to me a text file mission blacklist similar to the campaign blacklist in single-player is the way to go. Forget about automation, just list all the retail missions that will be in every FS mod. If there's user-made missions there, presumably the user will be aware of them (just like in the single-player tech room). And as its been noted, anything in the root Data folder is not our responsibility.
"Anyone can do any amount of work, provided it isn't the work he's supposed to be doing at that moment." -- Robert Benchley

Members I've personally met: RedStreblo, Goober5000, Sandwich, Splinter, Su-tehp, Hippo, CP5670, Terran Emperor, Karajorma, Dekker, McCall, Admiral Wolf, mxlm, RedSniper, Stealth, Black Wolf...

 

Offline jr2

  • The Mail Man
  • 212
  • It's prounounced jayartoo 0x6A7232
    • Steam
Re: Loading multi missions using an incompatible mod
How about both that mission blacklist and the bare-bones parsing when Commit is hit as a backup to prevent accidental or misguided mission loads?