Skip to main content
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

1

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
2

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.
3

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:
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

1

Open Solution

  1. Launch Visual Studio
  2. File → Open → Project/Solution
  3. Navigate to source/MinecraftConsoles.sln
  4. Click Open
2

Select Configuration

In the toolbar, select:
  • Configuration: Debug or Release
  • Platform: Windows64 Build Configuration
3

Build Projects

Build the projects in order:
  1. Right-click Minecraft.World → Build
  2. Right-click Minecraft.Client → Build
Or build the entire solution:
  • Build → Build Solution (Ctrl+Shift+B)
4

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\4JLibs\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

Platform-Specific Code

Xbox 360 implementation includes:
// Key files
Minecraft.Client/Xbox/
├── XboxGameMode.cpp           // Platform-specific game mode
├── Network/                   // Xbox Live networking
├── Sentient/                  // Sentient SDK integration
└── 4JLibs/                    // 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

Platform Configuration

// 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

Platform Configuration

// 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

Platform Configuration

// 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

Platform Configuration

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

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\Windows64\Miles\mss64.dll x64_Debug\
  • Update graphics drivers
  • Verify DirectX 11 support
  • Check Windows Update for DirectX runtime
  • 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)

Build Performance Tips

Speed up your builds with these optimizations:
  1. Enable parallel compilation: /MP flag (already enabled)
  2. Use incremental linking: Debug builds only
  3. Precompiled headers: stdafx.h is used
  4. Exclude unused platforms: Unload platform projects you don’t need
  5. Use SSD: Store source on fast storage
  6. 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

Build docs developers (and LLMs) love