Time Nick Message 01:30 BillyS Wow .. I set my server logs to verbose. That is very verbose 09:36 Calinou BillyS: fun fact: in Minetest 0.2, every pointing/digging event was logged on the client 09:36 Calinou this caused log files to quickly become huge 10:08 rubenwardy from work mail list sign up page: "You can always request a mail-back of your password when you edit your personal options. Once a month, your password will be emailed to you as a reminder." 10:08 rubenwardy hahaha 10:08 rubenwardy ha 10:08 rubenwardy :'( 10:08 rubenwardy hunter2 it is 10:15 rud0lf pro apps/pages don't store passwords 10:15 rud0lf hashes only 10:16 rud0lf hi rubenwardy :) 10:19 Calinou rubenwardy: mese4 10:21 rubenwardy lol 10:22 rud0lf every time i see "mese" i can't help but see rick & morty's mr meseek 10:22 rud0lf or however it's spelled 10:25 Calinou rud0lf: To be fair, you have to have a very high IQ to understand Minetest. The bikeshedding is extremely subtle… 10:25 * rubenwardy kicks Calinou 10:25 rud0lf what do you mean "understand" it? 10:28 rubenwardy rud0lf: http://knowyourmeme.com/memes/to-be-fair-you-have-to-have-a-very-high-iq-to-understand-rick-and-morty 10:29 rud0lf hehe 11:00 xerox123 hello 11:01 rubenwardy Yo 12:34 BillyS xerox123 detected 12:40 ANAND Hello everyone! 12:54 BillyS o/ ANAND 12:54 ANAND o/ :) 12:58 xerox123 ANAND: how was the final exam? :D 12:59 ANAND I did quite well, thanks for asking :) 12:59 ANAND Now... time to complete a review ;) 13:00 xerox123 yay 13:08 paramat finally, coded a skidding, driftable car :P 13:09 IcyDiamond https://i.lunasqu.ee/minetest-2018-06-15_16.05.46.webm working on my power api 13:09 ANAND paramat: make it a mod and call it "Fast and Furious" :D 13:18 IcyDiamond I am making very good use of groups too 13:19 Fixer nice 13:25 xerox123 still haven't figured out why my signs have unknownobjects infront of the 13:25 xerox123 m 13:25 xerox123 maybe some .obj files are missing? 13:28 xerox123 yup, now that I mention it: https://github.com/minetest/minetest_game.git 13:28 xerox123 wrong link 13:28 xerox123 http://i.imgur.com/LkW45Ax.png 13:29 ANAND xerox123: Try out the signs modpack in games/minimal and use the various debugging tools provided 13:29 xerox123 it's only happening on one server, which is the strange bit 13:29 ANAND missing dependency 13:29 ANAND likely 13:31 IhrFussel INBE4 someone creates a Battle Royale MT server 13:32 xerox123 it's 2018, if it doesn't have a Battle Royale we won't play 13:32 IhrFussel It couldn't be 100 players at once on the map though...MT can't handle that 13:33 ANAND I'm looking forward to a multi-threaded MT 13:34 xerox123 6 13:34 xerox123 ^* 13:35 ANAND Yea, it must be 6.0.0 13:36 ANAND thanks for pointing that out :P 13:37 xerox123 lol 13:51 BillyS Arrggghhh 13:51 BillyS Shift-click doesn't work on my mac 13:51 BillyS Where are the key bindings defined in the MT source? 13:51 BillyS It's time I change that 13:53 rubenwardy gui/guiformspec I think 13:53 rubenwardy for that 13:53 rubenwardy also an Irrlichtthing 13:54 rubenwardy IhrFussel: was tempted 13:55 BillyS thx 14:10 IhrFussel rubenwardy, does "Battle Royale" just describe "100 players at the same time on a map that resets itself after each match"? Or is there more to it? 14:10 rubenwardy the map size shrinks, and once a player dies they're out 14:10 rubenwardy so you end up with 2 people in a very small area 14:10 rubenwardy and yeah, it resets 14:11 IhrFussel So the storm shrinking *is* an essential part of it...could be difficult to code in MT 14:11 rubenwardy not really 14:11 ANAND I remember seeing one such mechanism in a server 14:11 rubenwardy harder bit would be showing the storm 14:11 rubenwardy that could be an entity, although bugs 14:12 rubenwardy you don't need to delete areas 14:12 rubenwardy you just damage players in those areas 14:12 IhrFussel Is MT able to animate the storm like in Fortnite? 14:12 ANAND Skyworld sub-games -> Gun wars 14:12 ANAND They have exactly what you're asking for, IhrFussel 14:13 ANAND The shrinking barrier seems to be a bunch of entities, and look quite ugly though 14:13 IhrFussel And the storm moves in realtime and checks each step if a player is inside it? 14:14 ANAND Storm shrinks every 60 seconds IIRC 14:14 ANAND If a player steps outside, they lose health 14:14 ANAND as expected 14:14 IhrFussel Yes but in Fortnite is moves slowly and doesn't just appear at the new border 14:15 IhrFussel shrinks slowly* 14:15 IhrFussel I mean the storm eye shrinks not the storm* 14:19 Fixer iirc Fortnite is a ripoff of Minecraft Hangar games or smth 14:20 xerox123 just have a progressing wall 14:23 xerox123 BillyS: delete and reclone?™ 14:23 xerox123 that always fixes it 14:24 sfan5 Fixer: s/Hangar/Hunger/ and no 14:24 sfan5 fortnite is pretty much "PUBG but for children" 14:25 sfan5 pubg got the idea of battle royale somewhere else too, not sure where 14:25 rubenwardy pubg was also released after fortnite 14:25 rubenwardy and had loads of bugs 14:25 rubenwardy I heard anyway 14:26 BillyS It crashes twice and then works the third time 14:26 sfan5 rubenwardy: pubg was first released in December 2017, fortnite in july 2017 14:27 sfan5 though the english wikipedia page even says 2018 14:34 paramat 'super mine kart' 14:35 Fixer lol 14:45 BillyS xD 14:45 BillyS Hmmm ... I love the vehicles mod 14:45 BillyS The more explosive aspects of it, that is 17:32 Krock >>> \o/ <<< 17:45 IhrFussel Hi Krock 17:45 Krock hi IhrFussel 17:46 Krock rare sight of a greet :D 17:46 IhrFussel I'm seriously thinking about changing mobs ABM nodes to something more rare and reducing the chance for compensation...the lags are horrible 17:46 IhrFussel And really ONLY caused by mobs ABMs 18:02 IhrFussel Which is more common in mapgen v7? dirt or dirt_with_grass? 18:07 paramat dirt 18:07 paramat 3 times more 18:08 paramat actually, more than 3 since dirt is under many biomes 18:11 IhrFussel Okay thanks^^ replaced all mobs ABMs that search for dirt with dirt_with_grass 18:11 paramat most of ABM load is the C++ search, not the lua 'action', so reducing 'active block radius' may be the best way to reduce ABM load 18:12 IhrFussel That is already set to 1 18:13 paramat it was increased from 2 to 3 mapblock radius a while ago, thats a big volume to search, roughly mapchunk size 18:13 IhrFussel active_block_range = 1 active_object_send_range_blocks = 2 ... not sure if that makes a difference or one just overwrites the other 18:13 paramat ah 18:14 IhrFussel The only problem is the ABMs for the mobs... since I have 15-20 mob types that means 15-20 ABMs running...many of them look for dirt_with_grass 18:15 paramat ugh we still have 14 ABMs running in MTG, hope we can remove more, but many are essential 18:15 IhrFussel Before my changes some even looked for dirt 18:16 IhrFussel The MTG ABMs barely appear as high average in the mod profiler...the highest is flowers with "only" 20ms 18:17 IhrFussel But if ONE ABM takes 50-800ms then that explains constant server lag 18:17 IhrFussel And almost every mob ABM reports 50-800ms ... if they run at once that can cause several seconds of lag 18:18 paramat note the mod profiler only records the time spent doing the lua 'action', not the c++ volume searches 18:19 paramat you could perhaps use 1 ABM for spawning all 15-20 mobs, would help a lot 18:19 IhrFussel That can't be, the action code is really lightweight...spawning a mob takes LESS than 1 ms 18:20 IhrFussel All it does is checking some things before spawning...light, height, object count, daytime...I think that's it 18:22 IhrFussel Krock, can you confirm what paramat said? profiler only logs time spent in lua? 18:23 IhrFussel That wouldn't explain such values -> - ABM 'mobs_monster:mese_monster spawning' .......... | 74794 | 981807 | 195175 18:24 IhrFussel With a MIN time of 75ms 18:26 Krock IhrFussel, can't confirm entirely but I know that the profiler is entirely implemented in Lua, which makes it rather unlikely that it also measures the C++ ABM lookup function 18:26 IhrFussel Then look at tenplus1's mobs redo api.lua code where the ABM's action is defined and tell me please how it can take almost 1 second to run? 18:27 paramat can you link it? hard to find at the new location 18:29 IhrFussel https://notabug.org/TenPlus1/mobs_redo/src/master/api.lua#L3204 18:37 paramat the mobs redo spawn ABM is not lua-lightweight: protection check, search for nearby players 18:38 paramat 1s is a lot though 18:38 IhrFussel Protection check takes less than 1 ms too AFAIK at least with areas as protection mod, the only thing I could imagine to take long is the looking for "air" within 10 nodes range of the player 18:39 paramat maybe the protection check is the slowest part 18:40 IhrFussel I don't believ that or else the server would always lag cause noobs are trying to spam-dig the spawn 18:45 paramat it also does 'count 18:45 paramat oops 18:45 paramat .. 'count mobs', a search with a 3 block radius 18:45 IhrFussel Yeah maybe that takes long 18:45 IhrFussel Is the _wider check really needed? 18:46 IhrFussel Maybe I should limit it to just the block the playr is in 18:48 IhrFussel If I remove the wider parameter from the action function, will c++ do it faster? 18:48 paramat 'active_object_count_wider' is a free value and not optional. maybe try disabling the call to the 'count_mobs' function? 18:48 paramat L3229 18:50 paramat maybe try disabling the '-- only spawn away from player' check 18:50 paramat 'If I remove the wider parameter from the action function, will c++ do it faster?' no i doubt it. i think that value is always calculated 18:52 IhrFussel The range to count mobs is defined here local aoc_range = max(aosrb, abr) * 16 << aosrb is active object send range and abr active block range ... maybe reduce it? 19:04 IcyDiamond https://i.lunasqu.ee/Screenshot_18-06-15-22:03:59.png 19:04 Krock right node looks sad. pet it. 19:05 IcyDiamond thats my texturing skills for ye 19:14 IhrFussel I will time the whole action code now to see if it#s really that...even after those changes mobs ABMs take up to 1 second 19:18 rud0lf i've seen someone leaving note through bot for somebody else, is it egddrop's script? 19:18 rud0lf i can't find one :/ 19:20 IhrFussel You were right it IS the action function... 2018-06-15 21:19:45: ACTION[Server]: pmobs:wolf spawned on map (ABM took 129051 µs to finish) 19:22 tenplus1 hi folks 19:22 tenplus1 hi Krock 19:22 Krock hi tenplus1 19:22 Krock oh man you're fast 19:22 tenplus1 :P 19:22 Krock or just well prepared 19:22 tenplus1 got a question for ya 19:23 * Krock runs 19:23 tenplus1 does mt engine store the lightmap for the surrounding area in memory ? 19:23 Krock each mapblock only contains its own lightning stuff 19:24 tenplus1 was thinking of a minetest.find_light_in_area(pos1, pos2) returning a table of light numbers and pos 19:24 Krock that would return values for each and every node in the mapblock 19:25 BillyS o/ tenplus1 19:25 Krock where solid nodes are always 0 and propagating nodes the same as if they were air 19:25 tenplus1 oops, missed light... er... minetest.find_light_in_area(pos1, pos2, light_level) +/- 1 either way 19:25 tenplus1 hi billy 19:25 BillyS My server is popular! 14 players. :D 19:25 tenplus1 nice one billy :D 19:25 Krock BillyS, name please? need to exploit it 19:25 BillyS thx 19:25 tenplus1 how's the nether :P 19:26 BillyS Krock: Blocky Survival 19:26 BillyS tenplus1: Rather warm 19:26 tenplus1 lol 19:26 tenplus1 am looking for a way to have mobs move towards light with as little cost as possible, and was thinking of a function modders could use as well 19:26 BillyS good idea 19:31 tenplus1 get_node_light isnt that costly but doing it on bulk would be 19:31 tenplus1 *for an area 19:32 IhrFussel tenplus1, looks like the mobs redo ABM action code is still very heavy...I'm suspecting all those area count checks 2018-06-15 21:31:16: ACTION[Server]: mobs_animal:bee spawned on map (ABM took 99896 µs to finish) 19:33 tenplus1 bee ? that's only looking for flowers in an area with 1 in 7000 chance of spawning... it should NOT be that heavy 19:34 BillyS So THATS why I could never find more then 1 bee in HOMETOWN 19:34 BillyS Now I know who to blame. :P 19:34 tenplus1 bee's are rare so you can catch them and make hives :D 19:34 tenplus1 progression :D 19:34 BillyS yeah 19:34 IhrFussel tenplus1, every mob ABM takes about the same time and what I time is the action code only 19:34 tenplus1 will need to find a lighter method of spawning mobs 19:35 tenplus1 what spec pc you got ? 19:36 IhrFussel It's a VPS with dedicated cores (Xeon) and no other ABM takes even half as long 19:38 tenplus1 it checks if mob is real, mobs exceed number in area, daytime toggle, height level, light level, protected area, player too close and air blocks to spawn mob 19:38 tenplus1 all the lighter one's are first 19:39 IhrFussel My server has ~ 20 mobs ... the more mobs a server got the more the ABMs lag the server 19:39 tenplus1 yeah cause each one has an abm running 19:39 tenplus1 I looked into a globalstep that would spawn mobs around player, but that was just as heavy 19:39 IhrFussel It's still only the action function that is timed in my logging right now 19:39 tenplus1 there's no easy way to do it 19:40 IhrFussel mobs_animal:pumba spawned on map (ABM took 126968 µs to finish) 19:40 tenplus1 doesnt having other abm's and processes active slow down other mob abm's simply by running alongside 19:41 IhrFussel Only one ABM runs at a time AFAIK 19:42 IhrFussel I mean only one can execute its action function I think 19:42 tenplus1 ideas are more than welcome for other ways to spawn mobs in game 19:42 IhrFussel I will find the "bad" function and tell you 19:45 IhrFussel My specs are pretty good...for example not one globalstep function in the profiler takes longer than 1ms on average 19:54 IhrFussel Now I exclude protection check, existing object check, daytime check and spawn away from player check 19:54 IhrFussel Lets see how long ABMs now take 19:59 IhrFussel 2018-06-15 21:59:22: ACTION[Server]: mobs_monster:dirt_monster spawned on map -> ABM took 396 µs (minus protection check, existing object count, daytime check and spawn away from player check) 19:59 IhrFussel I said WOW 20:00 tenplus1 a lot beter 20:00 tenplus1 althoug missing out on features that ppl asked for 20:01 IhrFussel It's most likely either the existing objects check or spawn away from player check 20:01 IhrFussel Now all times are less than 1ms 20:02 tenplus1 how long was dirt monster before ? 20:02 tenplus1 hi benrob 20:02 IhrFussel All ABMs were ~ 100ms 20:02 benrob0329 Hi tenplus1 20:03 tenplus1 and now it's 0.396 ? 20:03 tenplus1 ms 20:03 IhrFussel Yep 20:03 tenplus1 counting entities is time consuming... hrm 20:03 IhrFussel Now I will include the spawn away from player check in the timing 20:04 * benrob0329 assumes that Mob spawning is the subject at hand 20:04 IhrFussel Still below 1ms 20:05 tenplus1 so counting mobs and protection checl 20:05 IhrFussel Protection check is lightweight too I think 20:05 tenplus1 protection check is only active if it's set in .conf that mobs dont spawn in protected areas 20:06 * benrob0329 still feels that spawner blocks placed as mapgen decorations are the best way to spawn mobs 20:06 IhrFussel Wait maybe I made a mistake in timings 20:06 tenplus1 ?? 20:11 IhrFussel Could it really be JUST the protection check that takes so long??? 20:11 tenplus1 protection does a find_node_in_area for protector block and returns true/false 20:11 IhrFussel 2018-06-15 22:10:23: ACTION[Server]: pmobs:npc_2 spawned on map -> ABM took 475 µs (minus protection check) 20:11 IhrFussel I use areas 20:11 tenplus1 depending on proetction mod in use 20:13 tenplus1 how many areas you got registered ? 20:14 tenplus1 cause it has to loop through every single one 20:17 IhrFussel Forreal...it is the protection check 20:17 tenplus1 you tried speed test without areas mod loaded 20:18 IhrFussel 2018-06-15 22:17:12: ACTION[Server]: mobs_monster:dirt_monster spawned on map -> Protection Check took 77583 µs 20:18 tenplus1 oof, that's a long time... 20:18 tenplus1 with protector redo it only looks for the nearest protector block, with areas it has to loop through each and every area and check 20:19 IhrFussel I should probably move the protection check to the bottom to make sure it gets rarely called 20:19 tenplus1 you could always set: mobs_spawn_protected = true 20:19 tenplus1 then it wont do the check and spawn mobs inside protected areas 20:20 tenplus1 speeding up spawn abm 20:33 tenplus1 nite folks o/ 20:37 Krock ouch this is bad 20:37 Krock punish anyone using enderchest on their server 20:38 Krock or have ever used it. 20:43 IhrFussel I moved the protection check right above the actual spawning as last check and max_lag goes below 0.3 again 20:44 Krock IhrFussel, what kind of hunger and stamina mod did you use on your server? That weird mod used items to store the HUD values to display 20:45 Krock must've been a very old one if player meta/attributes and settings weren't available yet 20:46 IhrFussel Not sure, I use stamina now...maybe hud_hunger was it before 20:46 Krock it's removed now for sure. hence, unknown items 20:47 Krock !tell tenplus1 Nice wifi chest. Allows access from everywhere 20:47 MinetestBot Krock: yeah, sure, whatever 20:47 Krock literally everywhere 20:48 Krock Context: trying to find unused, old player inventory slots which can be used to keep items after death. Yet nothing found to duplicate items :/ 20:49 Krock !tell tenplus1 Also Xanadu really needs a 3d_armor update to prevent from item duplication 20:49 MinetestBot Krock: I'll pass that on when tenplus1 is around 21:05 IhrFussel Moving the protection check to the bottom of the ABM really makes a HUGE difference... I should've done that earlier 21:16 IhrFussel It can even go under 0.2 secs with 5 players online now...that wasn't possible in the weeks before 21:17 BillyS IhrFussel: So, I should pull mobs_redo again? 21:17 BillyS Looks like it 21:20 IhrFussel BillyS, nope I just moved the is_protected() check to right above add_entity() 21:21 BillyS Ah 21:23 IhrFussel Do you also use areas? 21:23 IhrFussel Then make sure that it's always the last check before doing something (when possible) cause it takes a long time with a lots of protections 22:31 IhrFussel BillyS, do you use areas as mod? 22:31 IhrFussel Protection mod* 22:45 Fixer vanessa does 22:51 BillyS IhrFussel: yes 22:52 * VanessaE hides 22:53 IhrFussel Then go to api.lua, scroll down to register_abm function and move the minetest.is_protected to the bottom before minetest.add_entity() ... this is only required if you use the setting to not lt mobs inside protections 22:53 IhrFussel let* 22:53 IhrFussel let mobs spawn* I think the setting is default, not sure