Time Nick Message 13:39 meseking hello 14:48 hecks if I calc lighting in on_generate, do I have immediate access to the lighting data? 14:50 hecks say I generate my terrain, calc the lighting and then immediately thin out generated plants based on sunlight received 14:50 hecks to avoid slow abm/lbm 16:09 hecks someone spoonfeed me, how do I use a "biomemap" object? 16:09 hecks it doesn't seem to 'fit' the chunk that voxelmanip represents 16:41 Orbstheorem Hello ^^/, I was wondering if there is a minetest-based game comparable to age of engineering. 16:46 hecks I don't even know what that is 16:47 paramat "if I calc lighting in on_generate, do I have immediate access to the lighting data?" after 'write to map' yes 16:47 hecks that'll do 16:49 hecks maybe you can help me with this too; how can I do anything useful with a biomemap array? 16:49 paramat if you 'get light data' in bulkas a 2nd vm maybe calc_lighting alters that too, not sure 16:49 paramat yeah .. 16:50 hecks say I want to turn water into sand in desert biomes; I call get_mapgen_object( "biomemap" ) 16:50 hecks and it gives me an array of... 6400 elements? 16:50 hecks while the voxelmanip's buffer is 1404928 elements 16:50 Orbstheorem hecks: It's a technical modpack: https://minecraft.curseforge.com/projects/age-of-engineering 16:50 paramat the 'mapgen object voxelmanip' is the mapchunk plus a mapblock thick shell, so is 80 +16 + 16 in size. however the heat/humidity/heightmaps are only 80x80 16:51 hecks so it's a 2D map? 16:51 paramat those 3 maps are 2D 16:52 paramat heat and humidity is 2D noise 16:53 hecks this... sucks, because biomes are not necessarily 2D 16:53 paramat the engine's own mapgen vm is also 'mapchunk plus mapblock shell' because it also processes an overlap volume, to allow trees to extend 16 nodes up beyond the mapchunk (essential) 16:53 paramat biome y variation is done using y limits 16:54 hecks I know that, but biomes overlapping in Y means that whatever data biomemap gives me will be bogus 16:54 paramat so flat biome borders in y 16:54 paramat ah 16:56 paramat the biomemap for a mapchunk corresponds to the topmost solid surface in the mapchunk, ie the surface given by the heightmap 16:56 hecks Orbstheorem: I think all we have is technic, and while complex, it's probably not what you're looking for 16:56 paramat so yes it lacks information 16:56 hecks well if it's just within the mapblock, it may work for something as simple as erasing water 16:57 paramat however in 5.0.0 we do now have 'get biome data at (3D) point' which is accurate to how things generate 16:57 hecks we do? 16:57 hecks is it in the api yet? 16:58 paramat https://github.com/minetest/minetest/blob/766fb7b46edab47f96b8b940e390daf5319261b7/doc/lua_api.txt#L3937 16:58 paramat yeah i coded it 16:59 hecks hm... would this be much slower than using biomemap? 16:59 hecks if it's just reading noise, then maybe it's acceptable 17:00 paramat the 'biomemap' is just a simplified map used for mapgen, since most decorations are only placed on the topmost solid surface in a mapchunk 17:00 paramat a little slower yes as the biomemap is precalculated 17:00 hecks ...unless you use the all surfaces flag or however it's called 17:00 paramat indeed 17:02 hecks I'll work something out 17:02 hecks one last thing is bothering me; sqrt 6400 is 80, but voxelmanip gives me a 112^3 volume (I think) 17:03 paramat yeah, i explained that above 17:03 hecks so uh, the difference is a padding of one mapblock, correct? 17:03 paramat yes 17:03 hecks and if I correct for that, the coordinates will line up 17:03 paramat mapchunk is 5x5x5, full vm is 7x7x7 mapblocks 17:03 hecks okay, thanks for all 17:04 hecks ...unless you fiddle with chunksize in the config 17:04 hecks I wonder what that does other than changing the dungeon density 17:05 paramat indeed, whatever chunksize, 1 mapblock padding is added 17:05 paramat see https://github.com/minetest/minetest/blob/4a2a11262b0821d0bcddd25161f5eb8b172b23fd/minetest.conf.example#L2909 17:06 paramat highly recommended to leave it at 5 17:06 hecks I've read the desc, but I don't understand the consequences of using smaller values 17:06 hecks I've used 3 before, the map didn't look much different but there were more dungeons 17:06 paramat more caves too 17:07 hecks and I suppose that results in more frequent on_generated calls 17:08 paramat yes 17:08 paramat btw i coded my own version of your terrain smoothing mod. you can use the 'heightmap' to immediately find the surface nodes to process them, instead of looping through every node 17:08 hecks which is much faster, I presume 17:09 hecks I'll work that in, since I gotta compute 2D coords either way 17:10 hecks while we're on the topic of cryptic config values, what does "sidelen" in a decoration do? 17:20 paramat oh yeah .. 17:20 hecks wait, if I use the heightmap to find ground nodes to smooth, smoothing will no longer work with caves, overhangs and ceilings 17:22 paramat when decorations are placed with density altered by noise, 'sidelen' is the resolution of the density variation. it must divide into a mapchunk, so 80, 16, 8, 4 are the best values 17:23 hecks bigger is faster? 17:23 paramat ah, i didn't realise smoothing altered anything other than surface nodes. it also won't smooth under an overhang 17:24 paramat yeah bigger sidelen means less noise calculations, but less resolution 17:24 hecks yeah, I'll have to stick with my old smoother; I gotta iterate over the whole chunk for other things anyway 17:24 hecks but the heightmap trick could be useful in the "plants die with no light, fungi die with light" round 17:25 hecks as that will require its own loop 17:25 hecks also, I understand that it's safe to skip iterating over the chunk padding area? 17:26 paramat safe yes as that's an overlap 17:30 timdorohin paramat: what you think, if i add support for loading mapgens as binary plugins (.dll/.so like plugins in browser) will it be accepted to mainline? 17:31 rubenwardy I'd support such a thing 17:31 rubenwardy depending on the complexity 17:34 hecks it's the server's problem, so why not 17:34 hecks I wouldn't mind having server side native code in general 17:34 paramat plugin c++ mapgens? 17:34 timdorohin Yea 17:35 Krock just Compile It Yourself because binary packages from a random person does not look very trustworthy 17:35 Krock native code sounds good - especially in terms of speed 17:38 timdorohin Krock: i can compile my own version with my own mapgen code, but there are many people in community that didn't know how to do it. 17:42 paramat the concept sounds good but it depends on practicalities and security 17:42 paramat also the amount of disruption and work needed at a time of lowest dev activity 18:39 rocky1138 Have you seen Amidst for Minetest? https://www.youtube.com/watch?v=oBs6YrYXlgU 18:54 sfan5 !title 18:54 MinetestBot sfan5: Amidst for Minetest - YouTube 19:03 hecks so let us discuss parallel universes and why minetest doesn't need them 19:04 hecks though the final word will be, as always, "code it yerself wiseguy" 19:04 Hijiri I don't think I have enough time, but I have thought about writing it 19:05 Hijiri It could be done incrementally in a reasonable way so that it doesn't require a mega-PR that conflicts with everything else 19:05 hecks try making it work with *one* dimension in lua alone, first 19:05 hecks or, code the rest of the damn game 19:05 Hijiri "Minetest is an engine, not a game" 19:06 Hijiri also it's easy to make it work with one dimension, just don't do anything 19:06 hecks yeah, so... if you want to improve the engine, I suppose you have a game in mind that requires it 19:07 Hijiri a mystcraft clone would be such a mod, not sure if I actually want to do that though 19:07 Hijiri Maybe that's also why I'm not actually working on the feature 19:08 Hijiri also is there a list somewhere of the most critical Minetest features to be implemented 19:08 Hijiri there is the 5.0.0 project, but it only lists the CSM feature (and some other non-feature improvements) 19:09 Hijiri Oh, there's the content brower 19:09 Hijiri browser 19:09 Shara Personally find it a little depressing when someone wants soemthign just so they can clone something else better. 19:09 Shara Try and be original instead :P 19:09 Shara something* 19:10 hecks CSM is pretty critical, it would fix a lot of nasty issues with custom games 19:10 hecks there is the content browser, yes 19:10 Hijiri surely if there's one concept that benefits from infinite dimensions, there is more than one 19:10 Hijiri the space of mods can't be that small 19:10 hecks and some people somewhere are thinking of making the fabled VAOs, if they feel like it 19:10 Hijiri VAEs? 19:10 hecks in general, minetest's feature schedule highly depends on people willing, able and feeling like doing said features 19:11 hecks yeah, VAO/VAEs, entities made out of nodes 19:11 Hijiri ah, ok 19:11 hecks honestly, I could do VAOs in lua if colliders were not AABBs, and if attachments weren't so flimsy 19:13 Hijiri I think it would be difficult to get node callbacks and things to work properly though 19:13 MinetestBot 02[git] 04SmallJoker -> 03minetest/minetest_game: map: Use wood group crafting recipe 13f42deb4 https://git.io/fAbAO (152018-09-24T19:13:01Z) 19:13 hecks definitely, they wouldn't be "nodes" in that sense 19:14 hecks but if you just want to build airships, it would be good enough 19:14 * hecks fondly remembers building a 3-mapblock-long frameship and losing it due to bugs 19:17 hecks I think there are still more pressing concerns regarding minetest 19:17 hecks like "where's the friggin' gameplay, what's the point" 19:17 hecks I do believe not even minecraft got that solved 19:18 hecks but one can dream https://a.uguu.se/xXJC0FKWWbyI_jelly.png 19:53 hecks I'm having on_generated called several times for the same minp, maxp range 19:55 sfan5 happens 19:56 hecks a lot, it appears 19:56 hecks should I just file the range into some kind of table and skip the chunk if already generated? 20:00 hecks huh, doesn't do it anymore 20:00 hecks gremlins 20:01 paramat using multiple mapgen threads? 20:01 hecks I was 20:01 hecks I'll recheck 20:01 hecks also, get_biome_at is *slow* 20:02 hecks oh yes, threaded emerge causes that 20:03 paramat 'get biome data' is not meant for using in very high numbers, and it's as fast as it can be :) 20:04 hecks I'll use biomemap... 20:05 hecks I've got a bigger issue to grind my teeth on now, not knowing if minetest is calling my post-mapgen several times more than necessary 20:06 hecks thought this would work https://pastebin.com/jGmr2XZV 20:07 hecks but it just causes some chunks to not get generated ever 20:09 paramat should be no need if you're not using threaded emerge 20:09 hecks I'd much, much rather be using threaded emerge 20:09 hecks if you've seen my mapgen woes 20:10 hecks could it be that emerge threads use bogus coordinates to avoid collision? 20:11 paramat i can't see an issue for multiple mapchunk generation 20:11 hecks https://a.uguu.se/pFoZwbe5xSpn_blah.png 20:11 hecks this is what's happening, it's thinking that this chunk was already done, and skips it 20:12 hecks if using the code pastebinned above 20:12 hecks the only thing that could cause this if threaded emerge was fiddling with minp, maxp 20:12 hecks in which case, "oh no, I'm getting the same chunk generated 3 times" is a false alarm and I don't need to do this 20:16 paramat hmm 20:17 paramat does your smoothing code run for every mapchunk, because 'calc lighting' is needed for every mapchunk due to 'nolight' being used 20:18 paramat i guess it does 20:18 hecks yes, while using that code snippet above to check if it isn't running on_generated multiple times 20:19 hecks either way, one emerge thread seems faster than multiple, somehow 20:20 hecks doesn't even choke globalstep as much 20:23 hecks a setting of "0" also works fine, but I'm not sure if it's using 1 or some optimal number 20:24 hecks don't really trust the documentation on this one, and cpu usage seems inconclusive (hovering around 50%) 21:51 hecks %s, the %s died of dehydration in the middle of a desert https://a.uguu.se/IdxAlVX0hVYA_sand.png 21:52 hecks and should probably thank paramat for its gruesome death 21:53 sfan5 the committee of family friendliness has something to say about your player model 21:54 timdorohin hecks: i want to unsee it 21:56 hecks the committee can go get eaten by a grue 22:01 hecks https://a.uguu.se/O3JyGNa5Fs4V_sw.gif I ain't got time for clothes y'know 22:03 timdorohin hecks: is this minetest or scarlet blade? :D 22:04 hecks well, the taskbar tells me it's minetest 22:05 timdorohin hecks: :D 22:45 hecks sfan5: the committee may be informed that their complaints have been heard, and the offending art was adjusted https://a.uguu.se/gTmlGub3FjRS_scr.png 22:46 sfan5 very nice 22:46 hecks further complaints may be directed to the grue 22:48 hecks speaking of grues, is there a way to know if a node would be lit by sunlight if it were day, even when it isn't? 22:49 paramat yes 22:49 paramat 'get light at pos' i think 22:50 paramat has a parameter for time of day 22:50 hecks good 22:50 hecks this will also be useful to tell if rainfall would reach a certain node 22:54 paramat https://github.com/minetest/minetest/blob/766fb7b46edab47f96b8b940e390daf5319261b7/doc/lua_api.txt#L3847 22:54 paramat should read: '0 for midnight, 0.5 for midday' 22:57 paramat yeah 15 means under open sky 23:03 hecks oh right 23:04 hecks I've had an issue with the model's file size 23:05 hecks minetest caps it at some network packet size, uncompressed at that 23:11 paramat hm i guess MT is not used to hidef models, maybe the limit can be raised with no problem 23:12 sfan5 or throw compression on it 23:13 sfan5 if that's easily doable 23:20 hecks https://github.com/minetest/minetest/issues/7744 23:20 hecks it's not the model that kills this limit, it's animation 23:21 hecks and it will happen even with the blockiest model if it has enough animations 23:22 hecks 60 to 120 seconds of animations will exhaust the file size, depending on skeleton complexity