Time Nick Message 00:00 hmmmm we need to be more selective about who gets to become a core developer 00:01 hmmmm sometester1231 is stuck in a state where he can't see the other players and vice versa 00:01 VanessaE you may as well sign off of that instance, it will never "recover" 00:02 hmmmm i wonder if SET_PROPERTIES is an unreliable or reliable AOM 00:02 hmmmm in any case I have not seen one messed up player texture once 00:03 hmmmm i wonder if it could be a result of my latest patch.. heh.. 00:03 VanessaE not likely 00:03 VanessaE this has been ongoing for about a year 00:04 VanessaE OH that? 00:04 VanessaE I haven't deployed it yet 00:04 hmmmm no, it's a client-side only thing 00:04 hmmmm hm also gets stuck in Media... when connecting 00:06 VanessaE that one's rare. 00:07 hmmmm it happened 3 times for me so far 00:07 VanessaE I forget, does the player still emerge while media is loading? 00:07 hmmmm no idea 00:07 VanessaE huh. well not so rare then :) 00:10 * VanessaE hands you some hair restorer and nerve pills 00:12 hmmmm top lel 00:12 hmmmm i added a printf in the part where i break if there's an error reading the entity ID 00:12 hmmmm the console floods full of them 00:14 VanessaE there's some evidence that this happened with ShadowNinja's SAO rewrite last year 00:14 VanessaE but no one's ever been able to really dig in and look 00:14 hmmmm sware to god. 00:15 hmmmm i am not going to let anybody do a rewrite like that unless there are unit tests 00:15 hmmmm if there aren't unit tests, it's simply not getting in no matter how much approval there is 00:24 sofar start with code coverage? 00:39 hmmmm vanessae: i dunno what to tell you, i have not replicated the problem i'm looking for once 00:40 VanessaE huh. must be a "good day" then for that glitch :) 00:40 VanessaE anyway you saw the other issues so it's a wash :) 00:41 hmmmm just to make sure, this is on the creative server, right? 00:41 VanessaE yep 00:41 VanessaE that's where the problems are the worst 00:44 VanessaE meanwhile, the screenful-of-serialization-errors happens on the Survival server most commonly, for some reason. 01:13 hmmmm the screenful of serialization error is the server's fault 01:13 hmmmm you would have to be the one to debug that problem 01:20 sofar I just enabled code coverage in the git tree... should be interesting 01:20 hmmmm what tool is that? 01:21 sofar well I'll try to make lcov output 01:23 sofar looks like it worked ok, making the report now 01:23 sofar I'll upload it somewhere so folks can see how it looks 01:25 hmmmm sure 01:30 sofar ugh should have tarred it before scping it out 01:32 sofar http://foo-projects.org/~sofar/minetest_coverage/ 01:32 sofar I only ran it as a client against a remote server 01:32 sofar so it will obviously only show coverage on those parts 01:33 hmmmm SHIT 01:33 hmmmm I just got a bad serialization error and so I press ctrl+C to stop getting any more log messages 01:33 hmmmm it closed out the terminal 01:33 hmmmm :/ 01:37 sofar I haven't looked, but is there testing code in the minetest git tree? 01:37 hmmmm yes, under src/unittests 01:37 sofar how do I call that? 01:38 sofar I can see it in the lcov output... lol 01:45 sofar ../bin/minetest --run-unittests 01:46 hmmmm lots of serialization errors @ (-160, 16, -467) on VE S 01:48 sofar cool, now I have coverage over the unittests too 01:50 hmmmm VanessaE: requesting your assistance 01:50 VanessaE what's up? 01:51 hmmmm could you look in your survival server logs and try to correlate any of these times 01:51 VanessaE sure, on e moment. 01:51 hmmmm no rush 01:51 hmmmm if this is a bad time for you that's fine 01:52 VanessaE ok, log open.. 01:52 VanessaE 2015-07-12 03:41:55: ERROR[ServerThread]: ServerEnv: Trying to store id=22679 st 01:52 VanessaE atically but block (-13,0,-28) already contains 500 objects. Forcing delete. 01:52 VanessaE shittons of those 01:52 hmmmm http://pastebin.ubuntu.com/11864536/ 01:53 VanessaE 2015-07-12 03:52:58: ERROR[ServerThread]: Server::ProcessData(): Canceling: No player for peer_id=367 disconnecting peer! 01:53 VanessaE shittons of the "forcing delete" just before that 01:53 hmmmm hmm 01:53 hmmmm well 01:54 hmmmm are those timestamps UTC or something? 01:54 VanessaE nothing else in the logs that's related. times are CET 01:54 VanessaE (I think that's UTC+1) 01:54 hmmmm alright 01:54 hmmmm so -5 01:54 VanessaE yeah 01:55 hmmmm weird 01:55 VanessaE there does appear to be some tenuous connection between your errors and what's showing up in my logs, as far as times are concerned 01:55 hmmmm 3:52:58 is +1 hour ahead of CET 01:55 hmmmm are you sure it's CET? 01:56 VanessaE positive. it's in the Frankfurt, Germany datacenter 01:56 VanessaE root@daconcepts /home/minetest/minetest_core # date 01:56 VanessaE Sun Jul 12 03:55:56 CEST 2015 01:56 hmmmm ahh 01:56 hmmmm so +6 01:56 hmmmm is there anything around 03:51:06? 01:57 hmmmm give me the chunk of log from 03:47:00 to 03:52:00 01:57 VanessaE sure. 01:57 VanessaE moment 02:00 VanessaE http://pastebin.ubuntu.com/11864562/ 02:00 VanessaE had to download the log first. 02:00 hmmmm ???? 02:00 VanessaE G*d damn it 02:00 VanessaE I grabbed the wrong part 02:00 hmmmm :/ 02:01 VanessaE http://pastebin.ubuntu.com/11864568/ 02:01 VanessaE sorry about that :P 02:01 hmmmm it's ok 02:02 VanessaE gave you a little extra there for context 02:02 hmmmm alrighty 02:02 hmmmm so it's safe to say there's nothing correlated with this in the logs 02:03 hmmmm there is some active object sending nonsense messages to my client 02:06 VanessaE dollars to donuts, it's the pipeworks' tubed objects or signs_lib text entities trigering this issue 02:07 hmmmm damn 02:07 hmmmm anyway 02:07 VanessaE +g 02:07 hmmmm once you start getting a serialization error, don't move anywhere 02:07 hmmmm because once you move it stops 02:07 VanessaE ooohhhh 02:07 VanessaE but...hm 02:08 hmmmm alas this is useless without server-side debugging 02:08 hmmmm :\ 02:08 VanessaE what do you need me to do? 02:08 hmmmm you're probably going to hate this 02:08 VanessaE "run it under gdb" 02:08 hmmmm not quite 02:09 hmmmm print out all of the active object messages ^g^ 02:09 VanessaE wat 02:09 hmmmm compare each active object message you're sending me 02:09 hmmmm if i don't see any screwed up corrupted messages there, we know the problem is in data transmission or corruption 02:10 hmmmm if we do see a screwed up corrupted message, then we look further down the pipeline at which object is producing the screwed up message 02:10 * VanessaE dies 02:10 hmmmm it's going to be awful spammy, however 02:19 hmmmm alright VanessaE 02:19 hmmmm you around? 02:19 VanessaE yeah 02:19 VanessaE just helping someone. 02:19 hmmmm alright 02:19 hmmmm first you need to have my latest patch applied 02:19 hmmmm https://github.com/kwolekr/minetest/commit/473af3f6d58dfebb05e4ca221291d441607f6583 02:20 VanessaE yep, that one's already staged 02:20 VanessaE not yet deployed 02:20 hmmmm alright now apply this http://pastebin.ubuntu.com/11864636/ 02:21 hmmmm and then restart VanessaE survival :) 02:21 VanessaE that patch doesn't apply 02:21 hmmmm :( 02:21 hmmmm try applying it manually 02:22 VanessaE willdo 02:23 hmmmm wait 02:23 * VanessaE waits 02:26 hmmmm okay 02:26 hmmmm manually apply this one: http://pastebin.ubuntu.com/11864653/ 02:27 VanessaE ok. 02:27 hmmmm no wait 02:27 * VanessaE waits some more :) 02:27 hmmmm make bool print_aoms = (client->getName() == "singleplayer"); //"sometester1231"); 02:27 hmmmm into this 02:27 hmmmm bool print_aoms = (client->getName() == "sometester1231"); 02:27 VanessaE got it. 02:29 VanessaE ok, applied. 02:29 hmmmm okay 02:29 hmmmm sorry you had to kick everyone off heh 02:29 VanessaE not yet I didn't :) 02:30 VanessaE compiling it now 02:30 VanessaE fek 02:30 VanessaE http://pastebin.ubuntu.com/11864672/ 02:31 hmmmm you didn't apply it right, did you 02:31 hmmmm lol 02:31 VanessaE probably not :P 02:31 hmmmm let's see 02:32 VanessaE hm, nope I applied it right 02:33 hmmmm you sure 02:33 VanessaE hm, extra closing brace. 02:34 VanessaE lemme just reset to clean state and try again 02:37 VanessaE there we go 02:37 VanessaE there musta been some leftover cruft from the failed `patch` try. 02:37 VanessaE ok, it's built. 02:37 hmmmm oh yeah you need to git whatever --abort if there's an error in merging 02:38 hmmmm or else that happens 02:38 VanessaE right 02:38 VanessaE forgot that step 02:38 VanessaE anyway it's deployed. 02:39 VanessaE and I'm tail'ing the log. 02:39 hmmmm prepare to get your log spammed 02:39 VanessaE go for it 02:39 VanessaE it's stored in /run/shm anyway :) 02:39 hmmmm pepper your angus 02:40 VanessaE holy fuckballs 02:40 VanessaE SPPPPPAAAAAMMMMMm 02:40 hmmmm and now 02:40 hmmmm i just walk around until i get that error 02:41 hmmmm OKAY NOW 02:42 hmmmm STOP 02:42 hmmmm CTRL+C 02:42 hmmmm LOGS 02:42 VanessaE stopped. 02:42 hmmmm ALRIGHTY 02:42 hmmmm AT PRECISELY 22:41:53 02:42 hmmmm whoops forgot to uncaps 02:43 hmmmm give me some context around the time 04:41:53 in the logs 02:43 VanessaE your clock is off a little, the last entry is 04:40:44 02:43 VanessaE gimme a hint what I should search for? :) 02:43 hmmmm I don't know 02:43 hmmmm that's the thing 02:43 VanessaE ok I'll just skin 02:43 VanessaE skim* 02:43 hmmmm search around when i yelled "okay now" 02:44 hmmmm and right now too 02:44 hmmmm 22:44:05 02:44 hmmmm I just got another one that's a malformed message but not one of those huge ass ones that cover the screen 02:45 VanessaE searching.. 02:48 VanessaE neither the word "now" nor "NOW" appears in the log for this run 02:48 hmmmm no i mean when i said "okay now" on irc 02:48 VanessaE oh derp 02:48 VanessaE moment... 02:49 hmmmm hmmm 02:49 hmmmm maybe it would be easier if you gzipped it up and sent it this way 02:50 VanessaE Might have to, it's so big even 'less' is having trouble searching it 02:52 VanessaE EEK 02:53 hmmmm i just got another one 02:53 hmmmm shoot 02:53 hmmmm i'm getting lots of them 02:53 hmmmm 22:53:05 02:54 VanessaE I gotta shut survival down, it's totally filling /run/shm 02:54 VanessaE and back-out that change I mean 02:54 hmmmm hold on i can do better 02:55 VanessaE well if you want I can direct the log to disk instead 02:56 VanessaE looks like it crashed anyway :P 02:56 hmmmm alrighty 02:57 hmmmm change "if (print_aoms) {" to this 02:57 hmmmm "if (print_aoms && aom.datastring.size() > 0x70) {" 02:57 hmmmm this will filter out all but the biggest 02:59 VanessaE ok 02:59 VanessaE building. 02:59 VanessaE still want the big log? 03:00 hmmmm yaeh sure 03:00 hmmmm do this first though 03:00 VanessaE server's up. 03:00 hmmmm logging on 03:01 hmmmm timing out 03:01 VanessaE nothing in the log for that. 03:01 hmmmm ? 03:01 hmmmm that i timed out? 03:01 VanessaE it didn't react to you signing on 03:02 hmmmm because i didn't sign on it keeps timing out 03:02 VanessaE oh ok 03:02 hmmmm you are doing this on 30001 right? your survival server? 03:02 VanessaE hang on. 03:02 VanessaE yes. 03:02 VanessaE huh. it didn't start. 03:02 * VanessaE tries again. 03:02 hmmmm ahh 03:03 VanessaE there it goes. 03:04 hmmmm alright 03:04 VanessaE (permission issue for the log file) 03:04 hmmmm here we go 03:04 hmmmm watch the log file 03:04 VanessaE tailing it. 03:04 hmmmm this'll filter out everything but the biggest messages 03:04 VanessaE yeah that's a bit better 03:05 hmmmm K 03:05 hmmmm right now 03:05 hmmmm did you see anything? 03:05 VanessaE ok, killed the tail 03:05 * VanessaE looks 03:06 VanessaE I better send you the log. 03:06 hmmmm ooh okay 03:06 hmmmm what does that mean 03:06 VanessaE it means I don't know wtf I'm looking at :) 03:07 VanessaE http://digitalaudioconcepts.com/vanessa/hobbies/minetest/moredebug-survival.txt 03:07 hmmmm blerk 03:07 hmmmm it just happened again fyi' 03:07 hmmmm just like 10 seconds ago 03:08 VanessaE reload the file at that link, I just refreshed it. 03:09 VanessaE brb 03:10 hmmmm do you have the smaller logfile too? 03:10 hmmmm from the second run 03:14 VanessaE that link IS the smaller one 03:14 VanessaE I'm still waiting for the big one to make its way through bzip2 03:14 hmmmm waha no way 03:15 VanessaE way. :) 03:15 VanessaE that btw is console-output-capture (which is why it's "more" debug) 03:16 VanessaE 2015-07-12 05:16:45: ERROR[ServerThread]: ServerEnvironment::deactivateFarObjects(): id=13191 m_static_exists=true but static data doesn't actually exist in (515,0,-272) 03:16 VanessaE wat 03:17 VanessaE wwk 03:17 VanessaE eek 03:17 VanessaE 2015-07-12 05:16:51: ACTION[ServerThread]: Bluebird places node technic:switching_station at (8046,17,-4409) 03:17 VanessaE 05:16:51: WARNING: Assignment to undeclared global "count" inside a function at ...inetest/games/dreambuilder_game/mods/currency/income.lua:26. 03:17 VanessaE [Currency] added basic income for Bluebird to inventory 03:17 VanessaE 2015-07-12 05:17:17: ERROR[ServerThread]: ServerEnv: Trying to store id=10551 statically but block (-12,0,-29) already contains 500 objects. Forcing delete. 03:17 VanessaE [last message repeated a fuckload of times[ 03:17 VanessaE 2015-07-12 05:17:17: ERROR[ServerThread]: ServerEnv: Trying to store id=10833 statically but block (-12,0,-29) already contains 500 objects. Forcing delete. 03:17 VanessaE 2015-07-12 05:17:17: ERROR[ServerThread]: Server::ProcessData(): Canceling: No player for peer_id=8 disconnecting peer! 03:18 hmmmm :\ 03:20 VanessaE don't you just LOOOOVE these kinds of issues? :) 03:20 hmmmm not at the moment 03:22 VanessaE oh fuck me 03:22 VanessaE I overwrote the big log :( 03:23 hmmmm hey vanessae 03:23 VanessaE hm? 03:23 hmmmm nevermind that at the moment 03:23 VanessaE ok 03:23 hmmmm what item has this string as a texture: http://pastebin.ubuntu.com/11864827/ 03:24 VanessaE that would be a signs_lib text entity 03:24 hmmmm welp 03:25 hmmmm in any case I think I have an understanding of why minetest servers perform so poorly 03:26 hmmmm AOM is far, far, far, too chatty 03:27 hmmmm your server is literally maxing my pipe so that it can tell me about all the lua entities that moved within the past second 03:28 VanessaE weird thing is, those sign entities don't move, or even refresh (and the only thing that CAN refresh them is an ABM that runs once per 15 second interval, and only refreshes if the entity is missing) 03:28 VanessaE pretty bad in any case 03:31 hmmmm alright 03:32 hmmmm - i think signs_lib is indirectly responsible for the serialization error we see 03:32 hmmmm - i think the chattiness of AOMs is the primary reason why minetest's network performance is sluggish 03:33 hmmmm #1 looks like it's probably caused by a lower-level problem with the network, and #2 is by design 03:33 hmmmm the object message design worked fine, but now we have servers where a single client could be listening to serveral tens of thousands of objects 03:33 hmmmm it simply doesn't scale 03:35 hmmmm also, what is going on around (-200.5,11,-459) on your server, out of morbid curiosity? 03:35 VanessaE those are mapblock coords? 03:35 hmmmm some mod must be going crazy because there are several tens of thousands of objects centered around that area 03:35 hmmmm no, absolute map coordinates 03:36 VanessaE lemme go check 03:39 VanessaE bah, now I keep timing out trying to connect. 03:40 hmmmm in any case 03:41 hmmmm the mod that's making thousands of objects at those coordinates is the one that's responsible for the statically blah blah blah forcing delete error 03:41 hmmmm wow a single mod that has a bug in it can really wreak havoc.. 03:44 VanessaE finally 03:44 VanessaE now it's loading. 03:45 VanessaE looks like just some low-end sorting machine. 03:45 hmmmm low-end sorting machine?!? 03:45 VanessaE mmhmm 03:46 hmmmm what is a sorting machine 03:46 VanessaE and here come the serializatn errors 03:46 hmmmm is it supposed to sort objects? 03:46 hmmmm vanessae... 03:46 hmmmm what i want you to do right now 03:46 hmmmm is to destroy the sorting machine 03:46 hmmmm you must destroy the sorting machine! 03:46 hmmmm it's the only way... to stop the suffering 03:46 VanessaE beats the fuck out of me but my FPS is so ridiculously slow I can't do anything useful 03:46 VanessaE as in dropped to less than 1 03:47 hmmmm DEEEEEESTROYYYYYY THE SORTTING MACHHHINEEEE 03:47 * hmmmm adds movie effects 03:50 VanessaE I'm trying to turn it off now 03:50 VanessaE forget it 03:50 VanessaE I have no control 03:50 VanessaE these serialization errors spamming my client are making it impossible to do anything 03:51 VanessaE they totally kill my fpds 03:51 VanessaE fps* 03:51 asl97 lol, how could it get so bad though 03:51 hmmmm we're definitely going to need to add in safeguards to prevent some mod doing something like this again 03:52 hmmmm this is nasty 03:53 VanessaE there was a fuckton of pumice floating around through some tubes 03:53 VanessaE once I broke the tubes to let them out, they piled up and my FPS came back to normal 03:54 VanessaE so it's the because they stopped *moving* 03:54 asl97 oh lol, a pumice generator, it must have run out of storage 03:54 VanessaE so you're right, AOM is way too chatty 03:54 hmmmm well it's *okay* for what it's supposed to do, to think about it 03:54 hmmmm it's just that it simply does not scale 03:54 hmmmm minetest was not designed for such high volume of objects in mind 03:55 VanessaE in this case about 1300 pieces of pumice and 2300 pieces of basalt 03:55 hmmmm yeah 03:55 VanessaE but why didn't the engine delete them from the pipes? 03:55 hmmmm basically, an Object is a rather heavyweight entity 03:55 VanessaE my per-block limit is only 500 03:55 VanessaE and these appear to have been individual entities, not stacks 03:55 hmmmm I think what we need to do is enforce a per-mod limit on objects 03:56 hmmmm and introduce a much lighter version that doesn't get statically stored and is more or less for display only 03:57 VanessaE a per-mod limit would basically kill the utility of pipeworks though 04:01 hmmmm i think no matter how we do it there'd be problems with moving and tracking several thousands of objects on the screen 04:01 hmmmm hmm 04:02 asl97 client side script should be able to fix it 04:02 VanessaE might help./ 04:02 hmmmm yeah definitely 04:08 VanessaE all of this aside, it still doesn't explain why the movement of those entites killed FPS, but having them just sitting in one place spinning around doesn't 04:09 asl97 does the entites change direction? if it does, it could explain it 04:09 VanessaE yes 04:10 VanessaE they were going around and around in a small loop inside the machine, maybe 10-15 meter total distance around the loop, and several turns in the loop 04:11 VanessaE (well two loops of half that size, rather) 04:33 VanessaE meanwhile, I found another huge machine near that server's spawn that was also generating a large number of objedcts, BUT it wasn't going overboard (in fact it seemed to be running just fine, save for causing FPS sags due to periodic mesh regen 04:33 VanessaE ) 04:37 * VanessaE wonders what hmmmm is thinking now. 04:37 hmmmm i'm pondering. 04:38 VanessaE well don't try to take over the world. 04:38 VanessaE :) 04:38 hmmmm so you're pondering what i'm pondering 04:38 VanessaE I don't think so, but even so, where would you get a gallon bucket of sour cream at this time of night? 04:38 VanessaE :D 04:40 hmmmm zoink. 04:40 VanessaE now you're mixing cartoons :P 04:41 hmmmm zoink is a verifiable pinky quote 04:41 VanessaE huh. been too long. 04:41 hmmmm he says zoink, narf, gat, zounds, troz, fjor, poit, zort 04:41 hmmmm iirc 04:41 VanessaE most of those I remember 04:42 VanessaE I'm ruined :P 04:43 hmmmm can't help but wonder if the FPS didn't sag when the objects were holding still because they were mostly occluding eachother 04:43 hmmmm and then when they were moving, they weren't, causing most of them to get rendered 04:43 VanessaE hm 04:43 hmmmm that's my only guess. i have no idea 04:45 VanessaE the engine automatically snaps dropped entities together to form stacks. I wonder if that shouldn't be applied to ALL entities? 04:45 VanessaE (or maybe item_tweaks is responsible for that) 04:46 hmmmm are they really distinct entities that are 'attached' to eachother? 04:46 VanessaE they're distinct 04:46 hmmmm that sounds inefficient.. 04:46 VanessaE when I freed them from the tubes, they started piling into my inventory one at a time 04:46 hmmmm you'd think it'd replace it with one entity that has a count 04:46 hmmmm maybe it should 04:47 VanessaE visibly, there were only about a dozen or so "globs" at the time, all of which looked like single entities 04:47 hmmmm so yeah 04:47 hmmmm globbing them together would definitely work 04:48 hmmmm if the modmaker wants the entites to appear in bulk, perhaps irrlicht particles could be used 04:48 VanessaE some pipeworks machines will have to be adapted accordingly, but oh well 04:48 VanessaE actually, strike that 04:48 VanessaE hm 04:48 VanessaE no, I guess it has to be done on the server. 04:49 VanessaE I was thinking, what if the client globs them together? but that wouldn't do anything about the net bandwidth you mentioned 04:50 VanessaE unless the client tells the server "hey, I've joined entities A B and C together, so don't send me updates for B and C" 04:50 VanessaE something like how attached entities are supposed to work? 04:51 hmmmm why would that be a client thing 04:51 hmmmm the server should be the one handling globbing 04:51 VanessaE just thinking out loud 04:51 hmmmm the server is in a much better position for that 04:51 hmmmm why do you want to do this on the client? 04:51 hmmmm latency? 04:52 VanessaE true, I agree. I was just thinking from the standpoint of transparency for mods - if the items get too far apart, then the client can split them again 04:52 VanessaE know what I mean? 04:52 VanessaE but you're right, the server is the better place for that 04:52 hmmmm ahhh 04:52 hmmmm i see what you mean 04:53 hmmmm it'd save on rendering power but it certainly wouldn't save on bandwith 04:54 VanessaE exactly 04:54 hmmmm we could have a translation compatibility layer for mods 04:55 hmmmm the server clumps them together, but if a mod doesn't support object groups, then it could reserve all the object ids it originally reclaimed 04:55 hmmmm and then if the mod deletes an object that has an id within that group, the group simply decrements the object count by 1 04:56 VanessaE right 04:56 hmmmm if the mod makes one of the objects in the group have a different position or velocity or whatever, it'd split that individual object out 04:56 hmmmm so we can easily lie to the mods for reverse compatibility 04:56 VanessaE that's exactly what I was thinking 04:56 hmmmm and the server would handle the clumping 04:57 VanessaE there would need to be a flag or variable or something that a mod could set to prevent any such clumping (MOBs for example) 04:57 hmmmm yeah 04:58 hmmmm lol 04:58 hmmmm VanessaE 04:58 hmmmm if you had compressed that log file you uploaded it'd be no more than ~200 MB 04:58 VanessaE though I guess that wouldn't really be needed in practice, as MOBs are quire unpredictable anyway; if position and velocity are enough to cause clumping, MOBs probably would not get hit anyway 04:58 hmmmm but noooo you didn't and now it's 2.1 GB 04:58 VanessaE heh 04:58 VanessaE sorry :) 04:59 VanessaE I got all ferchated earlier dealing with that brain-o where I overwrote the really spammy version :P 05:00 hmmmm your maps are huge too 05:00 VanessaE mmhmm 05:00 VanessaE and those ARE compressed :P 05:00 hmmmm VanessaE - "Errything I do, I do it big." 05:00 VanessaE lol 05:01 hmmmm big textures too 05:01 VanessaE remember when I said I needed to write that one "strip it down" tool? well I suppose it would also serve to reduce map sizes :) 05:01 VanessaE big textures? well HDX yeah, but the servers mostly run 16px stuff 05:01 hmmmm yeah I bet a large part of your map is actually object storage 05:01 hmmmm the object system was REALLY not intended for this scale 05:02 hmmmm mod makers just keep pushing it 05:02 hmmmm grr 05:02 VanessaE "I don't always write mods," "but when I do, I go for 100x overkill." 05:03 hmmmm ok there dos equis guy 05:03 VanessaE (actually in this case, nore did. I only coded some of the most basic node defs) 05:16 VanessaE meanwhile, I guess your 473a...6583 patch at least doesn't seem to break anything 05:16 VanessaE of course I haven't run it without the print_aoms tweaks, but I don't see that causing any regression from your code 05:17 hmmmm it only modifies the client 05:17 VanessaE oh hell 05:17 VanessaE learn2read :P 05:18 * VanessaE applies it to her client. 05:20 VanessaE it is safe to back-out those print-aoms tweaks? 05:20 VanessaE on the server I mean 05:20 VanessaE on fuck 05:20 VanessaE oh fuck, you already said that's client-side. 05:20 VanessaE G*d I am dense. 05:20 hmmmm no, print aoms is not 05:20 hmmmm that is server only 05:21 VanessaE right 05:21 hmmmm the point of what i did was to compare server vs client aoms 05:38 hmmmm ANYWAY 05:39 hmmmm the conclusion from my analysis is that the serialization error is exacerbated by signs_lib's gigantic ObjectProperties 05:39 hmmmm but the root cause lies somewhere in the serialization layer 05:40 hmmmm as for the actual 'bug' presented in the github issue where overly verbose errors are being displayed to the client: that requires no figuring-stuff-out, just elbow grease 05:50 VanessaE well I'm at least glad my mods aren't the root cause :) 06:37 hmmmm heh 06:38 hmmmm i just tried compressing the log you gave me. 2.4GB down to 18.3MB with the standard xz options. 06:40 VanessaE heh. sure, here's some salt, go ahead and rub it in :) 07:19 autodidact do you guys contribute to the main source or is this a plugins channel 07:34 nore autodidact: this is the channel for engine development 08:24 celeron55 last night's discussion is hilarius, especially out of context 8) 08:24 celeron55 do you guys know that the object count limit does not apply to a live instance? 08:24 celeron55 it only applies to the amount of statically saved objects 08:25 celeron55 unless somebody added a limit to the active objects when i haven't been looking 08:25 VanessaE wat 08:25 celeron55 you could just extend the limit or a higher limit to active objects too and be done with this problem mostly 08:26 celeron55 or maybe i'm wrong 08:26 VanessaE huh. well question then is, are pipeworks' tubed items being store statically? *pokes nore* 08:26 VanessaE pretty sure signs_lib is 08:26 celeron55 of course they are, but it's a parallel system 08:27 celeron55 or i mean, there's the saved state inside the mapblock and the live state inside the environment 08:27 asl97 i thought signs_lib object is generated on-the-fly whenever the server restart or the object is clear 08:27 celeron55 i think i only added a limit to the static stuff that goes into mapblocks 08:28 VanessaE asl97: well sorta. the texture is rebuilt when the entity is reloaded. 08:28 VanessaE celeron55: what's the maximum reasonable number that a mapblock should be able to hold then? 08:28 asl97 and that it wasn't store in the mapblock 08:28 VanessaE assuming free disk space is not a concern 08:29 celeron55 dunno; it depends on the situation i guess 08:30 celeron55 if you max out every mapblock, you probably want less than 50 in them, but if you max out only one of them in the whole world, i guess something like 5000 wouldn't hurt much 08:30 VanessaE 500 is the limit I currently have set in my worlds 08:31 celeron55 or i mean, probably even less than 50; the system isn't designed to cope with that many objects 08:34 VanessaE can anything be done to fix that? 08:34 celeron55 http://fpaste.org/243081/36690082/ 08:34 celeron55 try something like this 08:34 VanessaE (aside from the entity-grouping idea hmmmm and I discussed) 08:35 celeron55 if this makes your server playable, then the issue is too many ActiveObjects (which are the live instances of objects, as opposed to statically stored ones) 08:35 celeron55 you should probably add a log message in there so you know if it's doing something 08:36 celeron55 hmm actually, that would be a global limit 08:36 celeron55 maybe make it 5000 for now or something 08:36 VanessaE even 5000 would be too low on an active server. 08:36 VanessaE no matter, I get what you're saying. 08:37 celeron55 in any case you need to test this 08:37 VanessaE I'll do that tomorrow then 08:38 celeron55 the limit is currently something like 65535 because that's the data type for object ids 08:40 celeron55 and there is an error message for that situation, which is "ServerEnvironment::addActiveObjectRaw(): no free ids available" 08:40 VanessaE never seen that message happen before. 08:40 celeron55 maybe it just grinds to a half before that happens? dunno 8) 08:40 celeron55 halt* 08:40 VanessaE heh 08:41 VanessaE you shoulda seen "grind to a halt" earlier though 08:41 VanessaE when I found that machine (hmmmm found the coords in the logs), my fps dropped to less than 1 until I broke a tube and made everything just fall to the ground. 08:41 VanessaE then suddenly, back to normal fps 08:41 VanessaE so the entities, all 3600 of them, were still there, but they weren't moving around anymore 08:42 VanessaE just spinning on the ground 08:42 celeron55 well entities send updates over the network when they move but not if they don't; i guess the message sending is too slow 08:43 celeron55 it's one of the things that has stayed untouched since i originally implemented it in my not-so-performance-aware prototyping fashion 08:44 VanessaE I was thinking, you know how animations "skip frames" when the node bearing the texture is too far away? how about doing the same with entities when the count gets too high? that is, skip sending updates to clients 08:44 celeron55 this doesn't mean that it is slow but it means it can be slow 08:45 VanessaE (and when they're just too far away) 08:49 nore huh. well question then is, are pipeworks' tubed items being store statically? *pokes nore* <-- no, they are stored by pipeworks and not affected by the static object limit 08:49 VanessaE well that rules out your theory, celeron55 :D 08:50 RealBadAngel hi 08:50 VanessaE hey RBA 08:51 celeron55 why does it rule out my theory? 08:51 VanessaE celeron55: because it's not bumping up against the static mapblock object limit? 08:51 VanessaE or did I misread? 08:51 celeron55 well for all i have read, those limit bumps could be unrelated 08:53 RealBadAngel i have read the logs before joining, about items. how much takes to store 1 item in db? 08:54 RealBadAngel maybe having them stored per world could be a solution indeed 08:55 celeron55 sigh, that's not the issue 09:47 nore ~tell paramat sfan5 and I decided that you could be a maintainer of _game if you want 09:47 ShadowBot nore: O.K. 10:01 sfan5 merge of the diamond block texture from #548 incoming (minetest_game) 10:01 ShadowBot https://github.com/minetest/minetest/issues/548 -- Pathfinding by sapier 10:02 RealBadAngel hehe 10:02 RealBadAngel wonder if that code will find a way to the texture ;) 10:02 sfan5 Receiving objects: 55% (2268/4123), 1.89 MiB | 124.00 KiB/s 10:02 sfan5 zzzZ 10:08 sfan5 pushed 10:08 RealBadAngel the diamond? 10:09 sfan5 yes 10:10 RealBadAngel sfan5, good. simple leaves and normalmaps? 10:11 sfan5 should game#548 stay open? 10:11 ShadowBot https://github.com/minetest/minetest_game/issues/548 -- Improved ores blocks textures by kilbith 10:12 sfan5 RealBadAngel: link to those? 10:12 RealBadAngel a sec 10:13 kilbith sfan5: i can close it if you don't want the new ores 10:13 RealBadAngel github is a bit slow for me today 10:14 RealBadAngel kilbith, i think you should open a new one with WIP mark 10:14 kilbith i'll be afk since monday, no time for updating it 10:14 RealBadAngel just open it right away so we can push there our ideas 10:15 RealBadAngel they have to be changed anyway, we just need a brainstorm place for it 10:15 kilbith i'll just delete the diamondblock in that PR 10:15 RealBadAngel that will do too 10:16 RealBadAngel sfan5, https://github.com/minetest/minetest_game/pull/559 10:16 RealBadAngel and https://github.com/minetest/minetest_game/pull/558 10:17 kilbith in fact i'll close the PR and open an issue instead (more suitable for collective brainstorming) 10:17 RealBadAngel sfan5, when you merge those i will open a new one with more new maps to be reviewed 10:17 RealBadAngel i do have grass and snow rdy 10:18 RealBadAngel grass is a bit tricky, it needs engine changes 10:18 RealBadAngel because its not seamless (the sides are not) 10:20 sfan5 RealBadAngel: 559 has 2 votes (nore and me), should i merge it? 10:21 RealBadAngel 2 are enough 10:22 RealBadAngel also theres one more from paramat 10:22 RealBadAngel he agreed for those in #dev 10:22 sfan5 the rule to comment on pulls is there for a reason 10:22 sfan5 so that we don't need to search the logs for it 10:23 RealBadAngel yup, but 2 is whats needed to merge pr in question 10:24 RealBadAngel also im a dev too, so its additional vote, dont you think? 10:24 RealBadAngel that gathered makes 4 devs votes 10:24 kilbith being core-dev doesn't mean you're MTG maintainer 10:25 RealBadAngel i know, but the border line in this case (normalmaps and simple leaves) is very thick 10:26 RealBadAngel for the changes to be complete it requires changes in both repos 10:26 sfan5 game#559 merhed 10:26 ShadowBot https://github.com/minetest/minetest_game/issues/559 -- Add some normalmaps with heightmap in alpha channel by RealBadAngel 10:26 sfan5 s/h/g/ 10:28 RealBadAngel sfan5, so only simple leaves are left 10:29 sfan5 those need 1 more vote 10:29 RealBadAngel paramat 10:29 RealBadAngel or, nore, wake up :) 10:30 sfan5 I'll be afk now 10:30 nore well, simple leaves look as good as it can be :) (the problem is that the trees always look "empty" when there are transparent pixels with simple leaves...) 10:30 RealBadAngel also, sfan5 what do you think if we go further with it and supply different textures for non fancy leaves? 10:31 sfan5 if that makes it look better, why not? 10:31 RealBadAngel nore,sfan5 its a half way 10:31 nore so yes, you can merge it :) 10:32 RealBadAngel an attempt to look as good as fancy does and be of the same speed as opaque is 10:32 RealBadAngel something to choose 10:32 RealBadAngel i find it personally good solution, especially in dreambuilder worlds 10:33 RealBadAngel for me its 13-14% fps gain 10:33 RealBadAngel kahrl got over 16% 10:38 RealBadAngel thats pretty huge gain 10:41 RealBadAngel when we are finished with adding specialized normalmaps and textures, relief mapping with simple leaves could become the fastest pick 10:41 RealBadAngel while being the best quality setting still 10:42 RealBadAngel look at terasology for example. picking the same quality level makes it unplayable 10:43 kilbith terasology is a huge gas industry 10:43 RealBadAngel what we do have, i mean relief mapping with default textures is something extraordinary for all the voxel games 10:44 RealBadAngel mc team is trying to follow it, see experimental shaders for it 10:46 RealBadAngel when we are done with all the normalmaps, mt will look as high end HD thingy, out of the box 10:48 RealBadAngel kilbith, i like terasology for one reason, its open source and a different point of view 10:48 RealBadAngel we do have l-system trees thx to Terasology :) 10:55 kilbith and you must have an i7 and two GTX on SLI for playing it comfortably 10:55 kilbith if minetest turns like that, i leave definitely 10:57 kilbith meanwhile... game#565 10:57 ShadowBot https://github.com/minetest/minetest_game/issues/565 -- Add mushrooms by kilbith 10:58 VanessaE kilbith: ew. use the models from plantlife 10:58 kilbith too heavy 10:58 VanessaE plantlike draw type looks like ass with mushrooms. your textures are nice, though 10:59 kilbith plantlike is KISS, like what MTG is aiming for 10:59 VanessaE plantlife's models are too heavy? O_o 10:59 kilbith yeah, it's mesh and not suitable for the rest of the world 11:00 VanessaE eh. 11:00 VanessaE why have mesh node capability at all if the default game isn't going to exploit it? 11:00 VanessaE (stairs notwithstanding) 11:01 kilbith because the flora is all plantlike already 11:01 kilbith and mesh is less flexible for texture packs and maintainance 11:01 kilbith besides the fact it's visually unsuitable in such cubic game 11:02 VanessaE yeah but the existing flora looks fine as plantlike, it's "thin" anyway 11:02 kilbith c55 prefers the flat plantlike as well 11:02 VanessaE mushrooms aren't "thin", they're round. 11:02 kilbith MC uses only plantlike for the flora 11:02 kilbith so the bloating should go elsewhere :) 11:02 VanessaE meh, who cares about MC 11:02 RealBadAngel kilbith, normalmaps while being way better quality than autogen are actually way faster 11:03 RealBadAngel simply data is preprocessed 11:03 RealBadAngel also, most cheap pentium (i3) and gti 550 here 11:03 RealBadAngel its not quite expensive box 11:04 kilbith it should runs smoothly on 5-8 years old hardware 11:05 kilbith master philosophy of MT 11:05 RealBadAngel without any modern effects, yes 11:06 RealBadAngel but if you want it to shine, forget about yrs old hw 11:07 VanessaE it's okay to target modern hardware, as long as the quality degrades gracefully on older machines. 11:07 RealBadAngel for amd 2-3 yrs old gpu is moved to legacy and is no longer supported even 11:07 kilbith it's okay to target every type of hardware, must be universal 11:07 VanessaE i.e. fewer working shaders on some old trident than you'd get on a modern two-slot-wide GPU, etc. 11:08 RealBadAngel kilbith, for older boxes we will have "lite" shaders 11:08 VanessaE kilbith: that's what I meant by "degrade gracefully" 11:08 RealBadAngel simple and "not to touch" version 11:08 kilbith sure, if you can't affort fancy graphics, a simplistic alternative is offered 11:08 kilbith *afford 11:08 RealBadAngel thx to above we will get two goals 11:09 RealBadAngel compability with older hw 11:09 RealBadAngel and a way to enable most decent fragment shader models 11:09 RealBadAngel version we do support is atm #120, that came with OpenGL v 2.1 11:10 ShadowBot https://github.com/minetest/minetest/issues/120 -- lua_api.txt is missing important stuff 11:10 RealBadAngel NINE years ago 11:10 RealBadAngel when im lookin at the specs, thats way before dinosaurs were ruling the world 11:12 kilbith you're sure that 120 is related ? 11:13 RealBadAngel no, its a bot 11:13 RealBadAngel i meant glsl version not the pr 11:22 kilbith RBA, btw what about the texture displacement patch ? 11:24 RealBadAngel killbith, working on it 11:24 RealBadAngel its not yet rdy, need a day or two to finish it 11:25 kilbith ok cool 11:29 kilbith note : this should be modified accordingly now that paramat is maintainer : http://dev.minetest.net/minetest_game_Development 12:57 crecca there is this line in the CMakeLists.txt file: 12:57 crecca if(EXISTS ${MINETEST_GAME_SOURCE} AND IS_DIRECTORY ${MINETEST_GAME_SOURCE}) 12:58 crecca why is there IS_DIRECTORY condition, wouldn't a signle EXISTS suffice? 13:02 crecca oh nvm i get it 13:21 kilbith odd, fullscreen with F11 works with ubuntu but not on archlinux 13:22 sfan5 fullscreen with f11? 13:23 sfan5 last time i checked irrlicht did not support going to fullscreen without re-creating the context 13:23 kilbith yes, plain fullscreen without the WM 13:23 kilbith it worked fine on ubuntu really 13:25 crecca it doesn't work on debian... 13:25 Amaz Doesn't work on Peppermint. (Based on Ubuntu) 13:25 crecca are you sure it's not a feature of a window manager? 13:26 kilbith likely yes 13:26 kilbith but i use the same on arch linux 13:26 Amaz f11 works in programs other than minetest for me. 13:27 crecca must be the window manager setting then 13:27 crecca settings* 13:28 crecca i just googled that 3d effects enabled make the f11 go fullscreen 13:30 crecca but i find that hard to believe, but most likely a setting somehwere in gconf or smth 15:45 crecca in the first CMakeLists.txt it says : 15:45 crecca if(NOT CMAKE_BUILD_TYPE) 15:45 crecca # Default to release 15:45 crecca set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type: Debug or Release" FORCE) 15:45 crecca endif() 15:45 crecca and in the second : 15:45 crecca set(CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING 15:45 crecca "Choose the type of build. Options are: None Debug SemiDebug RelWithDebInfo MinSizeRel." 15:45 crecca FORCE 15:45 crecca ) 15:45 crecca couldn't this be simplified? 15:46 crecca bit confusing to me... 15:52 crecca wouldn't just using only the second version in the first CMakeLists.txt without the FORCE option be effectively the same? 15:54 rubenwardy http://irc.minetest.ru/minetest-dev/2015-07-12#i_4319406 15:54 rubenwardy Mushrooms aren't plants :P 16:02 kilbith i think you need to open a dico for "flora" 16:04 rubenwardy flora - flowers 16:05 rubenwardy http://dictionary.cambridge.org/dictionary/british/flora 16:05 crecca mushrooms are fungi 16:05 crecca no more no less 16:05 kilbith this definition is incomplete then 16:05 rubenwardy http://www.oxforddictionaries.com/definition/english/flora 16:06 rubenwardy Shall I get out a physical dictionary? 16:06 kilbith wrong, flora implies all the micro-organism and non-vascular flora 16:06 rubenwardy Arguing with the dictionary? 16:06 kilbith besides, this pedantic discussion is unsuited for this channel 16:07 rubenwardy Grass etc are made up of thin stalks and flat leaves, stereotypical mushrooms have mass and are round 16:07 hmmmm definitely not a #dev discussion 16:08 rubenwardy Yeah, definitely not :P 16:14 paramat oh cool, yes please 16:17 hmmmm heh i have a really simple mapgen change that should improve performance quite a bit 16:17 hmmmm but i can't quite test it on singleplayer with almost no lock contention 16:18 paramat hi sfan5 are you happy with game#550 ? i guess my own +1 counts but i'd like your comments 16:18 ShadowBot https://github.com/minetest/minetest_game/issues/550 -- Default: Add savanna nodes, crafting and fuels by paramat 16:18 paramat hmmmmm interesting 16:19 hmmmm when blitting map chunks back to the map, don't wait to acquire a lock 16:19 rubenwardy paramat: http://pasteboard.co/1UgXb5Xn.png :'( 16:19 rubenwardy Did you define inbuilt mapgenerator biomes which assume blocks? 16:20 hmmmm instead simply trylock and then if it fails, add the voxelmanipulator to a queue and then the next time the lock does get acquired, blit all of them back at once and free the vmanips 16:20 rubenwardy wait 16:20 hmmmm rubenwardy, that was @paramat 16:20 hmmmm looks like you have quite a bit of content ignore on that map 16:20 paramat rubenwardy, use latest mtgame? v6 has snow biomes by default now 16:21 rubenwardy You shouldn't assume content 16:21 rubenwardy You break compatibility with other subgames 16:22 paramat mtgame and the engine are developed together, it's unavoidable 16:22 hmmmm i sorta agree with rubenwardy here, paramat 16:23 paramat v6 snow biomes were made default by popular demand, i was actually hesitant about that, we could make them disabled by default? 16:23 hmmmm if snow biomes are enabled but snow nodes and their backups resolve to content ignore, fall back to dirt with grass or something 16:23 hmmmm easy 16:23 paramat ah in the ctor 16:24 paramat yes of course 16:24 rubenwardy Shouldn't minetest_game define the biomes? 16:24 hmmmm yes 16:24 paramat will fix 16:24 hmmmm you see how there's a bunch of if (c_stair_cobble == CONTENT_IGNORE) c_stair_cobble = c_cobble; etc. 16:24 hmmmm add those for snow too 16:24 paramat yeah 16:24 paramat ok thanks i'm learning 16:25 sfan5 paramat: the leaves look interesting, also the PR needs a rebase 16:25 hmmmm dirt_with_snow -> dirt_with_grass, snow -> air, snowblock -> stone, ice -> water_source 16:25 hmmmm rubenwardy, mapgen v6 hasn't been converted to the dynamic biome system yet 16:26 rubenwardy Ah 16:26 paramat ok thanks sfan 16:27 paramat hmmmmm this mapgen speedup is for core or lua mapgen? 16:45 paramat ah i guess lua mapgen, because of locks 17:11 est31 hmmmm, VanessaE any results from the testing session besides "OMG nobody will touch the code" and "I would have left minetest if I were you" 17:33 rubenwardy I used to be able to start a singleplayer game using minetest --worldname world --name singleplayer --go 17:33 rubenwardy but this no longer works 17:33 rubenwardy actually 17:33 rubenwardy 1sec 17:35 Krock --go works fine here 17:35 rubenwardy confirmed 17:35 rubenwardy It says "connecting to server..." and then times out 17:36 rubenwardy Krock, I mean client wise 17:36 rubenwardy --go works fine as a server starter 17:36 rubenwardy Using world specified by --worldname on the command line 17:37 rubenwardy 2015-07-12 18:36:37: ERROR[main]: Connection timed out. 17:37 Krock uh, you're right, I also time out 17:37 rubenwardy This feature was actually added for me about half a year ago, and now it's been removed :( 17:37 rubenwardy updating to latest git, I was a few days old 17:37 Krock It's broken, not removed 17:38 rubenwardy :P 17:44 est31 can sb bisect? 17:46 rubenwardy how to reset to a commit in the tree 17:46 rubenwardy ? 17:46 est31 git checkout commitname 17:46 rubenwardy ah, thanks 17:46 est31 works for commits and branches 17:48 crecca to continue my thought on CMake configuration... 17:48 crecca if(NOT CMAKE_BUILD_TYPE) 17:48 crecca # Default to release 17:48 crecca set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type: Debug or Release" FORCE) 17:48 crecca endif() 17:48 crecca this condition here is not needed, you can safely remove it and remove the FORCE option and it will work just the same 17:51 crecca separate issue: the docstring and the available set of build types gets nullified by the second CMakeLists.txt in the src/ directory 17:52 crecca gets changed* 17:52 est31 you should perhaps open a pr which clarifies the cmake files 17:52 rubenwardy 91f95fd4df82645e23a9734795d11ec9b8e522f8 doesn't work 17:53 crecca est31: This part is confusing and I'm not sure what the original author intended to achieve exactly 17:55 crecca actually, you're the original author :) 17:55 est31 what 17:55 est31 crecca, where again 17:56 est31 rubenwardy, is that the breaking commit? 17:56 rubenwardy no, that's one that doesn't work 17:56 crecca git blame -L 47,50 CMakeLists.txt says ^cb8978f (est31 2015-07-09 08:23:08 +0200 47) if(NOT CMAKE_BUILD_TYPE) 17:56 rubenwardy I'm going back a few pages to find another, then I'll bisect 17:57 est31 that cant be 17:57 crecca weird 17:57 est31 cb8978f doesnt do anything with the cmakelists.txt 17:58 crecca maybe im using git-blame wrong 17:58 est31 crecca, for me it does 359e575b (Perttu Ahola 2011-01-09 00:49:32 +0200 47) if(NOT CMAKE_BUILD_TYPE) 17:58 est31 crecca, did you do a shallow clone? 17:58 crecca hmm 17:58 crecca yup 17:58 crecca that's it 17:58 est31 then thats your problem 18:00 crecca yea my mistake 19:19 est31 nore, any time to look at #2898 19:19 ShadowBot https://github.com/minetest/minetest/issues/2898 -- Add AreaStore data structure by est31 19:22 nore est31: in doc/lua_api.txt, line 2602: what is accept_overlap? 19:23 est31 you mean for get_areas_for_area? 19:23 est31 the scan can be in two modes 19:23 est31 if accept_overlap = true, it looks for areas which overlap the current area 19:23 nore I mean: it is not clear how you pass that argument 19:24 est31 ah 19:24 est31 definition copied wrong 19:24 est31 https://github.com/minetest/minetest/pull/2898/files#diff-4fde6f7d68599493c8fe6b5d4a6aa33aR129 19:24 est31 should be this ^ 19:25 nore ah, ok 19:27 nore for AST_OVERLAPS_IN_DIMENSION, I would suggest the more efficient and simpler !((amine.d > b->maxedge.d) || (amaxe.d < b->minedge.d)) 19:29 est31 ok 19:29 nore (ehm... is it normal that AST_OVERLAPS_IN_DIMENSION returns false if b is contained in amin->amax?) 19:30 nore if it is, don't use my version 19:30 nore but from what I understand, it should return true 19:31 nore (I mean: if amine.d < b->minedge.d < b->maxedge.d < amaxe.d, it returns false right now) 19:31 est31 yea, it doesnt matter 19:32 nore also: is there a particular reason why you use macros and not inline functions? 19:32 est31 because the only place its used, is with || AST_CONTAINS_AREA 19:32 est31 inline functions copy stuff the arguments, no? 19:32 est31 -stuff 19:33 nore I think it is optimized 19:33 nore and you still can pass arguments to those functions by reference (const & arg) 19:34 nore yea, it doesnt matter <-- it does 19:34 est31 where 19:35 nore if I have aminx < bminx < bmaxx < amaxx and bminy < aminy < amaxy < bmaxy, your code doesn't work 19:35 nore because neither a nor b is contained in the other 19:35 nore but AST_OVERLAPS returns false :/ 19:35 est31 ah 19:35 est31 I see 19:36 est31 yea, then your solution has to be used 19:37 nore (this solution is imho the simplest way to check interval intersection) 19:37 nore (but if you find simpler, then I'm interested ^^) 19:37 est31 well it has 2 comparisons, and 2 boolean operations 19:38 est31 applying de morgan can eliminate 1 boolean operation 19:38 nore yep, that's what I'm expecting from the compiler 19:38 est31 yea 19:40 nore btw, what data structure does spatial use? 19:41 est31 R* 19:41 est31 R* tree 19:41 est31 link in PR description 19:42 nore reading a bit about it :) 19:46 est31 restarting computer 19:52 * VanessaE peeks in 21:34 paramat now pushing game 550 21:35 VanessaE game#550 21:35 ShadowBot https://github.com/minetest/minetest_game/issues/550 -- Default: Add savanna nodes, crafting and fuels by paramat 21:39 VanessaE paramat: oh btw, I will eventually be tweaking moretrees to just use the default nodes for acacia and pine, and I'll be discarding the textures it carries for those. 21:39 VanessaE just haven't gotten around to it yet. 21:39 paramat okay 21:46 paramat complete 21:55 est31 hmmmm, paramat cavegen is limited at mapchunk borders because otherwise it could carve into existing structures, no? 22:21 paramat the pseudorandom caves actually overgenerate by up to 16 nodes 22:22 paramat then 'is ground content' was added to protect nodes from cavegen 22:26 paramat to protect mod nodes placed in 'on generated' from cavegen extending from a neighbouring mapchunk that is generated later 22:28 kilbith paramat: it's ok to have one tree and one flower for simplicity ? 22:35 paramat now, i don't mind having 2 mushrooms 22:36 kilbith only one would be boring, two is syndical minimum :P 22:41 paramat from working on mapgen, sometimes (like today) i get overly concerned about having too many decorations, for performance reasons 22:41 paramat but 2 is fine 22:41 est31 why would that inibit performance 22:42 kilbith the brown needs a friend anyways 22:43 paramat est, mgv5/v7 tunnels are 3D noise so are limited to the mapchunk. the pseudorandom caves were made to overgenerate in the hope they would link up to form networks 22:44 paramat every deco adds a tiny amount of processing, especially if each has a 2D noise controlling it's density 22:46 paramat from working lua mapgens i still have this habit of extrme efficiency =) 22:46 paramat (extreme) 22:47 RealBadAngel howdy folks 22:47 kilbith hey 22:49 RealBadAngel im just reading comments to prs 22:49 RealBadAngel why are you against proper, mesh mushrooms? 22:50 kilbith all details in comments 22:50 est31 btw what about proper torches 22:50 est31 mesh for now 22:50 RealBadAngel we can have the on sight 22:50 kilbith est31: extruded torches incoming (?) 22:50 RealBadAngel i made them several months ago 22:50 est31 if/when we have extrusion, we can make them extruded 22:50 kilbith this is more flexible 22:50 est31 but for now mesh ones 22:51 RealBadAngel http://i.imgur.com/ECELl3Y.png 22:51 RealBadAngel ^^mushrooms 22:51 est31 and if you say that texture packs cant "texturize" mesh nodes, we should add it as feature for the texture packs 22:51 kilbith people complained of performance drops on the BlockMen mesh torches 22:52 est31 RealBadAngel, no these are ugly 22:52 est31 I like blocky ones 22:53 kilbith est31, you can texturize mesh but it only works with the same model 22:53 kilbith people can't use different UV maps 22:53 kilbith for the same model 22:54 est31 whats uv maps 22:54 kilbith hmmm, i'm trying to make an analogy for explain 22:55 kilbith this is the "unrolled faces" of the model 22:55 kilbith then you can apply textures to specific location of that uv-map 22:56 kilbith https://en.wikipedia.org/wiki/UV_mapping 22:57 kilbith as i'm 3D modelizer myself, i can say it's a no-go for flexibility 22:57 est31 so why not simply allow texture packs to change the model? 22:58 kilbith you don't textures packs for that 22:58 kilbith you simply need to put your model in /models 22:58 VanessaE est31: I asked for that months ago. 22:58 VanessaE and you can texture a model in a texture pack just fine. 22:58 kilbith but dealing with blender is way harder than drawing in gimp 22:58 VanessaE there's nothing different there than anywhere else, the textures are just perhaps bigger. 22:59 RealBadAngel sorry had to go out with trashcan 22:59 VanessaE if you're careful about designing your models so that they have multiple materials, one per section of the model (max 6) you can often get the textures that go onto those sections to be just 16x16 px 22:59 RealBadAngel http://i.imgur.com/6kkxmnQ.png 23:00 kilbith it's too complicate for the regular users really 23:00 VanessaE RealBadAngel: extruded torches are a dead subject. 23:00 VanessaE kilbith: the whole damn GAME is too complex for regular users. 23:00 VanessaE except for playing it of course. 23:00 RealBadAngel even when theyre animated? :) 23:00 kilbith no, every moron can draw in gimp 23:00 VanessaE RealBadAngel: even when animated. look at homedecor's 3dforniture torch for a better example of how it should be done. 23:01 VanessaE and it is animated too 23:01 kilbith we are only a small bunch to make sophisticated models with blender 23:01 kilbith that's it 23:01 RealBadAngel so make it 23:01 est31 kilbith, we are only a small bunch to make sophisticated source code written in c++ 23:01 kilbith also homedecor's torch is metal one 23:01 est31 most of our devs dont know c++ 23:02 RealBadAngel but when we will have a mesh for it, forget bout backwards compability 23:02 kilbith est31, mods are not made in c++ 23:02 est31 s/devs/community members/ 23:02 RealBadAngel its a proper way to do so, but compability with tps and games is impossible 23:05 kilbith est31, c++ allows to make smarted code but you would not want that for mods - same goes for 3d models vs 2d 23:05 kilbith smarter code* 23:06 est31 difference is, there arent that much nodes you would have to model 23:06 est31 imagine what you could do 23:06 RealBadAngel youre wrong with one thing kilbith 23:06 est31 eg you can make leaves meshnodes 23:06 est31 and make them "bushier" 23:06 est31 like kenney did 23:06 RealBadAngel meshes are faster than most of the drawtypes 23:07 RealBadAngel r2d2 model, having 2k faces is about same speed as stairs nodebox 23:08 kilbith well, when performance does matter in that case yes 23:08 est31 kilbith, how many texture packs exist? 23:09 kilbith 10-15, but there is also the custom textures of circumstances on servers 23:09 est31 its really stupid to restrict texture packs to not be abled to customize models just because "its hard to make 3d models" 23:09 VanessaE kilbith: my torch is only metal because that's how I textured it, but wood texture would look fine too I'm sure 23:10 est31 so lets suck and put a 2d flat texture into the world 23:10 VanessaE but my point was that it's an *example* 23:10 VanessaE I did not say to use that specific model 23:10 paramat if a mushroom was defined as a very simple nodebox of 3 cuboids, would the texturing be as simple as for example slabs?: 16x16 top, base, side textures that get projected onto the nodebox 23:10 VanessaE it just shows how you can make a torch that looks perfectly fine, including the animated flame, without extruding 23:11 kilbith VanessaE: no because there is bevel on top that is unexisting with a burning wood stick 23:11 RealBadAngel making good texture or an object requires skills no matter what 23:11 VanessaE kilbith: it's an example! jeez 23:11 kilbith sure 23:11 VanessaE just use the IDEA, not the MODEL. 23:11 * VanessaE falls over 23:11 RealBadAngel keeping simple 16px rule and 2d nowadays is overkill? nah, its shooting own leg 23:14 paramat nodebox plants are only suitable if ultra-low resolution, like OCD game https://github.com/bas080/OCD_nodes/raw/forum/screenshot_2.png note mushrooms 23:15 VanessaE paramat: oh G*D no, ANYTHING but that 23:15 VanessaE (sorry bas080) 23:15 est31 I like it, if the textures would be nicer 23:16 paramat well i mean in terms of resolution 23:16 est31 perhaps a *bit* higher 23:16 est31 but generally ok 23:16 paramat yeah 23:17 paramat 1/16th microvoxels are too small 23:17 paramat i would limit to 1/8th 23:17 kilbith else something like that : http://pastie.org/10288870 23:17 est31 1/16th is ok i think 23:17 kilbith with an option "fancy nodes", if selected -> set mesh 23:18 est31 or we make that through texture packs 23:25 RealBadAngel youre all seems to be confused 23:26 RealBadAngel you have the tools to make it look right 23:26 RealBadAngel but still want that 16px 23:27 RealBadAngel sorry guys, sad but true, atari is dead ;) 23:27 RealBadAngel we have to move on ;) 23:28 RealBadAngel anyway, on the other side, we do have now a few proper normalmaps in the game 23:28 kilbith there are basically two philosophies here 23:28 RealBadAngel i would like to get some feedback 23:28 kilbith the one all for minimalism, and the other for complete realism 23:29 kilbith i'd say : nothing in extremes 23:30 RealBadAngel kilbith, go watch "the librarians" 23:31 RealBadAngel are you familiar with those movies? 23:31 kilbith nope 23:31 RealBadAngel there are 3 full length movies and 2 seasons 23:32 RealBadAngel point is, while the job can look conservative, its not 23:33 RealBadAngel you have to keep up with standards 23:33 RealBadAngel and be open even for science fiction 23:33 kilbith conservatism is a way to stand on solid base that did its proves in the time 23:34 kilbith *proofs 23:35 VanessaE yes but if all you ever have is the solid base, and build nothing on top of it, what's the point of having it at all 23:35 kilbith problem is that our base is not that overall solid enough 23:35 RealBadAngel please take a look at merged normal maps 23:35 VanessaE I'd say it is,. 23:35 VanessaE the engine on the other hand, still needs some work. 23:36 RealBadAngel are they of good quality? 23:36 VanessaE but what we have is perfectly fine as a base 23:36 RealBadAngel are they or not? 23:37 VanessaE what I saw in the screenshots was, RealBadAngel. 23:37 kilbith it's fine yes 23:37 RealBadAngel me in the textures? ;) 23:37 kilbith except the clipped edges 23:37 VanessaE but I hope using a texture pack that has no normals support isn't going to interfere 23:37 kilbith RealBadAngel: what happens if someone change the default textures someday ? 23:37 kilbith will you be there for changing the normal maps ? 23:38 kilbith because it will be fucked up if not 23:38 RealBadAngel he will have to change all the textures 23:38 kilbith exact... 23:38 kilbith more pain 23:38 RealBadAngel diffuse, normal, specular and heightmap 23:38 RealBadAngel specular is not yet in 23:38 RealBadAngel also metallic 23:39 kilbith i'm not sure that everyone has this knownledge for making normalmap 23:39 RealBadAngel who have told you that texturing is easy? 23:39 VanessaE RealBadAngel: you didn't answer my query. 23:39 RealBadAngel he lied 23:39 kilbith texturing is easy, normalmapping not 23:39 paramat why are these normalmaps 256px for 16px textures? curious 23:39 VanessaE will these default normalmaps interfere with texture packs that don't supply normals? 23:39 VanessaE paramat: sharpness. 23:39 VanessaE a 16px normalmap would result in rounded edges 23:39 RealBadAngel paramat, 16px doesnt hold enough data 23:40 RealBadAngel 16px normal map just wont work 23:40 RealBadAngel out of definition 23:40 paramat ah 23:40 RealBadAngel autogen works on effective resolution 512px 23:41 RealBadAngel 256px for supplied maps is a compromise 23:41 RealBadAngel but not down direction, it should be even higher 23:42 RealBadAngel nowadays engines are using texs 2048 and higher 23:42 paramat now pushing new ice texture to game 23:43 VanessaE RealBadAngel: Minetest would collapse under such huge textures. 23:43 VanessaE irrlicht would have a heart attack 23:46 paramat complete 23:49 paramat phew busy day. i'll push RBA's simple leaves textures later