Development Roadmap
Relevant source files
The following files were used as context for generating this wiki page:
The development roadmap for mcpi-recompiled defines a multi-phase strategy to achieve a source-accurate reconstruction and native port of Minecraft: Pi Edition 0.1.1 alpha. The primary focus is incremental compatibility, beginning with a portable build system and a functional reproduction of the original programming API before moving toward full game engine parity.
The project currently resides in the Bootstrap / Research stage, where the foundational architecture—including the build system, API server, and protocol parser—is being established to support future reconstruction of game logic and rendering systems.
Sources: README.md:15-21, README.md:23-25
Phase 1: Compatibility and Parity Goals
Phase 1 focuses on building a foundation that mirrors the original Minecraft: Pi Edition behavior on modern x86-64 Linux and Windows systems. Key objectives include native builds, API compatibility, and protocol support.
Technical Goals
- Native Execution: Build and run on modern Linux and Windows environments using C++20.
- API Preservation: Maintain full compatibility with the original MCPI protocol on TCP port
4711. - Asset Isolation: Ensure original binaries and assets remain outside the Git repository.
- Verification: Utilize automated tests and documented observations to track parity with the reference target (Pi Edition 0.1.1).
Sources: README.md:7-13, README.md:27-29, CMakeLists.txt:10-12
Implementation Phases
The project follows a structured seven-step progression toward full parity and eventual modernization.
| Step | Milestone | Status | Description |
|---|---|---|---|
| 1 | Bootstrap | Completed | Establish portable C++ build (CMake) and Continuous Integration. |
| 2 | API Harness | In Progress | Implement a protocol-compatible API test harness and server. |
| 3 | Documentation | Planned | Document original executable and platform assumptions. |
| 4 | Logic Reconstruction | Planned | Reconstruct platform-independent game systems (small, testable pieces). |
| 5 | Engine Components | Planned | Implement rendering, input, and windowing for modern systems. |
| 6 | Playable Parity | Planned | Reach functional parity with the original Pi Edition. |
| 7 | Modernization | Future | Optional addition of modern features post-parity. |
Sources: README.md:41-48
Current Architectural Progress
The current work focuses on the API Server and Protocol Parser, which are essential for Phase 2 milestones.
Protocol Parsing Logic
The system implements a specific parser for the MCPI string-based protocol, handling commands formatted as name(arg1,arg2,...).
The parser handles various command styles, including zero-argument calls like player.getPos() and text payloads like chat.post(message).
Sources: src/api/Command.cpp:25-63, tests/protocol_tests.cpp:21-43
API Server Architecture
The ApiServer uses a background worker thread to manage client connections and command execution without blocking the main game loop.
Build and Testing Infrastructure
The project utilizes CMake to manage cross-platform builds and ctest for parity validation. The build system is configured to treat the core API and game logic as a library (mcpi_core) to facilitate testing.
Key Components
- mcpi_core: Static library containing the API server and command logic.
- mcpi_protocol_tests: Validates string parsing against original protocol expectations.
- mcpi_api_server_tests: Ensures the TCP server correctly handles concurrent connections and command routing.
Sources: CMakeLists.txt:17-57, README.md:33-39
Conclusion
The mcpi-recompiled development roadmap prioritizes architectural stability and protocol accuracy. By establishing a robust API harness and build system in Phase 1 and 2, the project ensures that subsequent reconstruction of game systems (blocks, entities, and world generation) can be verified against the original 0.1.1 alpha behavior.
Sources: README.md:7-13, src/main.cpp:7-10