Page 1 of 1

Terrain smoothing (configurable)

PostPosted: Sun Jan 05, 2014 08:03
by SegFault22
I have come here to discuss a change/configurable option, regarding how terrain nodes are rendered, and the possibility of making said terrain awesomely smooth.

First, you have to look at some of the greatest MMO/RPG games out there - they have smooth terrains, and the environment is so very awesome. The only drawback, is that the entire world is static. For the most part, the player can not change or modify the environment - they cannot build their own home, can not make realistic farms, can not start realistic mines, etc. - Creativity is not present anywhere except PvP/PvE tactics and player clothing/armour/etc. colours/styles, which gets boring quickly.

Second, take a look at Minecraft/Minetest. It's a world of blocks/nodes that can be modified/molded into whatever the player wants. But the blocky environment looks dull and uninteresting after a while, and players' thumbs become tired from hitting the spacebar every time they need to go up a slope. Nothing in the world is smooth, from the pixelated textures to the blockiness of the entire world.

If we combine the two in a special way, we can create a smooth world, with elegant slopes/terrain, but also let it still be dynamic, composed of nodes that can be broken and placed similar to the current method. The way that nodes would take on their shape, would be very similar to the flowing water system of now, yet a little different. Nodes would have a "mesh" that is a flat, 2-dimensional square, for their rendering. There would be points on the corners, on the edges, and in the center of this mesh, and lines would be drawn between those points to form triangles, that act as the collision plane/texture area of the block. It is too difficult to accurately explain, so here I made two cutaway example-images of what the terrain looks like, with the current system and the proposed system:

Current System:
Image
Current system is blocky, as we all know. Terrain looks rough and un-realistic.

Proposed system:
Image
Proposed system would bend the terrain to match the positions of the nodes in the terrain. Past a certain angle, the grass texture would not be rendered - instead, there would be the dirt texture, because grass usually doesn't grow well on the sides of cliffs or terraces. The stone would act the same as the grass/dirt when exposed.

The way the mesh is bent would depend on what side(s) of the block are next to Air blocks - this way, you would actually be able to see the ceilings of caves, and outcroppings of dirt/stone would appear rounded-off where they are not connected to other stone.

Nodes like Wood, Fences, etc. that are not elements of the terrain, would not be bent like this, or would be bent in different ways (diagonal wooden walls, fences, etc.), because it does not make sense for them to bend with the terrain. The terrain around Fences would bend to accommodate the bases of the fence, and would "extend" the mesh of the fence into the terrain node if it is lower than 50% block height.

This would be much more realistic, and make the game look much better. Although it would still be flat and un-smooth in some places, it would be a step closer to awesomeness - combining the smoothness of the amazing MMORPG worlds with the dynamic node-based environment of Minetest. It would allow players and server owners to "create their own MMORPG", or something like that, by modifying the environment to their liking.

Of course, some computers may not be able to handle this level of awesomeness - which is why it would be configurable, defaulting to Off. However, a servers' configuration would be dominant over clientside configuration, because the collision-planes would be different for the two options.

Thanks for taking your time reading this, and remember to tell us your oppinions on the proposed change via reply - that's what forums are for - but do not be unnecessarily negative.

PostPosted: Sun Jan 05, 2014 08:56
by webdesigner97
No, because it would ruin the voxel athmosphere.

PostPosted: Sun Jan 05, 2014 09:03
by Nore
SegFault22 wrote:However, a servers' configuration would be dominant over clientside configuration, because the collision-planes would be different for the two options.


Perhaps it could be a good idea, however I reckon that if ever it is merged, client-side configuration would have to be dominant over server-side one. Moreover, how do you know which nodes are part of the terrain, and which aren't? (especially with nodes added my mods...) Finally, you would have to rewrite a lot of the engine to do so, including the lighting system.

PostPosted: Sun Jan 05, 2014 09:16
by SegFault22
webdesigner97 wrote:No, because it would ruin the voxel athmosphere.

It would be configurable. This would be for those who don't really like the world being rough like that, but still want a dynamic world with nodes. How would it ruin the voxel atmosphere, if it is both configurable AND defaulting to "OFF"? Those who like Voxel can keep it off, and those who like the world realistic and smooth could set it to On.

Nore wrote:
SegFault22 wrote:However, a servers' configuration would be dominant over clientside configuration, because the collision-planes would be different for the two options.


Perhaps it could be a good idea, however I reckon that if ever it is merged, client-side configuration would have to be dominant over server-side one. Moreover, how do you know which nodes are part of the terrain, and which aren't? (especially with nodes added my mods...) Finally, you would have to rewrite a lot of the engine to do so, including the lighting system.

Knowing which nodes are and aren't terrain, is one of the simplest things to this. It would be done by coding this into the engine as a "drawtype", and making any terrain-blocks have that draw-type.

Yes, this project would be a lot of work, but so was:
-Great Wall of China
-Empire State Building
-United States Constitution
-Silicon-based computers
-Designing the Gothic Cathedrals
-Construction of said Cathedrals
-Minecraft
-and even Minetest, in the beginning
-et cetera

Those who worked on said projects didn't trash the ideas because of difficulty. Even though it was difficult, the end result was beautiful. So will the end result of this project, if anyone decides to go through with it.

PostPosted: Sun Jan 05, 2014 09:58
by TenPlus1
Having half-blocks available for dirt, grass and sand would help smooth the terrain slightly but still give minetest look and feel to the world...

PostPosted: Sun Jan 05, 2014 10:08
by SegFault22
TenPlus1 wrote:Having half-blocks available for dirt, grass and sand would help smooth the terrain slightly but still give minetest look and feel to the world...

That's mod stuff. The topic is about the possibility of a Configurable, off-by-default option for Terrain rendering/shaping, that would revolutionize the entire gaming Industry, and whats popularity would take off like the Saturn 5 rocket, if implemented, even as a Configurable option that defaults to off.

PostPosted: Sun Jan 05, 2014 10:50
by Pitriss
you should pick another game to ruin it.. This game is intentionally based on cubic parts.. It is main thought of this game to have cubic world.. So.. no.. even with default off it is very bad idea.

If i want play non cubic sandbox game then i can play for example wurm online. But no, I'm playing minetest because i like it as is, with all the cubes around..

PostPosted: Sun Jan 05, 2014 11:01
by SegFault22
Pitriss wrote:you should pick another game to ruin it.. This game is intentionally based on cubic parts.. It is main thought of this game to have cubic world.. So.. no.. even with default off it is very bad idea.

If i want play non cubic sandbox game then i can play for example wurm online. But no, I'm playing minetest because i like it as is, with all the cubes around..

Dude, what part of "default off" do you not understand? This would be 100% configurable. Configurable. That means that the player can "choose" if it is on or off. Thus ruining Nothing. I'm not trying to ruin Voxel, I'm trying to bridge the gap between the amazing, awesome terrain scenes of the common MMORPGs, and the versatile dynamic envitonment provided by Minetest.

If this can't become a feature, atleast help us find someone who can fork Minetest and make this a reality. It helps nobody to shoot down revolutionary ideas like these, which take us a step closer to the best gaming experience possible.

Besides, Wurm doesn't even have a modding API, nor is it completely free to use and modify like Minetest. If I new how to code in C++, I would fork Minetest and make my own "game" including this. But sadly, I have not been blessed with the skills that others magically have, which allow them to grasp C++ just by reading a jargon dictionary some guy posted on the Internet.

PostPosted: Sun Jan 05, 2014 11:15
by VanessaE
It might look nice but one would have to see examples of this kind of rendering (not in some other game, but in a Minetest world). The 2d example images in your first post unfortunately show only a very small part of the picture.

I know Jordach is working on importing some parts of Minetest (or similar) maps into Blender for some of his fancy renders. Maybe he can apply your suggested algorithm to a few of those renders, texture them with our current set of defaults, do some fake lighting (not the nice lighting he usually uses), and show us more or less what it would look like?

PostPosted: Sun Jan 05, 2014 11:36
by Krock
That would spam the game with useless nodes.
No thanks, I love the current version.

PostPosted: Sun Jan 05, 2014 13:00
by SegFault22
VanessaE wrote:It might look nice but one would have to see examples of this kind of rendering (not in some other game, but in a Minetest world). The 2d example images in your first post unfortunately show only a very small part of the picture.

I know Jordach is working on importing some parts of Minetest (or similar) maps into Blender for some of his fancy renders. Maybe he can apply your suggested algorithm to a few of those renders, texture them with our current set of defaults, do some fake lighting (not the nice lighting he usually uses), and show us more or less what it would look like?

Good idea. Then I would replace those crappy 2d images with screenshots of those fancy, advanced things he is capable of making.

Krock wrote:That would spam the game with useless nodes.
No thanks, I love the current version.

Either you haven't read the topic post/replies, or are deliberately trying to make the brutal murder of this great idea even worse. I'm not sure as to which, though.
It has been stated that nodes would take on a "mesh" with "points" that determine its shape/form relative to other nodes. This would not add any new nodes to the game at all.

PostPosted: Sun Jan 05, 2014 15:05
by hoodedice
1. Minetest aims to be light and flexible. It currently runs playably on computers with crappy intel GMAs. With shaders and waving on. If you add this to the game, it would increase the poly-count which would hinder people like me from playing minetest any longer.

2. If the server decides to apply this, and say, I switched it off, there would be situations where my character would be walking through dirt-nodes and if the server decides not to put this, and VanessaE (with her awesome ATi cards) switched it on, then there would be situations where she would be walking above dirt nodes.

3. Minetest is a voxel-based game. Hate it or not, the engine was designed around the idea of keeping it voxely. You cannot change this engine's code to reflect a non-voxel world, because the game is not oriented towards smooth terraining.

In any case, this is not a bad idea. And in case you didn't know, attempts have already been made in this direction, however, they introduced new nodes, instead of just changing the collision box and rendering. It may be possible with shaders. If you are really serious about this, then I suggest that you:

1. Play around with the terrain configuration tool in Rollercoaster Tycoon 3 and see how the terrain handling works. It is surprising that such a complex game runs much faster than MT on my computer. However, this is understandable in some ways, including the small 'world' and from the fact that not all blocks are 'live' at a given time.

2. Learn C++. If you are dedicated enough to this idea, then this is very important.

3. Fork MT, or make your own separate game engine from scratch. I don't really think I fork would be beneficial here. I suggest you start from scratch and try to create a game entirely modeled around the idea of a world that is editable, but not voxely.

3.5. Get in touch with xyz from FreeMiner. If they like your idea, they'll let you do it, or maybe try and implement it themselves.

PostPosted: Sun Jan 05, 2014 16:41
by rubenwardy
Maybe as a fork.

This has been discussed before.

PostPosted: Mon Jan 06, 2014 03:01
by Enke
I don't think it's a good thing for Minetest, although a voxel game built around this concept, entirely different from Minetest, might work.

PostPosted: Mon Jan 06, 2014 05:35
by paramat
Some screenshots of what 'slab resolution' terrain looks like https://forum.minetest.net/viewtopic.php?id=5686

PostPosted: Mon Jan 06, 2014 06:19
by mauvebic
Like ruben said, it's been discussed before. If i were you i'd give up now, it will be less frustrating :P

PostPosted: Mon Jan 06, 2014 08:25
by Dopium

PostPosted: Mon Jan 06, 2014 11:03
by SegFault22
mauvebic wrote:Like ruben said, it's been discussed before. If i were you i'd give up now, it will be less frustrating :P

Maybe I'll fork Minetest, and make this idea a reality. There's lots of hope for it, because it is the best of a dynamic node-based world and a carefully designed 3D MMORPG world, combined. Sure it will be frustrating, but the end result will be far more awesome, than just giving up as you suggest.

Dopium wrote:Have you seen this mod.
https://forum.minetest.net/viewtopic.php?id=4297

That requires more nodes, and is nothing like what I am suggesting.
In the suggestion, a terrain block, say, Dirt_with_grass, is the only variant of that block that appears. There are no slanted or upside-down dirt_with_grass blocks. Instead, its mesh (2d platform suspended at the corners and on the edges and in the middle by Points) would bend to fit the height of the points on nearby nodes. So you could have a dome-shaped hill, made of nothing but grass nodes.

And besides, that mod you told of lags really bad, due to the number of sub-nodes (nodeboxes) it renders. It is significantly worse than the suggestion I made here.

PostPosted: Mon Jan 06, 2014 15:55
by Sokomine
SegFault22 wrote:In the suggestion, a terrain block, say, Dirt_with_grass, is the only variant of that block that appears.

Hm, yes, that's the main problem of that approach. Especially the grass slopes are very popular with players and lead to a smoother, nicely looking terrain when placed manually. The non-cubic blocks created by the cnc machine might work with far less triangles and less collusion boxes provided we had an extra drawtype for them. Perhaps like the nodebox drawtype but with all triangles defined manually. That could indirectly help your approach as well.

The world with the grass-, sand- and other slabs is something I was looking forward to, but it did not turn out as useful as I hoped in everyday gameplay. The diffrent lighting is a disadvantage in this case, and you can't really place plants or anything else on the slabs. That's also a problem when building with them, but there at least it can be handled. The diffrent lighting can even be used as an advantage there (i.e. nodeboxes lighted from below or above).

PostPosted: Mon Jan 06, 2014 17:05
by Jordach
Image
Image

PostPosted: Mon Jan 06, 2014 17:22
by Iqualfragile
this is almost impossible to archive while keeping the current unweighted node system
in the linked video weighted voxels are used, in that case its possible.
http://www.youtube.com/watch?v=mnbm6u37WtE
(that game actually has two voxel draw modes, the one activated in the video is the "hard corners" mode)
http://www.youtube.com/watch?v=7o3UV1xjTOI
this video uses the other, "smooth" mode

PostPosted: Tue Jan 07, 2014 00:04
by Dopium
SegFault22 wrote:That requires more nodes, and is nothing like what I am suggesting.
In the suggestion, a terrain block, say, Dirt_with_grass, is the only variant of that block that appears. There are no slanted or upside-down dirt_with_grass blocks. Instead, its mesh (2d platform suspended at the corners and on the edges and in the middle by Points) would bend to fit the height of the points on nearby nodes. So you could have a dome-shaped hill, made of nothing but grass nodes.

And besides, that mod you told of lags really bad, due to the number of sub-nodes (nodeboxes) it renders. It is significantly worse than the suggestion I made here.


Ah i see what you're saying now, just thought some of the code maybe use full. Great idea but will you be able to climb up smoothed node blocks such as the ones shown by Jordach?

PostPosted: Tue Jan 07, 2014 02:12
by SegFault22
Dopium wrote:
SegFault22 wrote:That requires more nodes, and is nothing like what I am suggesting.
In the suggestion, a terrain block, say, Dirt_with_grass, is the only variant of that block that appears. There are no slanted or upside-down dirt_with_grass blocks. Instead, its mesh (2d platform suspended at the corners and on the edges and in the middle by Points) would bend to fit the height of the points on nearby nodes. So you could have a dome-shaped hill, made of nothing but grass nodes.

And besides, that mod you told of lags really bad, due to the number of sub-nodes (nodeboxes) it renders. It is significantly worse than the suggestion I made here.


Ah i see what you're saying now, just thought some of the code maybe use full. Great idea but will you be able to climb up smoothed node blocks such as the ones shown by Jordach?

Why of course - but there would be a limit of about 50 degrees, so that you can't, say, walk up the side of a cliff.

PostPosted: Wed Jan 08, 2014 01:23
by Novacain
I understand your concept, but I personally like the blocky look. if someone wanted to create a separate mod or texture pack (although I have the feeling this would be a combination of both) then great! but a lot of us like the blocky texture. it certainly shouldn't be the default as minetest. my opinion has been offered.

edit: an idea: if it was fomulated is to incorperate it into ranged view. it would be nice to look at a smooth mountain with out being able to see all the details. up close though, it should still be blocks IMO.

double edit: an idea for a game that has higher graphics and a manipulatable landscape is Zero-K. its an RTS and is free. the downside is it's based around windows, and I'm not entirely sure their website is virus free (had a general cluttered feel that something might be making it's way onto my computer). I, unfortunately have been unable to play it, as my computer has a low graphics capability.

PostPosted: Fri Jan 10, 2014 08:27
by prestidigitator
OpenSim with a SecondLife/OpenSim-compitable viewer. It's physics engine and scripting system are also far more detailed than Minetest's physics and mod API. The downside is that it uses far more computing resources on both the server and client and probably doesn't give you the whole extensive world you want for a full "game" (instead you'll be running a few 256m by 256m by 4096m regions, or something on that order of magnitude).