Files
shawn b0c83af092 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>
2026-07-02 20:55:20 -04:00

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), Respawn
  • scripts/player-input.gd — Input-Gathering (extends BaseNetInput), Mouse Sensitivity 0.005
  • scripts/player-weapon.gd — Hitscan-Waffe (extends NetworkWeaponHitscan3D), 34 DMG/Hit, 0.25s Cooldown
  • scripts/player-spawner.gd — Spieler spawnen/despawnen bei Connect/Disconnect
  • scripts/bullethole.gd — Bullet-Hole Decal-Pool (max 20)
  • scripts/ui/ — Crosshair, Health-Bar, 3D-Projection, Window-Resize

Netzwerk-Setup

  • RollbackSynchronizer synct: transform, velocity, head rotation
  • Inputs: movement, jump, fire, look_angle
  • MultiplayerSynchronizer repliziert: health, death_tick, respawn_position
  • TickInterpolator fü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 Server
  • NetworkRollback — Orchestriert Rollback
  • NetworkEvents — Event-Broadcasting (on_client_start, on_server_start, on_peer_join, etc.)
  • RollbackSimulationServer — Führt Physics/Logic während Rollback aus
  • NetworkHistoryServer — State/Input History
  • NetworkSynchronizationServer — Paket-Übertragung
  • NetworkIdentityServer — Node-ID-Mapping

Custom Nodes

  • RollbackSynchronizer — Deterministische State-Sync mit Rollback + _rollback_tick(delta, tick, is_fresh)
  • StateSynchronizer — Einfachere State-Sync ohne Rollback
  • TickInterpolator — Smooth Interpolation zwischen Ticks
  • RewindableAction — 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-Kompensation
  • NetworkWeapon3D/2D — Projektil-Waffen
  • RewindableStateMachine / RewindableState — Rollback-fähige State Machine
  • NetworkRigidBody2D/3D — Physics-Sync mit Rollback
  • NetworkSimulator — Latenz/Packet-Loss Simulation
  • RewindableRandomNumberGenerator — 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/