Skip to content

v5 rework #47

@Lordfirespeed

Description

@Lordfirespeed

V4 has a number of problems.

  • The patcher matrix is large. large enough that builds take a very long time!
  • Each entry added to the matrix adds megabytes to the nupkg's size
  • NetCode V2 has a lot of new conditional compilation symbols based on what packages are installed in the project.
    • This would necessitate expanding the already large matrix.
  • There is file overlap between the patchers, causing problems when patching a different Unity version.

This list is not exhaustive.

To try to resolve these, we make a few assumptions/restrictions:

  • All users of netcode patcher have a dotnet SDK available, i.e. we can do csharp compilation on their machine.
  • Most users of netcode patcher have a git client available.

v5 should be fundamentally different from v4.

  • Patchers could be compiled by users at build-time.
  • Or, a very restricted set of patcher 'presets' could be bundled.
    • This set would need to be updated each time a game updates.
  • To build a patcher, the following must be known:
    • The targeted Unity version (some Editor assemblies are required)
    • Versions of all (relevant) Unity packages in the project, especially of NetCode
    • Whether native collection support was enabled.

Outstanding questions:

  • Can we cache built patchers? what input(s) should influence the cache key?
  • How should required Editor assemblies be supplied?
    • 'BYO' editor assemblies could be helpful
    • in CI, editor assemblies need to be accessible without running a unity editor action, they are too slow
  • How should users provide the required 'spec'?
    • Can we include some spec 'presets' e.g. --preset lethal-company-v81, --preset mycopunk-v1.4 ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions