Skip to content

nkomarn/composter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Composter

Composter

A multithreaded clean room implementation of the Minecraft Beta 1.7.3 server.

CI CodeFactor License

Composter is still extremely early in development. While I will probably end up making a majority of this project, I definitely will need help along the way. This is an ambitious project, and I do realize that, but it is definitely an achievable one. I am starting this project for a few reasons:

  1. I want to learn about creating server software from scratch
  2. I seek to learn more about multithreaded software and parallelism
  3. I like Minecraft Beta 1.7.3 and it's old enough to be a reasonable target for this project (I think)
  4. If Notch could do it, I probably can (actually probably not)
  5. I enjoy pain (╯°□°)╯︵ ┻━┻

📋 Bucket list

  • Use Reactor Netty instead of just raw Netty. This will hopefully bring some performance improvements
  • Close to the same generation that Beta has. I know this is a pretty unreasonable goal, but hey, why not.
  • Use a different compression algorithm for chunks. I am looking at either zstd or lz4.
  • Async whatever the hell I can async.
  • Maybe write a cleaner world save system.
  • Get someone else to write the physics stuff (lol)
  • Other stuff, mainly consisting of finishing this project at some point with reasonable quality ✨

Have a look at the project tracker for todos and ongoing projects.

📚 Resources

  • wiki.vg - Reverse engineered Beta protocol (mostly)
  • Protocol FAQ - Typical flow of the Beta protocol
  • NBT Format - An old archived document outlining the NBT format
  • Reactor Netty docs - Great documentation outlining a lot of the features of Reactor
  • 🌎 Lots and lots of Googling...

📰 Licensing stuff

This project is licensed under the MIT license. I hope to not only create something functional out of this, but also allow others to learn from the code and improve their own knowledge! All of the code in this project will be completely original and thus you can copy and modify anything as you wish for your own purposes!


This project will not be possible without the support of many others. I appreciate any and all contributions made to this project. Together, we can create something great! :)