diff --git a/.github/banner.png b/.github/banner.png new file mode 100644 index 00000000..bde6e0b1 Binary files /dev/null and b/.github/banner.png differ diff --git a/README.md b/README.md index 81fa190d..ebcceda0 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,24 @@ -# MinecraftConsoles +![Legacy Edition Banner](.github/banner.png) +# MinecraftConsoles (Legacy Console Edition) [![Discord](https://img.shields.io/badge/Discord-Join%20Server-5865F2?logo=discord&logoColor=white)](https://discord.gg/jrum7HhegA) -![Tutorial World](.github/TutorialWorld.png) +This project is based on source code of Minecraft Legacy Console Edition v1.6.0560.0 (TU19) with some fixes and improvements applied. 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. -## Introduction - -This project contains the source code of Minecraft Legacy Console Edition v1.6.0560.0 (TU19) with some fixes and improvements applied. +See our our [Contributor's Guide](./CONTRIBUTING.md) for more information on the goals of this project. ## Download Windows users can download our [Nightly Build](https://github.com/smartcmd/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) +If you're looking for Dedicated Server software, download its [Nightly Build here](https://github.com/smartcmd/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 may run through Wine or CrossOver based on community reports, but this is unofficial and not currently tested by the maintainers +- **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 @@ -25,11 +29,52 @@ Windows users can download our [Nightly Build](https://github.com/smartcmd/Minec - 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" +- Dedicated Server Software (`Minecraft.Server.exe`) +- 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) -## Multiplayer -Basic LAN multiplayer is available on the Windows build +## 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` + + +## Client Launch Arguments + +| Argument | Description | +|--------------------|-----------------------------------------------------------------------------------------------------| +| `-name ` | Overrides your in-game username. | +| `-fullscreen` | Launches the game in Fullscreen mode | + +Example: +``` +Minecraft.Client.exe -name Steve -fullscreen +``` + +## LAN Multiplayer +LAN multiplayer is available on the Windows build - Hosting a multiplayer world automatically advertises it on the local network - Other players on the same LAN can discover the session from the in-game Join Game menu @@ -37,20 +82,12 @@ Basic LAN multiplayer is available on the Windows build - LAN discovery uses UDP port `25566` - Add servers to your server list with the in-game Add Server button (temp) - Rename yourself without losing data by keeping your `uid.dat` +- Split-screen players can join in, even in Multiplayer Parts of this feature are based on code from [LCEMP](https://github.com/LCEMP/LCEMP) (thanks!) -### Launch Arguments +# Dedicated Server Software -| Argument | Description | -|--------------------|-----------------------------------------------------------------------------------------------------| -| `-name ` | Sets your in-game username. | -| `-fullscreen` | Launches the game in Fullscreen mode | - -Example: -``` -Minecraft.Client.exe -name Steve -fullscreen -``` ## Dedicated Server in Docker (Wine) @@ -101,7 +138,7 @@ Persistent files are bind-mounted to host: - `./server-data/server.properties` -> `/srv/mc/server.properties` - `./server-data/GameHDD` -> `/srv/mc/Windows64/GameHDD` -### About `server.properties` +## About `server.properties` `Minecraft.Server` reads `server.properties` from the executable working directory (Docker image: `/srv/mc/server.properties`). If the file is missing or contains invalid values, defaults are auto-generated/normalized on startup. @@ -138,7 +175,7 @@ lan-advertise=false autosave-interval=60 ``` -### Dedicated Server launch arguments +## Dedicated Server launch arguments The server loads base settings from `server.properties`, then CLI arguments override those values. @@ -160,29 +197,6 @@ Minecraft.Server.exe -name MyServer -port 25565 -ip 0.0.0.0 -maxplayers 8 -logle Minecraft.Server.exe -seed 123456789 ``` -## 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` - ## Build & Run 1. Install [Visual Studio 2022](https://aka.ms/vs/17/release/vs_community.exe). @@ -200,10 +214,6 @@ cmake --build build --config Debug --target MinecraftClient For more information, see [COMPILE.md](COMPILE.md). -## Known Issues - -- Native builds for platforms other than Windows have not been tested and are most likely non-functional. The Windows nightly build may still run on macOS and Linux through Wine or CrossOver, but that path is unofficial and not currently supported - ## 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.