Page 2 of 4

PostPosted: Thu Mar 13, 2014 09:51
by 4aiman
It's just you :)
Wanna hear a secret? I'm 25. So only my boss can impose smth on me. Boy, how I'm glad his work starts right when my is finished and the only evidence of his existence I can see anytime are his notes.

PostPosted: Thu Mar 13, 2014 10:09
by lightonflux
Is it just me or is world generation with the mods extremely slow?

PostPosted: Thu Mar 13, 2014 10:27
by 4aiman
If those are mods which are using LVM then it's just you. Otherwise it's everyone :)

PostPosted: Thu Mar 13, 2014 13:18
by Gael de Sailly
Yes, I know map generation is very slow. But I will work on it. It is slow because ores and trees are generated by minetest.set_node. Using the voxelmanip is very faster, but it will force me to rewrite an important part of the code.
But you can contribute, this mod is free, if someone rewrite partially my code I will accept it.

And I suggest to stop talking about parental authority, it is not the topic at all.

PostPosted: Thu Mar 13, 2014 17:15
by 4aiman
Don't be so angry ;)
It IS related after all. Besides, we all have a "Report" links under every post and while you telling us to stop talking about parental authority you actually CONTINUE to talk about it ;)
So, ignore us, please. We'll stop eventually ;)

As for set_node - maybe you should look at L-system trees? They should be faster.

PostPosted: Thu Mar 13, 2014 20:13
by paramat
Gael de Sailly, my 'noise23' example mapgen mod shows how to use the fast 2D perlin noise maps, i have managed to get my head around perlin maps now so if you get stuck i can help out.

PostPosted: Sat Mar 15, 2014 02:13
by paramat
... but then, seeing as your computer time is limited i might convert this to perlin maps myself.

PostPosted: Sat Mar 15, 2014 03:58
by Inocudom
paramat wrote:... but then, seeing as your computer time is limited i might convert this to perlin maps myself.

I think he would very much appreciate that, paramat.

PostPosted: Mon Mar 17, 2014 13:56
by Gael de Sailly
I've tried to convert the ores and trees from set_node() to voxelmanip, but it was not faster. I use the function find_nodes_in_area() to find the places in which ores can be placed, and also for the third step of the mapgen (trees) to find the grass blocks on which trees can grow. And for the grass blocks which are selected to support a tree, it chooses the tree which grows on it according to numerous criteria, including water proximity, for which I use minetest.find_node_near().
So I have to write voxelmanip to the map 3 times :
  • After the base map generation, because ores uses find_nodes_in_area()
  • After the ore generation, because for the water proximity trees uses find_node_near() to detect the sea, and also the mud or water holes, which are generated as ores.
  • And finally after the trees.
I have not thought about perlin maps yet. I use 17 noises in my mapgen. 8 in the function get_elevation() and 9 in the register_on_generated(). I think the slowers are N1 to N4 of the register_on_generated(). They are calculated for each node in 3D to define caves contrary to the others which are calculated for each node in 2D. I will think about minimizing the number of noises and rework the mapgen and especially the function get_elevation().

PostPosted: Mon Mar 17, 2014 15:51
by Inocudom
You could present this mod to Freeminer too, a fork of Minetest:
http://freeminer.org/

PostPosted: Mon Mar 17, 2014 23:15
by paramat
Okay so i converted the main mapgen loop to use perlin maps, much faster now, but still slow, i'll see what i can do about the get elevation function, im going to try a few other improvements.

PostPosted: Tue Mar 18, 2014 00:15
by paramat
Image

PostPosted: Tue Mar 18, 2014 04:14
by paramat
http://www.mediafire.com/download/lyyiw47ou3219w7/forestpm2.zip
Converted everything i could to use perlin maps, so the initial mapgen loop only takes 2-3 seconds per chunk, but the oregen and treegen is still slow, perhaps due to number of trees and complexity of the code, so in total 10 seconds to a minute per chunk.

PostPosted: Tue Mar 18, 2014 16:42
by Krock
paramat wrote:Converted everything i could to use perlin maps, so the initial mapgen loop only takes 2-3 seconds per chunk, but the oregen and treegen is still slow, perhaps due to number of trees and complexity of the code, so in total 10 seconds to a minute per chunk.

Yes, your generation made it faster, but the speed is still at 30s per chunk.
I hope this can get even faster because I like this mod :)

PostPosted: Tue Mar 18, 2014 22:14
by paramat
Okay so ive looked through the rest of the code, i found an abm on water source with chance 3, i changed that to 64. Other than that there's nothing else i can do to speed it up. As far as i can see it is slow due to the complexity of the code, and the use of 'find nodes in area' and 'find node near', these get very slow with even a medium radius, having each tree check for water proximity is awesome but slow :)
Also, i found an abm on group:tree with interval 10 chance 1, not sure what this did, possibly removing floating trees? That might cause a lot of processing i'm going to try disabling that.

PostPosted: Wed Mar 19, 2014 16:14
by Gael de Sailly
Thank you for your contribution, paramat.

paramat wrote:I found an abm on water source

I had forgotten this one ! My code is very untidy. There are remnents of my old codes, and experimental programs like it I have forgotten to delete. You can remove it. I've deleted most of these stuffs when I published my mod, but I retains the original, with all of these codes, disabled or not. I'm going to clean it.
paramat wrote:I found an abm on group:tree with interval 10 chance 1, not sure what this did, possibly removing floating trees?

Yes, it removes floating trees. But it is not very important.

In the near future, I will publish a new version, in which vegetals change their appearance according to the season.

PostPosted: Thu Mar 20, 2014 19:24
by celeron55
Gael de Sailly wrote:So I have to write voxelmanip to the map 3 times :
  • After the base map generation, because ores uses find_nodes_in_area()
  • After the ore generation, because for the water proximity trees uses find_node_near() to detect the sea, and also the mud or water holes, which are generated as ores.
  • And finally after the trees.


Hmm... it should be very well possible to implement a fast find_nodes_in_area and find_node_near to VoxelManipulator. If someone can do a prototype and test its performance for eg. this mod, that would be useful.

PostPosted: Fri Mar 21, 2014 12:02
by Gael de Sailly
Yes, it's a good idea. It will make my mod very faster.

PostPosted: Fri Mar 21, 2014 15:21
by Inocudom
celeron55 wrote:
Gael de Sailly wrote:So I have to write voxelmanip to the map 3 times :
  • After the base map generation, because ores uses find_nodes_in_area()
  • After the ore generation, because for the water proximity trees uses find_node_near() to detect the sea, and also the mud or water holes, which are generated as ores.
  • And finally after the trees.


Hmm... it should be very well possible to implement a fast find_nodes_in_area and find_node_near to VoxelManipulator. If someone can do a prototype and test its performance for eg. this mod, that would be useful.

Celeron55, it is so wonderful to see you giving helpful advice for this mod.

PostPosted: Thu Apr 03, 2014 19:21
by Gael de Sailly
FOREST 1.2 NOW !
The changes are the flowers apportionment and their seasonnal disappearance and appearance.

PostPosted: Thu Apr 03, 2014 21:12
by Inocudom
I sincerely hope that there is a server out there that will kindly host this mapgen, because it really does deserve it.

PostPosted: Sat Apr 05, 2014 17:08
by Inocudom
I think it might be a good idea to change the name of this mod. People are pretty much ignoring it, considering how much attention the bacon mod is getting.

PostPosted: Sun Apr 06, 2014 01:03
by paramat
Don't worry Inocudom, i don't think it is being ignored, it is an impressive mapgen.

Gael de Sailly, i am impressed with your spawn player function that calculates elevation and searches for a good spawn point, this inspired me to do a similar thing in my singlenode version of watershed mapgen, i ended up using the voxelmanip and perlinmaps to generate elevation maps of multiple chunks looking for a good spawnpoint on low land.

PostPosted: Mon Apr 07, 2014 14:36
by philipbenr
Inocudom wrote:I think it might be a good idea to change the name of this mod. People are pretty much ignoring it, considering how much attention the bacon mod is getting.


I think that a lot of mods get attention, but the kinda shall I say stupid (not to be offensive, but really) mods get more attention and posts because it is bizarre. These still get attention. Whenever I see a new post, I almost always click on it :P

PostPosted: Mon Apr 07, 2014 15:07
by rubenwardy
I actually glanced over this mod's title a few times, skipping it. I wish I hadn't, it looks amazing!