Vixen
dd8b0a81
csharp
public record class NetworkSimulationSettings

A profile and the seed it is drawn against: everything NetworkSimulation needs, in one value a session's options can carry.

Read the guide page for this →

Remarks

The two together rather than two properties, because either alone is a trap. A seed with no profile does nothing and says nothing; a profile with a defaulted seed is exactly what NetworkSimulation's constructor refuses to accept — "a simulation whose seed was picked for you is a simulation whose failures you cannot reproduce". Requiring both in one construction is what keeps that rule when the decision moves from a call site onto a record.

⚠ A seed per participant, not a seed per match. Eight clients handed the same seed lose the same packets in the same order, which is a synchronised outage rather than a bad network and will make a bug look like a server fault. Samples/08-Multiplayer derives each participant's from the match's, and that is the shape to copy.

Fields and properties (2)

  • public NetworkSimulationProfile Profile

    How bad the link pretends to be.

  • public ulong Seed

    The seed every random decision is drawn from. Stated rather than defaulted, and worth printing at startup: the five seconds spent typing a number is the price of every future bug report being replayable.

Methods (2)

  • public NetworkSimulationSettings(NetworkSimulationProfile Profile, ulong Seed)

    A profile and the seed it is drawn against: everything NetworkSimulation needs, in one value a session's options can carry.

  • public static NetworkSimulationSettings Development(ulong seed)

    What a development build should run with, given a seed.

Used by (3)

  • NetworkSessionVixen.Net
  • SessionOptionsVixen.Net
  • SessionSimulationTestsVixen.Net.Tests