-
Notifications
You must be signed in to change notification settings - Fork 15
Open
Labels
Description
Edit: Updated project goals can be found in the discussion below, starting with this comment. Original opening comment follows:
Before we do any actual coding, we should define the project goals. Here are some of my ideas, in decreasing priority:
- The most important goal should imo be feature parity with the “Notchian” vanilla Minecraft server, specifically the latest stable release of the standalone
minecraft_server.jar
. That is, anything which is considered a feature (as opposed to a bug or implementation detail) of the Notchian server is (in 20XX) also a feature of the Hematite server. - Custom features which are not present in Notchian (see below for examples) should be disabled by default. For example, the presence of a
hematite.json
config file in the server directory could trigger custom features. - Besides a standalone binary, there should also be a library crate which can be used by the Hematite client for the local singleplayer server.
- A branch which tracks the latest snapshots and pre-releases.
- As a custom feature, an implementation of a future version of the Wurstmineberg Minecraft API or perhaps even a superset capable of replacing wurstminebot is something I would like to see.
- Multi-world support as a custom feature.
- Performance, obviously.
- A way to detect Hematite clients and use a more performant variant of the protocol for them (e.g. chunk caching), perhaps as a custom feature. I'm not sure if this is worth the additional code complexity.
What do you think about these? And do you have any other suggestions for project goals?