From ee257d7916ba00532febed635ce2c50e0bdcc632 Mon Sep 17 00:00:00 2001 From: Vitaly Date: Mon, 16 Dec 2024 19:16:58 +0300 Subject: [PATCH] Docs eaglercraft change (#239) A lot misleading information removed --- README.MD | 2 +- TECH.md | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/README.MD b/README.MD index b2220a748..6b8bdc97d 100644 --- a/README.MD +++ b/README.MD @@ -6,7 +6,7 @@ Minecraft **clone** rewritten in TypeScript using the best modern web technologi You can try this out at [mcraft.fun](https://mcraft.fun/), [pcm.gg](https://pcm.gg) (short link), [mcon.vercel.app](https://mcon.vercel.app/) or the GitHub pages deploy. Every commit from the default (`develop`) branch is deployed to [s.mcraft.fun](https://s.mcraft.fun/) and [s.pcm.gg](https://s.pcm.gg/) - so it's usually newer, but might be less stable. -Don't confuse with [Eaglercraft](https://git.eaglercraft.rip/eaglercraft/eaglercraft-1.8) that is a REAL vanilla Minecraft Java edition port to the web. Eaglercraft is a fully playable solution, but this project is more in position of a "technical demo" to show how it's possible to build games for web at scale entirely in JS ecosystem. +Don't confuse with [Eaglercraft](https://git.eaglercraft.rip/eaglercraft/eaglercraft-1.8) which is a REAL vanilla Minecraft Java edition port to the web (but with its own limitations). Eaglercraft is a fully playable solution, but this project is more in position of a "technical demo" to show how it's possible to build games for web at scale entirely with the JS ecosystem. Have fun! For building the project yourself / contributing, see [Development, Debugging & Contributing](#development-debugging--contributing). For reference at what and how web technologies / frameworks are used, see [TECH.md](./TECH.md). diff --git a/TECH.md b/TECH.md index c557e1e2a..3ea76719e 100644 --- a/TECH.md +++ b/TECH.md @@ -1,6 +1,7 @@ ### Eaglercraft Comparison -This project uses proxies, Eaglercraft uses relays to connect to vanilla servers from the browser, these serve the same purpose but have different implementations. Though they have the same limitations such as increased latency and servers will complain about using VPN. +This project uses proxies so you can connect to almost any vanilla server. Though proxies have some limitations such as increased latency and servers will complain about using VPN (though we have a workaround for that, but ping will be much higher). +This client generally has better performance but some features reproduction might be inaccurate eg its less stable and more buggy in some cases. | Feature | This project | Eaglercraft | Description | | --------------------------------- | ------------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | @@ -10,7 +11,7 @@ This project uses proxies, Eaglercraft uses relays to connect to vanilla servers | A11Y | ✅ | ❌ | We have DOM for almost all UI so your extensions and other browser features will work natively like on any other web page (but maybe it's not needed) | | Game Features | | | | | Servers Support (quality) | ❌ | ✅ | Eaglercraft is vanilla Minecraft, while this project tries to emulate original game behavior at protocol level (Mineflayer is used) | -| Servers Support (any version) | ✅ | ❌ | We support almost all Minecraft versions, only important if you connect to a server where you need new content like blocks or if you play with friends | +| Servers Support (any version, ip) | ✅ | ❌ | We support almost all Minecraft versions, only important if you connect to a server where you need new content like blocks or if you play with friends. And you can connect to almost any server using proxy servers! | | Singleplayer Survival Features | ❌ | ✅ | Just like Eaglercraft this project can generate and save worlds, but generator is simple and only a few survival features are supported (look here for [supported features list](https://github.com/zardoy/space-squid)) | | Singleplayer Maps | ✅ | ✅ | We support any version, but adventure maps won't work, but simple parkour and build maps might be interesting to explore... | | Singleplayer Maps World Streaming | ✅ | ❌ | Thanks to Browserfs, saves can be loaded to local singleplayer server using multiple ways: from local folder, server directory (not zip), dropbox or other cloud *backend* etc... | @@ -22,9 +23,9 @@ This project uses proxies, Eaglercraft uses relays to connect to vanilla servers | Mods | ❌(roadmap) | ❌ | This project will support mods for singleplayer. In theory its possible to implement support for modded servers on protocol level (including all needed mods) | | Video Recording | ❌ | ✅ | Don't feel needed | | Metaverse Features | ❌(roadmap) | ❌ | Iframes, video streams inside of game world (custom protocol channel) | -| Sounds | ✅ | ✅(-) | Eaglercraft has reduced sound quality, but better general support for them | -| Resource Packs | ✅(--) | ✅(-) | Eaglercraft obviously don't support server resource pack, but this project has very limited support for them (only textures images are loadable for now) | -| Assets Compressing | ✅ | ✅❌ | We have advanced Minecraft data processing and good code chunk splitting so the web app will open faster and use less memory | +| Sounds | ✅ | ✅ | | +| Resource Packs | ✅(--) | ✅ | This project has very limited support for them (only textures images are loadable for now) | +| Assets Compressing & Splitting | ✅ | ❌ | We have advanced Minecraft data processing and good code chunk splitting so the web app will open much faster and use less memory | | Graphics | | | | | Fancy Graphics | ❌ | ✅ | While Eaglercraft has top-level shaders we don't even support lighting | | Fast & Efficient Graphics | ❌(+) | ❌ | Feels like no one needs to have 64 rendering distance work smoothly | @@ -51,6 +52,6 @@ TODO | API | Usage & Description | | ------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- | | `Crypto` API | Used to make chat features work when joining online servers with authentication. | -| `requestPointerLock({ unadjustedMovement: true })` API | Required for games. Disables system mouse acceleration (important for Mac users) | +| `requestPointerLock({ unadjustedMovement: true })` API | Required for games. Disables system mouse acceleration (important for Mac users). Aka mouse raw input | | `navigator.keyboard.lock()` | (only in Chromium browsers) When entering fullscreen it allows to use any key combination like ctrl+w in the game | | `navigator.keyboard.getLayoutMap()` | (only in Chromium browsers) To display the right keyboard symbol for the key keybinding on different keyboard layouts (e.g. QWERTY vs AZERTY) |