Compile Instructions
Visual Studio
- Clone or download the repository
- Open the repo folder in Visual Studio 2022+.
- Wait for cmake to configure the project and load all assets (this may take a few minutes on the first run).
- Right click a folder in the solution explorer and switch to the 'CMake Targets View'
- Select platform and configuration from the dropdown. EG:
Windows64 - DebugorWindows64 - Release - Pick the startup project
Minecraft.Client.exeorMinecraft.Server.exeusing the debug targets dropdown - Build and run the project:
-
Build > Build Solution(orCtrl+Shift+B) - Start debugging withF5.
Dedicated server debug arguments
- Default debugger arguments for
Minecraft.Server: -port 25565 -bind 0.0.0.0 -name DedicatedServer- You can override arguments in:
Project Properties > Debugging > Command ArgumentsMinecraft.Serverpost-build copies only the dedicated-server asset set:Common/Media/MediaWindows64.arcCommon/resWindows64/GameHDD
CMake (Windows x64)
Configure (use your VS Community instance explicitly):
Open Developer PowerShell for VS and run:
cmake --preset windows64
Build Debug:
cmake --build --preset windows64-debug --target Minecraft.Client
Build Release:
cmake --build --preset windows64-release --target Minecraft.Client
Build Dedicated Server (Debug):
cmake --build --preset windows64-debug --target Minecraft.Server
Build Dedicated Server (Release):
cmake --build --preset windows64-release --target Minecraft.Server
Run executable:
cd .\build\windows64\Minecraft.Client\Debug
.\Minecraft.Client.exe
Run dedicated server:
cd .\build\windows64\Minecraft.Server\Debug
.\Minecraft.Server.exe -port 25565 -bind 0.0.0.0 -name DedicatedServer
Notes:
- The CMake build is Windows-only and x64-only.
- Contributors on macOS or Linux need a Windows machine or VM to build the project. Running the game via Wine is separate from having a supported build environment.
- Post-build asset copy is automatic for Minecraft.Client in CMake (Debug and Release variants).
- The game relies on relative paths (for example Common\Media\...), so launching from the output directory is required.
