Main focus of release was Unity integration & performance
Features:
Introduced support for UDP client/server for remote access
Small adaptations for MacOS - especially UDP and file-system database - to enable
unit tests having same behavior as on Windows and Linux.
Optimizations
The main goal was to enable a NetCode implementation without any heap allocation and minimize CPU
load to maximize CCU (players) at 60 Hz tick rate in Unity.
Current state 350-400 CCU on 4 Core i7-4790K CPU 4.00GHz.
Host and simulated CCU's running an same machine using raw UDP.
Unity Player running as Host 20% CPU. CCU Simulation for 350-400 players 60 CPU%
Implemented:
Enable omitting message fields in application protocol which are not mandatory
Used smaller field names in protocol. Typically 3 or 4 characters
Introduced struct SmallString (small string optimization using 24 bytes) to avoid heap allocation for string's <= 15 characters (UTF-8)
Introduced support for synchronous request execution to avoid heap allocation caused by async methods
Introduced support for queued request execution to enable allocation free & thread-safe access to memory database without locking
Pool/reuse class instances used for de-/serialization.
Main focus of release was Unity integration & performance
Features:
Optimizations The main goal was to enable a NetCode implementation without any heap allocation and minimize CPU load to maximize CCU (players) at 60 Hz tick rate in Unity.
Current state 350-400 CCU on 4 Core i7-4790K CPU 4.00GHz. Host and simulated CCU's running an same machine using raw UDP. Unity Player running as Host 20% CPU. CCU Simulation for 350-400 players 60 CPU%
Implemented: