b0c83af092
Complete replacement of the tactical-shooter project with the netfox-cs-sample (MIT) — a CS 1.6 inspired multiplayer FPS built with Godot 4 and netfox. ## What's new - Full CS-style gameplay: teams (T/CT), rounds, economy, buy menu - 6 weapons: Knife, Glock, USP, AK-47, M4A1, AWP - Bomb plant/defuse with 2 bombsites - Flashbang & smoke grenades - Proper netfox rollback netcode at 64 tick - Network popup UI for host/join - HUD, crosshair, round timer, scoreboard - All netfox singletons registered as autoloads (works in exported builds) ## Architecture - Listen-server (host from client, no dedicated server binary) - Multiplayer-fps game lives at examples/multiplayer-fps/ - Netfox addons registered as autoloads for exported build compat - Godot 4.7 with Forward+ renderer ## Removed - Old headless-server architecture (client_main, server_main, player.gd, etc.) - Custom netfox bootstrap with ENet fallback - Old ChaffGames FPS template (2,420 lines, 844 KB) - SimulationServer GDExtension stub - Godot-jolt physics (netfox sample uses default Godot physics) - Duplicate weapon_data.gd, anti_cheat.gd, round_manager.gd, etc. - Server browser API Python venv (87 MB) - test_range map and modular assets ## Preserved - Git history - Server config at config/default_server_config.cfg - Windows export preset - Build directory (gitignored) Co-authored-by: naxIO <naxIO@users.noreply.github.com>
70 lines
2.5 KiB
Markdown
70 lines
2.5 KiB
Markdown
# NetworkPerformance
|
|
|
|
Provides [custom monitors] for measuring networking performance. Included as an
|
|
autoload.
|
|
|
|
## Enabling monitoring
|
|
|
|
By default, network performance monitoring is only enabled in debug builds and
|
|
when running from the editor.
|
|
|
|
Use the `netfox_noperf` feature tag to force disable network performance
|
|
monitors.
|
|
|
|
Use the `netfox_perf` feature tag to force enable network performance monitors.
|
|
|
|
These feature tags enable customization for each export preset.
|
|
|
|
## Performance monitors
|
|
|
|
### Network loop duration
|
|
|
|
*Network loop duration* measures the time spent in the [network tick loop].
|
|
Note that this includes time spent on the [rollback loop] as well.
|
|
|
|
This value is updated once for every tick loop, it is not reset to zero after
|
|
the loop has run. This means that you may get a non-zero reading, even if the
|
|
tick loop is currently not running.
|
|
|
|
### Rollback loop duration
|
|
|
|
*Rollback loop duration* measures the time spent in the last [rollback loop].
|
|
This includes all of its steps.
|
|
|
|
The value of this monitor may be zero, if no players have joined, no nodes use
|
|
rollback, or rollback is disabled.
|
|
|
|
### Network ticks simulated
|
|
|
|
*Network ticks simulated* measures the number of ticks run in the last [network
|
|
tick loop]. If the game runs at a higher FPS than the network tickrate, this
|
|
value should be consistently one.
|
|
|
|
Higher, stable values mean that the game itself runs slower than the network
|
|
tickrate, and needs to catch up by running multiple ticks on each frame.
|
|
|
|
### Rollback ticks simulated
|
|
|
|
*Rollback ticks simulated* measures the number of rollback ticks run in the
|
|
last [rollback loop]. Generally, this denotes the age of the oldest input *or*
|
|
state received, depending on whether the game is running as a server or client.
|
|
|
|
The measurement is strongly correlated to network latency - the higher the
|
|
latency, the older the state and input packets will be upon arrival.
|
|
|
|
The more rollback ticks need to be simulated, the more work the rollback tick
|
|
has to do, which can negatively affect performance.
|
|
|
|
### Rollback tick duration
|
|
|
|
*Rollback tick duration* provides the average time spent simulating a single
|
|
tick in the last [rollback loop].
|
|
|
|
This can be useful to determine if the rollback tick duration comes from too
|
|
many ticks being simulated, or the individual ticks being expensive to
|
|
simulate ( or both ).
|
|
|
|
[custom monitors]: https://docs.godotengine.org/en/latest/classes/class_performance.html#class-performance-method-add-custom-monitor
|
|
[network tick loop]: ./network-time.md
|
|
[rollback loop]: ./network-rollback.md
|