Repository & Asset Policy
Relevant source files
The following files were used as context for generating this wiki page:
The Repository & Asset Policy for the mcpi-recompiled project establishes strict guidelines regarding the inclusion of third-party intellectual property and the methods used for source reconstruction. As a native port project for Minecraft: Pi Edition 0.1.1 alpha, it aims to reproduce game behavior and API compatibility on modern Linux and Windows x86-64 systems without violating copyright or license terms associated with the original software.
The primary scope of this policy is to ensure that the Git history remains free of proprietary data, including executables, assets, and leaked source code. By maintaining this separation, the project focuses on original C++ implementation and documented observations to achieve parity with the reference target.
Sources: README.md:3-8, README.md:12-20
Content Prohibitions
The project maintains a strict "no-redistribution" stance regarding the original game files. Developers and contributors must adhere to the following restrictions when committing to the repository:
- Original Executables: The original
minecraft-piexecutable must never be committed. - Game Assets: Textures, sounds, and packaged game data (such as
.pckor similar formats) are strictly prohibited. - Proprietary Source: Leaked or proprietary source code from Mojang Studios or Microsoft is not allowed.
- Reverse-Engineering Notes: While observations are encouraged, they must remain factual and sourced, avoiding direct inclusion of disassembled or decompiled proprietary logic.
Sources: README.md:7-9, README.md:43-45
Asset Management and User Responsibility
Because the project does not redistribute assets, the responsibility for obtaining valid game files lies with the end-user. Users must provide their own original files that they are legally entitled to use. The build system and repository structure are designed to keep these external assets outside of the Git version control system.
Sources: README.md:8-10, README.md:20-21
Asset Separation Workflow
The following diagram illustrates how the project separates internal source code from external, user-provided assets.
The diagram shows that while the Native Binary is produced from the repository's source, the original game assets required for a full game experience are provided by the user at runtime and never enter the Git history.
Sources: README.md:7-10, README.md:43-45, CMakeLists.txt:23-45
Build and Testing Compliance
The project utilizes a portable C++ build system (CMake) to implement a protocol-compatible API test harness. This allows for validation of behavior against the Minecraft: Pi Edition protocol (TCP port 4711) without requiring the presence of original assets within the test suite.
| Component | Policy Compliance | Purpose |
|---|---|---|
| mcpi_core | Original C++ Implementation | Core logic and API server reconstruction. |
| mcpi_protocol_tests | Synthetic Test Data | Validates command parsing (e.g., world.setBlock) without original game data. |
| mcpi_api_server_tests | Loopback Mocking | Tests TCP connectivity using loopback addresses. |
| Main Bootstrap | Informational Output | Displays target version and protocol information. |
Sources: CMakeLists.txt:18-21, src/main.cpp:8-10, tests/protocol_tests.cpp:21-42, tests/api_server_tests.cpp:106-118
Verification Flow
The project uses automated tests to ensure that the reconstructed code matches the expected behavior of the original protocol without referencing the original binary code directly.
This flow demonstrates that parity is achieved through behavioral testing and native reconstruction of the protocol, rather than copying existing assets or code.
Sources: tests/protocol_tests.cpp:21-28, tests/api_server_tests.cpp:113-118, src/api/ApiServer.cpp:120-145
Licensing and Attribution
The project is unofficial and explicitly not affiliated with Mojang Studios or Microsoft. The licensing for new code developed within this project is intended to be documented before the first public release, while any original Minecraft Pi files used by the end-user remain subject to their original licensing terms.
Sources: README.md:7-8, README.md:48-50
Summary
The Repository & Asset Policy serves as a legal and technical safeguard for the mcpi-recompiled project. By strictly prohibiting the inclusion of original binaries and assets, and by relying on clean-room reconstruction and behavioral testing (via TCP port 4711), the project ensures that it remains a source-reconstruction effort rather than a redistribution of copyrighted material.
Sources: README.md:12-21, src/main.cpp:7-10, src/api/ApiServer.cpp:213-230