A problem that “everyone” has experienced, but no one seems to understand is how the configurations are loaded.
Examples
cl_guidServerUniq
Connecting to Grangerhub/Grangerpub these are the same
Connecting to test7341 reverts to default value
^^^ The above is arguably an vulnerability
More relevant(day2day)
Lost binding’s across servers
Hit a server “game = base”, you get your bindings
Hit an grangerhub server, you’re bindings are different
Hit test7341 server, and they’re different once again
Above are the most “obvious” issues- but it goe’s way deeper than that. Renderer settings, etc… the list goes on and on.
The proposed solution
Sepearate configuration profiles- where the client top-level would specify the configuration’s that must stay private; for security reasons, game control configurations, etc…
so the directory tree might look something like this
+ tremulous-folder/
|- tremulous.cfg (immutable by any "mods")
| + base/
| |- tremulous.cfg (any magic specific to base game mode)
| + slacker/
| | - tremulous.cfg (etc..)
| + test7341/
| | - tremulous.cfg (etc..)
Additional work is in mind a central screenshots/demos/etc)
Ultimately- a smaller abstraction which would allow this could offer more security (why would any “mod” cgame try to modify without warning about enabling http downloads [for example]?)
Thoughts appreciated; without input, It will end up as “whatever I feel is appropriate” with a beer in hand.
first, u need to understand that a mod may have absolutely nothing to do with any „base” game. in particular (think about a top-view RTS game (perhaps looking like Tremulous), where many combat units (with semi-AI) r given orders by selection and direction), there may be no such thing as teams, player classes, player-carried equipment, view orientation, etc., making commands — binds — like say_team, class, buy, sell, reload, centerview, etc. meaningless; graphical system requirements, and thus the possible — and the player-desired — graphical (but also audio) settings may be entirely different (resolution, fullscreen-ness, details, etc. (also volumes of various sound channels)). it only happens „by accident” that most mods r not significantly different from the Tremulous „base” game.
second of all, in the release, an always-enabled asymmetric-key-based identification system will be used, so eg., cl_guidServerUniq will be less significant.
thirdly, someone should relay, to u, my (LONG™ ago) proposed scheme of encapsulating engine and gamelogic components.