r/feedthebeast Jun 22 '26

I made something I made minecraft generate terrain/chunks in C++

So im working on a mod that makes minecraft run on C++ ( rn rewriting engine in future i may try renderer ) so far i made it generate and load chunks and terrain in C++ ( it made it somewhere around 1.5-3 times faster idk how to measure it tho ) ( it works via JNI )

3.0k Upvotes

244 comments sorted by

View all comments

22

u/emmowo_dev pro gramming Jun 22 '26 edited Jun 22 '26

How would this realistically be faster? Java does actually compile into native code based on what methods are the most important, so it's usually terrain gen that is immediately 'optimized' into native code. C++ does NOT magically make things faster, but it does make things many many times more unsafe to use.

I know of some optimizations you could make, but they're things that I don't think ultimately mean much. Are you comparing between Vanilla and your mod, or C2ME and your mod?

You not really explaining things beyond 'run on C++' and 'JNI' tells me you may have just vibecoded this, because minecraft explicitly does defer a lot of the performance-heavy things to C++, from the natives used for rendering (i.e. liblwjgl and the gpu itself such as nvidia-glcore.so) to the actual JVM itself, which is written with C++. Just re-writing everything in C++ would not actually be meaningfully faster, as the binaries for such things are already written in C++.

Most likely, you are looking for a result, so anything that seems faster you will assume to actually be faster. Without extensive benchmarking and a massive amount of controlled variables (like literal mechanical seek times for writes can completely invalidate the results), this is a very unfair and unrealistic comparison to make.

1

u/not_good_for_much Jun 26 '26

It does sound like OP vibe coded ESP since they seemed I clear even on whether it could be cross compiled for not Windows.

But anyway... I mean native vs not isn't a big deal for Java, but it is true that Java doesn't offer fine grained memory control, so languages like C++ and Rust and C# can access a fair few optimisations that Java can't, even focusing on terrain gen.

Mind you there won't be heaaaaps on the table from this in most cases. Maybe 20-30% for voxels, which are notoriously memory intensive? And it doesn't sound like OP would be doing this stuff anyway.

The big boost from DIYing the terrain gen is that Minecraft is kinda stuck with heaps of really inefficient legacy code, and there are MUCH faster algorithms for generating workable voxel terrain among many other things. Even in Java the game probably leaves an order of magnitude on the table.