Daemon
Daemon copied to clipboard
forbid the autodownload of `unvanquished` dpk
The dpk package format makes dæmon based games strong against random stuff downloaded from random server: this random stuff will not be loaded on other servers.
But this will be loaded on start and every time if that random stuff uses the unvanquished
base name.
It still allow us to ship backports or last-minutes fixes using custom packages names like dev/unvanquished
or backport
or anything else, those will be loaded while connecting to servers in anyway. If we need to ship a fix that must be loaded at startup of the game, it just means we have to release something and the updater is there for this task.
I feel we should have a broader bug like "design the mod system" to scope out all of the things that a mod should/shouldn't be able to change, where the file are stored etc., instead of a specific case like this.
The simplest thing would be allowing only map-*
and mod/*
? Or just mod/*
? The problem is that this will break many existing usecase. A less invasive approach could be to disallow unvanquished
and res-*
dpk, but that could still break some existing packages.
Otherwise we can consider moving the mod in a subfolder automatically and handling that automatically. For example, a mod could be downloaded to mod/server-127.0.0.1/unvanquished_….dpk
.
I agree with Slipher here. A discussion about how to handle mods is needed, random changes like what is suggested in the OP will just make things a mess in the long run. For example, if daemon is meant to be used for games which are not unvanquished, should every of those names be added to the exclusion list? To me, daemon should not have to care about the games it is used to run. The fact that it currently requires knowledge from games (it includes a file from gamelogic currently. When browsing issues it seems there's also a thing about shaders in gamelogic which should not, and possibly other stuff) is annoying enough.
For example, if daemon is meant to be used for games which are not unvanquished, should every of those names be added to the exclusion list?
Once #588 is implemented, third-party games running on prebuild Dæmon engine would have to edit a text file to tell what is their game basename (the one naming the package that would be protected if original suggestion is implemented).
That proposed mechanism would only protect standalone games without protecting mods running as unvanquished mod or another standalone, indeed (I doubt we can do something for them anyway).
In all case that doesn't prevent a global “mod design” (there are already some bits about that topic disseminated there and there). The discussion about dlcache
also overlaps a bit those needs.