I'm working on a server-compatible Minecraft client. That's quite easy right now, as most of the gameplay is handled server-side, and the client simply has to take care of the rendering. Since the protocol is open source, that is definitely doable.

Now, when it comes to single-player, things are definitely harder, since now I'd have to do these things myself, and I don't know how Minecraft's internals work. However, some things can be reverse engineered, the physics and NPC behavior and the sorts should be able to be replicated, but specifically the world generation based on seeds bothers me.

How can I implement world generation in my custom client?

  • 1
    \$\begingroup\$ For single player, it sounds like you should be free to implement terrain generation any way you like. The actual process you use does not have to match Minecraft's internals, as long as the result produces a world you like playing in. What have you tried so far, and what's a specific issue you've encountered that we can help you overcome? \$\endgroup\$
    – DMGregory
    Jun 1 at 16:28
  • \$\begingroup\$ No specific issue, generating itself works fine. (What I've done so far at least, eg. Biomes, Dirt Overlay, Terrain, Caves, Underground Blobs and Structures) It's just that I'd love to actually have seeds working the same way in both minecraft and my client. \$\endgroup\$
    – Mat NX
    Jun 1 at 16:45
  • 1
    \$\begingroup\$ In its current form, this question could only be fully answered if someone found a complete guide to Minecraft's world generation algorithms (which might not exist anywhere to be found) or took the time to reverse-engineer and document the whole thing for you from scratch (which would be an immense effort). So, I don't think you're likely to get answers this way. But if you can narrow the focus of your problem to something with a shorter answer, even if it just helps you with one step and you need to ask another question for step 2, I think you'll get more answers, faster. \$\endgroup\$
    – DMGregory
    Jun 2 at 11:27
  • \$\begingroup\$ Thank's that was really all I needed to know, in that case, I'll stick with my terrain for now. \$\endgroup\$
    – Mat NX
    Jun 3 at 12:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.