shawn f6d69545c9 feat: implement client-side prediction and reconciliation system
Add client-side prediction (t_p1_pred) with:

- scripts/network/snapshot.gd — lightweight snapshot resource with
  to_dict/from_dict serialization for RPC. Stores position (Vector3),
  rotation (Quaternion), velocity (Vector3), grounded (bool).

- scripts/network/client_prediction.gd — prediction/reconciliation
  controller. 64-entry ring buffer of local snapshots, sends inputs to
  server each physics tick (128Hz, ENet channel 0), detects misprediction
  on server state arrival, rewinds and re-applies unconfirmed inputs.
  Also supports remote player interpolation.

- scripts/network/network_manager.gd — new RPC endpoints for client
  prediction: send_client_input (client->server, ch 0) and
  send_server_state (server->client, ch 1). New signals for routing.

- client/characters/character/fps_character_controller.gd — prediction
  hooks in _physics_process: on_before_tick() captures pre-input
  snapshot, on_after_tick() sends input to server. Client prediction
  path uses local movement (instant feedback) instead of reading from
  SimulationServer entity.

Architecture:
  Each tick: client applies input → predicts new state locally
  → sends input to server → server returns authoritative state
  → client compares and reconciles if mismatch.
2026-07-01 20:21:16 -04:00
2026-06-30 21:00:57 -04:00
2026-07-01 01:00:29 +00:00

Tactical Shooter

A competitive, round-based tactical FPS built in Godot 4.

  • 128-tick authoritative dedicated servers
  • GDExtension (C++) simulation core
  • Community-hostable, self-hosted server browser
  • Map-making SDK for community maps

See PLANS/PROJECT_PLAN.md for the full build plan. See Mapmaking SDK docs to build and ship custom maps.

S
Description
Competitive tactical FPS built in Godot 4 — CS-clone with 128-tick authoritative servers
Readme MIT 67 MiB
v0.2.9 Latest
2026-07-06 03:55:26 +00:00
Languages
GDScript 98.7%
Shell 1.3%