Cuberite - A Custom Minecraft Server Written in C++

Status
This thread has been locked.

Petscop

hmm
Deactivated
Feedback score
9
Posts
85
Reactions
100
Resources
0
So, recently I came across to this Github project named Cuberite with pretty good amount of stars (2,670 as I'm writing this), witch is completely custom Minecraft Java Edition server written in C++.

So what are the features, or pros?
  • Since it's written in C++ compared to Vanilla Minecraft Server or Bukkit/Spigot that is written in Java, Cuberite is much faster and uses less memory and CPU.
  • Cuberite is licensed under the Apache License V2, and they welcome anybody to fork and submit a Pull Request back with their changes.
  • Cuberite to this day is still getting updates and it's improving overtime!
  • Cuberite got a well documented User Manual and almost fully documented docs for API
  • Cuberite got a Bungeecord support (Even though it's still experimental)
  • You can host Cuberite on Android and Raspberry Pi and it runs surprisingly well!

Sound great right? So how do I install it?

Well, hold on a second.
Even though Cuberite is does have performance advantage over Java Servers, I would not recommend to switch to Cuberite just yet, because​
  • Cuberite got a really small community thus making it less stable than Spigot. For example there's much less Plugins for Cuberite than for Spigot, There are still bugs and glitches that needs to be fixed and no server ever used Cuberite yet.
  • You have to use Lua to make plugins. Even though Lua is really fast scripting language and it's being widely used in game development and not having problems with it myself, it's not really loved by most developers being top 10 most hated languages according to Stack Overflow Development Survey 2018.
  • Making changes on the Cuberite's source code is going to be much harder than in Spigot, because it's written in C++ and it's really tough language to learn and use.
  • It only supports 1.8 - 1.12 protocols, witch is reasonable, because people who upgraded to 1.13+ got latency and tps issues. Not sure if Cuberite is going to support 1.7.x in the future, but it would be great!
My Experience with Cuberite

I've had fun experimenting with Cuberite, playing, making plugins, looking the source code, etc, and yes there were glitches I have found for example mobs clipping into blocks, suddenly disappearing and appearing, they behave differently in general, weird knockback, not playing most of the sound effects in 1.8.x and etc.

So if you want to host a server to play with your friends, Cuberite is a good option!

Even though Lua is not really loved by most developers, I didn't had problems with it, I even had much fun working with it, because it's a simple, lightweight, really fast and dynamic scripting language and in general if you have a C or C++ program, and would like the ability to run scripts, Lua is a great language to know.

It's also really easy to install extensions for Lua, because Cuberite supports LuaRocks, a Lua package manager, witch is equivalent to npm for Node.js and pip for Python.

Cuberite is been developing for 5+ years now, and I really want to see it grow and improve, witch is why I made this thread in the first place by sharing Cuberite with you guys. If you like to support the project, check out the links down below.​

So what do you think?

Will Cuberite replace Spigot in the future? In my opinion, maybe, but I don't think it's gonna happen really soon.
I would love to hear your experience with Cuberite and what's your thoughts about it.
TL;DR

Cuberite is a great project, even though it's still incomplete, I would love to see it grow. Also I would love to hear your thoughts about it!​

Useful Links

Cuberite Github https://github.com/cuberite/cuberite
Cuberite Official Website https://cuberite.org
Cuberite Manual https://book.cuberite.org
Cuberite Forums https://forum.cuberite.org
Cuberite Plugin API https://api.cuberite.org
Lua https://www.lua.org
LuaRocks - Lua Package Manager https://luarocks.org
Support The Developers of Cuberite on Liberapay or Bountysource


Thanks for Reading! :D
 
Last edited:
PebbleHost
High performance, consistent uptime and fast support. Minecraft hosting that just works.

Ghast

Founding Father of Hypocrisy - https://artemis.ac
Supreme
Feedback score
54
Posts
2,096
Reactions
3,285
Resources
79
Sounds trash. C++ on a java based game, being also a competitor of an official Mojang api, is just not a good idea.
 

Petscop

hmm
Deactivated
Feedback score
9
Posts
85
Reactions
100
Resources
0
Thanks for replying everyone!

Sounds trash. C++ on a java based game, being also a competitor of an official Mojang api, is just not a good idea.
Yeah, at first it's not really a good idea to have different languages, Java for the client and C++ for the server, but Hytale for example (even though it's not released yet) uses different languages too according to this blog, C# for the client and Java for the server, so Java developers could easily hop into Hytale's boat. Pretty sure there are other games that use different languages for the client and for the server. Also what Croc said, Spigot is a fork of CraftBukkit, that it's being run by a third-party, so it's not really an official API. We are not talking about CraftBukkit, because majority of server owners are using Spigot (and forks of Spigot).

In my opinion, having a custom server written in C++ is a good idea. If Cuberite became stable and got pretty big community, most of the server owners will probably think about switching to Cuberite, because who doesn't want their servers to be much faster, and less resource hungry?

Have you tried it?
Yes al7xx, I wrote my experience with Cuberite on the main post. I will add more info later.
 

Samuel

The most serious person ever.
Supreme
Feedback score
33
Posts
2,210
Reactions
1,572
Resources
0
Seems pretty neat, but I haven't really taken time to dig into it.
 

Ally

gσ∂∂єѕѕ σƒ мαтнѕ αη∂ мєℓσηѕ χσ
Supreme
Feedback score
37
Posts
2,043
Reactions
2,194
Resources
0
C++ should have been used for Minecraft in the first place like Bedrock edition.

With that being said, however, Bedrock edition has proven to be incredibly unoptimised, just like the Java edition of Minecraft. It has turned from an extremely nice & fast game to a sluggish one (Windows 10, especially). Now, I have every bit of faith that C++ is much faster than Java in this respect, but when you add features and fix bugs, the codebase becomes... a nightmare.

My hope with this is that the developers can maintain solidarity in optimisations, because that's really what makes this special here. C++ alone will be much better than Java, but only if done correctly.
Sounds trash. C++ on a java based game, being also a competitor of an official Mojang api, is just not a good idea.
Sure, the game's in Java. If written from scratch however, C++ is perfectly viable and Java, in no way, will interfere with that. If network protocols are maintained between languages (so you can actually communicate) then it poses no issue. Also, the C++ version would still have to use the Mojang API for authentication & whatnot. It is in no way a competitor.
 
Status
This thread has been locked.
Top