Is something like Distant Horizons possible for Minetest?

For people working on the C++ code.
Post Reply
chef trip
Member
Posts: 65
Joined: Tue May 18, 2021 03:49
GitHub: teklife
In-game: yuh

Is something like Distant Horizons possible for Minetest?

by chef trip » Post

Greetings, I just watched this https://youtu.be/AcQPMvYw2yQ and, wow, that is amazing! my first thought was, i hope we will get to see something like that on Minetest, which i think should be more technically capable than Minecraft, correct? at least the java version anyway, which i believe is still the main version?

then, as i was watching the video, and the author was describing how the tech works, it reminded me of a somewhat similar, but also free and open source game called Veloren; however, it's written in Rust, but, since the code is public, would studying that code help to be able to achieve something similar in minetest?

the vistas in Veloren are impressive, and you often see the rendering change from the low res to the high res version, especially when moving fast through the space like with some of the gliders, which are a default in the game.

so, could something already done in a Rust game be interpreted and translated to run on Minetest engine?

i imagine seeing something like the Terrainbrot mapgen from Tunneler's Abyss, and the textures and whatever else Moonlight Falls server do to make their world more beautiful than the average MT world, paired with this tech, and something like the tectonic mod to scale up the biomes would look really amazing. seems like we already have many of the pieces, but for me, by far the weakest part of playing voxel procedurally generated worlds, is the patchy unrendered mess seen in the landscape, unless fog distance is like 80m or so.

sorry if i'm posting to the wrong forum, but i figure where else but the "partly official" engine dev discussion board should i present this to and hear feedback from.
Last edited by chef trip on Mon Apr 01, 2024 16:16, edited 1 time in total.
Wanting to be someone else is a waste of who you are. – Kurt Cobain

User avatar
Blockhead
Moderator
Posts: 2255
Joined: Wed Jul 17, 2019 10:14
GitHub: Montandalar
IRC: Blockhead256
In-game: Blockhead Blockhead256
Location: Land Down Under
Contact:

Re: how likely is it that we'll ever see this in Minetest

by Blockhead » Post

The short answer is "We have heard of the idea, but like anything it depends if anybody actually does it".

A better title might help people find this discussion later. Something like "Is something like Distant Horizons possible for Minetest?" or "Could we see changes for very long view distances?". Forum posts are meant to sit as reference material, but they have to be findable (usually with a search engine) to be most useful.
chef trip wrote:
Mon Apr 01, 2024 06:38
Greetings, I just watched this https://youtu.be/AcQPMvYw2yQ and, wow, that is amazing!
Yes, very nice, although the shader is a big part of the aesthetic, not just Distant Horizons. Of course, it's the culmination of both that is greater than the sum of its parts. But I won't cover shaders too much in my post, it's kind of ancillary. I expect shading will improve in Minetest over time.
chef trip wrote:
Mon Apr 01, 2024 06:38
my first thought was, i hope we will get to see something like that on Minetest, which i think should be more technically capable than Minecraft, correct? at least the java version anyway, which i believe is still the main version?
These kinds of systems would be called "Chunk LOD" (level of detail) systems, or rather blocks in Minetest (Minetest block = 16x16x16 nodes). Minetest had one a long time ago in 0.3/0.3-dev called "farmesh", but the implementation was very buggy, so it was removed. More recently, proller has been working on a farmesh implementation in his personal fork of a Minetest fork called Freeminer - Proller's freeminer lives here. Look for the branches with names starting with "farmesh" (on GitHub.com, branches are under the dropdown labelled after the default branch, usually "master" or "main"). The latest video was posted over in Post your videos!.

chef trip wrote:
Mon Apr 01, 2024 06:38
then, as i was watching the video, and the author was describing how the tech works, it reminded me of a somewhat similar, but also free and open source game called Veloren; however, it's written in Rust, but, since the code is public, would studying that code help to be able to achieve something similar in minetest?

the vistas in Veloren are impressive, and you often see the rendering change from the low res to the high res version, especially when moving fast through the space like with some of the gliders, which are a default in the game.
Veloren has been discussed before in "Minetest roadmap is kinda mid". Basically, the assumptions Veloren makes are very different. In Veloren:
  • The world is a fixed, relatively small size
  • The world is pre-generated
  • The world cannot be modified
  • There is only one world generator
Those assumptions mean that the distant LOD system is actually way simpler to implement than one would be for Minetest, which is meant to be a generic block game engine.
chef trip wrote:
Mon Apr 01, 2024 06:38
so, could something already done in a Rust game be interpreted and translated to run on Minetest engine?

Veloren may have a few useful hints about how to make a lower level of detail out of the basic Perlin noise terrain, but other features of its LODs like the way generic large trees fade into specific trees seem not useful to be borrowed, at least on the face of it. That is not to say Minetest doesn't have forests - Minetest Game has them aplenty, but not all games would, or they would be artificial, such as in Hades Revisited - so they can be planted or chopped down, unlike in Veloren.

So then, Distant Horizons is much more like what Minetest would need than Veloren. It runs on a modifiable world that is generated on the fly. It also has support for full block data, so it can draw things like different redstone states or colours of grass, which have direct parallels in Minetest - I'm not so sure about Veloren. DH also meets the other criteria: it's under the GNU GPL, has commented code and I think Javadocs.

As for C++ vs Rust vs Java: Programming language is largely irrelevant, what matters is the algorithms (what the computer is being asked to do) and data structures (what stuff the computer is operating on) involved. As long as the code is there to be read, unencumbered (which is important to keep Minetest free software) and understandable, then it could come from anywhere, even places we haven't thought of.
chef trip wrote:
Mon Apr 01, 2024 06:38
i imagine seeing something like the Terrainbrot mapgen from Tunneler's Abyss, and the textures and whatever else Moonlight Falls server do to make their world more beautiful than the average MT world, paired with this tech, and something like the tectonic mod to scale up the biomes would look really amazing. seems like we already have many of the pieces, but for me, by far the weakest part of playing voxel procedurally generated worlds, is the patchy unrendered mess seen in the landscape, unless fog distance is like 80m or so.
chef trip wrote:
Mon Apr 01, 2024 06:38
sorry if i'm posting to the wrong forum, but i figure where else but the "partly official" engine dev discussion board should i present this to and hear feedback from.
I might have asked in Feature Discussion, but this forum probably seems on-topic. It's the one where direct C++ discussion is usually found. The core developers aren't always keeping up with the forums though. The main avenue for development discussion is always on GitHub. That is where proposals are expected to be delivered and discussed. For real time communication, IRC is the basic lingua franca that everybody can agree on unlike Discord or Matrix; a public log of the IRC channel is available at irc.minetest.net.
/˳˳_˳˳]_[˳˳_˳˳]_[˳˳_˳˳\ Advtrains enthusiast | My map: Noah's Railyard | My Content on ContentDB ✝️♂

chef trip
Member
Posts: 65
Joined: Tue May 18, 2021 03:49
GitHub: teklife
In-game: yuh

Re: how likely is it that we'll ever see this in Minetest

by chef trip » Post

Blockhead wrote:
Mon Apr 01, 2024 09:26


A better title might help people find this discussion later. Something like "Is something like Distant Horizons possible for Minetest?" or "Could we see changes for very long view distances?". Forum posts are meant to sit as reference material, but they have to be findable (usually with a search engine) to be most useful.

you're absolutely right about that, not sure what i should title the subject, but i will edit it if i can, as the title is indeed to vague, thanks for the suggestion.
Blockhead wrote:
Mon Apr 01, 2024 09:26
Yes, very nice, although the shader is a big part of the aesthetic, not just Distant Horizons. Of course, it's the culmination of both that is greater than the sum of its parts. But I won't cover shaders too much in my post, it's kind of ancillary. I expect shading will improve in Minetest over time.
yea, the current state of shaders in MT is already pretty good
Blockhead wrote:
Mon Apr 01, 2024 09:26
These kinds of systems would be called "Chunk LOD" (level of detail) systems, or rather blocks in Minetest (Minetest block = 16x16x16 nodes). Minetest had one a long time ago in 0.3/0.3-dev called "farmesh", but the implementation was very buggy, so it was removed. More recently, proller has been working on a farmesh implementation in his personal fork of a Minetest fork called Freeminer - Proller's freeminer lives here. Look for the branches with names starting with "farmesh" (on GitHub.com, branches are under the dropdown labelled after the default branch, usually "master" or "main"). The latest video was posted over in Post your videos!.
thanks, i'll check it out
Blockhead wrote:
Mon Apr 01, 2024 09:26
Veloren has been discussed before in "Minetest roadmap is kinda mid". Basically, the assumptions Veloren makes are very different. In Veloren:
  • The world is a fixed, relatively small size
  • The world is pre-generated
  • The world cannot be modified
  • There is only one world generator
Those assumptions mean that the distant LOD system is actually way simpler to implement than one would be for Minetest, which is meant to be a generic block game engine.
that makes sense, thanks for putting it into perspective
Blockhead wrote:
Mon Apr 01, 2024 09:26
Veloren may have a few useful hints about how to make a lower level of detail out of the basic Perlin noise terrain, but other features of its LODs like the way generic large trees fade into specific trees seem not useful to be borrowed, at least on the face of it. That is not to say Minetest doesn't have forests - Minetest Game has them aplenty, but not all games would, or they would be artificial, such as in Hades Revisited - so they can be planted or chopped down, unlike in Veloren.

So then, Distant Horizons is much more like what Minetest would need than Veloren. It runs on a modifiable world that is generated on the fly. It also has support for full block data, so it can draw things like different redstone states or colours of grass, which have direct parallels in Minetest - I'm not so sure about Veloren. DH also meets the other criteria: it's under the GNU GPL, has commented code and I think Javadocs.
oh i didn't know that DH is also free software! that's great! so at least people who understand it can see what's going on and learn from it, even if the languages are not the same.
Blockhead wrote:
Mon Apr 01, 2024 09:26
As for C++ vs Rust vs Java: Programming language is largely irrelevant, what matters is the algorithms (what the computer is being asked to do) and data structures (what stuff the computer is operating on) involved. As long as the code is there to be read, unencumbered (which is important to keep Minetest free software) and understandable, then it could come from anywhere, even places we haven't thought of.
absolutely, i'm not a programmer, just a cook/chef, but i love free software, and the ideas behind how it works and how it can be studied, modified, forked, redistributed, etc. and over time, i see more and more how cool it is that anyone anywhere, can get the code, and just add their own contribution, or fix a bug or whatever. kudos the the ppl behind DH for making it GNU GPL, that's fantastic.
Blockhead wrote:
Mon Apr 01, 2024 09:26
For real time communication, IRC is the basic lingua franca that everybody can agree on unlike Discord or Matrix; a public log of the IRC channel is available at irc.minetest.net.
thanks for all the info in your reply.

i'm in my 50s, and i find it very amusing that IRC still matters so much. i remember my first exposure to IRC using IRCle for mac os system 7, hehehe (what a disaster old mac os was, some good ideas, but it would crash like 100x a day, no joke)
Wanting to be someone else is a waste of who you are. – Kurt Cobain

Post Reply