Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add commonly requested multiplayer visibility options (with server approval required) #285

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

GooberRF
Copy link
Contributor

@GooberRF GooberRF commented Oct 14, 2024

This PR adds:

  • 3 console commands: lightmaps_only, mesh_fullbright, and disable_screenshake (all default to false)
  • 3 corresponding dedicated server config options: $DF Allow Fullbright Meshes, $DF Allow Lightmaps Only Mode, and $DF Allow Disable Screenshake (all default to false)

Explanation of features:

  • lightmaps_only: Render levels in lightmap only mode, providing enhanced visibility.
  • mesh_fullbright: Render all meshes fullbright (255, 255, 255). This is in effect the same as the mapping design choice commonly referred to as the "lighting trick", though unlike that approach, does not require a new version of the map to exist. The practice of mappers "applying the lighting trick" can be sunset by the existence of this feature, meaning mappers can make artistic choices in their competitively-designed levels that are impossible today, while the highly important capability still exists for competitive players to use.
  • disable_screenshake: Disable all use of screenshake. Most noticeable is when firing the SMG and Assault Rifle.

In essence, the concept behind this change is that clients can "desire" these options apply. If so, they will apply in single player, in listen servers hosted by that player, and in any multiplayer servers where the server operator has explicitly allowed use of that option via the new dedicated server config options. They will however NOT apply in any servers where they have not been explicitly allowed. This approach allows clients to decide to use these enhanced visibility options if they so choose, assuming the server "approves" of it, similar to how server operators can already decide the maximum horizontal FOV allowed for players in their server.

Notably, these options will be treated as false (ie. players cannot use these options) in any servers that either do not explicitly allow them, and any servers running older versions of Dash from before the options existed. This means that there is no relevant risk of clients using these features to "cheat".

Resolves #111
Resolves #182

@GooberRF GooberRF changed the title Add visibility options designed for competitive play Add commonly requested multiplayer visibility options (with server approval required) Oct 17, 2024
@is-this-c
Copy link
Contributor

These are 3 features for one PR. One PR for each feature please.

@GooberRF
Copy link
Contributor Author

GooberRF commented Oct 17, 2024

These are 3 features for one PR. One PR for each feature please.

This is a single change that contains 3 options (well, 6 options technically). Especially given the way flags are indicated in DashFactionJoinAcceptPacketExt, it would be both confusing and unnecessarily technically onerous to split this branch and associated PR into separate parts.

@nickalreadyinuse
Copy link

All of these options should be available from the Dash setup options. Similar to #296 these should not be buried away as console commands, because the vast majority of users will never seek them out or know they're an option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Disable camera shake command Suggestion: Allow usage of "lightmap only" rendering option in multiplayer
3 participants