Skip to content

Allow disabling entity baselines (can load big layouts)#1322

Merged
slipher merged 2 commits intoDaemonEngine:masterfrom
slipher:nobaseline
Nov 2, 2024
Merged

Allow disabling entity baselines (can load big layouts)#1322
slipher merged 2 commits intoDaemonEngine:masterfrom
slipher:nobaseline

Conversation

@slipher
Copy link
Copy Markdown
Member

@slipher slipher commented Sep 25, 2024

Entity baselines are supposed to make netcode more efficient, but it's dubious (see #1321). Let server owners disable entity baselines with set sv_useBaseline 0 as a workaround to Unvanquished/Unvanquished#2124. This is compatible with vanilla clients. Probably no one will notice a difference wrt bandwith efficiency.

Doesn't make sense to have entity 0 be a special case.
Copy link
Copy Markdown
Contributor

@DolceTriade DolceTriade left a comment

Choose a reason for hiding this comment

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

Seems like this would be more visible with high ping clients then?

@slipher
Copy link
Copy Markdown
Member Author

slipher commented Sep 26, 2024

Yes, high ping would make there be more of a difference. I imagine that it's even more important to have a room with a lot of entities in it, so that there are enough packets to congest the network. (And the entities should have existed since the server started, so that the baseline is helpful).

@slipher
Copy link
Copy Markdown
Member Author

slipher commented Sep 27, 2024

Server owners may use this if they want to load layouts with more than 600 or so buildables. But they should make sure the buildables are spread out somewhat. If you have hundreds of them in one room, clients will get lag spikes when the buildables enter PVS. The baseline does provide some advantage in the case that you have hundreds of entities in one place and those entities were present when the map loaded.

This can be used to load large layouts where the entity baseline
overflows the max packet size.
@slipher
Copy link
Copy Markdown
Member Author

slipher commented Sep 28, 2024

Added latch flag so that it is more obvious that you need to change map for a change to take effect.

@DolceTriade
Copy link
Copy Markdown
Contributor

I feel like this is too big a change to add at the last minute. We can merge this after. Server hosts can cherry-pick this change in themselves if they need it since it's not compat breaking.

@slipher
Copy link
Copy Markdown
Member Author

slipher commented Oct 16, 2024

In what sense is it a big change? The diff is +11/-4 and it doesn't change anything unless you set the cvar.

@DolceTriade
Copy link
Copy Markdown
Contributor

I mean it has the possibility to be an impactful change if there ends up being a regression. This is a nice to have thing with potential drawbacks. I don't think we need to force it in at the last minute.

@slipher
Copy link
Copy Markdown
Member Author

slipher commented Oct 16, 2024

I'm confused. Are you talking about the possibility of a regression if the user flips the cvar? Or the possibility of a regression if it is left unchanged?

@DolceTriade
Copy link
Copy Markdown
Contributor

A regression if unchanged. As I said, if we wanted this merged, we should have done it sooner. This is not a required change and we've already shipped RC2. Let's ship 0.55 and we can merge this. If people want this, they can build it into their own servers.

@slipher
Copy link
Copy Markdown
Member Author

slipher commented Oct 23, 2024

Is this OK to merge now?

Copy link
Copy Markdown
Member

@illwieckz illwieckz left a comment

Choose a reason for hiding this comment

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

LGTM.

@slipher slipher merged commit bd1b711 into DaemonEngine:master Nov 2, 2024
@slipher slipher deleted the nobaseline branch November 2, 2024 17:11
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