chore(multiplayer): Phase 0 refactors + graphics/perf settings groundwork

Lands the non-networked Phase 0 tasks from multiplayer-todo.md (ship/camera/
arena refactors, sim constants, background FPS handling) plus a first pass
at exposing graphics/performance settings (presets, resolution scaling,
vsync, FPS cap, perf overlay) and a GPU profiling harness for the
real-hardware follow-up in task 0.15b.
This commit is contained in:
Josh Creek
2026-08-19 22:37:17 +01:00
parent 88591e031f
commit 04691aaa48
29 changed files with 2212 additions and 134 deletions
+12
View File
@@ -9,3 +9,15 @@ extends RefCounted
var thrust := Vector3.ZERO # Per-axis -1..1: x = strafe, y = vertical, z = forward/back
var rotation := Vector3.ZERO # Per-axis -1..1: x = pitch, y = yaw, z = roll
var turbo := false
# Returns a distinct ShipAction with equal fields. Callers that hold onto an
# action past the tick it was returned in (input history, prediction ring)
# must copy() it — get_action() implementations are free to return a reused
# instance, and player_ship_controller.gd's does.
func copy() -> ShipAction:
var c := ShipAction.new()
c.thrust = thrust
c.rotation = rotation
c.turbo = turbo
return c