Fresh start: replace with naxIO/netfox-cs-sample foundation
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>
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# TickInterpolator
|
||||
|
||||
Interpolates between network ticks to smooth out motion.
|
||||
|
||||
Uses [Interpolators] under the hood to support various data types. To read more
|
||||
on best practices, see [Interpolation caveats].
|
||||
|
||||
## Configuring interpolation
|
||||
|
||||
To use *TickInterpolator*, add it as a child to the target node, specify the
|
||||
root node, and configure which properties to interpolate:
|
||||
|
||||

|
||||
|
||||
*Root* specifies the root node for resolving *Properties*. Best practice
|
||||
dictates to add *TickInterpolator* under its target, so *Root* will most often
|
||||
be the *TickInterpolator*'s parent node.
|
||||
|
||||
*Properties* specify which properties to interpolate. See [Property paths] on
|
||||
how to specify these values.
|
||||
|
||||
*Record First State* will make *TickInterpolator* take a snapshot when the Node
|
||||
is instantiated. This snapshot will be used for interpolation, instead of
|
||||
waiting for the next network tick. Useful for objects which start moving
|
||||
instantly upon entering the scene tree, like projectiles.
|
||||
|
||||
*Enable Recording* toggles automatic state recording. When enabled,
|
||||
*TickInterpolator* will take a new snapshot after each network tick loop and
|
||||
interpolate towards that. Disabling this will require you to manually call
|
||||
`push_state()` whenever the *properties* are updated.
|
||||
|
||||
## Sudden changes
|
||||
|
||||
When a node makes a sudden change, like teleporting from one place to another,
|
||||
interpolation may not be desired.
|
||||
|
||||
Call `teleport()` in these cases to avoid interpolation and just jump to the
|
||||
current state. Interpolation will resume after the current state.
|
||||
|
||||
Example:
|
||||
|
||||
```gdscript
|
||||
func _tick(tick, delta):
|
||||
# Respawn after a while
|
||||
if _tick == respawn_tick:
|
||||
# Jump to spawn point, without interpolation
|
||||
position = spawn_position
|
||||
$TickInterpolator.teleport()
|
||||
```
|
||||
|
||||
## Changing configuration
|
||||
|
||||
*TickInterpolator* has to do some setup work whenever the interpolated
|
||||
properties change, e.g. when a new property needs to be interpolated.
|
||||
|
||||
By default, this work is done upon instantiation. If you need to change
|
||||
interpolated properties during runtime, make sure to call `process_settings()`,
|
||||
otherwise *TickInterpolator* won't apply the changes.
|
||||
|
||||
[Interpolators]: ../guides/interpolators.md
|
||||
[Interpolation caveats]: ../tutorials/interpolation-caveats.md
|
||||
[Property paths]: ../guides/property-paths.md
|
||||
Reference in New Issue
Block a user