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.
Xbox 360 Legacy generation with XUI interface and QNET networking
Xbox One (Durango) Current generation with enhanced graphics and cloud features
Technical Specifications
Feature Xbox 360 Xbox One (Durango) CPU PowerPC tri-core 3.2 GHz x64 8-core AMD Jaguar RAM 512 MB shared 8 GB DDR3 (5 GB available) Graphics Xenos GPU AMD GCN-based GPU Network API QNET (Xbox Live) DQR Network Manager UI Framework XUI Modern UI with XAML-like markup SDK Xbox 360 SDK Xbox One XDK
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
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:
Configuration Xbox 360 Xbox 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
Install Xbox 360 SDK
Install the Xbox 360 Software Development Kit
Open Solution
Load MinecraftConsoles.sln in Visual Studio
Select Xbox 360 Platform
Choose “Xbox 360” from the platform configuration
Build
Build for Debug or Release configuration
Deploy
Deploy to Xbox 360 devkit or use the Xbox 360 emulator
Xbox One
Install Xbox One XDK
Install the Xbox One Development Kit
Configure Development Console
Set up your Xbox One console in development mode
Select Durango Platform
Choose “Durango” from the platform configuration
Build Package
Build the application package with Layout configuration
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
Session Search
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
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).
QNET Connection Issues (Xbox 360)
Ensure Xbox Live services are running and the console is properly connected to Xbox Live. Check NAT settings.
DQR State Issues (Xbox One)
The DQR network manager has specific state requirements. Ensure proper state transitions and handle all listener callbacks.
XUI Resource Loading (Xbox 360)
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