This guide covers building Minecraft Community Edition from source for all supported platforms.
Overview
Minecraft Community Edition uses a Visual Studio-based build system with platform-specific configurations.
Project Structure
source/
├── MinecraftConsoles.sln # Main solution file
├── Minecraft.World/ # Core game engine
│ └── Minecraft.World.vcxproj
├── Minecraft.Client/ # Client-side code
│ ├── Minecraft.Client.vcxproj
│ ├── Windows64/ # Windows-specific code
│ ├── Xbox/ # Xbox 360 code
│ ├── PS3/ # PlayStation 3 code
│ ├── Durango/ # Xbox One code
│ ├── Orbis/ # PlayStation 4 code
│ └── Common/ # Shared console code
└── README.md
Windows 64-bit
Windows 64-bit is the primary development platform with the most complete feature set.
Prerequisites
Visual Studio 2012 or Later
Install Visual Studio with C++ development tools:
Visual Studio Express 2012 for Windows Desktop (minimum)
Visual Studio 2012 Professional/Premium/Ultimate
Visual Studio 2013 or later (with v110 toolset)
Required components:
Platform Toolset v110
Windows SDK
C++ compiler and libraries
DirectX SDK (June 2010)
Download and install the DirectX SDK: # After installation, verify environment variables:
echo %DXSDK_DIR%
# Should output: C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\
The June 2010 SDK is required. Later SDKs integrated into Windows SDK may not be compatible.
Required Libraries
The project includes several third-party libraries:
Miles Sound System - Audio engine (Windows64/Miles/)
Iggy - UI rendering library (Windows64/Iggy/)
4J Libraries - Custom framework libraries (Windows64/4JLibs/)
These are included in the repository.
Build Configuration
The solution includes multiple build configurations:
Debug Configuration
Release Configuration
Configuration: Debug
Platform: Windows64 (x64)
Output: x64_Debug/Minecraft.Client.exe
Defines: _DEBUG, _WINDOWS64
Optimization: Disabled (/Od)
Runtime Library: Multi-threaded Debug (/MTd)
Debug Info: Full (/Zi)
Building
Via Visual Studio IDE
Open Solution
Launch Visual Studio
File → Open → Project/Solution
Navigate to source/MinecraftConsoles.sln
Click Open
Select Configuration
In the toolbar, select:
Configuration : Debug or Release
Platform : Windows64
Build Projects
Build the projects in order:
Right-click Minecraft.World → Build
Right-click Minecraft.Client → Build
Or build the entire solution:
Build → Build Solution (Ctrl+Shift+B)
Verify Output
Check the output directory: source/x64_Debug/Minecraft.Client.exe
source/Minecraft.World/x64_Debug/Minecraft.World.lib
Via Command Line (MSBuild)
# Set up Visual Studio environment
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" amd64
# Build Debug configuration
msbuild MinecraftConsoles.sln /p:Configuration=Debug /p:Platform=Windows64 /m
# Build Release configuration
msbuild MinecraftConsoles.sln /p:Configuration=Release /p:Platform=Windows64 /m
# Clean build
msbuild MinecraftConsoles.sln /t:Clean /p:Configuration=Debug /p:Platform=Windows64
msbuild MinecraftConsoles.sln /t:Rebuild /p:Configuration=Debug /p:Platform=Windows64 /m
The /m flag enables parallel builds for faster compilation.
Dependencies
The Windows64 build links against:
// Core Windows libraries
d3d11 . lib // Direct3D 11
XInput9_1_0 . lib // Controller input
// Third-party libraries
mss64 . lib // Miles Sound System (Windows64/Miles/Lib/)
iggy_w64 . lib // Iggy UI (Windows64/Iggy/lib/)
// Project libraries
Minecraft . World . lib // Core game engine
4J_Input.lib // Input handling
4J_Profile.lib // Profile management
4J_Render_PC.lib // Rendering (Windows64/4JLibs/libs/)
Include Directories
$(ProjectDir) // Minecraft.Client/
$(ProjectDir)\..\ Minecraft . World \x64headers // Game engine headers
Windows64\Iggy\include // UI library
Windows64\ 4 JLibs \inc // Framework headers
Xbox 360
Xbox 360 development requires the Xbox 360 SDK and a development kit. This is restricted to licensed developers.
Prerequisites
Xbox 360 SDK (XDK)
Visual Studio 2010 or 2012
Xbox 360 Development Kit
Xbox 360 implementation includes:
// Key files
Minecraft . Client / Xbox /
├── XboxGameMode . cpp // Platform-specific game mode
├── Network / // Xbox Live networking
├── Sentient / // Sentient SDK integration
└── 4 JLibs / // Xbox libraries
Build Configuration
Configuration: Debug|Release|ContentPackage
Platform: Xbox 360
Defines: _XBOX, _DEBUG_MENUS_ENABLED
Toolset: Xbox 360
Output: Xbox 360_Debug/Minecraft.Client.xex
PlayStation 3
PS3 development requires the PlayStation 3 SDK and a development kit. This is restricted to licensed developers.
Prerequisites
PlayStation 3 SDK (SCE_PS3_ROOT)
SN Systems ProDG
Visual Studio with SN Systems integration
// Key environment variables
SCE_PS3_ROOT // PS3 SDK root
// Include paths
$(SCE_PS3_ROOT)\target\ppu\include
$(SCE_PS3_ROOT)\target\common\include
$(SCE_PS3_ROOT)\host - win32\sn\ppu\include
// Platform code
Minecraft . Client / PS3 /
├── PS3Extras / // Platform helpers
├── SPU_Tasks / // SPU offload tasks
└── Assert / // PS3 assertions
SPU Tasks
The PS3 build uses Cell SPU acceleration:
PS3/SPU_Tasks/
├── ChunkUpdate/ # Chunk generation on SPU
├── LevelRenderChunks/ # Chunk rendering
├── PerlinNoise/ # Noise generation
├── Texture_blit/ # Texture operations
└── CompressedTile/ # Tile compression
PlayStation Vita
Prerequisites
PlayStation Vita SDK (SCE_PSP2_SDK_DIR)
Visual Studio with Vita toolchain
// Include paths
$(SCE_PSP2_SDK_DIR) / target\src\npToolkit\include
Minecraft . Client / PSVita / PSVitaExtras
// Platform-specific code
Minecraft . Client / PSVita /
└── PSVitaExtras / // Vita-specific helpers
Xbox One (Durango)
Xbox One development requires the Microsoft GDK and appropriate licensing.
Prerequisites
Microsoft GDK (formerly Xbox One XDK)
Visual Studio 2012 or later
Windows SDK 8.0 or later
// Include paths
$(Console_SdkIncludeRoot)
Minecraft . Client / Durango / DurangoExtras
// Platform code
Minecraft . Client / Durango /
├── DurangoExtras / // Platform helpers
├── Leaderboards / // Xbox Live features
└── Layout / // Package layout
PlayStation 4 (ORBIS)
PS4 development requires the PlayStation 4 SDK and appropriate licensing.
Prerequisites
PlayStation 4 SDK (SCE_ORBIS_SDK_DIR)
Visual Studio with Orbis toolchain
Toolset: Clang
// Include paths
$(SCE_ORBIS_SDK_DIR)\host_tools\lib\clang\include
$(SCE_ORBIS_SDK_DIR)\target\include
$(SCE_ORBIS_SDK_DIR)\target\include_common
// Platform code
Minecraft . Client / Orbis /
├── Orbis_App . cpp // Application entry
├── Orbis_Minecraft . cpp // Platform integration
└── OrbisExtras / // Platform helpers
Common Build Issues
Missing Dependencies
Issue: Minecraft.World.lib not found
Issue: DirectX headers not found
Issue: Platform toolset not installed
Error: LINK : fatal error LNK1104: cannot open file 'Minecraft.World.lib'
Solution:
1. Build Minecraft.World project first
2. Check output directory matches:
- Debug: Minecraft.World/x64_Debug/
- Release: Minecraft.World/x64_Release/
Linker Errors
# Unresolved externals in Minecraft.World
Solution: Ensure Minecraft.World is built before Minecraft.Client
# Missing library files
Solution: Check that third-party libraries exist:
- Windows64/Miles/Lib/mss64.lib
- Windows64/Iggy/lib/iggy_w64.lib
- Windows64/4JLibs/libs/ * .lib
Runtime Errors
Copy from source location: copy Minecraft.Client \W indows64 \M iles \m ss64.dll x64_Debug \
D3D11 device creation failed
Update graphics drivers
Verify DirectX 11 support
Check Windows Update for DirectX runtime
Application failed to initialize (0xc000007b)
Mixed 32/64-bit DLLs
Install Visual C++ Redistributable (x64)
Rebuild with correct platform (x64)
Advanced Build Options
Custom Build Configurations
The project includes several specialized configurations:
Debug - Full debugging, unoptimized
Release - Optimized, with debug info
ReleaseForArt - Artist/content creator build
ContentPackage - Retail package build
ContentPackage_NO_TU - Package without title update
CONTENTPACKAGE_SYMBOLS - Package with symbols
Preprocessor Defines
// Platform detection
#ifdef _WINDOWS64
// Windows-specific code
#endif
#ifdef _XBOX
// Xbox 360 code
#endif
#ifdef __PS3__
// PlayStation 3 code
#endif
#ifdef __ORBIS__
// PlayStation 4 code
#endif
// Build configuration
#ifdef _DEBUG
// Debug-only code
#endif
#ifdef _DEBUG_MENUS_ENABLED
// Debug menu features
#endif
Optimization Settings
Optimization: Disabled ( / Od)
Inline: Default
Intrinsics: No
Favor: Neither
Omit Frame Pointers: No
Whole Program Optimization: No
Runtime Checks: Stack frames ( / RTCs)
Speed up your builds with these optimizations:
Enable parallel compilation : /MP flag (already enabled)
Use incremental linking : Debug builds only
Precompiled headers : stdafx.h is used
Exclude unused platforms : Unload platform projects you don’t need
Use SSD : Store source on fast storage
Increase RAM : Visual Studio benefits from 16GB+
Next Steps
Quick Start Get the game running quickly
Contributing Submit improvements and fixes
Architecture Understand the codebase structure
Core Systems Explore core game systems