Time Nick Message 00:33 srifqi any devs, please check #2561 00:33 ShadowBot https://github.com/minetest/minetest/issues/2561 -- [WIP] Add mapgen specific flags to create world dialog by srifqi 00:37 Zeno` ShadowNinja, https://github.com/minetest/minetest/blob/30075467b84c79ff21736d6c447746caef07dcd0/src/camera.cpp#L124 00:38 Zeno` I think error_message should be explicitly set to empty before the if/else-if chain if it's going to be used to return true/false in that manner 00:39 Zeno` (there is no pre-condition that error_message must be empty before calling that function) 00:39 Zeno` (either that or set it to empty in a closing else) 00:59 Zeno` ShadowNinja, also... isn't the return value umm inverted? 00:59 Zeno` i.e. should it not be return !error_message.empty(); ? 01:00 Zeno` err nvm about that one lol 01:00 Zeno` too early in the day for me 01:08 hmmmm est31, nope 01:08 hmmmm i'd rather avoid the forums for any planning because noise 01:08 hmmmm srifqi, nice 01:08 hmmmm maybe it would be better if the button "Flags" were named "Map generator options" or something 01:10 hmmmm i already don't like how whoever added the "Mapgen" combo box named it that. it should be something more end-user friendly like "Map generation algorithm" 01:11 hmmmm also for what it's worth, i had worked on a GUI mapgen configuration dialog, but i dropped it because working with formspec is just so horrible 01:20 ShadowNinja Zeno`: Yes, I'll fix that just after I finish making the access denied reasons translatable... 01:26 srifqi Zeno` http://irc.minetest.ru/minetest-dev/2015-03-28#i_4203006 01:26 srifqi any ideas? 01:30 paramat hmmmm, no rush for this but another request: dungeon params settable in .conf 01:38 ShadowNinja Hrm, GetText won't work. 01:39 Zeno` delete it 01:39 Zeno` srifqi has it been changed since I looked the other night? 01:39 ShadowNinja Zeno`: Delete what, GetText? 01:39 ShadowNinja Oh, not direted to me. 01:40 Zeno` ShadowNinja, I was directing "delete it" to you, but was only joking 01:41 * ShadowNinja is checking if his build changes broke it or if it was previously broken. 01:41 Zeno` oh it doesn't work *at all*? 01:41 Zeno` that's weird 01:41 ShadowNinja Darn, it's my changes. 01:41 ShadowNinja Zeno`: It'll build and link, but it just returns the unchanged string. 01:45 Zeno` mine has always done that :/ 01:45 Zeno` (even if I change my language settings) 01:45 Zeno` I dunno why 01:45 hmmmm paramat, actually I would like to move away from mapgen-related params in the config entirely 01:46 hmmmm i think it'd be better overall to have them as a lua mod 01:46 paramat sounds good 01:46 hmmmm you're already able to do this btw 01:46 hmmmm core.set_noiseparams() 01:46 hmmmm but it's a hacky way 01:46 Zeno` Oh, ShadowNinja, while you're around can you check #2562 please? 01:46 ShadowBot https://github.com/minetest/minetest/issues/2562 -- Add Lua function get_video_modes() for main menu by Zeno- 01:47 Zeno` I changed it this morning (always returns a table now) 01:47 hmmmm zeno`, you should put the function definition above get_video_drivers 01:47 Zeno` i.e. never nil 01:47 hmmmm oh nvm 01:48 hmmmm Zeno`, what's wrong with the porting:: function that gets the video modes?? 01:48 paramat yes my request is for settable dungeon params, i don't mind how that's done 01:49 * ShadowNinja chuckles at sanity_check(nulldevice != NULL); 01:49 Zeno` hmmmm, I believe it needs irrlicht to be initialised 01:50 ShadowNinja Zeno`: Seems fine. 01:50 hmmmm it doesn't 01:50 hmmmm it creates a null device just like you have there 01:50 Zeno` where? 01:50 Zeno` doesn't it require that initIrrlicht() has been called? 01:51 hmmmm ahh you're right 01:51 hmmmm it hsouldn't work like that though 01:52 Zeno` I could probably fix porting:: now as a new PR 01:52 hmmmm or do it both in the same one 01:52 Zeno` I'll look 01:52 hmmmm both in the same PR i mean 01:55 Zeno` yeah 01:58 Zeno` getSupportedVideoDrivers() seems a bit odd also 01:59 Zeno` both that functions use that silly static irr::IrrlichtDevice *device; 02:00 hmmmm getSupportedVideoDrivers uses a static irrlicht function 02:00 Zeno` yeah just noticed that; and getWindowSize() would need the real device as well 02:01 hmmmm okay 02:01 Zeno` it still makes me uneasy... seems as though it would be better to pass the device as a param, but *shrug* 02:01 hmmmm if it doesn't actually need the current IrrlichtDevice to work, call it "getSupported**" 02:01 hmmmm getSupportedVideoDrivers, getSupportedVideoModes, 02:02 hmmmm Zeno`, it's because it doesn't always change and you don't always know device at the time of calling 02:03 Zeno` correct, which is why I wrote my function at the time... but that's a different issue that I'll ponder separately :) 02:05 Zeno` Then again... l_get_video_drivers(lua_State *L) uses porting::getSupportedVideoDrivers(); ... 02:06 hmmmm you can't change settings like FSAA, video res, or video driver after starting 02:06 hmmmm but it's really not that horrible to destroy and create a new irrlicht device during executon 02:07 Zeno` Ok, let me state my concern. Is it ok to create a dummy device even if the real irrlicht device is already created; i.e. it won't cause issues? 02:07 hmmmm correct 02:07 Zeno` ok, I'll update the porting function to use dummy device then 02:07 Zeno` and change its name 02:08 ShadowNinja ~tell nrzkt The server apparently always uses HandleCommand_Init_legacy, even with new clients and servers. This means that the new translatable access denied command isn't used. 02:08 ShadowBot ShadowNinja: O.K. 02:09 Zeno` I guess it's never been used because there is no function prototype for it 02:09 ShadowNinja Zeno`: This was it: http://sprunge.us/KQMa?diff 02:10 ShadowNinja Pushing in a moment, with the tweak Zeno`mentioned. 02:12 ShadowNinja Zeno`: The function sets error_message destructively, without appending, so I think its being empty should be a precondition. I'll just add an assert, O.K.? 02:14 Zeno` ok 02:14 ShadowNinja http://sprunge.us/KVKO?diff 02:15 Zeno` no hang on 02:15 Zeno` why not just set it to "" if there is no error? 02:15 Zeno` so error_message can be re-used without having to set it to "" before calling the function if some programmer happens to want to do that 02:17 ShadowNinja Zeno`: I could do that too. 02:17 Zeno` yeah I think that would make sense 02:19 ShadowNinja http://sprunge.us/SGCe?diff 02:19 ShadowNinja Good? 02:20 Zeno` yeah looks fine :) 02:21 hmmmm lol 02:22 ShadowNinja ? 02:22 Zeno` hmmmm is in a jolly mood I guess 02:23 hmmmm :/ 02:23 hmmmm idk 02:23 ShadowNinja lol 02:24 Zeno` #2562 is updated. I don't like it but I guess at least it's in porting now 02:24 ShadowBot https://github.com/minetest/minetest/issues/2562 -- Add Lua function get_video_modes() for main menu by Zeno- 02:24 Zeno` I'll squash the commits when merging 02:24 hmmmm well why not? 02:24 hmmmm isn't it cleaner? 02:24 Zeno` just me being strange 02:25 Zeno` yeah it's cleaner and I like it being in porting 02:25 hmmmm consistency! 02:25 hmmmm i really wish dd had a progress bar 02:25 hmmmm and i wish it also auto-selected block size based on which gives the maximum throughput 02:25 hmmmm instead it's like... "okay, I'll try bs=16M this time and see if it's faster or slower" 02:25 Zeno` The other day when I was writing this it actually reminded me I wanted limitFPS somewhere more suitable as well. 02:26 hmmmm maybe all these functions could be classified as like... "irrlicht abstraction" 02:26 Zeno` yeah, there's getting to be enough of them 02:27 hmmmm does limitFPS run any irrlicht functions though, or is it just usleep()? 02:27 Zeno` it uses irrlicht 02:28 Zeno` no usleep() 02:28 Zeno` game.cpp line 4124 02:28 Zeno` but the thing is, being hidden there means it hasn't been re-used (the main menu has its own -- kinda broken -- limit fps functionality) 02:29 hmmmm yes i noticed that 02:29 hmmmm which i think does use usleep on the other hand 02:29 Zeno` it does, yeah 02:30 hmmmm alrighty 02:30 hmmmm crossing my fingers, hope this works 02:30 hmmmm see you guys on the other side 02:32 Zeno` what are you dd'ing? 02:32 Zeno` oh 02:32 Zeno` must have been his main hdd 02:35 hmmmm well that didn't work 02:35 hmmmm they win. i'll install a dvd player and burn a dvd. 02:36 hmmmm i can't believe how heartless somebody would have to be to make an iso exactly 4.1GB 03:13 Zeno` lol 03:24 Zeno` merging 2562 now 03:25 Zeno` got distracted again :/ 03:28 * Zeno` just realises why ShadowNinja chuckled at sanity_check(nulldevice != NULL); 03:32 hmmmm so like 03:32 hmmmm are we using sanity_check() over assert() now? 03:32 Zeno` well, for things we want to remain in the release build 03:33 hmmmm ahh 03:33 Zeno` technically if that function returns NULL then irrlicht is probably broken anyway but *shrug* 03:33 Zeno` I don't even know why I checked it 03:34 Zeno` it'd likely segfault before it got the that if irrlicht was so broken it couldn't create a nulldevice 03:34 hmmmm agreed 03:34 hmmmm and even if you do assert and stop execution there, how is that any different from segfaulting? 03:35 hmmmm it's not even exploitable 03:38 Zeno` correct 03:38 Zeno` I wish I could fix this menu being too big for 800x600 but I'm nervous changing the scaling related stuff 03:39 Zeno` likely to cause world war 3 03:42 Zeno` 720x480 is even worse (of course) 03:48 Tablet_One #2556 seems to be a duplicate of #2522 03:48 ShadowBot https://github.com/minetest/minetest/issues/2556 -- Missing fast move (USE) Button on android? 03:48 ShadowBot https://github.com/minetest/minetest/issues/2522 -- Android: fast_move only works with free_move enabled 03:52 Zeno` Not sure. Is 2556 the reason it's "broken"? 03:54 Tablet_One I don't think so, because fast_move does work, but only when flying 03:55 Tablet_One It would be kinda hard to hold a use button while walking and mining too 03:55 Tablet_One Err 03:56 Tablet_One Hmm 03:56 Tablet_One Walking and steering, I should say 04:02 Zeno` https://github.com/minetest/minetest/blob/master/builtin/mainmenu/init.lua#L142 <--- Can I change that to tv_main:set_fixed_size(false) for *all* platforms? celeron55 changed it in 4d744cf8, which I assume was at the time during the discussion about formspec scaling, but I don't really recall the main menu ever being discussed 04:03 Zeno` the main problem is that on PC the main menu doesn't fit for 800x600 (as an example) 04:04 Zeno` And I was just testing fullscreen for 720x480 and it obviously doesn't fit there either 04:04 Zeno` Tablet_One, so on Android you should not hold the button... I'll check :) 04:07 Tablet_One Ok 05:27 hmmmm wahh :D 05:27 hmmmm yay 05:43 Zeno` ? you installed fedora? 05:44 hmmmm no, i installed PC-BSD which is basically the same as freebsd except everything's already configured for you 05:44 hmmmm i really like how it has GUI tools for all the ZFS shit 05:44 hmmmm also KDE is bretty gud 05:45 Zeno` I use KDE 05:46 VanessaE meh, xubuntu ftw :) 05:46 Zeno` I wish there were more Qt desktops (ones still being developed) 05:46 Zeno` but KDE is ok once it's tamed 05:46 hmmmm this feels like i'm cheating, but after configuring the same random /usr/local/etc/polkit/something/something.d/blah.xml.conf for the 500th time just to be able to plug a goddamn usb thumb drive in and have it pop up 05:46 hmmmm it's just not worth it anymore 05:47 VanessaE hmmmm: I'll admit, configuring every fucking little file DOES get old :-/ 05:47 hmmmm there's almost never a happy medium either 05:47 VanessaE coders seem to be adverse to the idea of "sane default" 05:48 hmmmm it's always gentoo/lfs-tier nonsense or ubuntu where you get no choices 05:48 hmmmm it's either their way or it breaks 05:48 hmmmm what i'm currently using has the "happy medium" concept down, just wish it wasn't as crashy 05:50 hmmmm anyway yeah Zeno` I checked out QtBuilder and while it's nice, I found that I like Kdevelop even better 05:51 VanessaE uh oh.. 05:51 Zeno` Kdevelop is what I always used to use but I had to stop when the whole KDE 4.0/.1 was around and kdevelop was in a state of flux as well 05:51 hmmmm basically the past couple of days I've been trying to fix my OS because i never actually recovered from the libpng disaster of january '15 05:51 VanessaE inb4 "let's port minetest's formspecs to Qt" 05:51 Zeno` I might try it again 05:51 hmmmm and my old IDE was in a half-broken state not displaying icons because of said problem 05:59 Zeno` I think #2352 has been open long enough now 05:59 ShadowBot https://github.com/minetest/minetest/issues/2352 -- Unused variable 06:00 Zeno` why do I *always* type 3 and 5 backwards? 06:00 Zeno` #2532 06:00 ShadowBot https://github.com/minetest/minetest/issues/2532 -- Update minetest.po (Japanese) by Rui914 06:01 Zeno` ShadowNinja, or are you doing something with gettext() before that can be merged? 06:01 ShadowNinja Zeno`: Nope. 06:01 Zeno` ok to merge then? 06:02 ShadowNinja If it's good, sure, I haven't looked at it. 06:02 hmmmm guys, i wonder if sometime soon we can go through *all* of the pull requests and merge as many as possible 06:02 ShadowNinja (And I don't know Japanese) 06:02 hmmmm or take some sort of action on all of them 06:02 Zeno` Well I can't read Japanese but Rui has done all the previous translations 06:02 Zeno` (well the last 3 at least) 06:03 ShadowNinja BTW, I'm working on adding multi-socket support (as in listen=1.2.3.4:3000 [::1]:30001). 06:04 Zeno` I'll merge it because there have been no issues with his previous translations 06:04 Zeno` The Japanese language must move very quickly because there's always updates to it 06:05 Zeno` multi-socket... for extra speed! 06:06 Zeno` hmmmm, it doesn't seem to matter how many are merged those same 80 or so still remain :/ 06:06 Zeno` they're like... rocks 06:08 hmmmm we can do it 06:15 Zeno` hmm 06:16 Zeno` well, there is a lot of rebasing that would be needed 06:24 neoascetic 3rd try. Could someone tell me why do we have this rule, please? :) https://github.com/minetest/mi[…]ent_cao.cpp#L1496 06:24 neoascetic https://github.com/minetest/minetest/blob/master/src/content_cao.cpp#L1496 06:25 hmmmm i think whether items are visible on the player or not should be up to the server 06:28 neoascetic Sorry, didn't get it... This is client-related thing. What I want is to add sprite entity and attach it to the player. But when I touch it, it hides. Isn't this a bug? 06:29 hmmmm you just referred to it as a rule before 06:30 neoascetic Yeah, but WHY this rule exist? I sure it shouldn't 06:41 hmmmm maybe it would be like cheating if other players knew what they were wielding 06:41 hmmmm in any case, here's the exact commit where it happened: https://github.com/minetest/minetest/commit/756db8174aa6a05eb998cfcec8eb5127053c5ea9#diff-722710b5ecd9db42e7dd785dd517e186R1418 06:54 Zeno` wtf is STR_HELPER? 06:54 hmmmm a very helpful macro 06:54 Zeno` heh, yeah but.... it's not defined anywhere 06:55 Zeno` https://github.com/minetest/minetest/blob/93fcab952b28f4db39d9326b83f14cbd86c0cf17/build/android/Makefile#L724 06:55 neoascetic hmmmm > maybe it would be like cheating if other players knew what they were wielding 06:55 neoascetic but... why? 06:55 hmmmm i don't know ask celeron 06:55 Zeno` I assume that it used to be STRINGIFY and it must have forgotten to be updated... I'll just remove that line I think because STR() is being redefined 06:56 hmmmm huh 06:56 Zeno` oh I see 06:56 hmmmm STR_HELPER is defined right above it 06:56 hmmmm did you miss that? 06:56 Zeno` it's right above it 06:56 Zeno` I must have 06:56 hmmmm great job 06:56 Zeno` I'll remove them both :) 06:56 hmmmm :( minetest crashes on my new installation 06:58 Zeno` you can't blame me for missing where it was defined 06:58 Zeno` I have a very small screen 07:12 Zeno` I don't like all these preprocessor redefinitions being triggered by the android build 07:14 hmmmm hmm 07:14 hmmmm what do you think would be a better name for "things related to map generation that are registered before execution" than "gen element" 07:16 Zeno` mapgen item? 07:16 hmmmm GenItem? 07:16 hmmmm GenItem, DefElement, ?? 07:16 hmmmm DefElem? 07:17 Zeno` GenItem sounds like General Item 07:17 hmmmm GenerationItem 07:18 hmmmm DefElement then? 07:18 Zeno` Def? 07:18 hmmmm Definition 07:18 hmmmm if you notice a lot of older code is for a "ThingDef" 07:18 hmmmm and then there are ThingDefManagers 07:19 Zeno` yeah but is this specific to mapgen? 07:19 hmmmm yeah 07:19 hmmmm well i don't know because with client side scripting, a few of these definitions are going to be transferred over to the client 07:19 hmmmm (i.e. biomes in particular) 07:20 hmmmm and what about hud 07:20 Zeno` hmm 07:20 hmmmm the idea behind a hud is the same 07:20 hmmmm you register the definition of some thing to be displayed on some client's UI 07:20 hmmmm HudDef 07:20 Zeno` MapgenDef ? 07:21 hmmmm I think what is currently a GenElement may be expanded to other things 07:21 hmmmm I mean we use these "Def" things everywhere 07:21 hmmmm with ItemDef, NodeDef, SoundDef, 07:21 hmmmm what if they were all unified 07:21 hmmmm each has a unique ID 07:21 Zeno` I guess with the current scheme ItemThing would be just as intuitive 07:22 Zeno` But ItemDef has always sounded ok to me, so that's a bad example 07:22 Zeno` MapgenThingDef 07:22 hmmmm what if it was just a Def? 07:22 hmmmm class BiomeDef : public Def { 07:23 Zeno` might be ok 07:23 hmmmm what if it were a DefElem? 07:23 Zeno` at what all the "Defs" have in common 07:24 hmmmm they all can get CRUDed, they all have some ID numbers (some of them share the namespace though, such as items and nodes) 07:24 hmmmm they all have string names 07:25 Zeno` worth pondering. hth, didn't realise the time! 07:43 Krock #2479 can be closed, that bug has been solved 07:43 ShadowBot https://github.com/minetest/minetest/issues/2479 -- connect_to_raillike group doesnt work as it should 07:54 nrzkt good news ! 07:54 nrzkt google will remove Multicraft from playstore :) 07:54 jin_xi nobody cares 07:55 nrzkt you are not everybody :) 07:56 neoascetic but why? 07:56 nrzkt this permit users to switch to the original minetest app, and this is good for us, because more users = more feedback 07:56 nrzkt because we do a DCMA request 07:56 neoascetic they broke the license? 07:56 nrzkt they study the problem themselves, that take 2 weeks and now they think they must remove the app 08:00 ShadowNinja nrzkt: It's DMCA. And I thought Multicraft was a legal port. 08:02 nrzkt when the report was done no source was available 08:03 nrzkt good job with your commits this night ShadowNinja :) 08:04 neoascetic But sources must be provided by request, not but default, am I right? 08:05 ShadowNinja Yes neoascetic. (AFAIK) 08:06 neoascetic So, what the problem with MultiCraft? 08:06 nrzkt and what about the monetization of our work ? 08:06 neoascetic just curious 08:06 ShadowNinja Of course there has to be a working contact for that. 08:06 neoascetic What's wrong with monetization? 08:06 ShadowNinja nrzkt: LGPL allows that. 08:06 neoascetic yep 08:07 ShadowNinja (as does the GPL, although in a more limited form) 08:07 nrzkt maybe, but everybody can take our work and make money with it, and personaly i don't agree. If i'm doing this work for minetest it's not for fatten somebody 08:08 ShadowNinja nrzkt: Just fatten yourself instead. :-P 08:08 nrzkt no, because i'm not the only developer 08:09 neoascetic DCMA is bullshit 08:09 jin_xi i think forks are legit and so is making money. DMCA sucks 08:09 nrzkt and if i make money on minetest it's not normal if i was the only developer to get money because we are a community 08:09 ShadowNinja neoascetic: DMCA! 08:09 nrzkt DMCA, i do a mistake :p 08:09 jin_xi g/D/Y \o/ 08:09 nrzkt YMCA :D 08:10 ShadowNinja Digital Millennium Copyright Act 08:10 neoascetic anyway, it sucks 08:11 jin_xi neoascetic: sorry i was mistaken when i assumed you could attach stuff to player. 08:12 neoascetic jin_xi, I think this is a bug: set_attach doesn't work for player 08:13 neoascetic nrzkt if I will setup a payed server (for example), will you also apply DMCA to me? 08:14 nrzkt no 08:14 nrzkt if you redistribute the sources properly 08:15 nrzkt and you don't forget to mention your users that your server is running a minetest fork and quoting the original sources 08:16 neoascetic ok, am I right that mods may be closed-source since it some kind of library and don't compiled statically with minetest? 08:16 nrzkt of course 08:16 nrzkt only the modifications to minetest core and minetest_game must be redistributed 08:17 nrzkt and some other mods too if the licence tell it 08:18 ShadowNinja neoascetic: They won't be allowed soon when mod security goes in though, since Lua doesn't do sanity checks on bytecode. 08:18 ShadowNinja (although obfuscation will still work) 08:19 ShadowNinja Aaand I'm off. o/ 08:19 neoascetic wait 08:19 nrzkt good night ShadowNinja, and good job :p 08:19 neoascetic what if I run mods on server? 08:19 neoascetic they not passed to client, right? 08:20 ShadowNinja neoascetic: Yep, not yet, although that's TODO. 08:20 neoascetic ok, good night then :) 08:20 nrzkt ShadowNinja: this way must be securised properly , because we mustn't let the users to download backdoor mods 08:30 Krock mhm I get a crash whenver I leave a singleplayer world but can't get the source of it. That debug viewer is confusing 08:49 nrzkt ShadowNinja: for http://irc.minetest.ru/minetest-dev/2015-03-28#i_4203178 it's normal, we don't use the new packets at this moment, it's too early and the new protocol design is incomplete. We are using the old way at this moment. 08:49 nrzkt I need to work on it but i'm a bit busy these days, i will rework on it in next days 08:49 neoascetic so, can someone say something against #2485 ? 08:49 ShadowBot https://github.com/minetest/minetest/issues/2485 -- Simplify custom games packaging by neoascetic 09:33 Krock Commit 56594 destroys the translation. Could the pointer variable be the reason for that? 09:47 sfan5 nrzkt: wasn't multicraft a legal fork? 09:48 nrzkt at the moment of the DMCA publication no, and i cannot stop it when it's sent because there is no following interface on google. 09:49 nrzkt moreover, sources are not updated on github whereas the android build was updated 09:51 kilbith legal != moral 09:51 kilbith making money on the work of others ain't moral 09:51 sfan5 DMCA is about legal compliance not moral compliance 09:53 nrzkt google validate the demand, i think they verify the thing, because the request was done more than 1 month ago 10:26 Krock Debugger output of the crash caused by leaving a singleplayer world: http://pastebin.com/GRmjNkpv I couldn't find any helpful information in the .dmp file, so I ran minetest.exe in the debugger application 10:35 Zeno` ugh... forgot to create a branch :/ 10:43 Zeno` #2569 brb 10:43 ShadowBot https://github.com/minetest/minetest/issues/2569 -- Android fix buildbugs by Zeno- 11:14 Zeno` celeron55, https://github.com/minetest/minetest/commit/4d744cf87ad1cd108d125c58559cef4316e80a70#diff-d69c7583ef1ef0cddda66ac4cabfe779R142 11:15 Zeno` ^--- I think that change (to builtin/mainmenu/init.lua only) needs to be reverted. 800x600 doesn't work, for example. 11:15 Zeno` for main menu I think all platforms need to use tv_main:set_fixed_size(false) 11:22 neoascetic ~tell Taoki Could you explain why nothing can be attached to the player, please? https://github.com/minetest/minetest/commit/756db8174aa6a05eb998cfcec8eb5127053c5ea9#diff-722710b5ecd9db42e7dd785dd517e186R1418 11:22 ShadowBot neoascetic: O.K. 11:45 Krock neoascetic, you know, that commit is 3 years old? 11:47 neoascetic and what? he is the last who may know the reasons :) 11:48 Zeno` neoascetic, perhaps it might be easier to explain why you think it's a problem 11:49 Zeno` it'll certainly be faster :) 11:50 neoascetic okay, I just want to attach something to the player. that's it 11:50 Zeno` and it doesn't attach to them? 11:50 Zeno` being attached and being visible are two different things... 11:50 neoascetic yes 11:50 Krock That's already possible, look at the wielditems in your hand 11:51 neoascetic https://github.com/minetest/minetest/commit/756db8174aa6a05eb998cfcec8eb5127053c5ea9#diff-722710b5ecd9db42e7dd785dd517e186L1441 11:51 Krock (a mod who adds cubic entities to show the current item) 11:51 neoascetic ok, I'll take a look. maybe I doing something wrong 12:00 neoascetic Krock can you be more precise? what the mod name you are talking about? wield3d? 12:00 Krock Yeah, that one. 12:05 neoascetic Krock, great, you a right, it works for non-local players 12:05 celeron55 Zeno`: but then people complain about font sizes relative to the UI and whatever 12:06 neoascetic but what if I want local player be able to see the attached thing too? 12:07 celeron55 Zeno`: you can revert it if you take care of those complaints 12:07 Krock neoascetic, F7 doesn't show it? 12:08 neoascetic nope 12:08 neoascetic local player unable to see what is attached to it 12:08 Krock then create a pull request :P 12:08 neoascetic yeah, that's why I am asking for what reason these things are hidden 12:09 Krock I think you only should show it in 3rd person view because it may result in some strange effects :P 12:10 neoascetic it neither shows in 3rd person view nor 1st person view 12:16 Zeno` celeron55, I remember the debate 12:17 Zeno` From memory it was the complaints were more related to in-game formspecs rather than the mainmenu, but I'll think about it some more 12:18 Zeno` celeron55, I'm not suggesting I revert the whole commit... just lines that affect main menu 12:18 Zeno` anyway, bbl :) 12:47 Zeno` ok, I've just had a second email from one of the users on my server 12:47 Zeno` nrzkt, are you issuing takedown notices on behalf of minetest? 12:48 Zeno` celeron55 you agree with this ^^^ ? 12:48 Zeno` TBH I don't care WHAT client my users use so long as their client complies with the LGPL 12:49 nrzkt not since more than 1 month, when a user doesn't give its sources, not since this time 12:49 nrzkt you talk about google play store ? 12:49 Zeno` which client's have not given source code? 12:49 Zeno` well, yes of course. 90% of my users use android 12:50 nrzkt multicraft sources wasn't release when the DMCA was done 12:50 Zeno` so it's only multicraft? 12:50 nrzkt right 12:51 Calinou GPL/LGPL 2.1 do not have a grace period 12:51 nrzkt one last multicraft release is on play store and is legal, i think, because the sources are on github, but i there is a new release without a github updated it will not be legal 12:51 Zeno` where is their source code? 12:51 Calinou GPL/LGPL v3 have a 30 day grace period, in which violations can be fixed 12:51 nrzkt github, monte48 12:51 nrzkt we are in 2.1 12:52 Zeno` it was published in february! 12:52 neoascetic btw does the license affects network protocol? 12:52 Calinou yes 12:52 Zeno` so there was no violation? 12:53 Calinou actually it's a legally gray area 12:53 nrzkt the application was release before that 12:53 Calinou whether you can reimplement a protocol by reverse engineering 12:53 sfan5 neoascetic: why would the license _not_ affect the protocol? 12:53 sfan5 Calinou: depends on the country your're in 12:53 Calinou Manic Digger got a C&D letter from Notch for implementing Minecraft protocol 12:53 neoascetic because implementation is different 12:53 Calinou reverse engineering is legal in EU for interoperability purposes (so exploitable…) 12:53 Zeno` I dunno... who authorised the DMCA takedown notice? 12:54 Zeno` and where is the notice, actually 12:54 Megaf Hi all, how to I static link the libraries when compiling minetest? 12:55 sfan5 Megaf: set the link flags to "-static" 12:55 neoascetic what if I release a closed-source client (not based on minetest's code, but which uses its protocol) for minetest servers? 12:55 Zeno` At least now I know why my user stats have dropped off 12:55 nrzkt yeah, it's why the world of warcraft mangos/trinitycore emulator can exists, because the protocol is not a reason for a DMCA :) 12:56 Zeno` I just don't understand why you are issuing DMCA takedown notices, nrzkt 12:56 nrzkt Zeno` i don't know when google do something for the app, they send me a mail this night, but i forgot the DCMA done more than 1 month ago 12:56 Calinou neoascetic, you are probably allowed to 12:57 Calinou but as always, consult a lawyer before :) 12:57 Zeno` great, so 90% of my users cannot connect now 12:58 Zeno` they were using the ONE LGPL conforming android version out there 12:58 Zeno` not what do I suggest they try? BuildCraft? 12:58 nrzkt minetest 12:58 nrzkt we have a official client on play store 12:58 nrzkt why using a fork ? 12:59 Zeno` I dunno... ask the kids who connect to my server :) 12:59 Zeno` you are allowed to make money from LGPL btw. Did BuildCraft even make money? (I can't check because there is no page for it now) 13:00 sfan5 i think they had ads 13:00 Zeno` err MultiCraft* 13:00 kilbith it might be forbidden to mix ads with a software with LGPL 13:00 Zeno` ads? With src code published? How is that an LGPL violation? 13:01 celeron55 by the way, if/when making DMCA takedown notices, make sure to act as yourself and on the part of code that you have made 13:01 celeron55 not as or on behalf of minetest 13:01 nrzkt celeron55: okay :) 13:01 Zeno` I'm sorry, but if you what a "Free License" then you must respect freedom 13:01 celeron55 because you have no right to do that 13:01 celeron55 and can get everyone in trouble 13:01 Zeno` and that freedom (under this license) includes making money from it 13:02 Zeno` (I don't necessarily like it, but that's the way it is) 13:02 nrzkt then we can make money for it and pay minetest infrastructure with it ? 13:02 Calinou it might be forbidden to mix ads with a software with LGPL 13:02 Calinou only if the ad library is proprietary 13:02 Jordach Calinou, probably is: it's google ads 13:02 sfan5 uh, what kind of infrastructure do we need to pay for? 13:02 Calinou then we can DMCA! 13:02 nrzkt the ad library is proprietary, it's google lib 13:02 celeron55 really nrzkt probably cannot legally issue a takedown notice on multicraft or such because they likely use old enough code to not have nrzkt's stuff in them 13:02 Zeno` no no no! The LGPL *can* be use is proprietary software 13:03 Zeno` geez 13:03 Calinou the LGPL is not as different as the GPL as you think 13:03 Zeno` anyway nrzkt should not have been the one to issue it 13:03 Megaf sfan5: Actually, that means -DCMAKE_CXX_CREATE_STATIC_LIBRARY=1 I believe 13:04 nrzkt celeron55: noticed. Not more DMCA to do, because each application on play store now respect the LGPL as i see, they all include the minetest original sources reference 13:04 sfan5 Megaf: no 13:04 Megaf hm 13:04 sfan5 Megaf: that option sounds like it will force cmake to create a static lib when it is used to create a lib 13:04 Zeno` next thing people will be starting to say you can't use BSD-licensed code in commercial projects 13:04 Megaf In either case I have to have the static libs installed on my system. Or not? 13:05 sfan5 uh, wat 13:05 celeron55 you can use windows libraries from GPL/LGPL code, why is google's ad library on google's platform different from that? 13:05 nrzkt personnaly i use BSD licence when i don't care about source code destination, but AGPL or LGPL to protect the code copyright. 13:05 sfan5 Megaf: you don't understand static libs 13:05 Zeno` I hate people making money from minetest, but if they comply with the license then so what? 13:05 nrzkt maybe the licence could be changed for NC licence ? 13:05 Megaf sfan5: dynamic libs are .so, they are on the system, static libs are the .a files 13:05 Zeno` then it's not an engine 13:05 nrzkt what is the licence of our textures and meshes ? 13:05 sfan5 cc-by-sa 13:05 Zeno` it would be like changing the license of irrlicht to NC 13:06 Zeno` nobody would use it 13:06 sfan5 Megaf: static libs are statically linked to the executable (= the executable includes the libs) 13:06 nrzkt we have BY ? and nobody cares about the BY ? this mean they must ask us if they want to use it, no ? 13:06 sfan5 no 13:06 Megaf sfan5: thats what I wish 13:06 sfan5 it means attribution 13:07 Calinou you can use windows libraries from GPL/LGPL code, 13:07 nrzkt right 13:07 Calinou they are system libraries 13:07 nrzkt Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. 13:07 Calinou the Google ad libraries are not system libraries 13:07 Calinou +nrzkt> maybe the licence could be changed for NC licence ? 13:07 Calinou fuck you 13:07 Calinou just, go away 13:07 Calinou don't use CC licenses for software. 13:07 sfan5 Megaf: this is why shared libs exist, if you update a shared lib all programs automatically use the new one 13:07 Calinou http://freedomdefined.org/Licenses/NC 13:07 nrzkt i don't tell creative common, i tell a non commercial licence, where do i talk about CC ? 13:07 Calinou I hope to never hear this shit again 13:08 nrzkt i only talk about the minetest_game components which are under CC-by-SA 13:08 sfan5 Megaf: with static libraries you would need to re-link each executable 13:08 sfan5 nrzkt: i think Calinou meant NC 13:08 neoascetic I've even want to release minetest on Apple's app store once. But one-year developer license cons something about $200. Am I allowed to take money for minetest in this circumstances, nrzkt? 13:08 sfan5 Megaf: -DCMAKE_EXE_LINKER_FLAGS="-static" 13:08 sfan5 neoascetic: $99 13:08 Calinou neoascetic, yes, but ads are bullshit. 13:08 sfan5 neoascetic: yes 13:08 nrzkt neoascetic, i think the donations are good for that 13:09 sfan5 nrzkt: pff, you won't get any donations 13:09 Megaf sfan5: Yep, I was getting to that now, reading about cmake, thanks a million for your help 13:09 Calinou sfan5, present your donation scheme properly 13:09 Calinou lichess.org/donate 13:09 Calinou not enough for you? 13:09 sfan5 Calinou: people don't like donating, that's the truth 13:09 Calinou people really do 13:09 Calinou not everyone is selfish 13:09 nrzkt sfan5: it depends 13:10 nrzkt sfan5: and get 10$ is better than 0$ :) 13:10 sfan5 "people don't like donating" does't mean "nobody donates" 13:10 sfan5 +n 13:13 Zeno` this is not the point 13:13 nrzkt does this respect the LGPL ? https://play.google.com/store/apps/details?id=com.k1n9.minetest 13:13 Zeno` the point is was the takedown notice valid in regards to whether or not the stupid app complied with the LGPL (and as far as I can see it did) 13:14 Zeno` I dunno about Mine World... do they publish source code? 13:14 Calinou no 13:14 nrzkt https://github.com/att-kin9/MineWorld 13:14 Zeno` ok well it doesn't 13:14 nrzkt it's on the link i show you :p 13:14 sfan5 it does respect the lgpl 13:15 Zeno` yes it does if the src is on github 13:15 Zeno` so, yeah, it complies 13:15 nrzkt there are no minetest forks on play store which doesn't respect our licence at this moment as i see 13:16 Zeno` they can charge a billion $ per download if they publish the source code 13:16 neoascetic even if sources are on on github it still may respect LGPL if a) LGPL notice is in description b) src may be sent (in any way) by request 13:16 neoascetic * no on 13:17 Zeno` oh yeah.. it doesn't even have to be on there... just supplied if requested 13:17 Zeno` neoascetic is correct 13:18 Zeno` I think people should understand licenses before they submit DMCA takedown requests 13:19 Zeno` they should also damn well be the right person to do so :/ 13:19 * Zeno` does some calming exercises 13:20 Zeno` hopefully my users come back... I guess I can save some money and shutdown the server if they don't at least 13:20 nrzkt you users aren't stupid :) 13:20 Zeno` you don't know them 13:21 Zeno` some are most surely not 13:21 Zeno` others... not so sure 13:21 Zeno` anyway minetest "official" is broken atm 13:23 nrzkt why broke N? 13:23 Zeno` sound doesn't work, plus some other features 13:23 Zeno` I mean broken at HEAD 13:23 nrzkt oh, minetest on play store doesn't use HEAD and master, only stable-0.4 13:24 Zeno` #2569 13:24 ShadowBot https://github.com/minetest/minetest/issues/2569 -- Android fix buildbugs by Zeno- 13:24 Zeno` ah, ok 13:24 nrzkt and i release it manually because i must sign the apk with my keystore 13:27 Megaf Folks, when static linking minetest I get this error. http://paste.debian.net/plain/163658 13:33 sfan5 Megaf: you can't link opengl, openal and luajit statically 13:35 Megaf makes sense, any idea how do I tell cmake to not link those? 13:37 sfan5 Megaf: your linking command needs to look like [all other libs] -Wl,-Mdynamic -lOpenGL -lopenal /usr/local/lib/libluajit-5.1.so -Wl,-Mstatic 13:38 sfan5 Megaf: i don't think you can get cmake to do that, but you can change the linking cmd in src/CMakeFiles/minetest.dir/link.txt 14:15 nrzkt i think i will work on the session system next week/month because we have some problems with it. Player objects are not correctly removed and the handling is sometimes incorrect. I experienced this easily. I disconnect and reconnect and a variable i set with a mod (which is not saved) keep the same value and some pointers are also valid. Player* object isn't deleted properly, some things must be rewrote. 15:27 luizrpgluiz celeron55: You know etha? 16:04 Zeno` ok, I'll put it right out there because there seems to be a lot of confused people 16:05 Zeno` I am going to make my own fork of minetest (I will of course keep contributing back to here and hopefully everything in my fork gets committed) 16:05 Zeno` I am going to sell my minetest fork for $$ 16:05 Zeno` who has a problem with that, and why 16:06 Zeno` (this is kinda hypothetical... I'm not really forking, I just don't understand some people's attitudes or perceptions) 16:06 kilbith how it's worth to buy your fork if you keep contributing to MT ? 16:07 Zeno` each copy of my minetest fork I'll sell for $89.95 16:07 Zeno` kilbith, it's not. The user (market) has that choice 16:07 Zeno` You'd be stupid to buy my fork 16:07 Zeno` Doesn't mean my fork is not ok 16:07 kilbith this is why i've asked 16:08 Zeno` If we don't want people selling forks then we have to make OUR VERSION THE BEST 16:08 Zeno` so nobody even bothers with the forks 16:10 Zeno` They can still sell forks of course, but why would anyone bother if the "official" version was better and just as easily available? 16:12 Zeno` sending a DMCA on a competing product that is 100% conforming though... 16:12 Zeno` that's probably illegal 16:13 Zeno` the only one's in the wrong here in "minetest", and I guess that's why I'm angry 16:13 Zeno` s/in/is 16:15 Calinou thank the market economy :P 16:18 Zeno` even if sending a false or misleading DMCA takedown request *was* legal, the whole DMCA is wrong 16:18 Zeno` DMCA should never have been enacted nor enforced 16:26 Zeno` in a PM to someone I said this (and it sums up how I feel): 16:26 Zeno` as I said I don't like it either 16:26 Zeno` but I *will* defend freedom 16:26 Zeno` whether I like it or not :( 16:32 hmmmm Zeno`, yeah, but at the same time it's being used against us 16:32 hmmmm minetest was banned from the play store because of that GPL violator 16:34 Zeno` I don't know the history of that. The last I searched minetest got removed for using "spam keywords" 16:34 hmmmm the spam keywords being a similar description to the clone 16:34 Zeno` There was no mention of another app 16:34 Zeno` and there was no DMCA takedown notice 16:36 hmmmm i don't think they ever told us about the other app, we were supposed to just guess 16:36 Zeno` either way, a DMCA takedown notice on that other application (can't even remember its name... buildcraft?) was not the correct approach and was a false report 16:36 Zeno` the correct approach would have been say "hey, we're the real minetest and they're using OUR description" 16:37 hmmmm right, the correct approach would be to kindly ask the other person for their modifications to the source, would it not? 16:37 hmmmm both of those things 16:37 Zeno` yeah it's on github 16:37 Zeno` we've already established that 16:37 Zeno` I'm sorry, it just makes us look silly 16:38 hmmmm i agree, that was an embarassing move... 16:50 hmmmm hey Zeno`, what was the reason why you opted not to use IrrlichtDevice::setGammaRamp? 17:13 Zeno` hmmmm, so long ago I cannot remember :( 17:13 Zeno` I should have added a comment 17:14 Zeno` perhaps it affected all textures and not just the "light"? 17:33 hmmmm shrug 17:34 hmmmm shouldn't it be named "brightness" instead of "gamma", in that case? 18:00 hmmmm hrm 18:00 hmmmm do you think that CRC-4 is overkill for handle validity checking? 18:01 hmmmm should make it parity instead 18:08 nrzkt hmmmm: what do you want to validate with it ? 18:08 hmmmm just a 32-bit handle passed between lua scripts and the engine 18:09 nrzkt i think this is sufficient. Why would you want to check that ? 18:09 Calinou what is this handle for? 18:09 hmmmm for any Defs 18:10 hmmmm whenever you call register_ore, register_decoration, register_biome, and in the future maybe even register_hud_element(), it'll return an opaque 32 bit id 18:10 hmmmm this way the end user can't possibly mix them up 18:10 hmmmm and can't reuse old ones 18:12 hmmmm maybe sounds as well, a SoundDef 18:12 hmmmm and definitely GUI elements 18:12 est31 what are those ids used for? 18:13 hmmmm referencing the definition, or object, or whatever, referred to by the ID 18:13 est31 and why is validation needed? 18:13 hmmmm so the end user doesn't screw it up 18:13 est31 ? 18:14 est31 also referencing how? in other lua calls? 18:14 hmmmm yes 18:14 hmmmm for example, let's say you use minetest.place_schematic("foobar.mts"); 18:15 hmmmm that will return the ID of the "foobar.mts" registered schematic 18:15 est31 yes like win32 api 18:15 hmmmm so thereafter you can do minetest.place_schematic(foobar_id) 18:15 hmmmm also all Defs have case-insensitive names 18:16 est31 you mean filenames? 18:16 hmmmm so a Biome might be referred to as "Jungle" or "jungle" or even "JUNGLE" but they all mean the same 18:16 hmmmm yea, the filename bit is one thing I'm still not sure of the details on 18:16 est31 names aren't ids 18:16 hmmmm specifically for schematics (but later on might be more), the name of the schematic is assumed to be the filename if no explicit name parameter is specified 18:17 hmmmm maybe certain Def types can be case sensitive and others aren't 18:17 Calinou it should be consistent 18:17 est31 yes 18:17 hmmmm agreed 18:17 Calinou there is no reason some stuff should be case sensitive, and some isn't 18:17 hmmmm but what if one mod assumes it's capitalized "Jungle" and another uses "jungle" 18:18 Calinou I am for case insensitivity, like we do for usernames 18:18 hmmmm yeah but filenames 18:18 hmmmm if somebody has sounds/AAHHH.vob and another is sounds/aahhh.vob, what then? 18:19 jin_xi crash 18:19 hmmmm so yeah, this is definitely Windows inspired, because it's a good language-independent way to pass around objects IMHO 18:20 est31 I don't see any real beauty in handles. 18:20 hmmmm language-independence! 18:20 hmmmm inside the core, obviously, i'm going to be working with array indexes and pointers 18:20 hmmmm just that interactions with lua are done with handles 18:21 est31 so we have a number, thats ok and fine, but why then do some crc stuff to it? 18:21 hmmmm so people don't mess it up on accident and refer to something else 18:22 est31 you mean they dont add 2 to the number because it always worked for them? 18:22 est31 they can still mess it up with crc sums 18:22 hmmmm well this is intentionally made difficult to mess up 18:25 est31 for me, its just additional complexity. What when mod A has registered a schematic, and mod B wants to use it too? 18:25 hmmmm then they can reference it by name 18:25 est31 then mod creator B has to ask A to make an API to hand over the ID 18:26 est31 so those handles should only improve performance, nothing more? 18:26 est31 fine with that. 18:26 hmmmm well they're also a unique ID 18:27 hmmmm each handle is unique, so that way you can't do core.clear_ore_definitions() core.register_ore({...} core.clear_ore_definitions() ... and have them be the same 18:27 hmmmm so if somebody attempts to use an expired handle, it'll show up as invalid 18:27 est31 handle expiration? 18:27 est31 whats that for? 18:28 hmmmm an invalidated one 18:28 hmmmm because maybe some mod decided it's more important than the rest and cleared all the registered biomes, and then registered one of its own 18:29 hmmmm when other mods come around to reference what they think is their biome with an ID of, say, 23, it'd reference that other mod's biome on accident 18:29 hmmmm or maybe not even exist 18:29 hmmmm here with this we can at least tell that it had been invalidated 18:29 hmmmm "oh, another mod deleted that biome of yours" 18:29 jin_xi are ores and biomes not in in registered_foo tables? 18:29 hmmmm they are 18:30 hmmmm the beauty of lua tables is that I don't have to modify *any* of that code to make this change 18:31 hmmmm as long as nobody expects the undocumented behavior of biome/ore/deco/schematic IDs being sequential, everything will still work 18:32 est31 still I dont see why CRC sums are needed for those 18:32 est31 they are just numbers 18:33 est31 "some stuff I get and don't touch" 18:33 hmmmm we've had plenty of instances of 'just numbers' getting fudged up because of some wacky rounding that lua does 18:33 est31 and if they touch it, then its their fault 18:33 hmmmm like, remember the LuaVoxelManip index fiasco? 18:33 est31 so its a hack around language problems... 18:33 hmmmm everybody was convinced my shit was broken when it wasn't 18:34 est31 that seems reasonable then. 18:36 jin_xi it seems like overkill to me and i doubt any of these scenarios happen frequently, but yeah, its kinda neat 18:36 est31 should be more than a parity bit though 18:37 nrzkt i think we must use std::map instead of std::vector for our HUDs 18:37 est31 although if lua does shit with numbers, then dont use them at all 18:37 nrzkt in some case packets can be received in different order with HUD and this trigger this: void Game::processClientEvents(CameraOrientation *, float *): An engine assumption 'new_id == id' failed. 18:38 nrzkt if we look at the HUD ids : 2015-03-28 19:33:04: ERROR[main]: 8/6 . 8 is the HUD received and 6 is the expected 18:38 nrzkt the 7 and 8 arrives after, the client is too sensible and crash if we have this problem 18:39 kahrl_ sounds like a case where previously reliable packets are now unreliable? 18:39 kahrl_ reliable packets preserve order 18:39 nrzkt hud is a reliable packet 18:40 nrzkt only move and some activeobject are unreliable if you look at network/serveropcodes.cpp 18:40 hmmmm est31: yeah, I am changing it to a parity bit and then I need to add 3 bits to some other places 18:43 hmmmm currently a decoded handle consists of: http://fpaste.org/204220/68199142/ 18:43 kahrl_ nrzkt: oh, some of them use channel 0 and some channel 1 18:43 kahrl_ not sure if that's intentional 18:44 kahrl_ (some of the HUD messages, I mean) 18:44 hmmmm that is not intentional 18:44 hmmmm are reliable packets guaranteed to be ordered? 18:44 kahrl_ hmmmm: within a channel, yes 18:44 hmmmm ahhgh no, bad bad bad design! 18:44 hmmmm that makes minetest UDP no better than TCP 18:46 kahrl_ how would you do it? 18:47 hmmmm I would define certain channels to be ordered and others not 18:48 hmmmm instead of merely having reliable or unreliable, there should be a distinction between which individual features are desired for that channel 18:48 est31 its stupid when commands you move some inventory stuff, and then trash it get reordered and then you trash the wrong things 18:48 est31 s/you/to 18:48 kahrl_ yeah, I guess one unordered reliable channel could be useful for some things 18:48 hmmmm that being said, I don't think reliable/unreliable should be set on the packet level 18:49 nrzkt est31 it's why MMORPG uses object UID's instead of positions :) 18:49 kahrl_ (there's no point to having more than one, since you don't care about order anyway) 18:49 hmmmm but rather at the channel level 18:49 hmmmm we can't change that without breaking compat, though, so we're sort of stuck 18:49 nrzkt hmmmm it's why i will rework all the layer to have a smaller layer and proper layer 18:49 hmmmm well hold on now 18:49 hmmmm what about enet? 18:49 est31 all can be changed, just needs more complexity in handling 18:49 hmmmm does that do what we want? we'll also gain compatibility with freeminer if that route is taken 18:50 nrzkt i thought using native TCP + native UDP. One for reliability one for fast things 18:50 hmmmm oh no don't mix tcp and udp that's bad 18:50 hmmmm nrzkt: read this http://www.isoc.org/INET97/proceedings/F3/F3_1.HTM 18:52 kahrl_ I wonder if there's any more recent studies about this 18:52 kahrl_ there's been a lot of changes in TCP implementation since 1997... 18:52 nrzkt hmmmm: these days that changed, RTC died 18:52 nrzkt also, many providers now uses stateful firewalls, and TCP is better on this than UDP 18:54 hmmmm quite possible, but instead of assuming that's the case i'd like to test it first 18:55 kahrl_ selective ACK (the RFC appeared in 1996 but it was implemented later, I think), new congestion control parameters, to name a few 18:55 hmmmm minetest can't afford to have a second screwup on the network layer 18:56 nrzkt blizzard online games not, but they are using TCP. 500ms is the max to play in good condition for that games :) 18:56 hmmmm latency is very important here 18:57 hmmmm it's wrong to write off the massively increased latency as being acceptable because you assume MT is a specific genre 18:57 hmmmm minetest is a game engine and needs to be good at everything 18:57 hmmmm there are mods out there that make minetest an FPS 19:01 nrzkt 23ms of latency on blizzard's server with my connection and TCP :p 19:02 hmmmm ya, your connection 19:02 hmmmm once there's any bit of lossiness involved that number jumps quite a bit 19:02 nrzkt ~40ms with DSL 19:02 nrzkt 11 jumps to blizzard 19:02 kahrl_ try satellite internet ;) 19:02 hmmmm don't assume that everybody has the same connection as yours 19:02 nrzkt satellite is not designed for FPS :p 19:03 nrzkt right hmmmm, i have a quite good connection, not the best. 19:03 nrzkt french connection is quite good generally 19:03 kilbith french connection... :) 19:03 hmmmm i think that's a pop culture reference but i'm not sure what it is 19:04 hmmmm in any case, the more packet loss over TCP, the more latency 19:04 Calinou they're quite bad, actually; South Korea and Japan have the best 19:04 nrzkt Romania has best connections than france 19:04 hmmmm what about US 19:04 hmmmm we have the shittiest internet possible 19:04 nrzkt but if you are around Paris, miam :D 100-750Mbps download 40-250 mbps upload :D 19:05 nrzkt in fact the connection quality depends of the country surface 19:06 kilbith *superficy 19:06 Calinou no optic fiber here, despite two ISPs promising it 19:06 nrzkt where are you Calinou ? nearly Bernadette Chirac ? :p 19:07 Calinou Troyes 19:07 nrzkt i see :) 19:08 nrzkt then, yes hmmmm we need to do more tests 19:09 nrzkt in fact the TCP part is quite ready, the only thing i need to handle is big packets which must be cutted, i'm thinking about different packet design 19:09 hmmmm isn't there a length specifier 19:10 hmmmm in any case there are entire *committees* dedicated to designing protocols 19:10 hmmmm this shouldn't be something that one person makes up and that's it 19:10 hmmmm there's going to be lots of discussion and lots of revision 19:11 nrzkt i can limit the packet size, right, but the problem it not the packet sending, it's the packet receive :) 19:12 nrzkt yes i could provide a patch for the TCP implementation, but before present it i want to present and merge a new session system. Our system is not good. Disconnection are not handled properly and a session is not really defined 19:12 * ShadowNinja suggests SCTP. 19:12 hmmmm I mean isn't there a length field inside the packet header already? 19:13 nrzkt int recv(...) tell us how many bytes we receive 19:13 ShadowNinja I'm working on multiple bind addresses now though, so please avoid conflicts. :-) 19:13 hmmmm :) 19:13 nrzkt okay ShadowNinja :p 19:14 ShadowNinja (client and server works, but not singleplayer and some things like the menu need updating) 19:14 nrzkt but the problem is: if we have a 4096 byte buffer and we receive a 4096 byte length data. is this packet complete or incomplete ? 19:15 nrzkt i started to look at some current implementations, like apache 19:15 kahrl_ is there any NAT yet that works with SCTP? 19:17 kahrl_ (other than custom boxes running a full linux kernel or something like that) 19:17 hmmmm hmm 19:17 Krock nrzkt, I might be dumb but why not send a number that contains the length of the packet? 19:17 nrzkt SCTP is a layer 4 protocol ? it's a bit difficult 19:17 hmmmm if doc/protocol.txt is anything to go by, it seems that minetest packets don't include the length 19:17 hmmmm :/ 19:18 nrzkt Krock i thought about it, but i need to do tests with multiple clients to be sure, i thought sending a header with first packet to set the packet size and then read the corresponding bytes 19:19 nrzkt SCTP is also a bit difficult to manage for many users, because it's a different protocol than TCP and UDP, it could be blocked by providers and also firewalling is not conventional 19:19 hmmmm SCTP is a nice thought but ultimately not doable on a WAN 19:20 kahrl_ also support for it in Windows looks non-existent 19:20 nrzkt also the NAT was only designed in 2013, many provider devices not support it 19:20 hmmmm does minetest really have that 32-bit id in every single packet header? 19:21 nrzkt it seems, i do a packet capture today and i see a big header before the NetworkPacket :p 19:21 hmmmm brb while I barf 19:21 hmmmm I never looked too closely into the protocol, but I assumed there were sane design choices 19:22 hmmmm thought that the 32 bit ID was only there for the startup/shutdown packets 19:22 nrzkt now you understand why i want to change this ? :p 19:22 nrzkt also it's easy to spoof peer_id and send wrong datas to server 19:22 est31 O.o 19:22 hmmmm that's an implementation detail though 19:23 hmmmm what it should do is match up the claimed peer_id along with the sockaddr structure the server associated with that peer_id 19:23 hmmmm and if it doesn't match, error 19:23 hmmmm if the code doesn't do this currently that's pretty fucked 19:23 hmmmm but it's not an inherent issue with the protocol 19:23 nrzkt i remember it's the case, but because it's UDP, we doesn't care about that, spoof IP and peer_id and then do what you want 19:24 hmmmm oh that's a bit tougher 19:24 nrzkt i will rewrite all the session layer before any protocol change to ensure some things like peer_ids, sessions , addresses and (future) associated sockets/threads) 19:24 est31 so, we need encryption, or other forms of authentication. 19:24 hmmmm all this needs to be reverse compatible though 19:25 nrzkt yes 19:25 est31 doesnt have to be encrypted, srp for example gives you a common secret, you can use that to sign packets 19:25 hmmmm encryption is a nice thing to have though 19:26 nrzkt tcp can be signed too 19:26 nrzkt like in some ipsec implementations 19:26 nrzkt first fix the session layer, change the protocol layer and ensure compat with old clients for... 1 year ? 19:27 nrzkt and fix the broken protocol packets (i started to add handlers for them) 19:27 hmmmm minetest still supports 0.3.x maps 19:27 Calinou we can implement AES in Minetest? 19:27 hmmmm you can do way better than 1 year 19:27 nrzkt the problem is not maps 19:27 Calinou like Xonotic did 19:27 hmmmm yes 19:27 hmmmm I'm thinking about the key exchange though 19:27 nrzkt maps are not related to protocol hmmmm, it's a different field, it's serialization version, not protocol version 19:27 hmmmm nrzkt, my point is that it's not painful to keep legacy code around as long as it's well compartmentalized 19:28 kahrl you have to be really careful that the compatibility doesn't undermine the security, though 19:28 kahrl like this crap: https://code.google.com/p/google-security-research/issues/detail?id=222#c3 19:28 nrzkt maybe :) i think the new layers must be parallelized (i know how to do it) 19:28 hmmmm that POODLE? 19:28 hmmmm oh it's different 19:29 kahrl yeah, POODLE is another example 19:29 hmmmm can't we just have a prefer encryption/force encryption option? 19:29 nrzkt kahrl i agree with you, but for the transition period we need to keep this :s 19:30 est31 even that doesnt helpo 19:30 est31 we need to trust the master list or dont trust it 19:30 nrzkt don't forget encryption adds latency 19:30 est31 or we have another mechanism 19:30 est31 perhaps encryption only for special packets? 19:30 est31 like chat? 19:30 nrzkt authentication 19:32 est31 also, with smart tricks such public information can be only encrypted once, and then sent to all clients 19:32 hmmmm you can still use encryption with missing packets 19:32 hmmmm blowfish in ECB mode seems to be a good cipher which does this 19:32 est31 chat packets shouldnt be missed 19:35 est31 replay protection can be done using other things too, I confirm. 19:36 hmmmm hmm 19:37 hmmmm we desperately need a mailing list for this sort of discussion 19:37 hmmmm in a month everything we talked about will be forgotten 19:38 est31 should I make a github issue? 19:38 celeron55 if somebody knows of a mailing list system that doesn't suck, i can consider setting one up 19:38 est31 "Implement encryption" 19:38 celeron55 usually people just go to google groups if they want a mailing list 19:38 hmmmm no this is way more than implementing encryption! 19:39 hmmmm this is part of the protocol 19:39 est31 github issues still allow discussion. 19:40 est31 I agree though that its very linear 19:40 hmmmm i don't look to github issues for heavy discussion 19:40 hmmmm it's like ... something to talk about the code and that's it 19:40 est31 you have to introduce sub-issues for getting non-inearity 19:44 ShadowNinja Maybe I'll set up mailman on my server later. 19:45 hmmmm what about Nabble? 19:45 hmmmm http://n4.nabble.com/free-mailing-list.html 19:45 jin_xi we also could think of disabling logging irc for eternity if we had a ml 19:45 hmmmm logging is useful for other reasons though 19:49 celeron55 hmm what's nabble, can it be trusted to work in the long term? 19:49 hmmmm i've seen it used on a lot of projects 19:49 jin_xi been reading a list on it for years on its forum like interface 19:49 celeron55 it looks like GNU Mailman is basically the only mailing list software for self-hosted lists; i could try it 19:50 celeron55 but if that works, then i will happily be lazy and not do it 19:50 jin_xi idk ShadowNinja said he'll try, and nabble can carry a ml hosted elsewhere 19:51 jin_xi so i think self hosted would be better if someone can do it 19:51 ShadowNinja celeron55: Do you already have a mail server set up? 19:52 celeron55 not really 19:53 celeron55 (or, well, i do, but not on the server i would want to use to host the mailing list) 20:25 hmmmm celeron55: what was the reasoning behind making items attached to a player object invisible? 20:25 hmmmm just curious 20:25 celeron55 why are people asking me this 20:25 celeron55 i have no ide 20:26 Calinou gauges 20:26 hmmmm you were the one who requested that it was done 20:26 Calinou you don't want your own gauges to show above you, even in third person :P 20:26 hmmmm taoki is the one who actually implemented it 20:26 hmmmm what are gauges? 20:27 celeron55 +a 20:27 celeron55 (i am getting rather terrible lags) 20:28 hmmmm anyway 20:28 hmmmm celeron, did you read the backlog about unifying all the Defs and DefManagers? 20:29 hmmmm how do you feel about that 20:29 celeron55 no i didn't 20:29 hmmmm NodeDef, ItemDef, SoundDef, BiomeDef, OreDef, all of these are Defs and they have a name, an ID number, they're stored in a vector (usually), etc. 20:30 hmmmm what if they were all derived from a base Def class 20:30 hmmmm and they were stored in a DefManager 20:30 hmmmm a move like this would shake the foundation of minetest though 20:31 celeron55 i'm fine with that, altough i can imagine many horrible ways of implementing it that someone might come up with 20:31 hmmmm rest assured; no templates 20:31 celeron55 well i'd probably go for templates 20:31 hmmmm how terrifying 20:31 celeron55 otherwise you 20:32 celeron55 +have to do some kind of weird memory management 20:32 hmmmm what I have right now for mapgen registered-def-things is "GenElementManagaer" and "GenElements" 20:32 hmmmm I am generalizing and expanding upon that now 20:32 celeron55 you don't want to allocate each item in a def list separately on the heap at least 20:32 hmmmm well.... 20:32 celeron55 they should be contiguous so that cache is happy 20:33 hmmmm does it need to be contiguous exactly, or just all local to eachother 20:34 hmmmm because another thing we could do is have a memory pool sort of setup 20:34 celeron55 well... it's definitely good practice to go strictly contiguous in game programming but "local enough" obviously probably works 20:34 celeron55 you'll have hard time making sure that that happens though 20:34 celeron55 this is C++ we're talking about 20:34 hmmmm there are different requirements i'd have to say 20:35 hmmmm each of these Defs could be really tiny or really huge 20:35 hmmmm or hot 20:36 hmmmm FWIW if you've read the Sony PS2 optimization guide they'll tell you to keep pointers to structures instead of structures inside of structures so they stay small and more of them fit into memory 20:37 hmmmm in general I feel like some hot structures such as NodeDef are too large; like look at all the 5000 bools for example 20:37 celeron55 you still want them contiguous, especially if you're doing that 20:37 celeron55 otherwise the pointers will just kill you and your babies too 20:38 hmmmm if a NodeDef is larger than a cache line (which they most certainly are) I don't see how locality matters 20:38 celeron55 and yes, it would be best to split each def into a hot and a cold part 20:38 celeron55 possibly not more splitting than that though 20:39 hmmmm the Defs I'm currently working with are relatively cold 20:39 hmmmm on second though, although the organizational gain is nice, there are too many performance considerations 20:39 hmmmm NodeDef and ItemDef should stay separate 20:40 hmmmm so the thing about NodeDef is that it's hit quite randomly 20:40 hmmmm not in order 20:40 hmmmm and each structure is huge 20:41 celeron55 that's generally true, yes; it would probably make sense to create a system to reorganize it based on access patterns 8) 20:41 hmmmm in which situation are you ever going to iterate through every nodedef in an ID range? 20:41 celeron55 for optimization 20:41 hmmmm no dammit 20:41 celeron55 but that might be quite complicated 20:41 hmmmm don't do the cache's job 20:41 hmmmm the cache knows better than you do 20:41 hmmmm so I'm not really sure if we can do anything to help NodeDef aside from trying to lighten it up 20:42 hmmmm bbl 20:42 celeron55 well, one thing is 20:42 celeron55 when nodedef is accessed, generally it's accessed randomly, but only one or a few properties are accessed 20:43 celeron55 so it would make particularly much sense to organize it as structure of arrays instead of array of structures 20:43 hmmmm data-oriented programming 20:43 hmmmm i saw that talk too 20:44 hmmmm that's a big change though and i have no idea if it'll help us, maybe some profiling with cachegrind will help 20:44 hmmmm with the decision making process 22:01 nrzkt hmmmm: agree with an inheritance for those objects. Maybe ObjectDef as a parent of those objects, and ObjectMgr which handle all of this Ids ? 22:01 hmmmm that's how GenElementManager already works 22:01 hmmmm in any case, I'm not going to do this with any hot data