#Vordarim: Massive Medieval Battles with 512+ Simultaneous Online Players
1 messages · Page 1 of 1 (latest)
First test of the Dedicated Server (developed with rust).
All traffic sended with UDP, using 2 dedicated server for doing this test
x1 Germany dedi i9-10900K, 64ram
x1 France dedi with xeon e5-2680v4, 16gb ram
Germany dedi used for handling the server instances and all traffic.
France dedi was used for sending motion data to the german dedi to simulate the clients updates that you see on the video.
Net info at germany dedi
There are 646 total clients
Each client is sending 1 motion packet each 62.5msec to the server and the server replicates these movement based on 12hz syncrate to the other clients
All packets are compressed and batch sended to 1024 bytes limit to prevent udp fragmentation
Doing tests with 1024 clients
Trying to implement custom packets and network optimizations to make custom syncrate for each player scope
Success test with 1024 players
fps performance increased around 30%
And now net packets are a little bit more compressed
Is this networking framework going to be release to the public?
Also curious to know the network stack and libraries you are using to achieve this 🙂
Yeah, will be released as an API and source code published as soon as i finish currently base things
We used ZSTD Lib and the UE Socket Lib at the unreal engine side
ZSTD is used for decompressing the buffers that are received from the server
And with the socket lib we create one TCP Socket and other one UDP
UDP is used for fast sync / fast RPC like, shoots, raytraces, movement and these things
TCP only for secure RPC or things that you dont want to be losted or fragmented for nothing
And the server is developed with rust language and currently im using these libs:
zstd: Compressing / Decompressing outgoing and incoming traffic
mimalloc = Custom microsoft mem allocator for better performance
zerocopy: with that library its possible to send raw C++ structure and read as Rust structures without any memory manipulation cost
zerocopy-derive: Custom derives for zerocopy lib
tokio = For high I/O operations and spawning threads for socket and custom tasks
Thats all @hollow crest ^^
Reduced packet size 20% and improve error handling for packet loss