Skip to content

Audit progression-route danger and pilot safer travel loops #20

Description

@zoeyrose

Architecture amendment — one authored content source (2026-08-13)

Initiative atrinik/atrinik#357 supersedes every future live-branch instruction below. atrinik/content@main is the sole mutable authored source for replacement and Classic targets. Future authored changes land only on main; supported Classic artifacts are deterministically derived from the same immutable main revision. Do not create, restore, author, backport, validate, or publish through a live 1.x branch.

Exact historical 1.x commits, tags, releases, assets, preserved local snapshots, provenance, parity records, and comparisons remain valid immutable evidence. This amendment changes no other feature, balance, lore, compatibility, licensing, validation, or ownership acceptance criterion.

Important

The gameplay/authored-content decisions in this issue are preserved. This revision changes only the technical implementation path for the fresh MIT Go/Rust replacement program. atrinik/content remains separately/mixed licensed data; MIT engine/tooling code does not relicense the corpus.

Replacement implementation contract

Preserve the complete progression-route and danger-signaling design. Author routes/encounters/rewards as compiled content; Go progression, encounters, metrics, AI, and scene authority enforce them; Rust renders typed danger/readiness cues. Technical migration must not rebalance or replace the design.

Common migration gates

  • Stable authored identities and behavior remain the source of truth; localized/rendered text and filesystem order are never identity.
  • Content is parsed, validated, transacted, and compiled by released content-toolkit; production Go/Rust consumers do not add private source parsers.
  • Runtime authority belongs to native Go services and bounded compiled definitions/CEL; Starlark is considered only through the residual go/no-go issue.
  • Verification uses deterministic compiler/conformance fixtures and wrapper-managed Go-server/Rust-client scenarios.
  • Verified original past work by a listed approved MIT provenance grantor may be copied, migrated, translated, or relicensed under MIT only through the merged complete-history policy in docs: register MIT provenance grantors atrinik#275; all asset/data notices remain exact.

Content release-line scope

This future feature targets content@main and the canonical replacement stack. It is not automatically backported to content@1.x; any separately approved classic maintenance uses a linked pull request under #45, preserves the same gameplay/content decision and attribution, and validates only compatible classic consumers.

Preserved product/design specification and historical implementation notes

Summary

Add a source-derived progression-route danger audit and use Old Outpost plus the Asteria/Eld Woods travel loop as the first route-safety pilots.

The playtest found cases where mandatory access or return travel was more lethal and time-consuming than the destination: dense crocodile/giant/ettin approaches, ranged rock pressure, persistent packs, and long retracing after death or disconnect. That makes content selection depend on hidden route cost and encourages staying in one safe farming circuit.

The goal is not to make wilderness harmless or build a global teleport hub. It is to make intended progression routes legible, auditable, and recoverable while preserving dangerous optional encounter areas.

Existing building blocks

  • World maps already form a graph through tiled-map headers and explicit exit slaying paths.
  • The map checker parses maps/archetypes and validates structural references.
  • The farming/navigation analysis already distinguishes likely simultaneous aggro from broader proximity clusters and can model source-authored route pressure.
  • Savebeds (server/src/types/savebed.c) set both death and Word-of-Recall destinations; the editor guidance correctly requires them to be secure town locations, so they are not dungeon checkpoints.
  • Teleport/interface actions can explicitly update a savebed, and ships/one-way exits already provide authored travel shortcuts.
  • Word of Recall (server/src/server/spell_effect.c::cast_wor) has a delayed escape and can be blocked by map magic rules.

Proposed design

1. Declare intended route bands

Add authored metadata or an audit manifest for reviewed destinations:

  • destination/region ID and intended character or active-skill band;
  • accepted entry points and return paths;
  • whether the path is introductory, ordinary, dangerous, or intentionally aspirational;
  • required travel services/checkpoints and expected escape assumptions.

Do not infer design intent solely from treasure difficulty or average monster level. Keep the metadata stable and validate map/region references.

2. Compute mandatory-route pressure

Extend the source-derived world graph tooling to evaluate each accepted route for:

  • maximum likely simultaneous aggro and proximity density;
  • maximum hostile level relative to the intended band;
  • ranged/spell pressure and major damage/status families;
  • unavoidable choke points and one-way transitions;
  • distance/time from the nearest safe return node;
  • whether a route remains traversable in both directions after ordinary spawns engage.

Report the worst required segment, not only a route-wide average. Flag destinations whose only accepted route exceeds the declared band or whose return path is materially worse than entry. Output the exact map, coordinates/edge, and contributing spawns so authors can fix the content rather than suppress a warning blindly.

3. Pilot targeted content repairs

For Old Outpost and the Asteria/Eld Woods loop, inspect the audit result and choose the smallest coherent authored repair per hotspot:

  • move an intended road around optional high-density packs;
  • reduce or separate unavoidable spawn clusters while preserving nearby hunting areas;
  • add a guarded rest/waystation in a genuinely safe settlement exterior;
  • add a clearly signposted alternate route or return-only ship/exit after the player reaches a milestone;
  • add a secure town savebed where one is genuinely missing, never inside a dungeon;
  • add an emergency return interaction where it cannot be used as a combat reset or destination skip.

Danger signs/rumors should warn about unavoidable ranged or elemental pressure before commitment. If a route is intentionally above the destination's apparent band, say so in-world and in the manifest rather than allowing accidental difficulty.

Do not globally lower the involved monster archetypes, delete optional wilderness encounters, make savebeds unsafe, or make Word of Recall instant/uninterruptible.

4. Separate travel unlocks from combat escape

Any shortcut should have explicit unlock and anti-exploit rules:

  • unlock by reaching a safe endpoint, quest milestone, or paying an appropriate fare;
  • never bypass a one-time progression gate before first completion;
  • define whether it carries followers/party members and what happens in combat;
  • provide a reliable reverse/return path where promised;
  • persist unlock state through stable IDs if persistence is required.

Acceptance criteria

  • Reviewed destinations declare intended route bands, accepted entry/return paths, and intentional exceptions.
  • The audit identifies the worst mandatory segment with exact source maps/edges and hostile contributors.
  • It measures direct aggro, proximity density, ranged/spell pressure, level mismatch, chokes, route directionality, and distance to safety.
  • Old Outpost and Asteria/Eld Woods receive reviewed source-derived reports and targeted authored repairs for confirmed outliers.
  • An intended-level character has at least one legible, traversable route in and out without relying on monster AI exploits or disconnects.
  • Optional dangerous hunting areas remain available and existing progression gates cannot be skipped.
  • Savebeds remain secure town anchors; dungeon recovery uses distinct, explicitly safe mechanics.
  • Any ship/shortcut/emergency return has documented unlock, combat, party, persistence, and failure behavior.
  • Route warnings name important unavoidable ranged/elemental hazards before commitment.
  • Map graph/reference validation prevents dangling or one-way-by-accident travel links.

Validation

  • Unit-test graph compilation, tiled/external exits, directionality, hostile-radius calculations, time-gated spawns, and deterministic hotspot reporting.
  • Add regression fixtures for the two pilot routes before and after content repair.
  • Run the map checker on every changed map and validate all exit coordinates/paths.
  • Runtime-walk both directions at the intended level, including ordinary respawns, a death/retry, Word-of-Recall interruption, disconnect/reconnect, and any shortcut unlock.
  • Confirm no new savebed is reachable by monsters and no return mechanic can be spammed to reset combat or duplicate quest state.

Relevant areas

  • maps/shattered_islands/world_5_57* and Old Outpost approaches
  • Asteria/Eld Woods world maps, ships, and travel interfaces
  • maps/regions.reg
  • tools/map-checker/ and tools/map-checker-qt/
  • source-derived farming/navigation analysis and tests
  • server/src/types/savebed.c
  • server/src/server/spell_effect.c
  • travel/dialogue interfaces under maps/interfaces/

Related: atrinik/server#30 (progression tiers), #23/#140 (risk/reward encounters), atrinik/server#25 (combat escape/recovery timing), atrinik/server#24 (regional preparation knowledge).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Fields

    Priority

    None yet

    Start date

    None yet

    Target date

    None yet

    Effort

    None yet

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions