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>
3.0 KiB
3.0 KiB
Netfox Project
Projekt-Kontext
Wir arbeiten am Multiplayer-FPS-Beispiel unter /examples/multiplayer-fps/.
Godot 4.6 mit dem netfox Networking-Framework. Sprache: GDScript.
Multiplayer-FPS Struktur
Architektur: Server-autoritativ mit Rollback (Client-Side Prediction)
Dateien
multiplayer-fps.tscn— Hauptszene (Map, 5 Spawn Points, UI, Network)characters/player.tscn— Spieler-Prefab (CharacterBody3D)scripts/player.gd— Bewegung (Speed 5, Jump 5), Health (100 HP), Respawnscripts/player-input.gd— Input-Gathering (extendsBaseNetInput), Mouse Sensitivity 0.005scripts/player-weapon.gd— Hitscan-Waffe (extendsNetworkWeaponHitscan3D), 34 DMG/Hit, 0.25s Cooldownscripts/player-spawner.gd— Spieler spawnen/despawnen bei Connect/Disconnectscripts/bullethole.gd— Bullet-Hole Decal-Pool (max 20)scripts/ui/— Crosshair, Health-Bar, 3D-Projection, Window-Resize
Netzwerk-Setup
RollbackSynchronizersynct: transform, velocity, head rotation- Inputs: movement, jump, fire, look_angle
MultiplayerSynchronizerrepliziert: health, death_tick, respawn_positionTickInterpolatorfür smooth visuals zwischen Ticks- Avatar-Body Authority: Server (ID 1), Input-Authority: jeweiliger Peer
Gameplay
- WASD + Maus FPS-Steuerung
- 3 Hits = Tod (3x34 = 102 > 100 HP)
- Respawn an deterministischem Spawn Point (Hash-basiert)
- Sounds: fire.mp3, hit.wav, death.wav
Netfox Framework (Addon)
Kern-Systeme (Autoloads)
NetworkTime— Zentraler Tick-Loop (Projekt-Default: 24 Hz)NetworkTimeSynchronizer— Clock-Sync zum ServerNetworkRollback— Orchestriert RollbackNetworkEvents— Event-Broadcasting (on_client_start, on_server_start, on_peer_join, etc.)RollbackSimulationServer— Führt Physics/Logic während Rollback ausNetworkHistoryServer— State/Input HistoryNetworkSynchronizationServer— Paket-ÜbertragungNetworkIdentityServer— Node-ID-Mapping
Custom Nodes
RollbackSynchronizer— Deterministische State-Sync mit Rollback +_rollback_tick(delta, tick, is_fresh)StateSynchronizer— Einfachere State-Sync ohne RollbackTickInterpolator— Smooth Interpolation zwischen TicksRewindableAction— Rollback-fähige Actions (fire, abilities)PredictiveSynchronizer— Client-Side Prediction
Extras (netfox.extras)
BaseNetInput— Basis-Klasse für Input-Gathering mit_gather()NetworkWeaponHitscan3D— Hitscan-Waffen mit Latenz-KompensationNetworkWeapon3D/2D— Projektil-WaffenRewindableStateMachine/RewindableState— Rollback-fähige State MachineNetworkRigidBody2D/3D— Physics-Sync mit RollbackNetworkSimulator— Latenz/Packet-Loss SimulationRewindableRandomNumberGenerator— Deterministische RNG
Noray (netfox.noray)
- NAT Punchthrough + Relay-Fallback
- OpenID/PrivateID System
Doku
- Framework-Docs:
/docs/netfox/,/docs/netfox.extras/,/docs/netfox.noray/ - Tutorials:
/docs/netfox/tutorials/ - Guides:
/docs/netfox/guides/