2021-03-03 20:40:31 +01:00
2021-03-03 20:40:31 +01:00
2021-03-03 20:40:31 +01:00
2021-03-02 22:44:15 +01:00

Minosoft

Minosoft is an open source minecraft client, written from scratch in java. It aims to bring more functionality and stability.

pipeline status

Feature overview

  • Rendering
  • Multi protocol support (1.7 - latest)
  • Stable modding API
  • Unsafe modding API
  • Fast performance (incredible start time of 3 - 5 seconds on modern hardware)
  • Free (as far as we consider original minecraft as free) and open source
  • Multi accounting (also multiple account vendors: Offline, Mojang, Microsoft)
  • Multi "sessions" (Connections to a server)
  • Multi threading and asynchronous loading
  • Debugging on protocol layer
  • LAN servers
  • Way more stuff

System requirements

  • CPU: Minosoft works mostly asynchronous, so multiple cores are good. For FPS more clock speed is better.
  • RAM: Our goal was it to run without compromises on an 8 GiB computer and at least limited on an 4 GiB one.
  • Disk space: Minosoft itself is pretty small (2-3 Mib), the libraries are a bit bigger. You also need to have the "normal" minecraft assets (~ 300 MB for one version).
  • GPU: OpenGL 3.3+. Every moden GPU works and is recommended.
  • Java 15 (This is really important, we use experimental features that are only available in this version. Java 8 is currently not supported).

Rendering

Works. Still missing many features, but heavily developed.

Rendering
Lighting demo.

Rendering
Biomes demo (picture not up to date, contains bugs)

Starting, etc

There is no "launcher" or anything familiar. Just start Minosoft, and you are practically in the game. You will be greeted with a server list. Once you know what server you want to join, click on it. All data will then be loaded, and the rendering window starts, once everything is done.

Server list

Version support

I always try to add support for the newest version of minecraft. Mostly it is pretty easy, just declaring it and generate all data. After pushing it, it is supported. Some versions are more complicated and need a bit of coding. I always try it as fast as possible, but sometimes I just need time.

Supported versions

Almost all versions (and snapshots!) between 1.7 and the latest one (21w07a as of writing this, snapshot for 1.17). I plan to maintain Minosoft to at least version 1.20, so stay tuned. Support for older protocols will not be dropped as newer protocols are added. And I can only recommend using the latest stable version.

Unsupported versions

Minosoft uses PixLyzer as data source for all kind of data (like block ids, item ids, ...). PixLyzer currently works for 1.14.4+. We will backport it for <1.13 soon.

Modding

Minosoft is modding friendly. A decent and stable API was introduced with !17. It is pretty final, but some things might still change. See Modding.md for more details. The code is pretty dynamic (all blocks, items, entities, etc are stored in json files). It is pretty easy to load custom entities, etc, so adding custom blocks, etc is easily possible. Spoiler: Forge mods are NOT compatible. Feel free to write a compatibility layer (This is a really hard thing, we do things completely different).

Botting

On the ToDo List

Contribution or helping out

You're welcome, but feel free to take a look at Contributing.md.

Tools and generators

We wrote some tools to help out, see Utility.

Credits

See Credits.

Releases and beta

No clue, but still waiting for !21. Also, some features need to be implemented, so not soo soon (but we are getting closer).

Compiling and running

  1. Install Maven and java 15 (On Ubuntu based distributions: sudo apt install maven openjdk-15-jdk).
  2. Clone this repo (git clone https://gitlab.bixilon.de/bixilon/minosoft.git).
  3. Change directory (cd minosoft).
  4. Checkout the branch (git checkout <branch>). Eventually rendering or development.
  5. Build and run Minosoft with mvn clean verify exec:java. If any errors occur, feel free to open an issue. In this early stage it might be helpful to delete the app data folder (only of minosoft).

Code mirrors

This readme is work in progress, things may change over time.

Description
An open source Minecraft re-implementation written from scratch
Readme 230 MiB
Languages
Kotlin 98.6%
GLSL 1%
Java 0.2%
CSS 0.1%
Python 0.1%