Netcode samples for experimental version 1.0-exp.8

Hi

The samples for the recently updated version of the Netcode for entities package released with the Entities Experimental 1.0 release are available. They can be found in the same sample GitHub repository as before here. Check out the changelog for the 1.0-exp.8 package release, but the samples are mostly updated to make use of recent feature development and API changes. It is recommended to use the latest version of Unity 2022.2 beta at this moment (Unity 2022.2.0b11) because it has important bug fixes.

Known issues

  • Unity 2022.2.0b8 has multiple issues, and it’s recommended to use at least version b11. Beta 8 will frequently crash because of a bug in the rendering pipeline, for example, when switching scenes or at the end of building a player. Android and iOS builds do not work either (will crash when running).

  • Unity 2022.2.b10: Selecting a build configuration that has more than one base configuration causes the inspector to enter an infinite loop that:

  • Repeats the current configuration forever

  • Makes it very hard to select options or press buttons

  • Client only builds (like Asteroids client build config) have an issue with the transport driver creation (affects client-only build path). This can be fixed by modifying the Netcode package. Copy the package from the Library/PackageCache folder into the Package folder in the project root. Then edit the RegisterClientDriver() function in com.unity.netcode/Runtime/Connection/DefaultDriverConstructor.cs, line 239 and change new BaselibNetworkInterface() to new UDPNetworkInterface().

  • Android builds work but only with certain combinations of parameters and OS versions.

  • min editor version 2022.2.b11

  • DOTS Hybrid rendering does not work correctly for devices with android 10.x. 11.x or newer is required

  • Building release builds with code stripping set low or higher crashes the player (missing constructors). Code stripping set to none/minimal works.

  • Debug builds work with stripping level set to none/minimal/low.

  • iOS builds work but only with these restrictions:

  • min editor version 2022.2.b11

  • Building IL2CPP release/development versions requires code stripping set to minimal or none.

  • Build IL2CPP debug version requires code stripping set to none/minimal/low.

  • When connecting to a server build with the editor as a client (like from frontend menu), make sure the autoconnect ip/port fields in the playmode tools are empty, if not it will get confused and create two connections to the server.

  • When using Built-in build, after switching from a Dedicated Server build to a normal Standalone Player (via) the define UNITY_SERVER is not removed from the project.
    As a result, you can have mixed result if you try to build a new player:

  • If you build a Client only build, it will have both UNITY_SERVER and UNITY_CLIENT set. That is undefined behaviour

  • If you build a Client/Server, you are actually building a server.

  • There is a workaround for this.

  • Switch back to the Dedicated Server platform.

  • Then back to the Standalone one

  • Close the editor immediately after.

7 Likes