VinPropane
bb39a64ebd
NEON-28: rebake nav after F9 obstacle removal (dev smoke)
2026-04-10 23:11:01 -04:00
VinPropane
387b61b577
NEON-25: fix gdlint (line length, class-definitions-order)
2026-04-08 00:05:55 -04:00
VinPropane
4930fd89a6
NEON-25: isometric follow camera, CameraState, tests, and docs
2026-04-07 23:46:04 -04:00
VinPropane
72897a4924
NS-24: Fix GDScript lint (line length, gdlint, gdformat)
...
- Shorten file-header and doc comments to satisfy max-line-length.
- Rename bump collision preload const to BUMP_COLLISION_CONSTS_SCRIPT.
- Refactor idle floor-angle and walk-step logic for return/format rules.
2026-04-06 00:41:32 -04:00
VinPropane
7b11d4e238
NS-24: Eliminate idle jitter and movement QA bumps (Godot client)
...
Physics: Jolt 3D; physics_interpolation off; 120 TPS. CharacterBody3D idle
path uses dual floor_max_angle, rim/straddle and ridged-contact handling,
rim settle and random-floor-bump lip/wall escape, floor_block_on_wall,
NavigationAgent3D avoidance off, per-node interp off. No global_transform in
_process (avoid render/physics ghosting).
QA geometry: random_floor_bumps.gd (load from main.gd); each bump on its own
StaticBody3D under NavigationRegion3D; random_floor_bump_collision_constants.gd
for collider fudge and RANDOM_FLOOR_BUMP_MESH_GROUP.
Scene: player safe_margin and mesh Y lift; MoveRejectPedestal / MoveRejectFarPad
renamed from NS19*; Mat_player_capsule without polygon_offset (per follow-up).
Docs: NS-24 plan + resolution, client/README manual steps, code review
2026-04-05-NS-24.md; server/README bump height note. Code/scene identifiers
avoid ticket-based ns19_* naming.
2026-04-06 00:32:41 -04:00
VinPropane
a5ec8df4a7
NS-23: terminal collision, nav around obstacle, agent under region
...
- Add BoxShape3D to PrototypeTerminal (layer 1, walkable) so the player
cannot pass through; matches terminal mesh size.
- Bake navigation from collision layer 1 only so the player (layer 2) is
not merged into the mesh; reparent Player under NavigationRegion3D so
NavigationAgent3D resolves a valid map.
- Restore nav waypoint following for long horizontal legs; keep horizontal
steering toward next/goal so bump departure behavior stays sane.
2026-04-05 01:10:16 -04:00
VinPropane
f49c8b88d2
NS-23: Fix nav movement (sync bake, map guard, path/fallback steering)
2026-04-05 00:29:58 -04:00
VinPropane
0ac059fa3b
NS-23: NavigationAgent3D path-follow with server move authority
2026-04-05 00:23:03 -04:00
VinPropane
1f9260e8ba
chore(client): order const/var before @onready for gdlint
2026-04-05 00:02:59 -04:00
VinPropane
7fffc3137a
NS-19: auto-clear move reject label after 4s
2026-04-04 23:49:14 -04:00
VinPropane
32d2153acb
NS-19: server move validation, client rejection UX, scene QA props
2026-04-04 23:39:40 -04:00
VinPropane
b043e8ac45
NS-18: InteractionRequest, client prototype, Postgres test UX
...
Server: POST /game/players/{id}/interact, HorizontalReach, prototype registry, DTOs, tests; default spawn (-5,0.9,-5); dev HttpLogging.
Client: terminal, radius glow preview, interaction_request_client (interact/E), main wiring; obstacle moved off center.
Tests: postgres.runsettings, launchSettings, Docker compose auto-start/teardown harness, async-safe init.
Docs: plan AC, E1.M1 snapshot, alignment table, server/client README, code review 2026-04-04.
2026-04-04 20:19:33 -04:00
VinPropane
15b0ee0921
ci: gate .NET workflow on server paths; add GDScript lint/format CI
...
- Run .NET build/test only when the solution, server/, or the workflow changes.
- Add gdlint and gdformat --check for client/ on relevant path changes.
- Align client GDScript with gdtoolkit (formatting, enum order, line length).
2026-03-30 21:16:16 -04:00
VinPropane
3882b0e2c6
NS-16: MoveCommand → server PositionState, Godot sync, tests
...
Implement E1.M1 intent → authority: POST /game/players/{id}/move with v1 JSON
MoveCommandRequest (snap + sequence), extend in-memory store and
PositionStateApi. Godot client splits ground_pick and position_authority_client
with thin main.gd; snap_to_server on player.
Tests live under NeonSprawl.Server.Tests/Game/PositionState/ with AAA layout
and MethodName_ShouldExpectedOutcome_WhenScenario naming. Debug builds use
UseAppHost=false so Linux IDEs resolve .NET 10 from a user-local SDK.
Add NS-16 implementation plan, code review doc, godot-client-script-organization
rule, csharp test layout/naming rules, and refresh E1.M1 / alignment docs.
Server and client README updates include move API, prerequisites, and Rider
notes.
Made-with: Cursor
2026-03-30 19:54:17 -04:00
don
64092566a4
fix(client): reliable NS-14 click-to-move without NavigationMesh
...
- Drive movement with horizontal steering + move_and_slide toward click goal
- Remove NavigationRegion3D / NavigationAgent3D; obstacle interaction is slide
- main.gd: raycast to walkable, Player.set_move_goal; viewport camera + mouse
- Scene: explicit physics layers/mask on floor, obstacle, player
- Docs: Godot 4.6 baseline, README + NS-14 plan + tech_stack; Godot .import/.uid
Made-with: Cursor
2026-03-29 22:08:25 -04:00
don
343592541a
feat(client): NS-14 click-to-move with NavigationAgent3D
...
- Main scene: floor, obstacle, nav mesh, camera, CharacterBody3D + agent
- Click-to-move on walkable group; pick mask avoids avatar self-hit
- player.gd drives path following; README and plan AC updated
Made-with: Cursor
2026-03-29 21:19:52 -04:00
don
09a4106543
Update README and documentation to reflect project rebranding to "Neon Sprawl". Revise links to vision plan and adjust references in tech stack and decomposition documents. Enhance README with repository layout and instructions for running the server and client.
2026-03-29 17:23:00 -04:00