Minetest logo

IRC log for #minetest-dev, 2015-03-28

| Channels | #minetest-dev index | Today | | Google Search | Plaintext

All times shown according to UTC.

Time Nick Message
00:20 Tablet_One joined #minetest-dev
00:24 Zeno` joined #minetest-dev
00:30 srifqi joined #minetest-dev
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/minete​st/blob/30075467b84c79ff21736d6c44​7746caef07dcd0/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:10 Miner_48er joined #minetest-dev
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:25 srifqi joined #minetest-dev
01:26 srifqi Zeno` http://irc.minetest.ru/minet​est-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:35 Tablet_One joined #minetest-dev
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:44 srifqi joined #minetest-dev
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 srifqi joined #minetest-dev
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:33 paramat left #minetest-dev
02:35 hmmmm joined #minetest-dev
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:17 srifqi joined #minetest-dev
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:39 crazyR joined #minetest-dev
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/blo​b/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
04:31 Tablet_One joined #minetest-dev
05:27 hmmmm joined #minetest-dev
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/somethi​ng/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:49 leat joined #minetest-dev
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:19 neoascetic joined #minetest-dev
06:20 Megaf joined #minetest-dev
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:35 chchjesus joined #minetest-dev
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#d​iff-722710b5ecd9db42e7dd785dd517e186R1418
06:44 Krock joined #minetest-dev
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/93fcab952b28f4db39d9326b83f14cbd​86c0cf17/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:11 Hunterz joined #minetest-dev
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 jin_xi joined #minetest-dev
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 nore joined #minetest-dev
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:37 blaze joined #minetest-dev
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 joined #minetest-dev
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:31 Calinou joined #minetest-dev
08:39 FR^2 joined #minetest-dev
08:48 nrzkt joined #minetest-dev
08:49 nrzkt ShadowNinja: for http://irc.minetest.ru/minet​est-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
08:55 kilbith joined #minetest-dev
09:04 selat joined #minetest-dev
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 Jordach joined #minetest-dev
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
09:55 blaze joined #minetest-dev
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:27 Zeno` joined #minetest-dev
10:35 Zeno` ugh... forgot to create a branch :/
10:40 Krock joined #minetest-dev
10:43 Zeno` #2569   brb
10:43 ShadowBot https://github.com/minetest/minetest/issues/2569 -- Android fix buildbugs by Zeno-
11:00 SopaXorzTaker joined #minetest-dev
11:11 MinetestForFun joined #minetest-dev
11:14 Zeno` celeron55, https://github.com/minetest/minetest/commi​t/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#d​iff-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#d​iff-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 leat joined #minetest-dev
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:46 Zeno` joined #minetest-dev
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:47 Tablet_One joined #minetest-dev
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 MinetestForFun joined #minetest-dev
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 prozacgod joined #minetest-dev
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 <kilbith> 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 <celeron55> 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/ap​ps/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:36 crazyR joined #minetest-dev
13:36 crazyR joined #minetest-dev
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
13:48 jin_xi joined #minetest-dev
14:13 nrzkt joined #minetest-dev
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.
14:19 Zeno` joined #minetest-dev
15:26 luizrpgluiz joined #minetest-dev
15:27 luizrpgluiz celeron55: You know etha?
15:39 selat joined #minetest-dev
16:00 Tablet_One joined #minetest-dev
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:20 proller joined #minetest-dev
16:26 Zeno` in a PM to someone I said this (and it sums up how I feel):
16:26 Zeno` <Zeno`> as I said I don't like it either
16:26 Zeno` <Zeno`> but I *will* defend freedom
16:26 Zeno` <Zeno`> whether I like it or not :(
16:26 VanessaE joined #minetest-dev
16:27 hmmmm joined #minetest-dev
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?
16:51 disableclouds joined #minetest-dev
16:57 nrzkt joined #minetest-dev
17:11 ElectronLibre joined #minetest-dev
17:11 Tablet_One joined #minetest-dev
17:13 Zeno` hmmmm, so long ago I cannot remember :(
17:13 ElectronLibre joined #minetest-dev
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?
17:35 Tablet_One joined #minetest-dev
17:35 ElectronLibre joined #minetest-dev
17:47 est31 joined #minetest-dev
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:06 roniz joined #minetest-dev
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 Tablet_One joined #minetest-dev
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:46 MinetestForFun joined #minetest-dev
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-secu​rity-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:41 Tablet_One joined #minetest-dev
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)
19:56 DFeniks joined #minetest-dev
20:10 Player_2 joined #minetest-dev
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 MinetestForFun joined #minetest-dev
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 ElectronLibre joined #minetest-dev
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
21:05 luizrpgluiz left #minetest-dev
21:10 Wayward_One joined #minetest-dev
21:16 Player_2 joined #minetest-dev
21:30 jin_xi joined #minetest-dev
21:30 proller joined #minetest-dev
21:31 cheapie joined #minetest-dev
21:48 johnnyjoy joined #minetest-dev
21:50 err404 joined #minetest-dev
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
22:47 shadowzone joined #minetest-dev
22:49 ElectronLibre left #minetest-dev
23:32 luizrpgluiz joined #minetest-dev
23:37 est31 joined #minetest-dev
23:53 srifqi joined #minetest-dev

| Channels | #minetest-dev index | Today | | Google Search | Plaintext