Skip to content

Removed game settings overrides - #3343

Open
ferafiks wants to merge 4 commits into
stride3d:masterfrom
ferafiks:game-settings-removal
Open

Removed game settings overrides#3343
ferafiks wants to merge 4 commits into
stride3d:masterfrom
ferafiks:game-settings-removal

Conversation

@ferafiks

@ferafiks ferafiks commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

PR Details

As discussed in #3272, removes the partially not working overrides from the game settings asset.

Breaking changes:

  • Game.Settings.Configurations.Get<>() is now Game.Settings.GetConfiguration<>()

Types of changes

  • Docs change / refactoring / dependency upgrade
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • My change requires a change to the documentation.
  • I have added tests to cover my changes.
  • All new and existing tests passed.
  • I have built and run the editor to try this change out.

@Ethereal77

Copy link
Copy Markdown
Contributor

I've never used this feature. Do we have alternative for this?
I mean (correct me if I'm wrong) I've always imagined this was for scenarios like: I have a game with a specific configuration and graphics compositor, but for iOS and Android I want a specific configuration with smaller textures and a special compositor that disables shadows and post-FX.

If it is like that, it is an useful feature to have for multi-platform builds.

@ferafiks

ferafiks commented Aug 9, 2026

Copy link
Copy Markdown
Contributor Author

@Ethereal77 What you are describing wasn't possible previously, as the graphics compositor was not in a configuration, so it couldn't be overridden. The things you could override were mostly not related to hardware or platform (e.g. physics) except for graphics level, which from what xen mentioned in the linked PR, it probably wouldn't have worked. Also specific filters didn't work at all.

An alternative right now is to override the game class and add your own logic there (which is probably what you would have to do for most graphics-related settings). In the future, there could be a more proper way, like a replacement asset, but for now I'm just trying to remove this mostly broken feature

@xen2 xen2 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Found plenty of Overrides:/PlatformFilters: in the repo (i.e. new game and other templates). Scan for any *.sdgamesettings in the repo and clean them up.
  2. RecastMeshSystem.cs:55 doesn't compile anymore
  3. BepuConfiguration.cs:25-27 logic is now wrong I think (old Get() returned new T() without saving it so it used to work). New code needs to run the presence check before calling GetConfiguration/GetOrCreateConfiguration (also removes the duplicate OfType scan).

Comment thread sources/engine/Stride.Engine/Engine/Design/GameSettings.cs Outdated
@ferafiks

Copy link
Copy Markdown
Contributor Author
  1. Done
  2. I don't know why, but the Stride.BepuPhysics.Navigation project isn't in Stride.slnx, which is probably how I missed it.
  3. I addressed BepuConfiguration.NewInstance - inconsistent behaviour #3175 while I was at it. Now, when you have no BepuConfiguration in game settings, the physics will work just like you would expect them to, unlike previously where there would be no simulations and everything would remain static. This is the same behavior that is present in code-only (no game settings).

Comment thread sources/engine/Stride.Assets/GameSettingsAssetCompiler.cs Outdated
Comment thread sources/engine/Stride.Engine/Engine/Design/GameSettings.cs Outdated
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.

3 participants