Why do I see so many Blockworld games being made by people? (No offense meant)

Hahahaha okay, that’s what I thought :slight_smile: .

I’ve never played Minecraft, but it seems to be a game that gets talked about a lot.

I heard that it was created with LWJGL? So that’s good to see Java game engines are being used more for games now. Hopefully we will see increases in it, but who knows.

Is it hard to make a voxel based game? I guess it depends how much you put into it too…

thanks.

Yes. It’s one of the hardest types of games to make. It’s very misleading because people equate ‘simpler graphics’ with ‘simpler game’… but a blockworld game must do nearly everything for itself.

It’s only real indie-developer benefit is that it requires very few prebuilt assets.

People always seem to think that voxel means cube as well.

2 Likes

Well it basically means “3d pixel” which are mostly blocks.

Hmm thanks… Figured it would be easier, but I guess not.

@normen yeah that’s what I read when looking it up. I would assume cubes would be the easiest to work with, especially equal sided cubes so they fit nicely together :slight_smile: .

There are other ways to represent voxels (volume elements).
Voxel Terrain System
IsoSurface Demo - Dev blog experiment... (released)

The idea is that you have a float value at each point of a 3D values field.
The resulting geometry is being extracted by “marching cubes” and other techniques.

The better techniques make the end result much less “blocky”.
I interpret this as “3D anti aliasing” because its effect is similar to 2D anti aliasing… :chimpanzee_smile:

Yeah, my earliest experience with ‘voxels’ was actually like floating point sprites. So I’m quick to call block worlds block worlds instead of ‘voxel’ games.

1 Like

Ah yes … of course … point clouds are another kind of voxel data! :chimpanzee_closedlaugh:
I wrote a simple point cloud code for this forum … it should be around here somewhere…

It’s a set of low level bindings similar to JogAmp, not a game engine.

More like smoothing, since antialiasing has a specific meaning, that is, the reduction (anti) of aliasing (artifacts due to the undersampling of a function).

It’s a concept in signal theory.

Let me guess that people make voxel games because constructing an environment out of voxels is a relatively straight-forward task. You have a grid that perfectly aligns everything and you can construct anything as a simple series of 2D layers, which means no one needs to discover how they will put their environments together. Building environments is easy, and building tools to build environments is easy, so people can jump straight into making a game.

In contrast, whenever I think about making a 3D game, I immediately get lost in the web searching for good ways to model an environment in 3D. I consider using voxels, but having a single fixed grid would stifle my creativity, and so the game never ends up being made.

That’s just my guess from my own limited experience with failing to make games.

If by voxel you mean block world like mincraft you are correct, but its not only jme case, there are a lot of peaple trying to do this in other engines as well.
New peaple use to think this kind of game is easier to start because they think that :

  1. Its easy and fast to make since the game “looks” simple.
  2. You dont have to worry about assets creation since the game almost have no assets.
    The thing is, the item number 1 is not true, and its actually the opposite, this type of game is very hard to make, so only a few have sucess on this task…

Well it basically means “3d pixel” which are mostly blocks.
However I’ve seen one of ancient (few years before minecraft) implementations based on spheres. Main advantage listed was faster rendering. But since then I never heard it was released, just seen a demo. Looked like a bit alien world, but was really fast enough, and what those guys declared was a very cheap raytracing. I didn’t go to sources and math behind though.

Thanks all, sorry for the wrong vocab word :P. I saw the term used i think on here in one thread, looked up the word, and that’s what a ton of pictures were showing, even though the definition of a Voxel was what has been mentioned in this thread. Wasn’t sure what to call them, so I went with that :stuck_out_tongue: . I edited the title to not sound noob :slight_smile: .

So why exactly are “BLockworlds” so much harder?

pspeed said because they “have to do everything for themselves,” but what does that mean in comparison to regular 3d model games?

You basically have a “custom mesh” that consists of quad surfaces, not cubes.

In a typical game you load models, start animations, etc. - all quite simple tasks.
The quality in such a typical game comes from the art assets.
→ the art department is crucial for the success

In a Minecraft-like game you must compute a lot and do custom meshing + endless world.
The quality in such a Minecraft-like game comes from this special-purpose coding.
There are no or only few art assets (like textures that you can draw in 10 minutes each).
→ the coding department is crucial for the success

the art department is crucial for the success

The Evil Design team…

the coding department is crucial for the success

Always #1!

I see, I guess that makes sense with what @pspeed was saying with Mythruna, that everything is generated at runtime or something like that, compared to it being all assets.

But it seems you can load in assets from outside as well?

I guess I’m not sure when you would have to do a “custom mesh” or not. Since they are all cubes, are you just making custom quads and stitching together into a cube, or possibly optimized into some random cubed shaped polygon?

Thanks :slight_smile:

It’s quite simple to answer:
The animals (pigs, cows, etc.) and monsters (creeper, skeletons, spiders) → are loaded models.
Everything else (blocks, trees, water) and also the character (composed of armor and face) and the tools (axe, bow, hammer) → is generated at runtime.

The blocks and water is the best example for “custom mesh” (aka “generated at runtime”).

So essentially. Things that stay the same are loaded (animals and such), but custom terrains, and custom models/weapons are generated based on data from the game to say “this character has this and this” even if the asset was already loaded via assetmanager???

and we can load assets either by having them in game, or user supplied, and they could be either loaded, or custom generated as well?

Thanks!

A texture is also an asset loaded via the asset manager.
The quad faces in Minecraft have primitive textures on them.
But that’s not the point.

The point is:
Typical games load complex models and levels (made in Blender by artists).
Minecraft-like games generate almost everything in code (generated at runtime).

Block worlds are not made of blocks. If you search the forum for that you will get a million hits. It used to even be a tooltip if you hovered over the word blockworld anywhere in the forum. Every bit of land you see is a custom mesh of quads (in Minecraft’s case).

Where as for a standard game, you create a level in Blender. Load it. Create some mobs in Blender, load those. Turn on bullet physics… and now you are already halfway there. Even your lighting is probably already built into the level… and you’ve certainly baked in AO or something.

For a block world, you have an algorithm to generate the world. You need to generate the mesh for the land. You have to do your own custom physics stuff to make things play nice with the custom meshes. You have to do your own lighting. etc… basically nearly everything is from scratch.

The only external assets Mythruna loads are the avatars (and eventually the mobs). Everything else, even the tables and chairs, are generated from blocks in game. In Minecraft, even the mobs are generated from blocks.

1 Like