1. Include unified header files using lowercase filenames 2. Change special characters to escape sequences to solve encoding issues
MinecraftPE
Warning
Github repository isnt main. All issues and pull requests should be send in Gitea Repository.
Important
We have a discord server, where you can report bugs or send feedback https://discord.gg/c58YesBxve
Source code for Minecraft Pocket Edition 0.6.1 alpha with various fixes and improvements.
This project aims to preserve and improve this early version of Minecraft PE.
TODO / Roadmap
- Add platform GLFW
- Compile for Linux
- Compile for android aarch64
- Touch control improvements
- Screen fixes
- Rewrite platform logic
- Fix sound
- Do a server connection GUI
- Controller support
- Minecraft server hosting
- Screen fixess
- Fix fog
- Add sprinting
- Chat (semi working) and commands
- Implementing options
- Better F3
Build
CMake
Linux
- Install dependiences
(Debian-like)
sudo apt install build-essential git cmake libgl-dev libwayland-dev xorg-dev libxkbcommon-dev
(Arch-like)
sudo pacman -S base-devel git cmake libglvnd wayland xorg-server-devel xorgproto libxkbcommon
-
Create build folder
mkdir build && cd build -
Generate CMake cache and build the project
cmake .. -B .
cmake --build .
Windows
-
Install Visual studio Build Tools and CMake
-
Create build folder
mkdir build && cd build -
Generate CMake cache and build the project
cmake ..
cmake --build .
Visual Studio
- Open the repository folder in Visual Studio.
- Visual Studio will automatically detect the
CMakeLists.txtfile and generate the project configuration. - Set MinecraftPE.exe as the target.
- Press Run (or F5) to build and launch the game.
Android
Windows
-
Download Android NDK r14b:
http://dl.google.com/android/repository/android-ndk-r14b-windows-x86_64.zip -
Extract it to the root of your
C:drive so the path becomes:C:\android-ndk-r14b -
Run the build script:
# Full build (NDK + Java + APK + install)
.\build.ps1
# Skip C++ compilation (Java/assets changed only)
.\build.ps1 -NoCpp
# Skip Java compilation (C++ changed only)
.\build.ps1 -NoJava
# Only repackage + install (no compilation)
.\build.ps1 -NoBuild
Linux
-
Download Command line tools:
https://developer.android.com/studio#command-line-tools-only -
Unzip it into a folder, e.g.:
mkdir -p "$HOME/Android/Sdk/" unzip commandlinetools-linux-*.zip -d "$HOME/Android/Sdk/" -
Your structure should look like
$HOME/Android/Sdk/cmdline-tools/bin/sdkmanagerNote
sdkmanagerexpects the SDK to include acmdline-tools/latest/folder. If you only havecmdline-tools/bin, create the required layout:mkdir -p "$HOME/Android/Sdk/cmdline-tools/latest" ln -snf ../bin "$HOME/Android/Sdk/cmdline-tools/latest/bin" ln -snf ../lib "$HOME/Android/Sdk/cmdline-tools/latest/lib" ln -snf ../source.properties "$HOME/Android/Sdk/cmdline-tools/latest/source.properties" ln -snf ../NOTICE.txt "$HOME/Android/Sdk/cmdline-tools/latest/NOTICE.txt" -
Install the build tools (and platform) using
sdkmanagerexport ANDROID_SDK_ROOT="$HOME/Android/Sdk" export PATH="$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$PATH" sdkmanager --install "platform-tools" "platforms;android-35" "build-tools;35.0.0"Note
if you want build.sh to always find the SDK, Set ANDROID_SDK_ROOT in your shell config (~/.bashrc / ~/.profile / ~/.config/fish/config.fish), for example:
export ANDROID_SDK_ROOT="$HOME/Android/Sdk"Then restart your shell (or
sourcethe file) -
Verify the install
ls "$ANDROID_SDK_ROOT/build-tools"You should see a version folder like:
35.0.0 33.0.2 -
Download Android NDK r14b:
https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip -
Extract the archive to
/home/username/, so that the final directory path is/home/username/android-ndk-r14b/Warning
Make sure you don’t end up with a nested folder like
/home/username/android-ndk-r14b/android-ndk-r14b/. -
Re run
build.sh
Web
-
Download and install emsdk: https://emscripten.org/docs/getting_started/downloads.html
Note
On arch linux you can use AUR:
yay -Sy emsdk -
Configure and build project:
mkdir build && cd build cmake .. -B . -G Ninja "-DCMAKE_TOOLCHAIN_FILE=$EMSDK/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake" cmake --build . --target MinecraftPENote
If you are using VSCode with CMake plugin, you can add Emscripten kit
- Press Ctrl + Shift + P
- Type
CMake: Edit User-Local CMake Kitsand hit Enter - Add this:
{ "name": "Emscripten", "compilers": { "C": "/usr/lib/emsdk/upstream/bin/clang", "CXX": "/usr/lib/emsdk/upstream/bin/clang++" }, "toolchainFile": "/usr/lib/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake" } -
Run game:
emrun --port 8080 .