Skip to content

Multithreading and other optimizations for the Craftbukkit Minecraft server

License

Notifications You must be signed in to change notification settings

MineMine/MinetickMod

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MinetickMod

This is my mod of the popular Craftbukkit Minecraft server. Its main purpose is to increase the server's processing speed, by introducing multithreading and other optimizations. And while I'm at it, fixing bugs that I found.

Developement started privately back in April of 2013. Since May 1st (Minecraft version 1.5.1 at that time) this mod is powering the server Minetick every day.

The main achievements so far:

  • Prioritized parallel processing of the entities of different worlds
  • Queued, limited and parallel chunk generation in different worlds
  • Main thread independent creation, orebfuscation and compression of chunk packets

Parts of the changes are pretty well tested already (like parallel ticking of entities), other parts that I added recently (like offloaded packet creation) still require lots of testing.

Here is a (very abstract) graphical overview on what changed:

As you probably notice: I'm using 4 worlds in this example here and by default a server only has 3 worlds (Overworld, nether and the end). This is a hint to you, that your gain from this mod is greater the more you spread the players on your server, and therefore the load on the worlds, equally among several worlds. To load up additional worlds, I can recommend the plugin Multiverse

An important guideline in this project is to do as little changes as possible, but as much as necessary. Therefore this project is not, and will not be, a complete rewrite of Minecrafts server side, to get as much benefit out of parallel processing as possible. Instead I carefully examine and profile the various parts of the server code and decide then, what is worth to be optimized with a reasonable amount of work.

In this repository, every Minecraft version of this mod will have its own branch. I probably won't do them all, just for the most important ones.

Compilation

We use maven to handle our dependencies.

  • Install Maven 3
  • Check out and install Bukkit
    • Note: this is not needed as the repository we use has Bukkit too, but you might have a newer one (with your own changes :D)
  • Check out this repo and: mvn clean package

About

Multithreading and other optimizations for the Craftbukkit Minecraft server

Resources

License

Stars

Watchers

Forks

Packages

No packages published