From 9ea98aa7b8786bad60f93543ae3376f061dfb1a4 Mon Sep 17 00:00:00 2001 From: Shawn Date: Wed, 1 Jul 2026 19:46:52 -0400 Subject: [PATCH] Phase 7: Windows client export, preset fix, code fixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix: export_presets.cfg — platform='Windows Desktop' (not 'Windows'), Windows as [preset.0] - Fix: plugin_manager.gd — removed class_name (autoload conflict), fixed multiline % formatting - Fix: Disabled GDExtension temporarily for clean export - Add: Windows PE32+ x86_64 client binary (109MB) at build/tactical-shooter-windows-x86_64/ - Add: tactical-shooter-windows.zip (portable zip package) - Build: Linux server binary (78MB) rebuilt --- client/assets/scenes/modular/kit_demo.gd.uid | 1 + client/characters/character/fps_camera.gd.uid | 1 + .../character/fps_character_controller.gd | 44 ++- .../character/fps_character_controller.gd.uid | 1 + client/characters/input/input_handler.gd.uid | 1 + client/characters/weapon/weapon_manager.gd | 205 +++++++++++++ .../characters/weapon/weapon_manager.gd.uid | 1 + client/scripts/bake_lighting.gd.uid | 1 + client/scripts/bake_lightmaps.gd.uid | 1 + client/scripts/test_headless.gd.uid | 1 + client/scripts/validate_lights.gd.uid | 1 + client/scripts/validate_map.gd.uid | 1 + client/scripts/validate_polycount.gd.uid | 1 + client/scripts/validate_scene.gd.uid | 1 + client/scripts/validate_textures.gd.uid | 1 + docs/playtest-guide.md | 204 +++++++++++++ export_presets.cfg | 56 +++- gdextension/simulation/.sconsign.dblite | Bin 0 -> 1188246 bytes .../simulation.gdextension.disabled | 10 + .../gdextension/simulation.gdextension.uid | 1 + gdextension/simulation/godot-cpp | 1 + .../simulation/src/simulation_server.cpp | 272 +++++++++++++++--- .../simulation/src/simulation_server.h | 108 ++++++- scripts/config/server_config.gd.uid | 1 + scripts/map_packaging/map_downloader.gd.uid | 1 + scripts/map_packaging/pack_map.gd.uid | 1 + scripts/network/server_main.gd | 54 +++- server/plugins/hello_world/hello_world.gd.uid | 1 + server/scripts/game_server.gd | 174 +++++++++++ server/scripts/game_server.gd.uid | 1 + server/scripts/plugin_api/plugin_base.gd.uid | 1 + server/scripts/plugin_api/plugin_manager.gd | 6 +- .../scripts/plugin_api/plugin_manager.gd.uid | 1 + .../scripts/plugin_api/plugin_manifest.gd.uid | 1 + server/scripts/rcon_command_handler.gd.uid | 1 + server/scripts/rcon_server.gd.uid | 1 + 36 files changed, 1094 insertions(+), 64 deletions(-) create mode 100644 client/assets/scenes/modular/kit_demo.gd.uid create mode 100644 client/characters/character/fps_camera.gd.uid create mode 100644 client/characters/character/fps_character_controller.gd.uid create mode 100644 client/characters/input/input_handler.gd.uid create mode 100644 client/characters/weapon/weapon_manager.gd create mode 100644 client/characters/weapon/weapon_manager.gd.uid create mode 100644 client/scripts/bake_lighting.gd.uid create mode 100644 client/scripts/bake_lightmaps.gd.uid create mode 100644 client/scripts/test_headless.gd.uid create mode 100644 client/scripts/validate_lights.gd.uid create mode 100644 client/scripts/validate_map.gd.uid create mode 100644 client/scripts/validate_polycount.gd.uid create mode 100644 client/scripts/validate_scene.gd.uid create mode 100644 client/scripts/validate_textures.gd.uid create mode 100644 docs/playtest-guide.md create mode 100644 gdextension/simulation/.sconsign.dblite create mode 100644 gdextension/simulation/gdextension/simulation.gdextension.disabled create mode 100644 gdextension/simulation/gdextension/simulation.gdextension.uid create mode 160000 gdextension/simulation/godot-cpp create mode 100644 scripts/config/server_config.gd.uid create mode 100644 scripts/map_packaging/map_downloader.gd.uid create mode 100644 scripts/map_packaging/pack_map.gd.uid create mode 100644 server/plugins/hello_world/hello_world.gd.uid create mode 100644 server/scripts/game_server.gd create mode 100644 server/scripts/game_server.gd.uid create mode 100644 server/scripts/plugin_api/plugin_base.gd.uid create mode 100644 server/scripts/plugin_api/plugin_manager.gd.uid create mode 100644 server/scripts/plugin_api/plugin_manifest.gd.uid create mode 100644 server/scripts/rcon_command_handler.gd.uid create mode 100644 server/scripts/rcon_server.gd.uid diff --git a/client/assets/scenes/modular/kit_demo.gd.uid b/client/assets/scenes/modular/kit_demo.gd.uid new file mode 100644 index 0000000..128341d --- /dev/null +++ b/client/assets/scenes/modular/kit_demo.gd.uid @@ -0,0 +1 @@ +uid://c6dxl1qhan4yl diff --git a/client/characters/character/fps_camera.gd.uid b/client/characters/character/fps_camera.gd.uid new file mode 100644 index 0000000..390a94e --- /dev/null +++ b/client/characters/character/fps_camera.gd.uid @@ -0,0 +1 @@ +uid://bjtf5jiedmwx8 diff --git a/client/characters/character/fps_character_controller.gd b/client/characters/character/fps_character_controller.gd index 48c9a45..2d385b3 100644 --- a/client/characters/character/fps_character_controller.gd +++ b/client/characters/character/fps_character_controller.gd @@ -92,6 +92,9 @@ var _input_dict: Dictionary = {} var _mouse_captured: bool = false var _mouse_clicked_this_frame: bool = false +## Weapon manager reference. +var _weapon: WeaponManager = null + # --------------------------------------------------------------------------- # Node references (set in _ready) # --------------------------------------------------------------------------- @@ -152,6 +155,12 @@ func _ready() -> void: _crouch_current = 0.0 _update_crouch(0.0) + # Find weapon manager child + for child in get_children(): + if child is WeaponManager: + _weapon = child + break + func _input(event: InputEvent) -> void: # Mouse look @@ -227,6 +236,19 @@ func _physics_process(delta: float) -> void: if _camera: _camera.rotation.x = _pitch + # 5b. Weapon fire with rate limiting via WeaponManager + var should_fire: bool = false + var time_since_engine_start: float = Engine.get_process_ticks() * get_physics_process_delta_time() + if _weapon: + should_fire = _weapon.try_fire(time_since_engine_start) + elif shoot_pressed: + # No weapon manager — fire every tick (unlimited) + should_fire = true + + if _server != null: + if should_fire: + _server.fire_weapon(entity_id) + # 6. Send input to simulation server if _server != null and entity_id >= 0: # Build input for SimulationServer (mutate cached dict to avoid alloc) @@ -236,14 +258,18 @@ func _physics_process(delta: float) -> void: _input_dict["jump"] = jump_pressed _input_dict["crouch"] = _crouch_active _input_dict["sprint"] = _sprint_active - _input_dict["shoot"] = shoot_pressed + _input_dict["shoot"] = should_fire _input_dict["aim"] = aim_pressed _input_dict["input_sequence"] = _input_sequence _server.apply_input(entity_id, _input_dict) - if shoot_pressed: - _server.fire_weapon(entity_id) + # Check for hit feedback from last tick + if Engine.has_singleton("SimulationServer") or _server: + var hit_result: Dictionary = _server.get_last_hit_result() + if hit_result.get("hit", false) and _weapon: + var hit_pos := Vector3.ZERO # approximate — we don't have exact world hit position from server yet + _weapon.on_hit_confirmed(hit_pos, hit_result.get("damage", 0.0), hit_result.get("killed", false)) _input_sequence += 1 @@ -399,3 +425,15 @@ func reset_pose() -> void: _crouch_current = 0.0 _crouch_target = 0.0 _update_crouch(0.0) + + +## Get the look direction as a normalized Vector3 in world space. +## Uses the current yaw/pitch to compute a forward vector. +func get_look_direction() -> Vector3: + var yaw_rad: float = _yaw + var pitch_rad: float = _pitch + return Vector3( + cos(pitch_rad) * sin(yaw_rad), + -sin(pitch_rad), + cos(pitch_rad) * cos(yaw_rad) + ).normalized() diff --git a/client/characters/character/fps_character_controller.gd.uid b/client/characters/character/fps_character_controller.gd.uid new file mode 100644 index 0000000..fd3c48f --- /dev/null +++ b/client/characters/character/fps_character_controller.gd.uid @@ -0,0 +1 @@ +uid://cpbvk1itjonm diff --git a/client/characters/input/input_handler.gd.uid b/client/characters/input/input_handler.gd.uid new file mode 100644 index 0000000..818b6d3 --- /dev/null +++ b/client/characters/input/input_handler.gd.uid @@ -0,0 +1 @@ +uid://bvkhxr1bv6lth diff --git a/client/characters/weapon/weapon_manager.gd b/client/characters/weapon/weapon_manager.gd new file mode 100644 index 0000000..943052e --- /dev/null +++ b/client/characters/weapon/weapon_manager.gd @@ -0,0 +1,205 @@ +## WeaponManager — hitscan weapon system for tactical FPS. +## +## Manages a single hitscan weapon: fire rate limiting, ammo, reload. +## Communicates with SimulationServer for server-authoritative hit detection. +## +## Architecture: +## - Client-side: fire rate limiting, muzzle VFX, hit marker feedback +## - Server-side (via SimulationServer): hit detection, damage, lag compensation +## - Both sides: ammo tracking (server-authoritative, client-predicted) +## +## Usage (attach as child of FPSCharacterController): +## +## FPSCharacterController +## ├── WeaponManager — fire rate, ammo, VFX +## │ ├── MuzzleFlash — instantiated VFX +## │ └── HitMarker — instantiated VFX +## └── FpsCamera +## +class_name WeaponManager +extends Node + +# --------------------------------------------------------------------------- +# Signals +# --------------------------------------------------------------------------- + +## Emitted when the weapon fires (for visual feedback). +signal weapon_fired(origin: Vector3, direction: Vector3) + +## Emitted when this weapon hits an entity. +signal hit_marked(hit_pos: Vector3, damage: float, killed: bool) + +## Emitted when ammo changes. +signal ammo_changed(current: int, max: int) + +## Emitted when player is killed. +signal player_killed() + +# --------------------------------------------------------------------------- +# Exports — Assault Rifle Config +# --------------------------------------------------------------------------- + +## Maximum ammo capacity. +@export var max_ammo: int = 30 + +## Starting ammo (including one magazine). +@export var start_ammo: int = 90 + +## Time between shots (seconds). 10 Hz = 0.1s between shots. +@export var fire_rate: float = 0.1 + +## Reload time in seconds. +@export var reload_time: float = 2.0 + +## Spread increases while firing (degrees). +@export var spread_per_shot: float = 0.5 + +## Max spread when firing continuously (degrees). +@export var max_spread: float = 4.0 + +## Spread recovery per second (degrees/s). +@export var spread_recovery: float = 8.0 + +# --------------------------------------------------------------------------- +# State +# --------------------------------------------------------------------------- + +var current_ammo: int = 30 +var reserve_ammo: int = 90 +var is_reloading: bool = false +var _last_shot_time: float = 0.0 +var _current_spread: float = 0.0 + +## Reference to the parent FPSCharacterController (set in _ready). +var _controller: FPSCharacterController = null + +## Reference to SimulationServer (if available). +var _server: Object = null + +# --------------------------------------------------------------------------- +# Lifecycle +# --------------------------------------------------------------------------- + +func _ready() -> void: + _controller = get_parent() as FPSCharacterController + if _controller == null: + push_warning("WeaponManager: Parent is not FPSCharacterController. Disabled.") + set_process(false) + return + + # Find SimulationServer singleton + if Engine.has_singleton("SimulationServer"): + _server = Engine.get_singleton("SimulationServer") + elif Engine.get_main_loop() and Engine.get_main_loop().root: + # Try finding it in the scene tree + var game_server = Engine.get_main_loop().root.find_child("GameServer", true, false) + if game_server and game_server.has_method(&"get_simulation_server"): + _server = game_server.get_simulation_server() + + # Initialize ammo + current_ammo = max_ammo + reserve_ammo = start_ammo + + # Signal that ammo changed + ammo_changed.emit(current_ammo, max_ammo) + +# --------------------------------------------------------------------------- +# Main loop — called from FPSCharacterController._physics_process per tick +# --------------------------------------------------------------------------- + +## Try to fire the weapon. Returns true if a shot was fired. +## Called by the controller when shoot input is detected. +func try_fire(time: float) -> bool: + # Check fire rate + if time - _last_shot_time < fire_rate: + return false + + # Check ammo + if current_ammo <= 0: + # Auto-reload on empty — or play empty-click sound + if not is_reloading: + start_reload() + return false + + # Check reloading + if is_reloading: + return false + + # Deduct ammo + current_ammo -= 1 + _last_shot_time = time + + # Increase spread + _current_spread = min(_current_spread + spread_per_shot, max_spread) + + # Emit fire signal (for visual/hit marker) + # Direction comes from the controller's look direction + if _controller: + var origin: Vector3 = _controller.global_position + origin.y += _controller.eye_height_stand + var direction: Vector3 = _controller.get_look_direction() + weapon_fired.emit(origin, direction) + + ammo_changed.emit(current_ammo, max_ammo) + return true + +## Called every frame to recover spread and handle spread animation. +func _process(delta: float) -> void: + # Recover spread + if _current_spread > 0.0: + _current_spread = max(0.0, _current_spread - spread_recovery * delta) + +## Start reloading. +func start_reload() -> void: + if is_reloading or current_ammo >= max_ammo or reserve_ammo <= 0: + return + + is_reloading = true + await get_tree().create_timer(reload_time).timeout + + # Reload logic + var needed: int = max_ammo - current_ammo + var from_reserve: int = min(needed, reserve_ammo) + current_ammo += from_reserve + reserve_ammo -= from_reserve + is_reloading = false + + ammo_changed.emit(current_ammo, max_ammo) + +## Called when a hit is confirmed by the server. +func on_hit_confirmed(hit_pos: Vector3, damage: float, killed: bool) -> void: + hit_marked.emit(hit_pos, damage, killed) + if killed: + player_killed.emit() + +## Get current spread (degrees). +func get_current_spread() -> float: + return _current_spread + +## Get the current weapon fire direction including spread cone. +func get_spread_direction(base_direction: Vector3) -> Vector3: + if _current_spread <= 0.001: + return base_direction + + var spread_rad: float = deg_to_rad(_current_spread) + var theta: float = randf() * TAU + var phi: float = randf() * spread_rad + + # Create a random perpendicular vector + var up := Vector3.UP + if abs(base_direction.dot(up)) > 0.99: + up = Vector3.RIGHT + var right := base_direction.cross(up).normalized() + up = right.cross(base_direction).normalized() + + var offset := right * sin(theta) * sin(phi) + up * cos(theta) * sin(phi) + return (base_direction + offset).normalized() + +## Reset weapon state (for respawn). +func reset() -> void: + current_ammo = max_ammo + reserve_ammo = start_ammo + is_reloading = false + _current_spread = 0.0 + _last_shot_time = 0.0 + ammo_changed.emit(current_ammo, max_ammo) diff --git a/client/characters/weapon/weapon_manager.gd.uid b/client/characters/weapon/weapon_manager.gd.uid new file mode 100644 index 0000000..203e971 --- /dev/null +++ b/client/characters/weapon/weapon_manager.gd.uid @@ -0,0 +1 @@ +uid://dywlbha8xivx4 diff --git a/client/scripts/bake_lighting.gd.uid b/client/scripts/bake_lighting.gd.uid new file mode 100644 index 0000000..ac0b0bf --- /dev/null +++ b/client/scripts/bake_lighting.gd.uid @@ -0,0 +1 @@ +uid://q8nutj781fyf diff --git a/client/scripts/bake_lightmaps.gd.uid b/client/scripts/bake_lightmaps.gd.uid new file mode 100644 index 0000000..65327f6 --- /dev/null +++ b/client/scripts/bake_lightmaps.gd.uid @@ -0,0 +1 @@ +uid://d0mbp6gs2mwlr diff --git a/client/scripts/test_headless.gd.uid b/client/scripts/test_headless.gd.uid new file mode 100644 index 0000000..7daf093 --- /dev/null +++ b/client/scripts/test_headless.gd.uid @@ -0,0 +1 @@ +uid://dbtpbhja3nk60 diff --git a/client/scripts/validate_lights.gd.uid b/client/scripts/validate_lights.gd.uid new file mode 100644 index 0000000..fda3ad5 --- /dev/null +++ b/client/scripts/validate_lights.gd.uid @@ -0,0 +1 @@ +uid://cwvi2ic1k6ubn diff --git a/client/scripts/validate_map.gd.uid b/client/scripts/validate_map.gd.uid new file mode 100644 index 0000000..51e6e97 --- /dev/null +++ b/client/scripts/validate_map.gd.uid @@ -0,0 +1 @@ +uid://olpdh1gx2gca diff --git a/client/scripts/validate_polycount.gd.uid b/client/scripts/validate_polycount.gd.uid new file mode 100644 index 0000000..7fd562d --- /dev/null +++ b/client/scripts/validate_polycount.gd.uid @@ -0,0 +1 @@ +uid://bqau1kivb87fk diff --git a/client/scripts/validate_scene.gd.uid b/client/scripts/validate_scene.gd.uid new file mode 100644 index 0000000..d714299 --- /dev/null +++ b/client/scripts/validate_scene.gd.uid @@ -0,0 +1 @@ +uid://d0go24t1lsx2j diff --git a/client/scripts/validate_textures.gd.uid b/client/scripts/validate_textures.gd.uid new file mode 100644 index 0000000..324dca3 --- /dev/null +++ b/client/scripts/validate_textures.gd.uid @@ -0,0 +1 @@ +uid://bas55o1773n21 diff --git a/docs/playtest-guide.md b/docs/playtest-guide.md new file mode 100644 index 0000000..c02378b --- /dev/null +++ b/docs/playtest-guide.md @@ -0,0 +1,204 @@ +# Playtest Guide — Tactical Shooter + +> Phase 0 dedicated server (headless ENet, 128-tick simulation, GDExtension core). +> For internal / LAN playtesting only. + +--- + +## Server Address + +| Network | Address | Notes | +|---------|----------------|---------------------------------| +| Local | `127.0.0.1` | Run server + client on same box | +| LAN | `192.168.0.127`| Local network (eth0) | +| Tailscale | `100.89.190.113` | Tailnet (VPN-like, works from anywhere both peers have Tailscale) | + +**Port:** `34197` (default — ENet gameplay port) + +Override via environment variable: + +```bash +SERVER_PORT=34197 ./tactical-shooter-server.x86_64 --headless +``` + +--- + +## Building + +### Server (Linux, headless) + +```bash +# Export from Godot Editor (preset: "Linux Server"): +# Project → Export → Linux Server → Export Project +# Output: build/tactical-shooter-server.x86_64 + +# Or run from editor: +godot --headless --build-solutions +``` + +### Client (Windows) + +```bash +# Export from Godot Editor (preset: "Windows Client"): +# Project → Export → Windows Client → Export Project +# Output: build/tactical-shooter-windows-x86_64/tactical-shooter.exe +``` + +--- + +## How to Launch + +### 1. Start the Server + +```bash +# On the host machine (Linux VPS / dev box): +./build/tactical-shooter-server.x86_64 --headless +``` + +The server logs its ready state: + +``` +[ServerMain] Tactical Shooter server ready +[ServerMain] Port: 34197 +[ServerMain] Name: "Tactical Shooter Server" +[ServerMain] Tick rate: 128 Hz +[ServerMain] Maps: test_range +[ServerMain] Headless: True +``` + +Stop with `Ctrl+C`. + +### 2. Launch the Client + +**Option A — Exported binary (Windows):** + +```bash +.\tactical-shooter.exe +``` + +The client auto-connects to `127.0.0.1:34197` by default. To connect to a remote server, set environment variables before launching: + +```bash +# PowerShell +$env:SERVER_HOST = "192.168.0.127" +$env:SERVER_PORT = "34197" +.\tactical-shooter.exe + +# CMD +set SERVER_HOST=192.168.0.127 +set SERVER_PORT=34197 +tactical-shooter.exe +``` + +**Option B — Godot Editor (any OS):** + +1. Open the project in Godot 4 +2. Open `res://scenes/client/client_main.tscn` +3. Select the `ClientMain` node +4. Set `Server Host` to the server's IP (e.g. `192.168.0.127`) +5. Press **F6** (Play Scene) or **F5** (Run Project) + +**Option C — Editor with environment overrides:** + +```bash +SERVER_HOST=192.168.0.127 SERVER_PORT=34197 godot res://scenes/client/client_main.tscn +``` + +--- + +## Default Input Bindings + +These are documented in `client/characters/input/input_handler.gd` and consumed by `FPSCharacterController`: + +| Action | Key | Description | +|--------------|--------------|---------------------------------| +| `move_forward` | **W** | Walk forward | +| `move_backward` | **S** | Walk backward | +| `move_left` | **A** | Strafe left | +| `move_right` | **D** | Strafe right | +| `jump` | **Space** | Jump | +| `sprint` | **Shift** | Sprint (tap to toggle on/off) | +| `crouch` | **Ctrl** | Crouch (hold; configurable to toggle) | +| `shoot` | **LMB** | Fire weapon | +| `aim` | **RMB** | Aim down sights | +| `reload` | **R** | Reload weapon | +| `interact` | **E** | Use / interact | +| `ui_cancel` | **Esc** | Release mouse capture | + +Mouse look is active while the cursor is captured. Click anywhere in the window to re-capture after pressing Esc. + +--- + +## Server Configuration + +Edit `config/default_server_config.cfg` before building, or place a `server_config.cfg` next to the binary at runtime. + +Key settings: + +| Setting | Default | Description | +|----------------|----------|------------------------------------------| +| `port` | `34197` | Gameplay port | +| `max_players` | `16` | Max concurrent players (2–32 recommended)| +| `tick_rate` | `128` | Simulation tick rate (Hz) | +| `maps` | `test_range` | Map rotation (comma-separated) | +| `round_time_seconds` | `600` | Round duration (0 = unlimited) | +| `win_limit` | `3` | Rounds needed to win the match | +| `gravity` | `-24.0` | World gravity (competitive FPS setting) | + +Override any setting at runtime: + +```bash +./tactical-shooter-server.x86_64 --headless -- --port 34197 --max-players 16 --maps test_range +``` + +--- + +## Known Limitations (Phase 0) + +This is a **foundations prototype**. The following are not yet implemented: + +1. **No server browser** — join by IP only. The in-game browser (Phase 4) will list community servers via a heartbeat-based master server. +2. **No anti-cheat** — server-authoritative input validation (speed limits, fire rate checks) planned for Phase 4. +3. **No round system** — players spawn and move freely. Bomb-defuse / elimination / economy loop is Phase 2. +4. **No buy menu / economy** — no weapon purchasing. Only the default Assault Rifle hitscan weapon is available. +5. **Single map** (`test_range`) — the grey-box test environment. Map rotation supports multiple maps in config but only one exists. +6. **Client hardcodes `127.0.0.1`** — the client scene defaults to connecting to `127.0.0.1:34197`. You must set `SERVER_HOST` / `SERVER_PORT` env vars or edit the scene to connect to a remote server. +7. **No client-side prediction** — movement is replicated via simple RPC position sync, not reconciled prediction. Netcode will feel laggy under high ping. Client prediction + server reconciliation is Phase 1. +8. **No RCON** — remote admin console is disabled by default (`rcon.enabled=false`). Phase 4 adds TCP-based admin commands. +9. **One weapon** — Assault Rifle (hitscan, 30 damage, 4x headshot multiplier, 10 rounds/sec). No pistol, sniper, or utility items. +10. **Listen-server mode untested** — running client and server in the same process (editor play mode) works for basic testing but hasn't been hardened. + +--- + +## Troubleshooting + +| Symptom | Likely Cause | Fix | +|---------|-------------|-----| +| Client says `Connection failed` | Server not running or wrong IP/port | Verify server is running (`ps aux \| grep tactical`), check IP and port | +| Client connects but sees no other players | Firewall blocking ENet port 34197 | Open UDP port 34197 on the server's firewall | +| `[ServerMain] Map scene not found` | Map path incorrect in config | Check `maps` setting in `config/default_server_config.cfg` | +| Server won't start / exits immediately | Port already in use | Change port in config or kill the process on port 34197 (`lsof -i :34197`) | +| `--headless` flag not recognised | Running outside Godot 4 | Ensure the binary was exported with dedicated server preset | +| Can't connect from another machine | Client still resolving to 127.0.0.1 | Pass `SERVER_HOST=` env var to client | + +--- + +## Quick-Start Cheat Sheet + +```bash +# 1. Build server +godot --headless --export "Linux Server" build/tactical-shooter-server.x86_64 + +# 2. Run server +./build/tactical-shooter-server.x86_64 --headless + +# 3. Connect from client (same machine — new terminal) +SERVER_HOST=127.0.0.1 godot res://scenes/client/client_main.tscn + +# 4. Connect from another machine on LAN +SERVER_HOST=192.168.0.127 godot res://scenes/client/client_main.tscn +``` + +--- + +*Last updated: July 2026* diff --git a/export_presets.cfg b/export_presets.cfg index a05f450..05700fb 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -1,13 +1,13 @@ [preset.0] -name="Linux Server" -platform="Linux/X11" +name="Windows Desktop" +platform="Windows Desktop" runnable=true -dedicated_server=true +dedicated_server=false custom_features="" export_filter="all_resources" include_filter="" exclude_filter="" -export_path="build/tactical-shooter-server.x86_64" +export_path="build/tactical-shooter-windows-x86_64/tactical-shooter.exe" patches=PackedStringArray() encryption_include_filters="" encryption_exclude_filters="" @@ -29,19 +29,55 @@ codesign/identity="" codesign/timestamp=true codesign/timestamp_server_url="" application/icon="" +application/identifier="tactical-shooter-client" +application/name="Tactical Shooter" +application/app_category="game" +application/file_version="0.1.0" +application/product_version="0.1.0" +display/width=1280 +display/height=720 +xr_features/enabled=false +xr_features/hand_tracking=false +xr_features/passthrough=false + +[preset.1] +name="Linux Server" +platform="Linux/X11" +runnable=true +dedicated_server=true +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="build/tactical-shooter-server.x86_64" +patches=PackedStringArray() +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false +script_encryption_key="" + +[preset.1.options] +custom_template/debug="" +custom_template/release="" +binary_format/embed_pck=true +binary_format/architecture="x86_64" +texture_format/s3tc_bptc=true +texture_format/etc2_astc=false +texture_format/no_bptc_fallbacks=true +dotnet/include_scripts_content=false +dotnet/rollforward_to_latest_prerelease=true +codesign/identity="" +codesign/timestamp=true +codesign/timestamp_server_url="" +application/icon="" application/identifier="tactical-shooter-server" application/name="Tactical Shooter Server" application/app_category="game" application/file_version="0.1.0" application/product_version="0.1.0" -application/company_name="" -application/copyright="" -application/trademarks="" display/width=1 display/height=1 -display/handheld/dpi=72 -display/handheld/dpi_mode="disabled" -display/scale_mode="disabled" xr_features/enabled=false xr_features/hand_tracking=false xr_features/passthrough=false diff --git a/gdextension/simulation/.sconsign.dblite b/gdextension/simulation/.sconsign.dblite new file mode 100644 index 0000000000000000000000000000000000000000..9ccbbfc2819b9410e3d660e55fc46b51ec59c4ee GIT binary patch literal 1188246 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

;YLSL7#(YITM+Q!nt5U8%D!!=l%Ok*A|7 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 bW&p2k8TCy1Dg<{J9d4?0zhOmSY&Y`={rp~o literal 0 HcmV?d00001 diff --git a/gdextension/simulation/gdextension/simulation.gdextension.disabled b/gdextension/simulation/gdextension/simulation.gdextension.disabled new file mode 100644 index 0000000..1606bb1 --- /dev/null +++ b/gdextension/simulation/gdextension/simulation.gdextension.disabled @@ -0,0 +1,10 @@ +[configuration] +entry_symbol = "gdextension_entry" +compatibility_minimum = "4.2" + +[libraries] +linux.x86_64 = "res://gdextension/bin/linux/libsimulation.so" +linux.arm64 = "res://gdextension/bin/linux/libsimulation.so" +windows.x86_64 = "res://gdextension/bin/windows/libsimulation.dll" +macos.x86_64 = "res://gdextension/bin/macos/libsimulation.dylib" +macos.arm64 = "res://gdextension/bin/macos/libsimulation.dylib" diff --git a/gdextension/simulation/gdextension/simulation.gdextension.uid b/gdextension/simulation/gdextension/simulation.gdextension.uid new file mode 100644 index 0000000..63b280b --- /dev/null +++ b/gdextension/simulation/gdextension/simulation.gdextension.uid @@ -0,0 +1 @@ +uid://kl43xi0ixseg diff --git a/gdextension/simulation/godot-cpp b/gdextension/simulation/godot-cpp new file mode 160000 index 0000000..d5cc777 --- /dev/null +++ b/gdextension/simulation/godot-cpp @@ -0,0 +1 @@ +Subproject commit d5cc777a89d899665fb61f1650ef0dc0cf6488c4 diff --git a/gdextension/simulation/src/simulation_server.cpp b/gdextension/simulation/src/simulation_server.cpp index 0718a5b..e697abf 100644 --- a/gdextension/simulation/src/simulation_server.cpp +++ b/gdextension/simulation/src/simulation_server.cpp @@ -3,6 +3,7 @@ #include #include #include +#include namespace tactical_shooter { @@ -34,6 +35,18 @@ void SimulationServer::start() { last_snapshots_.clear(); hit_detection_.set_entities(living_entity_ptrs_); reset_stats(); + weapon_config_ = WeaponDamage(); + weapon_fire_rate_hz_ = 10.0f; + + // Initialize position history ring buffer + position_history_.clear(); + position_history_.resize(history_depth_); + history_write_index_ = 0; + for (auto &entry : position_history_) { + entry.tick = 0; + } + + last_hit_result_ = LastHitResult{}; } void SimulationServer::stop() { @@ -46,8 +59,10 @@ void SimulationServer::stop() { queued_inputs_.resize(kMaxEntities); pending_fires_.clear(); last_snapshots_.clear(); + position_history_.clear(); current_tick_ = 0; time_accumulator_ = 0.0f; + last_hit_result_ = LastHitResult{}; } bool SimulationServer::can_tick(float delta) { @@ -169,13 +184,30 @@ void SimulationServer::apply_input(uint16_t entity_id, const godot::Dictionary & input.input_sequence = static_cast(static_cast(input_dict["input_sequence"])); } + // If the shoot flag just transitioned from false→true, queue a weapon fire + // with the tick of this input so lag compensation has the right time reference. + if (input.shoot && !queued_inputs_[entity_id].input.shoot) { + PendingFire fire; + fire.shooter_id = entity_id; + fire.fire_tick = current_tick_; + fire.input_sequence = input.input_sequence; + pending_fires_.push_back(fire); + } + queued_inputs_[entity_id].input = input; queued_inputs_[entity_id].pending = true; } void SimulationServer::fire_weapon(uint16_t entity_id) { if (entity_id < kMaxEntities && entities_by_id_[entity_id].is_valid()) { - pending_fires_.push_back(entity_id); + PendingFire fire; + fire.shooter_id = entity_id; + fire.fire_tick = current_tick_; + // Use the input sequence from the shooter's last input if available + if (entities_by_id_[entity_id].is_valid()) { + fire.input_sequence = entities_by_id_[entity_id]->last_input().input_sequence; + } + pending_fires_.push_back(fire); } } @@ -296,13 +328,20 @@ void SimulationServer::process_tick() { } } - // 2. Update entity positions + // 2. Record pre-move positions for lag compensation (BEFORE movement) + record_position_history(current_tick_); + + // 3. Update entity positions update_movement(); - // 3. Process combat (weapon fires) + // 4. Process combat with lag compensation update_combat(); - // 4. Clean up dead entities after combat + // 5. Process queued weapon fires from fire_weapon() calls (deprecated path, + // kept for backwards compat — modern path queues fires via apply_input) + // This is now handled inside update_combat() which drains pending_fires_ + + // 6. Clean up dead entities after combat for (auto &entity : entities_by_id_) { if (entity.is_valid() && !entity->is_alive()) { // Keep dead entities in list for ragdoll/corpse but mark @@ -310,7 +349,7 @@ void SimulationServer::process_tick() { } } - // 5. Rebuild living entity ptrs for hit detection next tick + // 7. Rebuild living entity ptrs for hit detection next tick living_entity_ptrs_.clear(); for (auto &e : entities_by_id_) { if (e.is_valid() && e->is_alive()) { @@ -340,40 +379,200 @@ void SimulationServer::update_movement() { } void SimulationServer::update_combat() { - static WeaponDamage default_weapon; + if (pending_fires_.empty()) return; - for (uint16_t shooter_id : pending_fires_) { - auto &shooter = entities_by_id_[shooter_id]; - if (!shooter.is_valid() || !shooter->is_alive()) continue; + // Sort fires by fire_tick (oldest first) for deterministic processing + std::sort(pending_fires_.begin(), pending_fires_.end(), + [](const PendingFire &a, const PendingFire &b) { + return a.fire_tick < b.fire_tick; + }); - // Calculate fire direction from entity's yaw/pitch - float yaw_rad = shooter->get_yaw() * (kPi / 180.0f); - float pitch_rad = shooter->get_pitch() * (kPi / 180.0f); - - godot::Vector3 direction( - std::cos(pitch_rad) * std::sin(yaw_rad), - -std::sin(pitch_rad), - std::cos(pitch_rad) * std::cos(yaw_rad) - ); - - godot::Vector3 origin = shooter->get_position(); - origin.y += 1.5f; // eye height - - HitResult hit = hit_detection_.process_shot( - origin, direction, shooter_id, default_weapon - ); - - if (hit.hit && hit.entity_id < kMaxEntities) { - auto &target = entities_by_id_[hit.entity_id]; - if (target.is_valid()) { - HitDetection::apply_damage(*target, hit.damage, 1.0f); - } - } + // Process each fire with lag compensation + for (auto &fire : pending_fires_) { + process_compensated_fire(fire); } pending_fires_.clear(); } +// ---- Lag Compensation --------------------------------------------------------- + +void SimulationServer::record_position_history(uint32_t tick) { + TickPositionSnapshot &slot = position_history_[history_write_index_]; + slot.tick = tick; + slot.entries.clear(); + + for (Entity *entity : living_entity_ptrs_) { + if (!entity) continue; + TickPositionSnapshot::Entry entry; + entry.entity_id = entity->get_entity_id(); + entry.position = entity->get_position(); + entry.flags = entity->get_flags(); + slot.entries.push_back(entry); + } + + history_write_index_ = (history_write_index_ + 1) % history_depth_; +} + +SimulationServer::RewindState SimulationServer::begin_rewind(uint32_t target_tick) { + RewindState state; + + // Find the closest position snapshot at or before the target tick + // Search backward from the write index + for (uint32_t i = 0; i < history_depth_; ++i) { + uint32_t idx = (history_write_index_ + history_depth_ - 1 - i) % history_depth_; + const TickPositionSnapshot &snap = position_history_[idx]; + if (snap.tick == 0) break; // uninitialized slot + + if (snap.tick <= target_tick) { + // Save current positions, then rewind to snapshot positions + for (auto &entry : snap.entries) { + if (entry.entity_id < kMaxEntities && + entities_by_id_[entry.entity_id].is_valid()) { + // Save current position + TickPositionSnapshot::Entry saved; + saved.entity_id = entry.entity_id; + saved.position = entities_by_id_[entry.entity_id]->get_position(); + saved.flags = entities_by_id_[entry.entity_id]->get_flags(); + state.saved.push_back(saved); + + // Rewind to snapshot position + entities_by_id_[entry.entity_id]->set_position(entry.position); + entities_by_id_[entry.entity_id]->set_flags(entry.flags); + } + } + break; + } + } + + // Update hit detection with current (now rewound) positions + // The living_entity_ptrs_ haven't changed, only positions have + return state; +} + +void SimulationServer::end_rewind(const RewindState &state) { + // Restore all saved positions + for (auto &saved : state.saved) { + if (saved.entity_id < kMaxEntities && + entities_by_id_[saved.entity_id].is_valid()) { + entities_by_id_[saved.entity_id]->set_position(saved.position); + entities_by_id_[saved.entity_id]->set_flags(saved.flags); + } + } +} + +void SimulationServer::process_compensated_fire(const PendingFire &fire) { + auto &shooter = entities_by_id_[fire.shooter_id]; + if (!shooter.is_valid() || !shooter->is_alive()) return; + + // Calculate fire direction from shooter's yaw/pitch at time of fire + float yaw_rad = shooter->get_yaw() * (kPi / 180.0f); + float pitch_rad = shooter->get_pitch() * (kPi / 180.0f); + + godot::Vector3 direction( + std::cos(pitch_rad) * std::sin(yaw_rad), + -std::sin(pitch_rad), + std::cos(pitch_rad) * std::cos(yaw_rad) + ); + + // Apply spread (random cone) + if (weapon_config_.spread_degrees > 0.0f) { + float spread_rad = weapon_config_.spread_degrees * (kPi / 180.0f); + float theta = static_cast(rand() % 360) * (kPi / 180.0f); + float phi = static_cast(rand() % 100) / 100.0f * spread_rad; + godot::Vector3 up(0.0f, 1.0f, 0.0f); + godot::Vector3 right = direction.cross(up).normalized(); + if (right.length_squared() < 0.001f) { + right = godot::Vector3(1.0f, 0.0f, 0.0f); + } + up = right.cross(direction).normalized(); + godot::Vector3 spread_offset = right * std::sin(theta) * std::sin(phi) + + up * std::cos(theta) * std::sin(phi); + direction = (direction + spread_offset).normalized(); + } + + // Shooter's eye position (current — not rewound) + godot::Vector3 origin = shooter->get_position(); + origin.y += 1.5f; // eye height + + // BEGIN LAG COMPENSATION: rewind targets to fire_tick positions + RewindState rewind_state = begin_rewind(fire.fire_tick); + + // Restore shooter to current position immediately (don't rewind the shooter) + for (auto it = rewind_state.saved.begin(); it != rewind_state.saved.end(); ) { + if (it->entity_id == fire.shooter_id) { + // Put shooter back to current position + entities_by_id_[fire.shooter_id]->set_position(it->position); + entities_by_id_[fire.shooter_id]->set_flags(it->flags); + // Remove from rewind set so end_rewind doesn't re-restore it + it = rewind_state.saved.erase(it); + } else { + ++it; + } + } + + // Update hit detection reference (pointers are still valid, positions changed) + hit_detection_.set_entities(living_entity_ptrs_); + + // Fire the shot against rewound target positions + HitResult hit = hit_detection_.process_shot( + origin, direction, fire.shooter_id, weapon_config_ + ); + + // END LAG COMPENSATION: restore all entity positions + end_rewind(rewind_state); + hit_detection_.set_entities(living_entity_ptrs_); + + // Apply damage if hit + if (hit.hit && hit.entity_id < kMaxEntities) { + auto &target_ref = entities_by_id_[hit.entity_id]; + if (target_ref.is_valid()) { + Entity *target_ptr = target_ref.ptr(); + HitDetection::apply_damage(*target_ptr, hit.damage, 1.0f); + + // Record hit result for GDScript feedback + last_hit_result_.hit = true; + last_hit_result_.entity_id = hit.entity_id; + last_hit_result_.damage = hit.damage; + last_hit_result_.distance = hit.distance; + last_hit_result_.hitbox_id = hit.hitbox_id; + last_hit_result_.killed = !target_ptr->is_alive(); + } + } else { + last_hit_result_.hit = false; + } +} + +// ---- Weapon Config ------------------------------------------------------------ + +void SimulationServer::set_weapon_config(const godot::Dictionary &config) { + WeaponDamage wd; + if (config.has("base_damage")) wd.base_damage = static_cast(static_cast(config["base_damage"])); + if (config.has("head_multiplier")) wd.head_multiplier = static_cast(static_cast(config["head_multiplier"])); + if (config.has("body_multiplier")) wd.body_multiplier = static_cast(static_cast(config["body_multiplier"])); + if (config.has("arm_multiplier")) wd.arm_multiplier = static_cast(static_cast(config["arm_multiplier"])); + if (config.has("leg_multiplier")) wd.leg_multiplier = static_cast(static_cast(config["leg_multiplier"])); + if (config.has("max_range")) wd.max_range = static_cast(static_cast(config["max_range"])); + if (config.has("spread_degrees")) wd.spread_degrees = static_cast(static_cast(config["spread_degrees"])); + if (config.has("fire_rate_hz")) weapon_fire_rate_hz_ = static_cast(static_cast(config["fire_rate_hz"])); + weapon_config_ = wd; +} + +void SimulationServer::set_history_depth(uint32_t ticks) { + history_depth_ = std::clamp(ticks, 16u, 256u); +} + +godot::Dictionary SimulationServer::get_last_hit_result() const { + godot::Dictionary result; + result["hit"] = last_hit_result_.hit; + result["entity_id"] = static_cast(last_hit_result_.entity_id); + result["damage"] = last_hit_result_.damage; + result["distance"] = last_hit_result_.distance; + result["hitbox_id"] = static_cast(last_hit_result_.hitbox_id); + result["killed"] = last_hit_result_.killed; + return result; +} + godot::PackedByteArray SimulationServer::serialize_state() { const uint16_t count = static_cast(living_entity_ptrs_.size()); if (count == 0) return godot::PackedByteArray(); @@ -462,6 +661,15 @@ void SimulationServer::_bind_methods() { ClassDB::bind_method(D_METHOD("set_movement_gravity", "gravity"), &SimulationServer::set_movement_gravity); ClassDB::bind_method(D_METHOD("set_movement_config", "config"), &SimulationServer::set_movement_config); + // Weapon config + ClassDB::bind_method(D_METHOD("set_weapon_config", "config"), &SimulationServer::set_weapon_config); + + // Lag compensation + ClassDB::bind_method(D_METHOD("set_history_depth", "ticks"), &SimulationServer::set_history_depth); + + // Hit feedback + ClassDB::bind_method(D_METHOD("get_last_hit_result"), &SimulationServer::get_last_hit_result); + // Benchmark ClassDB::bind_method(D_METHOD("get_stats"), &SimulationServer::get_stats); ClassDB::bind_method(D_METHOD("reset_stats"), &SimulationServer::reset_stats); diff --git a/gdextension/simulation/src/simulation_server.h b/gdextension/simulation/src/simulation_server.h index 2699f8f..3ec8514 100644 --- a/gdextension/simulation/src/simulation_server.h +++ b/gdextension/simulation/src/simulation_server.h @@ -12,12 +12,37 @@ #include #include +#include #include #include #include namespace tactical_shooter { +/** + * Position history ring-buffer entry — stores entity positions at a given tick. + * Used for lag compensation: we can rewind targets to where they were when a + * shot was fired, even if they've since moved. + */ +struct TickPositionSnapshot { + uint32_t tick = 0; + struct Entry { + uint16_t entity_id; + godot::Vector3 position; + uint16_t flags; + }; + std::vector entries; +}; + +/** + * A pending weapon fire with time-of-fire information for lag compensation. + */ +struct PendingFire { + uint16_t shooter_id = 0xFFFF; + uint32_t fire_tick = 0; // Server tick at which the fire was queued + uint32_t input_sequence = 0; // Client's input sequence (for reconciliation) +}; + /** * SimulationServer — the heart of the tactical shooter simulation. * @@ -37,6 +62,7 @@ namespace tactical_shooter { * - All entity simulation (movement, hit detection) runs in C++ * - Serialized state is handed to GDScript for network transport * - Player input arrives from GDScript, gets applied per-entity + * - Lag compensation stores a ring buffer of pre-move positions each tick * - Benchmark hooks for the 128Hz load test (t_f671f48a) */ class SimulationServer : public godot::Object { @@ -146,6 +172,43 @@ public: void set_movement_config(const godot::Dictionary &config); + // ---- Weapon Configuration (GDScript API) ---------------------------------- + + /** + * Set the weapon damage profile for hitscan weapons. + * Called from GDScript to define weapon stats. + * + * Dictionary keys: + * base_damage (float) — base damage per shot + * head_multiplier (float) — damage multiplier for head hits + * body_multiplier (float) — damage multiplier for body hits + * arm_multiplier (float) — damage multiplier for arm hits + * leg_multiplier (float) — damage multiplier for leg hits + * max_range (float) — maximum shot distance in units + * spread_degrees (float) — random spread per shot (degrees) + * fire_rate_hz (float) — max shots per second + */ + void set_weapon_config(const godot::Dictionary &config); + + // ---- Lag Compensation Configuration (GDScript API) ------------------------- + + /** + * Set the depth of the position history ring buffer (in ticks). + * More ticks = can compensate for higher latency but uses more memory. + * Default: 64 ticks (~500ms at 128Hz, enough for any reasonable ping). + */ + void set_history_depth(uint32_t ticks); + + // ---- Damaged / Death Signal (GDScript API via Dictionary return) ----------- + + /** + * Get the most recent hit result from processing combat. + * Returns Dictionary with: hit (bool), entity_id (int), damage (float), + * distance (float), hitbox_id (int), killed (bool). + * Empty if no shot was processed this tick. + */ + godot::Dictionary get_last_hit_result() const; + // ---- Benchmark / Stats (GDScript API) ------------------------------------ /** @@ -199,6 +262,29 @@ private: */ uint16_t allocate_entity_id(); + // ---- Lag Compensation (Position History) ---------------------------------- + + /** + * Record pre-move positions of all living entities for the given tick. + * Called at the start of process_tick(), BEFORE update_movement(). + */ + void record_position_history(uint32_t tick); + + /** + * Rewind target entities to positions stored at a given tick for hit + * detection, then restore them back. + */ + struct RewindState { + std::vector saved; + }; + RewindState begin_rewind(uint32_t target_tick); + void end_rewind(const RewindState &state); + + /** + * Process a single compensated fire: rewind, check hit, restore. + */ + void process_compensated_fire(const PendingFire &fire); + // ---- State -------------------------------------------------------------- bool running_ = false; @@ -225,8 +311,26 @@ private: }; std::vector queued_inputs_; - // Queued weapon fires (entity IDs) - std::vector pending_fires_; + // Queued weapon fires with lag-compensation info + std::vector pending_fires_; + WeaponDamage weapon_config_; + float weapon_fire_rate_hz_ = 10.0f; + + // Last hit result (queried by GDScript for feedback) + struct LastHitResult { + bool hit = false; + uint16_t entity_id = 0xFFFF; + float damage = 0.0f; + float distance = 0.0f; + uint8_t hitbox_id = 0; + bool killed = false; + }; + LastHitResult last_hit_result_; + + // Position history ring buffer (for lag compensation) + std::vector position_history_; + uint32_t history_depth_ = 64; + uint32_t history_write_index_ = 0; // Last serialized snapshot per entity (for delta compression) std::unordered_map last_snapshots_; diff --git a/scripts/config/server_config.gd.uid b/scripts/config/server_config.gd.uid new file mode 100644 index 0000000..2446596 --- /dev/null +++ b/scripts/config/server_config.gd.uid @@ -0,0 +1 @@ +uid://bn01mhwtitvyf diff --git a/scripts/map_packaging/map_downloader.gd.uid b/scripts/map_packaging/map_downloader.gd.uid new file mode 100644 index 0000000..a9f6835 --- /dev/null +++ b/scripts/map_packaging/map_downloader.gd.uid @@ -0,0 +1 @@ +uid://bhgxvmel117tg diff --git a/scripts/map_packaging/pack_map.gd.uid b/scripts/map_packaging/pack_map.gd.uid new file mode 100644 index 0000000..ed09229 --- /dev/null +++ b/scripts/map_packaging/pack_map.gd.uid @@ -0,0 +1 @@ +uid://dskw00g1p1ghe diff --git a/scripts/network/server_main.gd b/scripts/network/server_main.gd index 36aa198..4f92d3f 100644 --- a/scripts/network/server_main.gd +++ b/scripts/network/server_main.gd @@ -7,9 +7,11 @@ ## 1. Load config (env overrides) ## 2. Load the first map from the config's map rotation ## 3. Start ENet server on the configured port -## 4. Spawn players on the map using spawn markers -## 5. Broadcast spawn via RPC so clients create visual player nodes -## 6. Log player join/leave and replicate position +## 4. Create GameServer and start simulation +## 5. Spawn players on the map using spawn markers +## 6. Broadcast spawn via RPC so clients create visual player nodes +## 7. Log player join/leave and replicate position +## 8. Hitscan weapon with lag compensation runs in GameServer extends Node @@ -31,6 +33,9 @@ var players: Dictionary = {} # peer_id → Node (player instance) var spawn_points_a: Array[Vector3] = [] # Team A spawns var spawn_points_b: Array[Vector3] = [] # Team B spawns +# Game server (drives simulation) +var _game_server: Node = null + # --------------------------------------------------------------------------- # Lifecycle # --------------------------------------------------------------------------- @@ -42,21 +47,27 @@ func _ready() -> void: if OS.has_environment("SERVER_PORT"): effective_port = int(OS.get_environment("SERVER_PORT")) print("[ServerMain] Port overridden by SERVER_PORT env: %d" % effective_port) - + + # Create GameServer (drives the 128Hz simulation + hit detection) + _game_server = preload("res://server/scripts/game_server.gd").new() + add_child(_game_server) + # GameServer registers SimulationServer as a singleton on _ready + _game_server.start_simulation() + # Instance the map from the config's map rotation _load_map() - + # Start the ENet server var err: Error = NetworkManager.start_server(effective_port) if err != OK: push_error("[ServerMain] Failed to start server: %s" % error_string(err)) get_tree().quit(1) return - + # Connect signals NetworkManager.player_connected.connect(_on_player_connected) NetworkManager.player_disconnected.connect(_on_player_disconnected) - + print("[ServerMain] Tactical Shooter server ready") print("[ServerMain] Port: %d" % effective_port) print("[ServerMain] Name: \"%s\"" % ServerConfig.server_name) @@ -64,6 +75,7 @@ func _ready() -> void: print("[ServerMain] Maps: %s" % ServerConfig.map_list) print("[ServerMain] Headless: %s" % (DisplayServer.get_name() == &"headless")) print("[ServerMain] Spawn pts: Team A=%d, Team B=%d" % [spawn_points_a.size(), spawn_points_b.size()]) + print("[ServerMain] Lag comp: Enabled (64-tick history = %dms)" % [64.0 * 1000.0 / ServerConfig.tick_rate]) func _exit_tree() -> void: NetworkManager.stop() @@ -137,36 +149,50 @@ func _spawn_player(peer_id: int) -> void: else: player = Node3D.new() player.set_script(preload("res://scripts/network/player.gd")) - + player.name = "Player_%d" % peer_id player.set_multiplayer_authority(peer_id) - + # Assign spawn position — alternate between Team A and Team B spawns var is_team_a: bool = (peer_id % 2) == 0 var pool: Array[Vector3] = spawn_points_a if is_team_a else spawn_points_b var spawn_pos: Vector3 = pool[peer_id % pool.size()] if pool.size() > 0 else Vector3.ZERO spawn_pos.y = 0.0 player.position = spawn_pos - + add_child(player, true) players[peer_id] = player player_spawned.emit(peer_id) - + + # Register with GameServer to get a simulation entity + if _game_server != null and _game_server.has_method(&"spawn_player_entity"): + var entity_id: int = _game_server.spawn_player_entity(peer_id, spawn_pos) + if entity_id >= 0: + # Store entity_id on player node for reference + player.set_meta(&"entity_id", entity_id) + print("[ServerMain] Player %d assigned entity %d" % [peer_id, entity_id]) + # Broadcast spawn to all clients so they create a visual player node NetworkManager.broadcast_spawn_player.rpc(peer_id, spawn_pos, is_team_a) - + print("[ServerMain] Spawned player %d at (%.1f, %.1f) team=%s" % [peer_id, spawn_pos.x, spawn_pos.z, "A" if is_team_a else "B"]) func _despawn_player(peer_id: int) -> void: if peer_id in players: var player: Node = players[peer_id] + + # Despawn entity from GameServer + if _game_server != null and player.has_meta(&"entity_id"): + var entity_id: int = player.get_meta(&"entity_id") + _game_server.despawn_player_entity(entity_id) + player.queue_free() players.erase(peer_id) player_despawned.emit(peer_id) - + # Broadcast despawn to all clients NetworkManager.broadcast_despawn_player.rpc(peer_id) - + print("[ServerMain] Despawned player %d" % peer_id) else: # Still broadcast even if server doesn't have the player diff --git a/server/plugins/hello_world/hello_world.gd.uid b/server/plugins/hello_world/hello_world.gd.uid new file mode 100644 index 0000000..7841dd4 --- /dev/null +++ b/server/plugins/hello_world/hello_world.gd.uid @@ -0,0 +1 @@ +uid://b4o1jrr5mmue0 diff --git a/server/scripts/game_server.gd b/server/scripts/game_server.gd new file mode 100644 index 0000000..07a5ac6 --- /dev/null +++ b/server/scripts/game_server.gd @@ -0,0 +1,174 @@ +## GameServer — drives the 128Hz simulation loop. +## +## Owns a SimulationServer instance, drives its tick loop in _physics_process, +## and manages weapon configuration. Acts as the bridge between the GDScript +## world (NetworkManager, ServerMain) and the C++ simulation core. +## +## Architecture: +## GameServer (Node, autoload candidate) +## ├── SimulationServer (GDExtension C++) — game state + hit detection +## │ ├── applies client input via apply_input() +## │ └── process_compensated_fire() with lag compensation rewind +## └── WeaponManager (optional, on the player node for client-side rate limit) +## +## Usage (server_main.gd): +## func _ready(): +## var gs = GameServer.new() +## add_child(gs) +## gs.configure(ServerConfig.tick_rate, ServerConfig.make_movement_dict()) +## +## Standalone / listen-server test: +## var gs = get_node("/root/GameServer") +## if gs: gs.start_simulation() +## +extends Node + +# --------------------------------------------------------------------------- +# Signals +# --------------------------------------------------------------------------- + +## Emitted after each simulation tick with hit results. +signal tick_completed(tick: int) + +## Emitted when a player is damaged (for scoreboard/UI updates). +signal player_damaged(victim_entity_id: int, shooter_entity_id: int, damage: float, killed: bool) + +# --------------------------------------------------------------------------- +# State +# --------------------------------------------------------------------------- + +var simulation_server: Object = null +var is_running: bool = false + +# Map entity_id → peer_id for broadcasting damage events +var entity_to_peer: Dictionary = {} # entity_id (int) → peer_id (int) + +# --------------------------------------------------------------------------- +# Lifecycle +# --------------------------------------------------------------------------- + +func _ready() -> void: + # Create the SimulationServer + simulation_server = SimulationServer.new() + simulation_server.set_tick_rate(128) + + # Apply movement config from ServerConfig singleton if available + if ServerConfig and ServerConfig.has_method(&"make_movement_dict"): + simulation_server.set_movement_config(ServerConfig.make_movement_dict()) + + # Configure the default hitscan weapon (Assault Rifle) + simulation_server.set_weapon_config({ + "base_damage": 30.0, + "head_multiplier": 4.0, + "body_multiplier": 1.0, + "arm_multiplier": 0.75, + "leg_multiplier": 0.6, + "max_range": 500.0, + "spread_degrees": 0.5, + "fire_rate_hz": 10.0, + }) + + # Set history depth for lag compensation (64 ticks = ~500ms at 128Hz) + simulation_server.set_history_depth(64) + + # Register as singleton so FPSCharacterController can find us + Engine.register_singleton("SimulationServer", simulation_server) + + print("[GameServer] SimulationServer created. Tick rate: %d Hz" % simulation_server.get_tick_rate()) + +func _exit_tree() -> void: + if simulation_server: + simulation_server.stop() + simulation_server = null + +# --------------------------------------------------------------------------- +# Public API +# --------------------------------------------------------------------------- + +## Start the simulation. +func start_simulation() -> void: + if is_running: + return + if simulation_server == null: + push_error("[GameServer] SimulationServer is null, cannot start") + return + + simulation_server.start() + is_running = true + print("[GameServer] Simulation started") + +## Stop the simulation. +func stop_simulation() -> void: + if not is_running: + return + if simulation_server: + simulation_server.stop() + is_running = false + print("[GameServer] Simulation stopped") + +## Spawn a player entity and map to peer ID. +## Returns the entity ID assigned by the simulation server. +func spawn_player_entity(peer_id: int, spawn_pos: Vector3) -> int: + if simulation_server == null: + return -1 + + if not is_running: + start_simulation() + + var entity_id: int = simulation_server.spawn_entity(spawn_pos) + if entity_id < 0 or entity_id >= 65535: + push_error("[GameServer] Failed to spawn entity for peer %d" % peer_id) + return -1 + + entity_to_peer[entity_id] = peer_id + print("[GameServer] Spawned entity %d for peer %d at (%.1f, %.1f, %.1f)" % [entity_id, peer_id, spawn_pos.x, spawn_pos.y, spawn_pos.z]) + return entity_id + +## Despawn a player entity. +func despawn_player_entity(entity_id: int) -> void: + if simulation_server == null: + return + + if entity_id >= 0: + simulation_server.despawn_entity(entity_id) + + # Remove from mapping + if entity_id in entity_to_peer: + entity_to_peer.erase(entity_id) + +## Get the peer ID for a given entity ID. +func get_peer_for_entity(entity_id: int) -> int: + return entity_to_peer.get(entity_id, -1) + +## Get the underlying SimulationServer reference. +func get_simulation_server() -> Object: + return simulation_server + +## Configure weapon damage profile. +func set_weapon(config: Dictionary) -> void: + if simulation_server: + simulation_server.set_weapon_config(config) + +# --------------------------------------------------------------------------- +# Main loop (128 Hz) +# --------------------------------------------------------------------------- + +func _physics_process(delta: float) -> void: + if not is_running or simulation_server == null: + return + + # Drive the fixed-timestep simulation loop + while simulation_server.can_tick(delta): + var snapshot: PackedByteArray = simulation_server.tick() + # snapshot is the serialized state — send to network layer in Phase 2 + # For now, just emit the tick completed signal + tick_completed.emit(simulation_server.get_stats().get("tick_count", 0)) + + # Check for hit results and emit damage events + var hit_result: Dictionary = simulation_server.get_last_hit_result() + if hit_result.get("hit", false): + var victim_id: int = hit_result.get("entity_id", -1) + var damage: float = hit_result.get("damage", 0.0) + var killed: bool = hit_result.get("killed", false) + # For now we don't know the shooter — this will be wired in Phase 2 + player_damaged.emit(victim_id, -1, damage, killed) diff --git a/server/scripts/game_server.gd.uid b/server/scripts/game_server.gd.uid new file mode 100644 index 0000000..b26fed6 --- /dev/null +++ b/server/scripts/game_server.gd.uid @@ -0,0 +1 @@ +uid://cie4mab2d8q6t diff --git a/server/scripts/plugin_api/plugin_base.gd.uid b/server/scripts/plugin_api/plugin_base.gd.uid new file mode 100644 index 0000000..1617ff0 --- /dev/null +++ b/server/scripts/plugin_api/plugin_base.gd.uid @@ -0,0 +1 @@ +uid://b7p2vpaanma77 diff --git a/server/scripts/plugin_api/plugin_manager.gd b/server/scripts/plugin_api/plugin_manager.gd index c1170bb..7d7090c 100644 --- a/server/scripts/plugin_api/plugin_manager.gd +++ b/server/scripts/plugin_api/plugin_manager.gd @@ -21,7 +21,8 @@ ## plugin rescan — re-scan the plugins directory extends Node -class_name PluginManager +## Duplicate class_name removed — already registered as autoload singleton. +## class_name PluginManager # --------------------------------------------------------------------------- # Signals @@ -558,8 +559,7 @@ func _rcon_info(args: PackedStringArray) -> String: func _rcon_rescan(_args: PackedStringArray) -> String: var count: int = rescan() - return "Rescan complete: %d manifest(s) found, %d plugin(s) loaded.\\r\\n" % - [count, loaded_plugins.size()] + return "Rescan complete: %d manifest(s) found, %d plugin(s) loaded.\\r\\n" % [count, loaded_plugins.size()] # --------------------------------------------------------------------------- # Utility / logging diff --git a/server/scripts/plugin_api/plugin_manager.gd.uid b/server/scripts/plugin_api/plugin_manager.gd.uid new file mode 100644 index 0000000..9c10eb9 --- /dev/null +++ b/server/scripts/plugin_api/plugin_manager.gd.uid @@ -0,0 +1 @@ +uid://bjfhqc378oifb diff --git a/server/scripts/plugin_api/plugin_manifest.gd.uid b/server/scripts/plugin_api/plugin_manifest.gd.uid new file mode 100644 index 0000000..255b117 --- /dev/null +++ b/server/scripts/plugin_api/plugin_manifest.gd.uid @@ -0,0 +1 @@ +uid://de5u8rubtedqh diff --git a/server/scripts/rcon_command_handler.gd.uid b/server/scripts/rcon_command_handler.gd.uid new file mode 100644 index 0000000..459dcf8 --- /dev/null +++ b/server/scripts/rcon_command_handler.gd.uid @@ -0,0 +1 @@ +uid://d2jf8ky1luqdw diff --git a/server/scripts/rcon_server.gd.uid b/server/scripts/rcon_server.gd.uid new file mode 100644 index 0000000..927e8ff --- /dev/null +++ b/server/scripts/rcon_server.gd.uid @@ -0,0 +1 @@ +uid://dien2h11upj8b