A few weeks ago, I came across an old .rblx file of a Minecraft terrain generator I made over a year ago. I started working on it after I found this page on GitHub and abandoned it after getting to the water and lava part. Well, I decided to start over on it and try to make the code a lot cleaner, and after about 2 days I got the basic generation done. After spending the next 3 days fixing some bugs and adding support for textures, I found a tool to decompile and deobfuscate the Minecraft classic 0.30c jar file and started comparing my code to its code. I ended up porting Minecraft Perlin noise class to Lua, and after that, I found a node.js module called java-random, which is an implementation of java.util.Random, and I ported it too. After another 5 days of debugging and making sure my code worked the same way as Minecrafts code, I got this result:
(sorry for the low framerate, I don’t have a very good computer)
Compared to Minecraft:
In order to get the same world generated each time, I had to mod the game to use a default seed of 1. Since it uses a working implementation of the java.util.Random class, it can generate identical worlds.
It can generate worlds of any size, but I have it set to use the only sizes you can choose from Minecraft:
Small (128x128)
Normal (256x256)
Huge (512x512)
I would upload screenshots of these but the hard drive partition I saved them to get corrupted.
Currently, the only issue I’m facing is how low the fps get while rending all the blocks. I think this is happening because of how many SurfaceGuis are being rendered.
You can test it out here: