Help with Minecraft clone!

@Dimalenus, please, stop. You’ll hurt yourself if you continue insisting that doing rocket science is the best way to figure how maths works.

Break down your goal “superdupercool own minecraft clone” into smaller parts and do one thing at a time - learning jme basics in one step and learning how voxel worlds works in another step and only then you could safely use jme to implement voxel world in yet another step.


Yes, I said before seeing the source, however, I decompile your code is studying with it. And no one spoke fight here, this is just an exchange of ideas to improve the framework.

You don’t need to decompile anything as he released his source code lol.

…i admire your enthusiasm…its really beautiful…i would recommend to you to take a look at this and get your hands over this…this is basically a ‘heartbeat’ of your engine if you decide to build one (I guess Minecraft as well)…so, to understand how it actually works is good idea for first step…here is the linky…

Nice Marching Cubes Tutorial

1 Like

Note: despite the fact that it has ‘cubes’ in the name, “marching cubes” generally has nothing to do with block worlds at all. It’s a way to render isosurfaces. For example, my IsoSurfaceDemo uses marching cubes.

That’s way different than a block world.

1 Like

@wagfeliz told me which name I was looking for: It’s called GreedyMesh that’s what I have to study!

Well, greed mesh optimization is one more thing you need to look at, but there is a lot more.
For marching cubes ref and how it works as well : marching cubes algorithm - YouTube

Today met a game called StarForge, he is more awesome than Minecraft in which you can break down and build things like Minecraft, but StarForge is not made of cubes is pure Mesh, I’m impressed. A mesh that is deformed? This is extraordinary.

I found a source code that will help those who have doubts this is a simple and easy to understand code on Greedy Meshing :grin:: GitHub - roboleary/GreedyMesh: Greedy meshing for complex voxel data



Hm ;-;

lol @normen, just before I saw your reply that’s what I did, literally :smiley:

Seriously though @Dimalenus, why not just use boxes for now and create a “small” minecraft clone. One that does not have to deal with large open worlds, paging and all that chunk stuff. Just set the game up as a small puzzle game or something where you have to build something using blocks and then move on to the next level. This would cut out a lot of the complexity but you’d still get the chance learning how it all works.

The point that has been made from the beginning is that box worlds are not made of boxes, they are made of a single mesh and in the cubes framework it uses a texture atlas and texture coordinates in a clever way so that you only need one mesh and not several “boxes”. Once a block is removed or added the mesh is re-generated.

Another option for you is to just build something working using just cubes for now and then later on figure out how to extend it with even more cool features. Keep things simple to start with and don’t assume you need to optimise everything.

I think he explicitly said he switched from the Cubes framework because it doesn’t have infinite worlds.

Oh and please continue, this thread is so entertaining :smile:

1 Like

But don’t be too rough with him please. Every user who enjoys jME and appreciates the community counts. :chimpanzee_wink:

And if it comes to megalomanic projects - it’s always good to see fresh people with a lot of fighting spirit. There have been some great projects (e.g. RTS games) by lonesome people working for years on their dream. And what back then were RTS games today is Minecraft or LoL etc. :chimpanzee_smile:

1 Like

Note: when we say that block worlds are not made of boxes… we don’t just mean that they aren’t made of individual box meshes. We mean that they are made of QUADS… put together in one mesh, but rarely does a whole box come into it and even then it’s 6 quads. You do not need to understand greedy meshing for that part (it’s an extra level of optimization but not at all necessary).

for each block:
-look at each neighbor block.
–if neighbor block is empty, add a face

This is really the simple part of making a block world. It’s everything else that you will have to do mostly from scratch that makes it one of the hardest types of games to write.


I am currently having a great progress. My technique is to use Cubes Framework as a base and modify it so besides learning be doing my project!

Optimized meshes are no longer a problem for me, this time trying to create infinite worlds, I was thinking of creating a thread that adds and removes Chunks around the player for an ArrayList something.

…i found this is very interesting…i would like to take a closer look at this, but link provided doesn’t work anymore…is this still available for download?

Going to guess you were responding to the iso surface post… the old link was broken when the forum switched I guess but if you scroll down it’s here:

It could be that there are more posts after that but those links still work. The project has since moved to github:

…but I don’t know if I did a new release there or not yet.

…Note: if you get interested in the topic then it’s maybe worth reading that thread from the beginning to get an idea how it was constructed.

I advise you to look at the Cubes API which uses it in one of its main nodes…