首页/游戏开发/minecraftconsoles-lce
M

minecraftconsoles-lce

by @aradotsov1.0.0
4.9(3)

Minecraft 主机版 C++ 重实现/延续版,目标平台为现代 Windows,基于 TU19 版本,保持原版游戏体验

game-developmentminecraftc++game-enginereverse-engineeringGitHub
安装方式
npx skills add aradotso/trending-skills --skill minecraftconsoles-lce
compare_arrows

Before / After 效果对比

1
使用前

手动完成Minecraft 主机版 C相关任务,需要反复操作和确认,整个过程大约需要48分钟,容易出错且效率低下

使用后

使用该 Skill 自动化处理,智能分析和执行,9分钟内完成全部工作,准确率高且流程标准化

description SKILL.md

minecraftconsoles-lce

MinecraftConsoles (Legacy Console Edition) Skill

Skill by ara.so — Daily 2026 Skills collection.

What This Project Is

MinecraftConsoles is a C++ reimplementation/continuation of Minecraft Legacy Console Edition v1.6.0560.0 (TU19), targeting modern Windows (and unofficially macOS/Linux via Wine). Goals include:

  • Multi-platform base for modding, backports, and LCE development

  • Quality desktop experience with keyboard/mouse and controller support

  • LAN multiplayer and dedicated server software

  • Splitscreen multiplayer support

Repository: smartcmd/MinecraftConsoles

Primary language: C++

Build system: Visual Studio 2022 solution (.sln) + CMake support

Quick Start

Prerequisites

Clone

git clone https://github.com/smartcmd/MinecraftConsoles.git
cd MinecraftConsoles

Build with Visual Studio

  • Open MinecraftConsoles.sln in Visual Studio 2022

  • Set Startup Project to Minecraft.Client

  • Set configuration to Debug (or Release), platform to Windows64

  • Press F5 or Ctrl+F5 to build and run

Build with CMake (Windows x64)

# Configure
cmake -S . -B build -G "Visual Studio 17 2022" -A x64

# Build the client
cmake --build build --config Debug --target MinecraftClient

# Build the dedicated server
cmake --build build --config Debug --target MinecraftServer

See COMPILE.md in the repo for additional platform-specific notes.

Running the Client

Nightly Build (No Compile Needed)

Download the .zip from the Nightly Release, extract, and run Minecraft.Client.exe.

Setting Your Username

Create username.txt in the same directory as the executable:

Steve

Or use a launch argument:

Minecraft.Client.exe -name Steve
Minecraft.Client.exe -name Steve -fullscreen

Client Launch Arguments

Argument Description

-name <username> Override in-game username

-fullscreen Launch in fullscreen mode

Keyboard & Mouse Controls

Action Key/Button

Move W A S D

Jump / Fly Up Space

Sneak / Fly Down Shift (hold)

Sprint Ctrl (hold) or double-tap W

Inventory E

Chat T

Drop Item Q

Crafting C (tabs: Q / E)

Attack / Destroy Left Click

Use / Place Right Click

Select hotbar slot 19 or Mouse Wheel

Pause Esc

Fullscreen F11

Toggle HUD F1

Toggle Debug Info F3

Debug Overlay F4

Toggle Debug Console F6

Toggle FPS/TPS view F5

Player list / Host Options Tab

Accept tutorial hint Enter

Decline tutorial hint B

LAN Multiplayer

LAN multiplayer works automatically on the Windows build:

  • Hosting a world auto-advertises it on the local network

  • Other players discover sessions via Join Game menu

  • TCP port: 25565 (game connections)

  • UDP port: 25566 (LAN discovery)

  • Use the Add Server button to connect to known IPs

  • Username changes are safe — keep uid.dat to preserve your data across renames

  • Splitscreen players can join LAN/multiplayer sessions

Dedicated Server

Download Nightly Server Build

Nightly Dedicated Server

Run Directly (Windows)

Minecraft.Server.exe -name MyServer -port 25565 -ip 0.0.0.0 -maxplayers 8 -loglevel info
Minecraft.Server.exe -seed 123456789

Server CLI Arguments

Argument Description

-port <1-65535> Override server-port

-ip <addr> Override server-ip (bind address)

-bind <addr> Alias of -ip

-name <name> Override server-name (max 16 chars)

-maxplayers <1-8> Override max-players

-seed <int64> Override level-seed

-loglevel <level> debug, info, warn, error

-help / --help / -h Print usage and exit

server.properties Configuration

Located in the same directory as Minecraft.Server.exe. Auto-generated with defaults if missing.

server-name=DedicatedServer
server-port=25565
server-ip=0.0.0.0
max-players=8
level-name=world
level-id=world
level-seed=
world-size=classic
log-level=info
white-list=false
lan-advertise=false
autosave-interval=60

Key property notes:

Key Values Default Notes

server-port 1–65535 25565 TCP listen port

server-ip string 0.0.0.0 Bind address

server-name string DedicatedServer Max 16 chars

max-players 1–8 8 Player slots

level-seed int64 or empty empty Empty = random

world-size classic|small|medium|large classic New world size

log-level debug|info|warn|error info Verbosity

autosave-interval 5–3600 60 Seconds between autosaves

white-list true/false false Enable whitelist

lan-advertise true/false false LAN advertisement

Dedicated Server in Docker (Linux/Wine)

Recommended: Pull from GHCR (No Local Build)

# Start (pulls latest image automatically)
./start-dedicated-server.sh

# Start without pulling
./start-dedicated-server.sh --no-pull

# Equivalent manual command
docker compose -f docker-compose.dedicated-server.ghcr.yml up -d

Local Build Mode (Optional)

Requires a locally compiled Minecraft.Server.exe:

docker compose -f docker-compose.dedicated-server.yml up -d --build

Docker Persistent Volumes

Host Path Container Path Purpose

./server-data/server.properties /srv/mc/server.properties Server config

./server-data/GameHDD /srv/mc/Windows64/GameHDD World save data

Docker Environment Variables

Variable Default Description

XVFB_DISPLAY :99 Virtual display number

XVFB_SCREEN 64x64x16 Virtual screen size (tiny, Wine needs it)

Project Structure (Key Areas)

MinecraftConsoles/
├── MinecraftConsoles.sln       # Visual Studio solution
├── CMakeLists.txt              # CMake build definition
├── COMPILE.md                  # Detailed compile instructions
├── CONTRIBUTING.md             # Contributor guide and project goals
├── docker-compose.dedicated-server.ghcr.yml  # Docker (GHCR image)
├── docker-compose.dedicated-server.yml       # Docker (local build)
├── start-dedicated-server.sh   # Quick-start script
├── server-data/
│   ├── server.properties       # Server config (auto-generated)
│   └── GameHDD/                # World save data
└── .github/
    └── banner.png

Common C++ Patterns in This Codebase

Adding a New Key Binding (Keyboard Input)

The project added keyboard/mouse support on top of the original controller-only code. When extending input:

// Typical pattern for checking key state in the input handler
// Find the keyboard input processing file and add your key check:

bool isKeyPressed(int virtualKey) {
    return (GetAsyncKeyState(virtualKey) & 0x8000) != 0;
}

// Example: adding a new toggle key
if (isKeyPressed(VK_F7)) {
    // toggle your feature
    myFeatureEnabled = !myFeatureEnabled;
}

Registering a Launch Argument

Follow the existing -name / -fullscreen pattern:

// In the argument parsing section (typically in main or init):
for (int i = 1; i < argc; i++) {
    std::string arg = argv[i];

    if (arg == "-name" && i + 1 < argc) {
        username = argv[++i];
    }
    else if (arg == "-fullscreen") {
        launchFullscreen = true;
    }
    // Add your argument:
    else if (arg == "-myoption" && i + 1 < argc) {
        myOption = argv[++i];
    }
}

Reading server.properties

#include <fstream>
#include <sstream>
#include <map>
#include <string>

std::map<std::string, std::string> loadServerProperties(const std::string& path) {
    std::map<std::string, std::string> props;
    std::ifstream file(path);
    std::string line;

    while (std::getline(file, line)) {
        if (line.empty() || line[0] == '#') continue;
        auto eq = line.find('=');
        if (eq == std::string::npos) continue;
        std::string key = line.substr(0, eq);
        std::string val = line.substr(eq + 1);
        props[key] = val;
    }
    return props;
}

// Usage:
auto props = loadServerProperties("server.properties");
int port = std::stoi(props.count("server-port") ? props["server-port"] : "25565");
std::string serverName = props.count("server-name") ? props["server-name"] : "DedicatedServer";

Writing server.properties (Normalize / Auto-generate)

void writeServerProperties(const std::string& path,
                            const std::map<std::string, std::string>& props) {
    std::ofstream file(path);
    for (auto& [key, val] : props) {
        file << key << "=" << val << "\n";
    }
}

// Normalize level-id from level-name
std::string normalizeLevelId(const std::string& levelName) {
    std::string id = levelName;
    // Remove unsafe characters, lowercase, replace spaces with underscores
    for (char& c : id) {
        if (!std::isalnum(c) && c != '_' && c != '-') c = '_';
    }
    return id;
}

Troubleshooting

Build Fails: Missing Windows SDK

  • Open Visual Studio Installer → Modify → add Windows 10/11 SDK

  • Make sure the platform is set to Windows64 (not x86)

CMake Can't Find Visual Studio Generator

# Confirm VS 2022 is installed, then:
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
# "17 2022" is the generator name for VS 2022

Game Launches But No Display / Crashes Immediately

  • Ensure you're running from the directory containing all game assets

  • Check that your GPU drivers support the required DirectX version

  • Try Debug build for more verbose error output

Server Not Visible on LAN

  • Check firewall rules allow TCP 25565 and UDP 25566

  • Verify lan-advertise=true is NOT required for dedicated servers (it's for LAN broadcast; clients discover via Join Game)

  • Ensure both client and server are on the same subnet

Docker Server: Wine Can't Display

  • The XVFB_DISPLAY env var must match what Wine uses

  • The container uses a minimal 64x64x16 virtual framebuffer — don't change this unless you have a reason

Username Reset / UID Issues

  • Do not delete uid.dat — it stores your unique player ID

  • If you rename yourself via -name or username.txt, your existing uid.dat keeps world data linked to your account

macOS / Linux (Wine)

  • Download the Windows nightly .zip

  • Run via wine Minecraft.Client.exe or CrossOver

  • Stability issues (frametime pacing) are known and community-reported; not officially supported

Contributing

Read CONTRIBUTING.md before submitting PRs. Key points:

  • Follow existing code style and naming conventions

  • Console build compatibility should not be broken without discussion

  • Security fixes are always welcome

  • Check open issues (535+) for good first tasks

  • Join the Discord for contributor discussion

Platform Support Summary

Platform Status

Windows (VS 2022) ✅ Fully supported

macOS / Linux (Wine) ⚠️ Community-reported working, unofficial

Android (Wine) ⚠️ Runs with frametime issues

iOS ❌ No support

Consoles ⚠️ Code present, not actively maintained

Weekly Installs256Repositoryaradotso/trending-skillsGitHub Stars6First Seen5 days agoSecurity AuditsGen Agent Trust HubPassSocketPassSnykPassInstalled ongemini-cli255github-copilot255codex255amp255cline255kimi-cli255

forum用户评价 (0)

发表评价

效果
易用性
文档
兼容性

暂无评价,来写第一条吧

统计数据

安装量200
评分4.9 / 5.0
版本1.0.0
更新日期2026年3月23日
对比案例1 组

用户评分

4.9(3)
5
0%
4
0%
3
0%
2
0%
1
0%

为此 Skill 评分

0.0

兼容平台

🔧Claude Code

时间线

创建2026年3月23日
最后更新2026年3月23日