Show HN: Pumpkin – A Modern Minecraft server written in Rust

alex_medvedev | 419 points

The performance differences look pretty impressive from the benchmarks. I do notice that world generation and saving features are missing though, and these tend to be pretty expensive operations. Chunk gen especially can bring a weaker VPS to its knees. I'm sure the benchmarks were taken at an idle state, but I'd be curious to see how it compares once those features are included and being used.

I don't see it listed, but is there support for block breaking/placing yet? Presumably this would require light recalculation and a chunk update on the server.

Finally, do you plan to add advanced features like scoreboard, teams, or command block parsing in general? Mojang has at least open-sourced Brigadier for that.

Cool project. Hope to see it mature to the point of making servers easier to run on low-end hardware.

SquareWheel | 9 months ago

Are there any benchmarks for it? How much faster is it than a vanilla server?

I know Minecraft servers tend to get extremely resource intensive as the player count creep and people run extremely beefy servers to handle the load and still offer poor TPS.

mobeigi | 9 months ago

Hello. I recently developed Pumpkin, Its a efficent and fast Minecraft server completely written in Rust from the ground up, Check it out :D

alex_medvedev | 9 months ago

As someone who knew about this project from earlier (I had even joined their discord) (currently have just deleted my discord account for better state of mind) Its really made me happy that hackernews really liked this project (140 upvotes is pretty good in my opinion)

From what I remember , there was one other server as well which also was written in rust but I am not exactly sure

Also , the last time I was at it , it was really really alpha software but it was getting developed at good rate , so I am not sure about its current state (I was there when the author had gone to take his exams IIRC)

Imustaskforhelp | 9 months ago

Are you sharding the main thread into regions (ie. Like paper folia) or is this just breaking of non block-entities to their own threads.

ramenlover | 9 months ago

Just waiting for Minecraft to be so reverse engineered as to be its own protocol with multiple server and client implementations that just work.

dartos | 9 months ago

I will give it a try, Thanks for this project. The performance of pure vanilla server jar is so bad. Thats one thing I wish mojang would improve. I know new chunk generation is multithread at least. I also wish they'd officially support some basic control for SMP servers. Something as basic as areas defined by two corner coordinates and basic permissions like place, break, interact. Just a basic config file is fine I can manage the requests/updates ot it using other tools - or a simple commandline utilities in game to ops. Something that lets me not have to always only use an excluse whitelist. I know Paper/waterfall and the others have plugsins for this but theres just something nice about staying pure vanilla. Ive been keep servers alive for a long time now.

InMice | 9 months ago

It has now been 0 days since a new minecraft server was written in Rust https://dayssincelastrustmcserver.com/

bbno4 | 9 months ago

What does "modern" mean in this context?

kgeist | 9 months ago

Love the idea. Especially as a learning example. Always fun to learn a language by implementing a popular game.

Am confused by these two lines. Maybe it is just difference between the 'goal' and the 'current state'.

Goal:

"Compatibility: Supports the latest Minecraft server version and adheres to vanilla game mechanics. "

But NOT:

"Be a drop-in replacement for vanilla or other servers "

Will it be a replacement for Vanilla or not?

FrustratedMonky | 9 months ago

See also https://github.com/valence-rs/valence A "clean room" implementation of the Minecraft server written in Rust

tomasff | 9 months ago

When I was a game developer, the last language to be considered for use in game servers was Java.

I think the Minecraft server is in Java exclusively because Notch was only proficient in that language at the time.

delduca | 9 months ago

How does this compare to Dragonfly (IIUC, basically the same thing, but in Go)? https://github.com/df-mc/dragonfly

zellyn | 9 months ago

Impressive stuff, but I'll be more keen to see an high performance implementation that also supports the vast numbers of Minecraft mods. Forge servers are notoriously slow on bigger modpacks.

rumblefrog | 9 months ago

It always fascinates me how people can do this!! Would there be any write ups about how this was made, I'd really appreciate this.

changexd | 9 months ago

Just to be clear this sever only works with the current vanilla version of Minecraft? I've been interested in playing again, but on the older Beta builds (1.7.3) prior to the full release versions. These versions aren't supported are they?

kamlaserbeam | 9 months ago

WOWOWOWOOWOWOWOW

lencastre | 9 months ago

This looks great! Can't wait to check out the code in detail.

saintradon | 9 months ago

i wish minecraft was open source, i'd be able to fix their inefficient protocol

WhereIsTheTruth | 9 months ago

looks good

superlucky84 | 9 months ago

Reminded me of this existing https://dayssincelastrustmcserver.com/

icepat | 9 months ago

Similar projects:

- Feather (Rust, abandoned) https://github.com/feather-rs/feather

- Valence (Rust) https://github.com/valence-rs/valence

- Cuberite (C++) https://github.com/cuberite/cuberite

pzmarzly | 9 months ago

[dead]

paulinejq47 | 9 months ago

this person is going gods work

dangoodmanUT | 9 months ago

This weeks Minecraft server! Nice!

bradhe | 9 months ago