A from-scratch rewrite/combination of Beta++/Betrock and BetrockServer to combine their bests parts cleanly.
A full, from-scratch reimplementation of Minecraft Beta 1.7.3.
- Ideally BPP should be capable of acting as both a Client and Server
- Functionality would be extended where desired or necessary, but generally compatibility and faithfulness will be prioritized
- Cross-platform (Windows and Linux)
- Fully open-source, anyone can fork, commit and contribute
- Unless something requires decompiled code for the sake of accuracy, no decompiled code will be used, reimplemented or referenced. If it is used for anything, it'll be very clearly marked as such in the code via comments. At most it'll serve as a reference for what not to do, and what pitfalls we should avoid
This is another project that's part of/worked on by the OpenBeta Community. We have a Discord Server!
Please read the CONTRIBUTING page.
Simply clone the respository with git.
git clone https://github.com/OfficialPixelBrush/BetrockPlusPlus.git
cd BetrockPlusPlusAlternatively, download a .zip.
Prerequisites:
- CMake 3.16.0 (or later)
- MSVC 19.32 (or later)
- vcpkg
After those are all installed and set up, you can install the remaining dependencies with vcpkg.
# Install dependencies using vcpkg
.\vcpkg install libdeflate glfw3 glm openal-softBetrock++ also works on Linux! Theoretically, any Distro should be supported, so long as it has the required dependencies. Here're the commands for acquiring those on various Distros.
sudo apt install git cmake clang build-essential libdeflate-dev libglfw3-dev libglm-dev libopenal-dev libsdl3-dev libgl1-mesa-dev libasan8Note:
libsdl3-devis only packaged on Debian 13 (trixie) and newer, and Ubuntu 25.10 and newer. On Ubuntu 24.04/22.04 LTS it is not inapt, so you'll need a newer release or to build SDL3 from source.
sudo dnf install git cmake clang gcc gcc-c++ make libasan libdeflate-devel glfw-devel glm-devel openal-soft-devel SDL3-devel mesa-libGL-develsudo pacman -S git cmake clang base-devel libdeflate glfw glm openal sdl3 libasansudo zypper install git cmake clang gcc gcc-c++ make libdeflate-devel glfw-devel glm-devel openal-soft-devel SDL3-devel Mesa-libGL-devel libasan8sudo apk add git cmake clang gcc g++ make libdeflate-dev glfw-dev glm-dev openal-soft-dev sdl3-dev mesa-dev compiler-rtNote:
sdl3-devis currently only in the edge branch'scommunityrepo. Also, Alpine ships nolibasanand GCC's AddressSanitizer is broken on musl, so for Debug builds (which use-fsanitize=address) compile with clang, which uses the ASan runtime fromcompiler-rt.
sudo xbps-install -S base-devel git cmake clang libdeflate-devel glfw-devel glm libopenal-devel SDL3-devel MesaLib-devel libsanitizer-develsudo emerge dev-vcs/git dev-util/cmake sys-devel/clang sys-devel/gcc sys-devel/make dev-libs/libdeflate media-libs/glfw media-libs/glm media-libs/openal media-libs/libsdl3 media-libs/mesaFirst you prepare and enter the build directory.
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cd buildThis will make a Release Server build. If you'd like to build a client instead, use
cmake -S . -B build -DBUILD_SERVER=OFF -DCMAKE_BUILD_TYPE=Release
cd buildThen you build the project.
cmake --build .After that, it's as easy as running the built application.
./BetrockPlusPlusIf your compiler, cmake and dependencies are properly set up, Visual Studio Code (or anything based on it, like VSCodium) should just work. Click the run or build buttons in the bar at the bottom.
TODO
- Beta++ by JcbbcEnjoyer (Minecraft Beta 1.7.3 Client written in C++)
- LibreProg (fully FOSS Minecraft Beta 1.7.3 textures, sounds, etc.)
- Technical Beta Wiki (technical protocol and implementation reference)
- Betrock (McRegion world explorer)
- BetrockServer (Minecraft Beta 1.7.3 Server written in C++)
- Barak Shoshany. Licensed under the MIT license. BS::thread_pool. https://github.com/bshoshany/thread-pool