This roadmap is the durable handoff document for the MMO Project modernization effort. Its purpose is to make the project resumable at any point without relying on conversation history or informal notes. Before beginning a modernization session, read the current checkpoint and immediate next work package. Before stopping, update the task checkboxes, checkpoint summary, and change log. This is not a feature wishlist — every item here is grounded in what the preserved legacy system actually does.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/TaylorZaneKirk/MMO-Project/llms.txt
Use this file to discover all available pages before exploring further.
Current status
Phase 2 — Architecture and Migration Prototype — is active. Phase 1 (Legacy System Specification) is complete for prototype-planning purposes. The specification documents covering the startup and session flow, gameplay rules and formulas, security findings, decisions, and feature parity matrix all exist underdocs/modernization/.
The current verified prototype baseline is:
login → character load → enter world → world snapshot → authoritative movement → inventory/equipment → reconnect → logoutThis sequence has been confirmed locally against a seeded PostgreSQL database with a Godot desktop client, authoritative click-to-move, reconnect restoration within the 10-second grace window, DB-backed inventory and equipment snapshots, authoritative equip/unequip and food consumption, and local and remote equipped-item visuals on player composites.Phase overview
Phase 0 — Preservation and Discovery
Phase 0 — Preservation and Discovery
Objective: Produce trustworthy, repeatable evidence from the legacy client and server.Key work items:
- Create a machine-readable manifest of every original and extracted file, including size and checksum.
- Compare ProjectorRays and Director Cast Ripper Lingo outputs and explain meaningful differences.
- Identify the active client entry scripts, frame markers, linked casts, and Xtras.
- Separate clean extraction output from earlier mixed or duplicate export directories.
- Record any extraction warnings and unsupported cast-member types.
- Capture representative legacy behavior in an isolated runtime where feasible.
- Every legacy input and extraction result is reproducible and checksummed.
- Active source and generated or stale Director chunks can be distinguished.
- Unknown or failed extraction areas are explicitly documented.
Phase 1 — Legacy System Specification (complete)
Phase 1 — Legacy System Specification (complete)
Objective: Convert the extracted implementation into a behavioral specification for the rewrite.Key deliverables:
LEGACY_SYSTEM_INVENTORY.md, FEATURE_PARITY_MATRIX.md, PROTOCOL_CATALOG.md, DATA_FORMAT_CATALOG.md, SECURITY_FINDINGS.md, DECISIONS.md, GAMEPLAY_RULES_AND_FORMULAS.md.Key work items:- Catalog client startup, login, character creation, and session flows.
- Map client message subjects to server handlers and classify unmatched subjects.
- Document map, character, inventory, NPC, monster, quest, bank, guild, house, and settings formats.
- Document combat, stat, skill, spell, loot, economy, and progression formulas.
- Inventory core and secondary gameplay systems.
- Mark each feature as required, optional, obsolete, unsafe, or not yet understood.
- Identify behavior implemented in frames, casts, Xtras, or assets rather than Lingo.
- A developer can explain the complete login-to-gameplay lifecycle without reopening the Director movie.
- Every known feature has a parity classification and evidence reference.
- Data formats needed by the vertical slice have documented schemas.
Phase 2 — Architecture and Migration Prototype (active)
Phase 2 — Architecture and Migration Prototype (active)
Objective: Prove the proposed client, server, network, and content-import approach.Key work items:
- Write and maintain
PHASE_2_PROTOTYPE_SCOPE.mdas the prototype boundary document. - Create and maintain an interface-first scaffold under
prototype/before runtime implementation starts. - Prototype map rendering, sprite animation, input, and UI scaling.
- Create a representative 20×20 world of 17×9 chunks centered on
x1000y992. - Prototype authenticated client/server connectivity and server-authoritative movement.
- Define versioned transport messages for login, account-character load, world entry, world snapshots, movement, reconnect, logout, NPC updates, and remote-player updates.
- Define initial PostgreSQL schemas for account/session/character/map/presence/status/inventory/item-definition state.
- Prototype one legacy data importer with validation reporting.
- Benchmark rendering and network behavior on representative hardware.
- One legacy or representative map renders accurately enough to validate the rendering stack.
- Two clients can authenticate, enter the map, and observe authoritative movement.
- The prototype demonstrates that the selected stack is viable or records why it must change.
Phase 3 — Playable Vertical Slice
Phase 3 — Playable Vertical Slice
Objective: Deliver the first complete modern gameplay loop.Required flow:
account login → load account character → enter map → move → chat → fight one monster → receive loot → save → disconnect → reconnectKey work items:- Implement secure accounts, password hashing, sessions, and character ownership.
- Implement map instances, spawning, movement, collision, and transitions.
- Implement chat with validation and rate limits.
- Implement a minimal authoritative combat and stat model.
- Implement one monster, one NPC, inventory, equipment, loot, death, and persistence.
- Import enough original content to validate visual and behavioral fidelity.
- Add automated unit, integration, migration, and reconnect tests.
- Add structured logging, health checks, and a deployable test environment.
- The required flow works entirely on the modern stack.
- Disconnects and retries cannot duplicate items or currency.
- The slice is deployable from a clean checkout using documented commands.
Phase 4 — Core Gameplay Parity
Phase 4 — Core Gameplay Parity
Objective: Restore the main MMORPG systems needed for sustained play.Key work areas:
- Character stats, classes, experience, leveling, and death.
- Items, equipment, durability, inventory, storage, and drops.
- Combat, spells, effects, skills, crafting, gathering, and hunger.
- Monsters, NPC behavior, shops, quests, portals, and treasures.
- Banking, mail, message boards, and world-state timers.
- Map transitions, environmental behavior, boats, and airships.
- Required core features in the parity matrix are implemented and tested.
- Economy and progression operations are authoritative and transactional.
- Imported content passes referential-integrity and gameplay smoke tests.
Phase 5 — Social, Housing, and Secondary Systems
Phase 5 — Social, Housing, and Secondary Systems
Phase 6 — Modern Content and Administration Tools
Phase 6 — Modern Content and Administration Tools
Objective: Replace privileged in-client editing and unsafe file-transfer commands.Key work areas:
- Authenticated map editor.
- NPC, monster, item, quest, drop, and configuration editors.
- Content validation, preview, publishing, versioning, and rollback.
- Moderation dashboard and immutable administrative audit trail.
- Backup, restore, and data-repair tooling.
- Routine world administration requires no direct filesystem or database editing.
- Content changes can be reviewed, validated, published, and rolled back safely.
Phase 7 — Migration, Hardening, and Release
Phase 7 — Migration, Hardening, and Release
Objective: Prepare the modern game for real players and ongoing operation.Key work areas:
- Rehearse content and account migration using repeatable snapshots.
- Run load, soak, reconnect, abuse, and transaction-concurrency testing.
- Add TLS, rate limiting, monitoring, alerting, backups, and restore drills.
- Create staging and production deployment pipelines.
- Run closed alpha, rollback rehearsal, open beta, and release readiness review.
- Migration is repeatable and reconciles source and destination counts.
- Restore and rollback procedures have been tested rather than merely documented.
- Release-blocking security and data-integrity findings are resolved.
Estimated scale
The current rough-order estimate is 42–62 person-months for faithful feature parity. This assumes that existing content can be reused at high rates, substantial new art is not required, the currently recommended stack choices remain viable through Phase 2, and early releases prioritize the required parity set before every secondary or admin surface is fully polished.| Team size | Approximate calendar range |
|---|---|
| 4 experienced contributors | 12–20 months |
| 2 experienced contributors | 2–3.5 years |
| 1 full-time contributor | 3.5–5+ years |
| 4-person playable vertical slice only | ~5–8 months |
Known risks
| Risk | Consequence | Mitigation |
|---|---|---|
| Repeated or internal Director container data | Stale scripts may be mistaken for active behavior | Compare Director-aware exports and identify active cast and script references |
| Behavior outside Lingo | Important rules may be missed | Inspect frame markers, score data, cast metadata, Xtras, and runtime behavior |
| Client-authoritative legacy logic | Direct ports would preserve exploits | Re-specify commands as server-validated player intent |
| Flat-file and DBF inconsistencies | Migration may silently corrupt or omit data | Use schema validation, reconciliation reports, and immutable source snapshots |
| Missing automated legacy tests | Behavior comparisons may be subjective | Capture golden fixtures and representative runtime recordings |
| Scope expansion during parity work | The rewrite may never reach a playable state | Enforce the vertical-slice gate and parity classifications |
| Asset or distribution rights uncertainty | Public release could be blocked | Confirm ownership and redistribution rights before release planning |
Modernization principles
- Treat the legacy system as evidence, not as an architecture template.
- Preserve behavior intentionally; do not preserve vulnerabilities accidentally.
- Keep gameplay rules independent from rendering, transport, and persistence.
- Validate every migrated data format with repeatable import tests.
- Make all economy-changing operations transactional and auditable.
- Prefer one playable end-to-end path over many disconnected partial systems.
- Keep generated extraction output separate from handwritten modernization code.
- Do not place secrets, passwords, private keys, or production credentials in the repository.