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

70 lines
3.0 KiB
Markdown

# 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/`