 # MinecraftConsoles (Legacy Console Edition) If you have any questions regarding this fork, this is my Fluxer server (similar to a Discord server):
This project is based on source code of Minecraft Legacy Console Edition v1.6.0560.0 (TU19) with some fixes and improvements applied.  ## Latest: Performance optimizations across rendering, audio, and entity systems! - Renderer: column-level frustum culling and compact visible-chunk lists skip thousands of empty iterations per frame; lightweight second-pass render path avoids redundant checks - Sound engine: filesystem probe results are now cached, eliminating repeated file-existence checks every time a sound plays; sounds are pre-decoded for smoother playback - Entity movement: reduced `shared_from_this()` overhead by caching the shared pointer; `dynamic_pointer_cast` replaced with a raw pointer cast guarded by `instanceof` - Chunk updates: early-out for non-dirty chunks in the update loop; scaled recheck period at high render distances - Threading: entity query locking consolidated at the `Level` layer on all platforms for consistent thread safety - Block breaking: server now skips redundant tile-update packets when a block is successfully destroyed Migrated to CMake build system (upstream)! - Project now builds with CMake instead of Visual Studio project files - Use `cmake --preset windows64` or open the repo folder directly in Visual Studio (it detects `CMakeLists.txt` automatically) - Old `.vcxproj`/`.sln` files are preserved on the `vs-build` branch if needed Multi-language font rendering and Unicode text input! - Type and read text/characters in Japanese, Chinese, Korean, Thai, Arabic, Hindi, and many more languages - Works in: chat, signs, world names, seeds, server address/port fields - Two rendering systems: Iggy UI uses a new unicode bitmap fallback font; legacy C++ renderer uses Java Minecraft's glyph page system - Arabic text shaping: proper contextual letter forms and right-to-left visual reordering in chat and UI - Security: blocked Unicode bidirectional override characters to prevent chat spoofing - Fixed a pre-existing memory leak in sign loading Added copy+paste support for IP/Port, world names, world seeds, server names, signs, etc. - Just use control+v to paste from your clipboard! Dedicated server releases support Hardcore Mode! - Dedicated server is fully compatible with `smartcmd/MinecraftConsoles` clients, even with hardcore mode! - Client (`LCEWindows64.zip`): download from the Nightly release on GitHub - Dedicated Server (`LCEServerWindows64.zip`): download from the Nightly-Dedicated-Server release on GitHub - Docker: pull `ghcr.io/itsrevela/minecraft-lce-dedicated-server:nightly` for server container In-game screenshot functionality with F2! - pressing F2 will save a screenshot to a `screenshots` folder in your root game directory - a local-only chat message is shown to the player notifying the screenshot filename that was saved Proper implementation of Hardcore Mode in LCE! - difficulty slider included in create world menu - difficulty slider forces "Difficulty: Hardcore" on world load - singleplayer: host death, force no respawn, on exit deletes world - multiplayer: host death = world delete upon exit --- joiner death = only exit available, persists upon rejoin (no respawn option) - multiplayer fixes: added fix to prevent host from using exit-without-saving loophole for nonhost players that died - to-do: hardcore hearts texture The current goal of MinecraftConsoles is to be a multi-platform base for further development, such as modding, backports, and anything else LCE. On top of that, we're working to make this a quality experience on Desktop with or without a controller while (long-term) retaining console support. See our our [Contributor's Guide](./CONTRIBUTING.md) for more information on the goals of this project. ## Download ### Client Windows users can download our [Nightly Build](https://github.com/itsRevela/MinecraftConsoles/releases/tag/Nightly)! Simply download the `.zip` file and extract it to a folder where you'd like to keep the game. You can set your username in `username.txt` (you'll have to make this file) ### Server If you're looking for Dedicated Server software (with hardcore-mode functionality), download its [Nightly Build here](https://github.com/itsRevela/MinecraftConsoles/releases/tag/Nightly-Dedicated-Server). Similar instructions to the client more or less, though see further down in this README for more info on that. ## Platform Support - **Windows**: Supported for building and running the project - **macOS / Linux**: The Windows nightly build will run through Wine or CrossOver based on community reports, but this is unofficial and not currently tested by the maintainers when pushing updates - **Android**: The Windows nightly build does run but has stability / frametime pacing issues frequently reported - **iOS**: No current support - **All Consoles**: Console support remains in the code, but maintainers are not currently verifying console functionality / porting UI Changes to the console builds at this time. ## Features - Dedicated Server Software (`Minecraft.Server.exe`) - Fixed compilation and execution in both Debug and Release mode on Windows using Visual Studio 2022 - Added support for keyboard and mouse input - Added fullscreen mode support (toggle using F11) - (WIP) Disabled V-Sync for better performance - Added a high-resolution timer path on Windows for smoother high-FPS gameplay timing - Device's screen resolution will be used as the game resolution instead of using a fixed resolution (1920x1080) - LAN Multiplayer & Discovery - Added persistent username system via `username.txt` - Decoupled usernames and UIDs to allow username changes - Fixed various security issues present in the original codebase - Splitscreen Multiplayer support (connect to dedicated servers, etc) - In-game server management (Add Server button, etc) ## Controls (Keyboard & Mouse) - **Movement**: `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` Use `Q` and `E` to move through tabs (cycles Left/Right) - **Toggle View (FPS/TPS)**: `F5` - **Fullscreen**: `F11` - **Pause Menu**: `Esc` - **Attack / Destroy**: `Left Click` - **Use / Place**: `Right Click` - **Select Item**: `Mouse Wheel` or keys `1` to `9` - **Accept or Decline Tutorial hints**: `Enter` to accept and `B` to decline - **Game Info (Player list and Host Options)**: `TAB` - **Toggle HUD**: `F1` - **Toggle Debug Info**: `F3` - **Open Debug Overlay**: `F4` - **Toggle Debug Console**: `F6` ## Contributors Would you like to contribute to this project? Please read our [Contributor's Guide](CONTRIBUTING.md) before doing so! This document includes our current goals, standards for inclusions, rules, and more. ## Client Launch Arguments | Argument | Description | |--------------------|-----------------------------------------------------------------------------------------------------| | `-name