M2 — Tiled map & server-validated walkability #4
Labels
No labels
alpha:wave-0
alpha:wave-1
alpha:wave-2
alpha:wave-3
area:assets
area:combat
area:ecology
area:infra
area:render
area:scripting
area:ui
area:world
enhancement
epic
migration
post-alpha
roadmap
tech-debt
type:bug
type:chore
type:design
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
marco/IsoMmo#4
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Give the world a real, data-driven map with blocking terrain. Today the map is unbounded and the only move rule is the cooldown.
Scope
Worldvalidates every move against walkability (reject moves into blocked tiles) in addition to the cooldown.Open questions
Definition of Done
Base DoD applies on top (tests green, whole solution builds, zero warnings, multi-platform preserved); the criteria below are the issue-specific delta.
Worldrejects a move into a blocked tile and accepts one into a walkable tile (unit tests); a modified client cannot walk through walls.Done and merged to
main(commitfa5415e).The world is now a bounded, data-driven tile map (
content/maps/world.map, parsed byTileMapinIsoMmo.Shared, copied to both server and client).World.Tickvalidates every move against walkability — moves into obstacles or off-map are rejected server-side; spawn comes from the map, and a persisted off-map position is clamped to spawn. The client renders the bounded grass field (void outside), tile outlines, and obstacle trees; obstacle art is UO static art loaded at runtime with a placeholder fallback.Verified: TileMap unit tests, World walkability unit tests (reject into obstacle / off edge), the reconnect integration test (spawn-relative), and manually in-game (can't walk through trees or off the map). 119 tests green, zero warnings,
IsoMmo.Sharedwire contract unchanged. Real UO static extraction (trees from art.mul) is tracked in #16.