Repository navigation
Open
Description
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
dotnetSDK available, i.e. we can do csharp compilation on their machine. - Most users of netcode patcher have a
gitclient 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.
- Could we host these somewhere, e.g. NuGet, GitHub?
- GitHub release assets would do the trick
- could use Actions artefacts, but that is more hacky + not persistent
- Could use GitHub nuget registry
- would necessitate setting up something to auth. with the registry
- 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?
- Can we include some spec 'presets' e.g.
Metadata
Metadata
Assignees
Labels
No labels
Activity
Lordfirespeed commentedon May 21, 2026
Update: the latest version of Netcode Patcher failed to publish to NuGet as they impose a 250MiB limit on package size (the package was 253MiB).
Looks like the next update of Netcode Patcher will need to be v5.
Lordfirespeed commentedon May 21, 2026
Note to self: unity package repository is hosted at
https://packages.unity.com/.Package search endpoint is
https://packages.unity.com/-/api/searchbut it requires some kind of authorisation usually provided by unity editor.Package specific endpoints are open access, though e.g.
https://packages.unity.com/com.unity.netcode.gameobjects