Lea-fish / Leafish

A minecraft-like multi version client implemented in Rust.
Apache License 2.0
824 stars 46 forks source link

Leafish logo Leafish

Multi-version Minecraft-compatible client written in Rust, forked from Stevenarella.

Installer: https://github.com/Lea-fish/Leafish/releases/tag/v0.0.1-alpha


Screenshot showing the main menu


Chat

Chat takes place on Matrix and Discord. The channels are bridged to each other so you won't need an account on both services.

If you want to help make and improve the game, join the developer room.

If you're a user and need help or want to ask some questions then join the general room.

Announcements are made in the announcement room and joining it is a good way to keep up-to-date with the project.

General Development Announcements
Matrix Matrix Matrix
Discord Discord Discord

Aside from the individual rooms you can also join the Matrix space to have all rooms grouped together nicely.

Contents

Introduction

Leafish is an open-source re-implementation of Minecraft. The game is a open-world sandbox where players explore a blocky, procedurally-generated 3D world with virtually infinite terrain, and may discover and extract raw materials, craft tools and items, and build structures or earthworks. The game has various game modes including survival mode, in which players must acquire resources to build the world and maintain health, and a creative mode, where players have unlimited resources and access to flight.

Minecraft is originally written by Mojang in Java for PC, but nowadays also has a so-called "Bedrock edition" which has ports to various alternative platforms. Leafish attempts to provide everything from the Java-edition and tries to be compatible with it so you can join regular servers and play alongside people using the official Java-based clients. Being written in Rust with support for modern graphic API's like Vulkan means performance improvements and enhancements that are not possible in the original game. It's also completely community driven!

Note that currently not everything from the original game is supported yet so Leafish can't currently be seen as a fully fledged alternative. A list of missing features is available on the issues page.

Version support

Symbol Meaning
All features supported
- Protocol supported (so the client can join servers using the version) but various missing features
Game version Protocol version Supported?
1.16.5 754 -
1.16.4 754 -
1.16.3 753 -
1.16.2 751 -
1.16.1 736 -
1.16 735 -
1.15.2 578 -
1.15.1 575 -
1.14.4 498 -
1.14.3 490 -
1.14.2 485 -
1.14.1 480 -
1.14 477 -
1.13.2 404 -
1.12.2 340 -
1.11.2 316 -
1.11 315 -
1.10.2 210 -
1.9.2 109 -
1.9 107 -
1.8.9 47 -
1.7.10 5 -

Leafish is designed to support multiple protocol versions, so that client development is not in lock-step with the server version. The level of support varies, but the goal is to support major versions from 1.7.10 up to the current latest major version. Occasionally, snapshots are also supported.

Forge servers are supported on 1.7.10 - 1.12.2 (FML) and 1.13.2 - 1.16.5 (FML2).

Support for older protocols will not be dropped as newer protocols are added.

Getting the game

Using the installer

The easiest way to use Leafish is by using the official cross-platform installer: https://github.com/Lea-fish/Leafish/releases/tag/v0.0.1-alpha It works for Windows, Linux and MacOS and can install into Mojang's official launcher and Prism Launcher. If you encounter any issues during the installation process, you might want to try using a different java version to run the installer (java 8 should work).

Downloading a pre-built version

Since there currently is no release yet, pre-built binaries have to be downloaded from Github Actions. The latest actions can always be seen here. Click on a workflow run from the main branch and download the artifact for your platform.

Building the game

Dependencies

Rust stable version 1.53.0 or newer is required.

Debian/Ubuntu

As current Debian stable (Bullseye) has a rust version below the required one, you need to either update from an external source, or consider using Debian Testing (Bookworm) for example.
For Ubuntu you might want to use the -updates repository for your version.

# apt install cargo libssl-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libgtk-3-dev

Alpine Linux

You have to enable the community repository for cargo.

# apk add cargo openssl-dev xcb-util-dev gtk+3.0-dev

Arch Linux and derivates

# pacman -S rust python3 pkgconf openssl xcb-util gtk3

Building

Make sure you're in the root of the Git repository before running the following commands.

Compile and run:

$ cargo run --release

Just compile:

$ cargo build --release

Running

Double-clicking the game should be enough to run Leafish, which will bring up a login screen followed by a server list from which you can select a server. If nothing happens consider running the executable from the command-line, ./leafish and see if any errors come up.

Contributing

A list of bugs and missing features can be found on the issue tracker. Feel free to work on any bug and submit a pull request to the main branch with the fix. Mentioning that you intend to fix a bug on the issue will prevent other people from trying as well and makes sure no duplicated work is done. Note that all contributions are will be dual-licensed under MIT and ApacheV2

New features

Please talk to the Leafish team first before starting to develop a new feature. We first and foremost try to make the game feature complete compared to the vanilla Java edition and except for very specific things these should be prioritized. Therefor contacting us will allow us to help you or prevent you from wasting any time. You can talk to us via Matrix and/or Discord, see links at the top of this page.

Credits

Thanks to @thinkofname for the original Steven (Rust) and @iceiix for taking up development with Stevenarella.

License

Dual-licensed MIT and ApacheV2