BlueMap-Minecraft / BlueMap

A Minecraft mapping tool that creates 3D models of your Minecraft worlds and displays them in a web viewer.
https://bluecolo.red/bluemap
MIT License
1.84k stars 127 forks source link

Render chunks outside the `inhabitedTime` limit as a "foggy" #288

Open ryantheleach opened 2 years ago

ryantheleach commented 2 years ago

Is your feature request related to a problem? Please describe. Pre-generating the world results in very large storage requirements, especially on shared hosting. Pregenerating the world is almost required for shared hosting, due to limited CPU usage etc. Bluemap currently treats all generated chunks equally, and will create high detail high storage space for them.

Describe the solution you'd like I would like to see chunks that have a configurable inhabited time skipped for rendering, but still otherwise marked on the map as explored.

I could set this to 30m or so in order to only render out settlements / built up areas, and players would be able to see each others builds in high detail without visiting in person, as well as use the map (as they currently do) to find new areas to loot/explore like in the end, without having the storage requirements of storing all the 3d model information of places that were just passed in transit.

Ideally there would be some form of fallback, e.g. rough biome colors, as it has been explored, or a low res image, but that's only a nice-to-have compared to knowing if an areas been potentially raided, as you can generate biome maps using the seed and providing them externally to Bluemap say via Discord.

TBlueF commented 2 years ago

Rendering only chunks with a specific inhabitedTime value is now implemented in Version 3.1 ..

The "Fog" part is a thing for the future, since that needs quite some additional changes :)

ryantheleach commented 2 years ago

Thanks Blue <3

martijns commented 1 year ago

Since this feature sounds interesting I've enabled it on my server, but I get unexpected results. There are so many unrendered chunks in the map where people definitively have been. Even as my character ingame walks around on a chunk, it is not rendered after a forced save or a few hours of waiting. The render queue is empty. Unless I'm mistaken, the inhabitedTime value should increase the moment you set foot on a chunk. Or is there another prerequisite?

I used min-inhabited-time: 1. Changing the value to 0, a /bluemap reload and doing a /bluemap force-update world it renders everything again. However, to our liking it renders a little too much (unvisited but generated chunks).

Here's a screenshot: https://i.imgur.com/jHBIMLq.png

TBlueF commented 1 year ago

@martijns BlueMap can't control/change the way minecraft updates the inhabitedTime value on a chunk, and that's also the only value BlueMap can rely on when choosing if a chunk should be rendered or not..

Also, BlueMap still has to wait until Minecraft saves the new inhabited-time to the actual world-files. This might be delayed by quite a bit, so it just might take a while until the now "inhabited" chunks appear on the map.

An unexpected result would be the actual inhabitedTime field on the world-files being greater than or equal the value in the config, but bluemap still not rendering it,.. i don't think that's the case here ^^'