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.
Overview
This guide outlines the coding standards and conventions used in Minecraft Community Edition. Consistency is important for maintainability and collaboration.General Principles
- Readability: Code should be clear and self-documenting
- Consistency: Follow existing patterns in the codebase
- Maintainability: Write code that others can understand and modify
- Performance: Consider performance implications, especially in hot paths
Naming Conventions
Classes and Structs
Class names use PascalCase:Member Variables
Member variables use camelCase:Static Members
Static members follow the same camelCase convention:Constants
Constants use UPPER_SNAKE_CASE:Methods and Functions
Method names use camelCase:Namespaces
The project uses Java-style namespace organization through header file naming:File Organization
Header Files
Header files follow this structure:Source Files
Source files follow this structure:Always include
stdafx.h first in .cpp files for precompiled header support.Code Formatting
Indentation
- Use tabs (not spaces)
- Tab width: 4 characters
- Indent each level consistently
Braces
Use K&R style bracing (opening brace on same line):Spacing
- Space after keywords:
if (condition),for (int i = 0; ...) - No space between function name and parentheses:
doSomething() - Space around operators:
a + b,x = y,i < count
Line Length
- No strict limit, but prefer keeping lines reasonably short
- Break long lines logically for readability
Comments and Documentation
Code Comments
Use comments to explain why, not what:Team Comments
The codebase includes developer/team tags:TODO Comments
Use TODO comments for future work:C++ Standards
Pointers and References
- Use pointers (
*) for optional/nullable values - Use references (
&) for required parameters - Prefer smart pointers where appropriate
Memory Management
- Be explicit about ownership
- Clean up resources properly
- Use RAII patterns where appropriate
- Be careful with manual
new/delete
Type Usage
- Use
intfor general integers - Use
unsigned intfor bit flags and sizes - Use
floatfor game coordinates and math - Use
wstringfor text (wide strings) - Use
boolfor boolean values
Platform-Specific Code
When adding platform-specific code:Best Practices
Avoid Magic Numbers
Use named constants:Prefer Early Returns
Initialization
Initialize variables when declaring them:Code Review Checklist
Before submitting code:- Follows naming conventions
- Properly formatted (tabs, bracing, spacing)
- Comments explain complex logic
- No compiler warnings
- Builds without errors
- Consistent with surrounding code
Learning from the Codebase
The best way to understand the code style is to read existing code:Minecraft.World/Tile.cpp- Good example of static initializationMinecraft.World/Entity.cpp- Complex entity management patterns- Header files in
net.minecraft.world.*.h- Project organization