Mods & Save File/Server flags (prev. Cheats)

Where modders get to tear my game apart when I *finally* release the tools

Mods & Save File/Server flags (prev. Cheats)

PostPosted by SignpostMarv » Wed Aug 28, 2013 9:03 am

Will mods be able to set a flag on save data to the effect of "this mod has some big-ass cheats in" ?

[edit] Probably a better idea for me to elaborate, rather than setting up leading questions all the time :D

So, let's assume their exists a lobby app/built-in decentralised feature to allow players to randomly drop by, and as I think Lars mentioned on kickstarter/in a forum thread somewhere about the possibility of the multiplayer server functioning as a mod distributor. The idea being that mod developers could provide a courtesy to players by saying "this mod has some over-powered/cheaty stuff in", so a) single-player saves could be flagged as such, and players dropping into multiplayer & not wishing to engage in over-powered/cheaty gameplay wouldn't get annoyed.

I'm sure there'd be other flags that'd be useful for auto-discovery; "this mod adds weapons", "this mod adds armor", "this mod adds islands" etc., but initially I'm thinking about a heads-up for potentially spoileryness.
User avatar
SignpostMarv
Alchemist
Alchemist
 
Posts: 307
Joined: Thu Jul 18, 2013 2:28 pm

Re: Mods & Save File/Server flags (prev. Cheats)

PostPosted by Gazz » Wed Aug 28, 2013 10:13 am

the multiplayer server functioning as a mod distributor

How does this work in practice?
Does the client download the sum of the installed mods every time it logs onto the server? This Morrowind mod is 1.6 GB...


What is your goal with this? Making multiplayer games/servers cheat-proof?
Given the size of this development studio and decentralised servers, any attempt would be futile. Even Blizzard can only pull it off temporarily and AAD isn't quite in the same weight class. =)


SignpostMarv wrote:Will mods be able to set a flag on save data to the effect of "this mod has some big-ass cheats in" ?

That won't work. Everyone has different definition of "cheat".
Some consider micromanagement to be gameplay so a mod that automates that while keeping the same degree of decision-making would be a cheat. *shrug*


What would be doable is a both more general and more specific rating system.
Numbers would be -10 through +10 where -/+10 equals a 100% change in relation to the vanilla game. A 0 means no change.

So a quick overview over a mod's general gameplay effect could look like:

    Mod: Infinite Backpack Space
    Micromanagement: +1
    Chore: -3
    Difficulty: -1
    Visual Effects: 0
    New weapons: 0

If the game has 20 vanilla weapons and a mod adds 70 new ones, you get
    New weapons: 35
Well, for weapons / other content items the true number might be more useful. =)


The advantage of such a numeric system is that you can simply add up the numbers for all installed mods.
Some add difficulty, some subtract it... but in the end you get one ballpark number... without having to analyse the entire list of mods that are used on the server.

Sure an optional detailed list would be neat but a single info page is the most info you can reasonably want when all you want to do is start playing a game...

The list of properties should be dynamic. As more such properties become widely used, servers simply display those that are listed in "their" mods.
That way you have no long-term maintenance for mod support. =)
The first rule of Tautology Club is the first rule of Tautology Club. - XKCD
User avatar
Gazz
Henchman
Henchman
 
Posts: 680
Joined: Thu Jul 18, 2013 7:28 am
Location: In your brains. Thinking your thoughts.

Re: Mods & Save File/Server flags (prev. Cheats)

PostPosted by SignpostMarv » Wed Aug 28, 2013 10:34 am

Gazz wrote:
the multiplayer server functioning as a mod distributor

How does this work in practice?
Does the client download the sum of the installed mods every time it logs onto the server? This Morrowind mod is 1.6 GB...


Well from a HTTP point of view,
  1. make a GET request to server-url/installed-mods
  2. Get XML/JSON response of mod GUIDs/download locations
  3. For each URL, if perform a OPTIONS request with the If-None-Match header set to the hash of the previously downloaded mod thus allowing HTTP 304 Not Modified to skip redownloading or to provide a prompt to request the user download updates/new mods via GET request- for a usable experience with large mods, allowing players to switch to another server/single-player game while updates are downloading in the background would mean not getting bored waiting :P

This only applies if the server acts as a mod distributor. If it doesn't, then one assumes required mods would only be presented as GUIDs & mod metadata.

Gazz wrote:What is your goal with this? Making multiplayer games/servers cheat-proof?
Given the size of this development studio and decentralised servers, any attempt would be futile. Even Blizzard can only pull it off temporarily and AAD isn't quite in the same weight class. =)


SignpostMarv wrote:Will mods be able to set a flag on save data to the effect of "this mod has some big-ass cheats in" ?

That won't work. Everyone has different definition of "cheat".
Some consider micromanagement to be gameplay so a mod that automates that while keeping the same degree of decision-making would be a cheat. *shrug*

This isn't intended as a cheat-proof thing, this is more of a courtesy of indicating "this server has required mods installed that may spoil your gameplay experience", thus freeing mod developers to make their own decision.

Gazz wrote:What would be doable is a both more general and more specific rating system.
Numbers would be -10 through +10 where -/+10 equals a 100% change in relation to the vanilla game. A 0 means no change.

So a quick overview over a mod's general gameplay effect could look like:

    Mod: Infinite Backpack Space
    Micromanagement: +1
    Chore: -3
    Difficulty: -1
    Visual Effects: 0
    New weapons: 0

If the game has 20 vanilla weapons and a mod adds 70 new ones, you get
    New weapons: 35
Well, for weapons / other content items the true number might be more useful. =)


The advantage of such a numeric system is that you can simply add up the numbers for all installed mods.
Some add difficulty, some subtract it... but in the end you get one ballpark number... without having to analyse the entire list of mods that are used on the server.

Sure an optional detailed list would be neat but a single info page is the most info you can reasonably want when all you want to do is start playing a game...

The list of properties should be dynamic. As more such properties become widely used, servers simply display those that are listed in "their" mods.
That way you have no long-term maintenance for mod support. =)


I hadn't considered a numeric flagging system, just a boolean one for code reflection. Again, acting on the assumption that mods are going to be distributed as .Net 2.0 assembles, one could a) have the multiplayer server read out metadata for the mod (which may include inter-mod dependencies, if Lars manages to get Mono Addins to play nice :D), and b) Write some third-party c# applications to perform reflection to facilitate a mod search engine with lower level of maintenance (e.g. upload DLL, reflect through assembly, insert metadata into database)
User avatar
SignpostMarv
Alchemist
Alchemist
 
Posts: 307
Joined: Thu Jul 18, 2013 2:28 pm

Re: Mods & Save File/Server flags (prev. Cheats)

PostPosted by DWMagus » Thu Aug 29, 2013 3:46 pm

SignpostMarv wrote:Well from a HTTP point of view,
  1. make a GET request to server-url/installed-mods
  2. Get XML/JSON response of mod GUIDs/download locations
  3. For each URL, if perform a OPTIONS request with the If-None-Match header set to the hash of the previously downloaded mod thus allowing HTTP 304 Not Modified to skip redownloading or to provide a prompt to request the user download updates/new mods via GET request- for a usable experience with large mods, allowing players to switch to another server/single-player game while updates are downloading in the background would mean not getting bored waiting :P

This only applies if the server acts as a mod distributor. If it doesn't, then one assumes required mods would only be presented as GUIDs & mod metadata.


This only works if the server also acts as a repository as well (which gets hairy whenever you start centralizing mods in general [centralized in the sense of location, regardless of whether it's one server or the cloud]).

But I digress.

What would probably work best is just to list what mods the user has installed when you're looking for games to join. A single list that when you highlight a game, a mouseover shows something like "Mods: Uber Weapons, My Little Pony Horses, Deadly NPCs, etc" so that you get an at-a-glance. Of course, this means the responsibility is on the user side to know what mods do what, or at least a round-about idea.
Early Spring - 1055: Well, I made it to Boatmurdered, and my initial impressions can be set forth in three words: What. The. F*ck.
User avatar
DWMagus
Explorer
 
Posts: 415
Joined: Thu Jul 18, 2013 6:33 pm
Location: Denver, CO, United States

Re: Mods & Save File/Server flags (prev. Cheats)

PostPosted by SignpostMarv » Fri Aug 30, 2013 4:31 pm

DWMagus wrote:
SignpostMarv wrote:Well from a HTTP point of view,
  1. make a GET request to server-url/installed-mods
  2. Get XML/JSON response of mod GUIDs/download locations
  3. For each URL, if perform a OPTIONS request with the If-None-Match header set to the hash of the previously downloaded mod thus allowing HTTP 304 Not Modified to skip redownloading or to provide a prompt to request the user download updates/new mods via GET request- for a usable experience with large mods, allowing players to switch to another server/single-player game while updates are downloading in the background would mean not getting bored waiting :P

This only applies if the server acts as a mod distributor. If it doesn't, then one assumes required mods would only be presented as GUIDs & mod metadata.


This only works if the server also acts as a repository as well (which gets hairy whenever you start centralizing mods in general [centralized in the sense of location, regardless of whether it's one server or the cloud]).

But I digress.

What would probably work best is just to list what mods the user has installed when you're looking for games to join. A single list that when you highlight a game, a mouseover shows something like "Mods: Uber Weapons, My Little Pony Horses, Deadly NPCs, etc" so that you get an at-a-glance. Of course, this means the responsibility is on the user side to know what mods do what, or at least a round-about idea.


I'm going to think (and hope) that there are two types of mods: those that affect server-side behaviour, those that affect client-side behaviour.
A mod that only affects server behaviour likely isn't going to cause any crashes when the client connects, so we can ignore those for this dicussion.
For client behaviour mods (and this includes adding content) if the server merely responds with required client mod metadata i.e. GUID, name, desc (but we're mainly interested in the GUID here), the client will know not to connect and won't crash due to being unable to display or act upon content.

I'm going to hazard a guess that we both mean the same thing when I say "distributor" and you say "repository".
User avatar
SignpostMarv
Alchemist
Alchemist
 
Posts: 307
Joined: Thu Jul 18, 2013 2:28 pm


Return to Modding Central

Who is online

Users browsing this forum: No registered users and 0 guests

cron