(aiming to be) A blazingly fast multiplayer server for Minecraft Bedrock written in JavaScript / TypeScript
It seems to be a popular opinion that JavaScript isn't performant enough to be used as a game server. This project was created in an attempt to disprove that. You see, it's incredibly easy to point fingers at a language and laugh but, when you give it a little more thought, you realise that JavaScript, specifically Node.js, has great potential.
A lot of these opinions are immediately backed up by "...because JavaScript isn't compiled", which, in the case of running a Node.js server, is simply incorrect. When you start the server, Google's V8 not only compiles the entire codebase, it also uses it's dictionary of fast, pre-compiled code fragments to optimise your code - Read More.
If you'd like to compare Node.js to Java, take a look at this article, it does a great job at explaining the pros of each. But, if you can't bring yourself to read the article, here's a small snippet for you:
Where Node.js wins: Speed
People love to praise the speed of Node.js. The data comes in and the answers come out like lightning. Node.js doesn’t mess around with setting up separate threads with all of the locking headaches. There’s no overhead to slow down anything. You write simple code and Node.js takes the right step as quickly as possible.
Another major perk to using Node.js is the ability to create Node Addons. These will allow us to write certain parts of the software (such as the RakNet implementation) in C++, which is obviously a far more performant language.
Without the following repositories as a constant reference, this project would not be possible. Thank you to each and every person who has contributed to any of them, you're all amazing ❤️.
- NukkitX (NukkitX/Network, NukkitX/Nukkit)
- PocketNode (PocketNode/RakNet, PocketNode/PocketNode)
- GoMint (GoMint/jRakNet, GoMint/GoMint)
- PMMP (pmmp/RakLib, pmmp/PocketMine-MP)
- falkirks (falkirks/DirtServer)