Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Minecraft-Community-Edition/client/llms.txt

Use this file to discover all available pages before exploring further.

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