Skip to main content
Minecraft Community Edition supports both Xbox 360 and Xbox One consoles with platform-specific optimizations and Xbox Live integration. Each platform uses different SDKs and APIs while sharing much of the core game logic.

Platform Comparison

Xbox 360

Legacy generation with XUI interface and QNET networking

Xbox One (Durango)

Current generation with enhanced graphics and cloud features

Technical Specifications

FeatureXbox 360Xbox One (Durango)
CPUPowerPC tri-core 3.2 GHzx64 8-core AMD Jaguar
RAM512 MB shared8 GB DDR3 (5 GB available)
GraphicsXenos GPUAMD GCN-based GPU
Network APIQNET (Xbox Live)DQR Network Manager
UI FrameworkXUIModern UI with XAML-like markup
SDKXbox 360 SDKXbox One XDK

Xbox 360 Platform

Directory Structure

Minecraft.Client/Xbox/
├── Xbox_App.cpp/h              # Application lifecycle
├── Xbox_Minecraft.cpp          # Main game implementation
├── Xbox_UIController.cpp/h     # XUI-based interface
├── Xbox_BuildVer.h             # Version information
├── Network/
│   └── PlatformNetworkManagerXbox.h  # QNET implementation
├── Audio/                      # Xbox 360 audio
├── Font/                       # Font rendering
├── GameConfig/                 # Game configuration
├── Leaderboards/               # Xbox Live leaderboards
├── Social/                     # Friends and social features
├── Sentient/                   # AI systems
├── kinect/                     # Kinect support
├── ContentPackageBuild/        # DLC packaging
├── xex.xml                     # Executable manifest
└── Minecraftxex.xml           # Game manifest
Reference: Minecraft.Client/Xbox/

Xbox Live Integration (QNET)

The Xbox 360 platform uses QNET for networking:
class CPlatformNetworkManagerXbox : public CPlatformNetworkManager, public IQNetCallbacks
{
private:
    IQNet *m_pIQNet;  // QNet interface pointer
    
public:
    // QNET callback implementations
    VOID NotifyStateChanged(__in QNET_STATE OldState, __in QNET_STATE NewState, __in HRESULT hrInfo);
    VOID NotifyPlayerJoined(__in IQNetPlayer *pQNetPlayer);
    VOID NotifyPlayerLeaving(__in IQNetPlayer *pQNetPlayer);
    VOID NotifyNewHost(__in IQNetPlayer *pQNetPlayer);
    VOID NotifyDataReceived(
        __in IQNetPlayer *pQNetPlayerFrom,
        __in DWORD dwNumPlayersTo,
        __in_ecount(dwNumPlayersTo) IQNetPlayer **apQNetPlayersTo,
        __in_bcount(dwDataSize) const BYTE *pbData,
        __in DWORD dwDataSize
    );
};
Reference: Xbox/Network/PlatformNetworkManagerXbox.h:16-183

Session Management

// Xbox Live session search configuration
#define MINECRAFT_XSESSION_SEARCH_DELAY_MILLISECONDS 30000

// Session IDs
#define GROUP_ID "A9C80F8E-5EAE-4883-89E6-0C456CADE89B"
#define SAVETRANSFER_GROUP_ID "43FD7A62-2747-4489-8E71-F937163DC3C5"
Reference: Xbox/Network/PlatformNetworkManagerXbox.h:11, Xbox_App.h:3-4

XUI Interface System

The Xbox 360 uses the XUI (Xbox User Interface) framework:
class CConsoleMinecraftApp : public CMinecraftApp {
private:
    bool m_bMenuDisplayed[XUSER_MAX_COUNT];
    bool m_bPauseMenuDisplayed[XUSER_MAX_COUNT];
    
    HXUIOBJ m_PlayerBaseScene[XUSER_MAX_COUNT];
    HXUIOBJ m_hFirstScene[XUSER_MAX_COUNT];
    HXUIOBJ m_hCurrentScene[XUSER_MAX_COUNT];
    
    // XUI scene names
    static WCHAR *wchSceneA[eUIScene_COUNT];
    
public:
    virtual HRESULT RegisterXuiClasses();
    virtual HRESULT UnregisterXuiClasses();
    virtual HRESULT LoadXuiResources();
    
    virtual HRESULT NavigateToScene(int iPad, EUIScene eScene, void *initData = NULL);
    virtual HRESULT NavigateBack(int iPad, bool forceUsePad = false);
};
Reference: Xbox_App.h:8-196

Multi-User Support

Xbox 360 supports up to 4 local users:
#define XUSER_MAX_COUNT 4

bool m_bMenuDisplayed[XUSER_MAX_COUNT];
HXUIOBJ m_PlayerBaseScene[XUSER_MAX_COUNT];
Each user can have independent UI scenes for split-screen gameplay. Reference: Xbox_App.h:11-27

Xbox One (Durango) Platform

Directory Structure

Minecraft.Client/Durango/
├── Durango_App.cpp/h           # Application lifecycle
├── Durango_Minecraft.cpp       # Main game implementation
├── Durango_UIController.cpp/h  # Modern UI controller
├── ApplicationView.cpp/h       # View management
├── Minecraft_Macros.h          # Platform macros
├── Network/
│   └── PlatformNetworkManagerDurango.h  # DQR networking
├── Achievements/               # Xbox Live achievements
├── Leaderboards/               # Leaderboards
├── ServiceConfig/              # Cloud configuration
├── Layout/                     # Package layout
├── DurangoExtras/             # Platform utilities
├── Autogenerated.appxmanifest # App manifest
└── manifest.xml               # Game manifest
Reference: Minecraft.Client/Durango/

DQR Network Manager

Xbox One uses the DQR (Durango QNet Replacement) networking system:
class CPlatformNetworkManagerDurango : public CPlatformNetworkManager, IDQRNetworkManagerListener
{
private:
    DQRNetworkManager *m_pDQRNet;  // DQR interface pointer
    vector<DQRNetworkPlayer *> m_machineDQRPrimaryPlayers;
    
public:
    // IDQRNetworkManagerListener implementation
    virtual void HandleDataReceived(
        DQRNetworkPlayer *playerFrom,
        DQRNetworkPlayer *playerTo,
        unsigned char *data,
        unsigned int dataSize
    );
    virtual void HandlePlayerJoined(DQRNetworkPlayer *player);
    virtual void HandlePlayerLeaving(DQRNetworkPlayer *player);
    virtual void HandleStateChange(
        DQRNetworkManager::eDQRNetworkManagerState oldState,
        DQRNetworkManager::eDQRNetworkManagerState newState
    );
};
Reference: Durango/Network/PlatformNetworkManagerDurango.h:12-168

Party System Integration

// Party search delay for Xbox One
#define MINECRAFT_DURANGO_PARTY_SEARCH_DELAY_MILLISECONDS 30000

virtual vector<FriendSessionInfo *> *GetSessionList(int iPad, int localPlayers, bool partyOnly);
virtual void ForceFriendsSessionRefresh();
Reference: Durango/Network/PlatformNetworkManagerDurango.h:10, 152, 156

Application Lifecycle

class ApplicationView {
public:
    // Handles suspend/resume for Xbox One
    // Manages constrained/unconstrained modes
    // Coordinates with system UI
};
Xbox One requires careful lifecycle management for suspend/resume scenarios. Reference: Durango/ApplicationView.h

Shared Xbox Features

Build Configurations

Both platforms support the same build types:
ConfigurationXbox 360Xbox One
Debug
Release
ReleaseForArt
ContentPackage
Reference: MinecraftConsoles.sln:18, 36-42

Common Xbox Code

Both platforms share:
// Xbox_BuildVer.h - Version tracking (shared)
// Xbox_Awards_enum.h - Achievement definitions
// Xbox_Debug_enum.h - Debug categories
// Xbox_Utils.cpp - Utility functions
Reference: Xbox/Xbox_BuildVer.h, Durango/Xbox_BuildVer.h

TMS (Title Managed Storage)

Both platforms support Title Managed Storage for cloud content:
void TMSPP_SetTitleGroupID(LPCSTR szTitleGroupID);
void TMSPP_RetrieveFileList(int iPad, C4JStorage::eGlobalStorage eStorageFacility, CHAR *szPath, eTMSAction NextAction);
void TMSPP_ReadXuidsFile(int iPad, eTMSAction NextAction);
void TMSPP_ReadConfigFile(int iPad, eTMSAction NextAction);
void TMSPP_ReadDLCFile(int iPad, eTMSAction NextAction);
Reference: Xbox_App.h:60-71

Rich Presence

virtual void SetRichPresenceContext(int iPad, int contextId);
Both platforms support Xbox Live Rich Presence to show player activity. Reference: Xbox_App.h:40

Screenshots and Thumbnails

virtual void CaptureScreenshot(int iPad);
virtual void CaptureSaveThumbnail();
virtual void GetSaveThumbnail(PBYTE*, DWORD*);
virtual void GetScreenshot(int iPad, PBYTE *pbData, DWORD *pdwSize);

// Social preview images
void GetPreviewImage(int iPad, XSOCIAL_PREVIEWIMAGE *preview);
Reference: Xbox_App.h:47, 51-55

Leaderboards and Achievements

Both platforms integrate with Xbox Live:
Leaderboards/
├── LeaderboardManager.h/cpp    # Leaderboard integration
└── [Platform-specific implementations]
Achievements are defined in Xbox_Awards_enum.h and synchronized with Xbox Live.

Content Packaging

DLC Structure

Both platforms support DLC (Downloadable Content):
// DLC texture pack parent ID
virtual void SetSessionTexturePackParentId(int id);
virtual void SetSessionSubTexturePackId(int id);
Reference: PlatformNetworkManagerXbox.h:160-161

Content Package Builds

ContentPackageBuild/  # Xbox 360
Layout/               # Xbox One package layout
DLCImages/            # DLC artwork

Build Instructions

Xbox 360

1

Install Xbox 360 SDK

Install the Xbox 360 Software Development Kit
2

Open Solution

Load MinecraftConsoles.sln in Visual Studio
3

Select Xbox 360 Platform

Choose “Xbox 360” from the platform configuration
4

Build

Build for Debug or Release configuration
5

Deploy

Deploy to Xbox 360 devkit or use the Xbox 360 emulator

Xbox One

1

Install Xbox One XDK

Install the Xbox One Development Kit
2

Configure Development Console

Set up your Xbox One console in development mode
3

Select Durango Platform

Choose “Durango” from the platform configuration
4

Build Package

Build the application package with Layout configuration
5

Deploy and Test

Deploy to Xbox One devkit and test

Networking Features

Session Management

Create and join multiplayer sessions with matchmaking

Voice Chat

Xbox Live party chat integration

Invites

Game invites through Xbox Live

Stats Tracking

Player statistics and telemetry
virtual vector<FriendSessionInfo *> *GetSessionList(int iPad, int localPlayers, bool partyOnly);
virtual bool GetGameSessionInfo(int iPad, SessionID sessionId, FriendSessionInfo *foundSession);
virtual void GetFullFriendSessionInfo(
    FriendSessionInfo *foundSession,
    void (*FriendSessionUpdatedFn)(bool success, void *pParam),
    void *pParam
);
Reference: PlatformNetworkManagerXbox.h:165-168

Performance Optimization

  • PowerPC-optimized code paths
  • Careful memory management (512 MB limit)
  • GPU-specific rendering optimizations
  • Profile-guided optimization builds
  • x64 SIMD optimizations
  • Better memory availability (5 GB)
  • Cloud compute integration
  • Kinect sensor optimization (if used)

Common Issues

Xbox development requires official Microsoft development kits and cannot be done on retail consoles (except Xbox One in Dev Mode for limited testing).
Ensure Xbox Live services are running and the console is properly connected to Xbox Live. Check NAT settings.
The DQR network manager has specific state requirements. Ensure proper state transitions and handle all listener callbacks.
XUI resources must be properly packaged. Check that all .xzp files are included in the build.

Next Steps

Networking

Deep dive into multiplayer networking

UI System

Learn about the UI framework

Building

Understand build configurations

PlayStation

Compare with PlayStation platform

Build docs developers (and LLMs) love