|
1 | | -# unity-netcode-benchmark |
2 | 1 |
|
3 | | -[Benchmark Results](https://colorful-flyaway-e2f.notion.site/Netcode-Benchmark-f431976feb014ce48e030786f116e403?pvs=4) |
| 2 | +# Unity Netcode/Networking Solution Benchmark |
4 | 3 |
|
5 | | -This will include |
6 | | -- Fusion v1 & v2 |
7 | | -- Netick 2 Beta |
| 4 | +This repository holds the various netcode projects and It's benchmark result such as: |
| 5 | +- Bandwidth |
| 6 | +- CPU Server Usage |
| 7 | + |
| 8 | +### Benchmark Purpose |
| 9 | + |
| 10 | +- To share insights which netcode is the most performant by **DEFAULT** |
| 11 | +- Check benchmark from their official claims |
| 12 | +- To let the benchmark to be customized & used for everybody. **Not for Speculation** |
| 13 | + |
| 14 | +### Benchmark Info |
| 15 | + |
| 16 | +- This benchmark doesn’t use the best settings for each Netcode |
| 17 | +- This is made to remove the bias netcode **EXCEPT** the netcode enabled that "feature" by default |
| 18 | + - Example |
| 19 | + - Tweaking Fusion's compression accuracy |
| 20 | + - Fishnet doesn’t use network LOD |
| 21 | + |
| 22 | +### Netcode List |
| 23 | +- Fusion 1 & 2 |
| 24 | +- Netick 2 |
| 25 | +- Fishnet |
8 | 26 | - Mirror |
9 | | -- Fishnet 3 |
10 | | -- NGO |
| 27 | +- NGO (Netcode for GameObject) |
11 | 28 | - Mirage |
| 29 | + |
| 30 | +## Project Config |
| 31 | + |
| 32 | +### Unity Editor |
| 33 | + |
| 34 | +- Mono |
| 35 | +- Render Pipeline: BiRP |
| 36 | +- Windows |
| 37 | +- Unity 2021年3月21日f1 |
| 38 | + |
| 39 | +## Bandwidth Measuring |
| 40 | + |
| 41 | +- It is highly recommended to not use built-in net stats, they may be inaccurate due to transport & protocol overhead. |
| 42 | +- Wireshark is one of the software to analyze network traffics, it can be used with filter of: `udp.srcport == {serverport}` |
| 43 | + |
| 44 | +# Benchmark Result |
| 45 | + |
| 46 | +## Bandwidth |
| 47 | +- [07/12/23 - LATEST](benchmark-result/bandwidth/07-12-2023.md) |
| 48 | + |
| 49 | +## Server CPU Usage |
| 50 | +- [17/12/2024 - WIP](benchmark-result/server-cpu/17-03-2024.md) |
| 51 | + |
| 52 | +# Roadmap |
| 53 | + |
| 54 | +## Planned |
| 55 | +- IL2CPP Server CPU Testing |
| 56 | +- More methods of Server CPU Testing |
| 57 | + |
| 58 | +## Nice to Have |
| 59 | +- Memory Usage Benchmark |
| 60 | + |
| 61 | +# FAQ |
| 62 | + |
| 63 | +## How to Test by my Own? |
| 64 | + |
| 65 | +### Fusion |
| 66 | + |
| 67 | +- Developers have to import the fusion package by their own |
| 68 | + - Fusion has ToS to not put their code online (public repo) |
| 69 | +- Create your own Realtime app settings |
| 70 | + |
| 71 | +### Other Netcode |
| 72 | + |
| 73 | +- Just build the Game! |
| 74 | + |
| 75 | +## Can I Want to Contribute |
| 76 | + |
| 77 | +- Yes, It is open for communities |
| 78 | +- You can customized your benchmark and create an Issue on github, I’ll test on my own and verify that. If it clears, I’ll proceed to add that to custom user benchmark |
| 79 | + |
| 80 | +## Results is Misleading |
| 81 | + |
| 82 | +- If so, we can compare our proofing, if current benchmark is wrong, I’ll retest and update it |
| 83 | + - This is only **VALID** if you have the same configuration as the benchmark |
| 84 | + |
| 85 | +## When to expect for benchmark update? |
| 86 | + |
| 87 | +- Communities are Offered to test their own, upgrade the sdk, create issues on github repo |
| 88 | + - Then, It will be merged to the master repo |
| 89 | + |
| 90 | +## Why Don’t you enable 'insert feature name'? |
| 91 | + |
| 92 | +- This will endlessly happens, some netcode doesn’t have the feature equivalent |
| 93 | +- The time I enable 'insert feature name', other netcode bias will also tell me to "enable this...", "do this..." |
| 94 | +- Example Case |
| 95 | + - Enable compression in Netcode X |
| 96 | + - Another netcode bias tell to enable this too on Netcode Y |
| 97 | + - Enabled that feature on Netcode Y |
| 98 | + - Another bias netcode tell to enable another one on Netcode Z |
| 99 | + - Endless... |
| 100 | + |
| 101 | +## Commit Message Guideline |
| 102 | + |
| 103 | +- Because this repo contains multiple projects, It is recommended to create your commit message to be |
| 104 | + - `<projectName> <context>: <commit message>` |
| 105 | + - Example: |
| 106 | + - `fusion feat: add network transform to player prefab` |
0 commit comments