Time Nick Message 00:55 RealBadAngel https://www.youtube.com/watch?v=ZrPaEUjtYvQ 00:55 RealBadAngel happy JUMPING :) 02:49 hmmmm RealBadAngel, I know that, thanks 02:59 RealBadAngel Zeno`, happy kangooros 03:00 * Zeno` rides around on his new kangaroo and salutes RBA. Likewise! :) 03:01 * Zeno` gets hungry and eats his mount 03:03 paramat hmmmm #2033 is tested and ready for review/merge =) 03:03 ShadowBot https://github.com/minetest/minetest/issues/2033 -- Mgv7: Remove mountain height limits, dont let mountains chop dungeons. All mapgens: generate dungeons throughout world and speed optimise by paramat 03:33 * Zeno` dislikes backwards C and C++ files 03:37 hmmmm paramat, looks good but if you're adding an additional condition for dungeons to get generated, shouldn't that go into dungeongen::generate()? 03:37 hmmmm zeno, ?? 03:41 paramat that occured to me but it seemed simpler and faster to decide earlier on alongside 'if flags & MG_DUNGEONS'. those bools are already there doing decisions 03:43 paramat just look at mapgen_v6.cpp, your own code has lots of decisions going on inside makechunk 03:45 paramat .. that is, decisions concerning dungeons 03:50 Zeno` I agree with paramat, although probably for different reasons; i.e. avoiding setting DungeonParams and calling dgen.generate() altogether if no dungeons would be generated anyway 03:50 paramat yep 03:51 paramat with speed optimisation it's better to make the decision earlier on 03:53 Zeno` hmmmm, you must have come to the same conclusion at some point if you wrote the orginal "if (flags & MG_DUNGEONS) {}" ;) 04:06 hmmmm well 04:06 hmmmm that option was more like an on/off switch 04:07 hmmmm the only real options i have inside of makeChunks() is "if (flag & something) 04:12 paramat (.. and 'if desert make temple and set all these params' hehe) 04:13 hmmmm i tried to separate mapgen decisions from dungeongen decisions 04:15 Zeno` How else could it be done? Add an additional parameter to DungeonGen::generate (or some other thing like nmin == nmax) so that it can return immediately? 04:17 hmmmm you're right 04:17 paramat my method allows mapgens to in future potentially act differently as to how high dungeons generate, it's more flexible 04:17 hmmmm DungeonGen::generate() is the only one that has a check like that 04:17 Zeno` well actually 04:17 hmmmm CaveGen::makeCave() or whatever has no such checks 04:18 hmmmm all the checks are done in the Mapgen::makeCaves() 04:19 hmmmm I guess it would be smarter to add a function to mapgens "makeDungeons" 04:19 hmmmm move the stone_surface_max_y comparison in there 04:19 hmmmm take the 3d noise density query out of DungeonGen::generate() and put it there 04:19 hmmmm that'd make it more consistent with caves 04:19 Zeno` Maybe it stone_max_y (or whatever it's called) could be added as a param to DungeonParams(). Hmm. That way although the function gets called and could return immediately the loops inside DungeonGen::generate() might be able to be optimised for those cases where it does not return immediately. Maybe a combination 04:19 hmmmm nah 04:20 hmmmm don't add more dungeonparams 04:20 Zeno` I wouldn't dare :) 04:20 Zeno` Just speaking out aloud (so to speak... errr, type) 04:21 hmmmm dungeonparams is meant to be some sort of lua configurable thing that doesn't have the correct wiring set up (yet anyway...) 04:21 hmmmm I had some kind of really neat plans for dungeons but meh 04:21 paramat ? 04:22 paramat i might be able to make dungeons params user-settable in future 04:22 hmmmm I think I was supposed to generalize it into a random room generator where it'd randomly add chunks of rooms onto eachother 04:22 paramat unlimited dungeons? 04:22 hmmmm unlimited detail! 04:23 paramat nice 04:23 Zeno` and a maze generator! 04:24 hmmmm well minecraft already has this sort of thing with the strongholds and mines 04:24 hmmmm last time I looked at the source it seemed like they defined each generator separately (so not quite that impressive) 04:24 hmmmm i want to generalize 04:25 hmmmm and the nether castle things 04:25 hmmmm each of those are their own separate entities 04:26 hmmmm i don't recall exactly, do minecraft desert temples have random room layouts? 04:26 paramat sounds good, but current MT dungeons are so good and so much loved keep them separate and unchanged please 04:27 paramat for example those cobble rings floating in the air are the most magical thing about MT 04:27 paramat like discovering a stonehenge 04:28 paramat MC temples are small and not much variation, if any 04:29 paramat BTW i have an insane giant dungeon generator mod you might enjoy 04:30 paramat i had an idea that the random floating cobble rings could be used as portals 04:31 paramat sunce they are already parodying MC from their appearence 04:38 paramat another pull incoming: 'get mapgen params' is tested in choosing mapgen-specific biome code in default/mapgen.lua. importantly any mod can now 'clear registered biomes' (ie MTgame's biomes) without having to do that inside 'on mapgen init' 04:48 paramat back in hour or two O/ 05:44 hmmmm happy new year 05:45 Zeno` you too, hmm 05:45 hmmmm oh what developments will a new year of minetest bring~ 05:45 Zeno` and everyone else ;) 05:45 hmmmm hey man you had your new year almost a day ago 05:45 Zeno` yeah I have an extended one to make sure I cover all timezones 05:47 Zeno` Makes it tricky. I have to toast a new toast every 1 minute for ... errr... $this many hours 05:48 Brains Heh, a man with a plan. Did you account for the Gregorian vs Julian calendar? 05:49 Zeno` Yes. That's why I celebrate the New Year for 24-hours twice a year! 05:54 hmmmm so guys 05:54 hmmmm I have a plan 05:54 * Brains heads for the door... 05:54 hmmmm I want to have client-side lua in minetest by sometime before Q2 2015 05:54 hmmmm is there anybody who is willing to devote their development time to work toward this goal? 05:55 hmmmm (alongside me of course) 05:56 Zeno` what will it focus on? 05:56 Zeno` (apart from being client-side) 05:56 hmmmm planning is part of the goal 05:57 hmmmm so this is going to result in a major version increase of course 05:57 hmmmm mods will not be reverse compatible 05:57 Zeno` I'll watch the planning and decide later then. I'd love to see client-side Lua for *at least* controlling/customizing the UI 05:57 hmmmm i want to tear out a lot of stuff like the way the lua hud api works right now 05:57 hmmmm yeah... 05:58 hmmmm all of the GUI will be done through the lua api, first off. no more C++ formspecs 05:58 hmmmm we already have a powerful basis for making all of this happen thanks to the mainmenu api 05:59 hmmmm so the main idea is to have servers send clients lua to execute - client side lua will need to be sandboxed and impenetrable 05:59 hmmmm additionally another requirement is that the lua must be transmitted in plaintext 06:00 hmmmm precompiled lua will not be allowed at all 06:00 hmmmm i'm not sure how we're going to detect obsfucated code 06:00 hmmmm also the lua will be optionally saved permanently to the client 06:00 hmmmm much like the way map is saved 06:01 hmmmm so at the minimum we'll have: 06:02 hmmmm 1). full GUI replacement 06:02 hmmmm 2). replacement of the HUD api 06:02 hmmmm 3). a generic mod client/server communication channel 06:02 hmmmm 4). client-side prediction moved to lua 06:03 hmmmm 5). shader API 06:03 hmmmm 6). client-side graphics effects (post-FX? need to think more about this) 06:03 hmmmm and key binding 06:07 hmmmm oh here's an important one: 8). local mob AI 06:07 Zeno` Well I haven't mentioned it yet because I was still deciding if it was something I'd like to do but my major plan (at this point) is most likely to increase the "separation" between client and server (I mean the sometimes not so obvious interactions they have). This would have crossover with probably all six of your list items. 06:07 hmmmm i.e. provide a client scripting interface to manipulating CAOs locally then reporting the changes to the server 06:08 Zeno` And, no, I don't mean splitting the code base; I mean making it... not sure of the correct term 06:08 hmmmm i know what you mean, i'm not a big fan of how there's such little logical separation 06:09 Zeno` I am guessing it's an historical artefact due to the original design 06:10 hmmmm how can we defend against obsfucated lua 06:11 Brains I don't think you can... Like you said, sandboxed to hell and back. 06:11 Zeno` I will solve the halting problem first 06:11 hmmmm erm 06:12 hmmmm there's stuff out there 06:12 Zeno` and then it will be easy 06:12 hmmmm this won't solve like... scrambling variable names or whatever 06:12 hmmmm let me bring up the pdf 06:13 Zeno` Lua is Turing complete so I can't see how it can be solved, although I would gladly be proved incorrect 06:13 Zeno` Maybe I'm just misunderstanding what you're saying. /me waits for the paper/pdf 06:14 hmmmm :/ i can't find it 06:14 hmmmm but anyway the gist is there are ways to reconstruct the original operation of what effect the bytecode is supposed to have 06:15 hmmmm like say your obsfucator placed some kind of 06:15 hmmmm sub ecx, 45h 06:15 hmmmm xor ecx, f9h 06:15 hmmmm rol ecx, 12 06:15 hmmmm or whatever 06:15 hmmmm it'll figure out through one of several methods that it was originally supposed to be an "add ecx, 5" 06:15 hmmmm i'll still look for it 06:17 Brains So given a list of operations, produce the shortest set of operations that will produce the same results? It is late here so my mind is drawing a blank on the word I'm looking for... 06:20 Zeno` I think it would fall under the umbrella of data-flow analysis 06:20 hmmmm program synthesis 06:20 Zeno` hmm ok 06:20 hmmmm http://www.nosuchcon.org/talks/2014/D1_01_Rolf_Rolles_Program_Synthesis_in_reverse_Engineering.pdf 06:20 hmmmm yay :D 06:21 hmmmm this ^ is informative to get the general idea of it, but it's not the full story because it's just a slideshow 06:21 hmmmm might be hard to follow at times 06:22 Zeno` it's kind of the reverse of data-flow analysis and the resulting optimizations possible... kind of 06:22 * Zeno` will read more later 06:22 Zeno` actually, not the reverse... more of a combination of the ideas 06:23 Zeno` interesting. Will bookmark 06:24 hmmmm haha :( 06:24 Zeno` I think maybe this should be your thesis for a PhD rather than a small walk in the park 06:24 hmmmm the more interesting and smart a paper is, the more likely it is to get bookmarked 06:25 kaeza happy new year to whoever it may concern :) 06:25 hmmmm that's true... I suppose the best we could do is supply the end user with an off-the-shelf lua deobsfucator if we can find one 06:25 Brains Nice, there is a video of the talk as well. 06:25 hmmmm i'm really feeling nervous about executing potentially nonfree, potentially malicious lua on the client 06:25 Zeno` I have very few bookmarks actually. If I can't read something straight away I'll bookmark and look at more closely when I can. Once I read it more thoroughly I decide whether or not it's worth making a local copy and either way delete the bookmake 06:26 Zeno` Happy new year, kaeza 06:26 hmmmm i don't like saying this but 06:26 kaeza hmmmm, FWIW, Lua bytecode is NOT safe 06:26 hmmmm what if we... add signing 06:26 Zeno` I don't like signing on ethical grounds :( 06:27 hmmmm yeah but ethics 06:27 Zeno` yeah, I but know but but :) 06:27 hmmmm what's more ethical, keeping the client safe/free/etc or not permitting things to run 06:27 hmmmm the signing check can be manually turned on/off by a config setting 06:28 hmmmm kaeza, ?? 06:28 kaeza (i.e. the interpreter does not actually check the validity, so it may be possible to do buffer overruns or whatever) 06:28 Zeno` I dunno. I believe the person should be free to do what they like without asking for permission (even if what they want to do is destructive) 06:28 hmmmm yeah that's another issue 06:28 hmmmm haha... want to run the lua interpreter in a sandbox? :) 06:28 Zeno` If it was a config setting or some kind of warning that popped up the first time it was installed I'd be less worried about it 06:29 hmmmm yeah but the freedom of the users or freedom of the server hosters 06:29 Zeno` hmmmm, well I did debate and resist SN's sandboxing as well (for the same reason) 06:29 hmmmm there are lots of options here 06:29 hmmmm but we want to make sure the client absolutely has a choice of whether or not to block some piece of lua code 06:29 Brains If the client is reporting results of local lua back to the server, the server's population now has a vested interest in the local lua validity as well. 06:30 Zeno` Brains, no more so than the code being open source and modifiable anyway 06:30 Zeno` I guess that would involve an additional step though: getting the user to download some kind of compromised client 06:31 hmmmm :/ 06:31 Brains Zeno`: The server has a vested interest in making sure that the lua sent to the client was run without tampering and that the results reported fairly. (Yes, you can attack other portions of the process but we arent' talking about those yet.) 06:31 hmmmm minetest is going to pop up on milw0rm 06:31 Zeno` Oh yea, I agree with that, Brains 06:31 Brains Terminals for everyone! 06:32 Zeno` Well, the easiest way is to say "This mod is not from a trusted source", but then... who are trusted sources? 06:32 Brains Keyrings? 06:32 Zeno` :D 06:32 Brains (If the answers were easy and satisfying, you wouldn't be asking the questions...) 06:33 Zeno` Of course 06:33 hmmmm well 06:33 hmmmm we already run public serverlists 06:33 hmmmm we could trivially add the concept of trust to servers 06:34 hmmmm the centralized trust will be in the hands of a couple minetest developers 06:34 hmmmm thinking like maybe it'd need 4 or 5 peoples' certificates to make modifications or whatever sort of like the root DNS servers 06:34 hmmmm except much less important 06:35 hmmmm just some stupid game :( 06:35 Zeno` I'm not sure; this will take a lot of thinking about 06:35 Brains A centralized trust for what? Blessing binaries? mods? We certainly wouldn't want to have servers blessed unless there was ongoing maintenance and monitoring of those servers by those devs and that sounds like a hassle... 06:35 hmmmm yeah. let's get the trust part down before we do anything else 06:35 hmmmm blessing mods, yes 06:35 hmmmm blessing servers as well 06:36 hmmmm the server would need to be blessed as well as the mod blessed in order for the client to trust that code from that server 06:36 Zeno` To me the immediate reactions/question are: a) will this stifle mod development; b) will this lead to unintended favouritism; c) will this add undue hardships to people new to the mod scene?; d) It's hard enough to merge a commit, let alone certify a mod! :D 06:37 hmmmm running arbitrary code on the client is no funny business 06:37 hmmmm it's an incredible amount of power 06:37 Zeno` Ok, I think we're talking about 2 different levels of code here... 06:37 Brains And how would you certify a server... You can't really verify the code and ongoing running of a server with the kind of manpower available. 06:37 Zeno` a) Code that the user chooses to install or write; and b) code that the server sends 06:38 hmmmm brains, good question.. i'd first say anonymous, random audits could pull a server certification if it's found to attempt funny business 06:39 hmmmm welp 06:39 Brains hmmmm: That sounds pretty much useless 'cept against folks who are just inept though. 06:39 hmmmm maybe this is too much security 06:39 hmmmm lots of client-side scripting is done on things 06:39 Zeno` I.e. when I go to a website I do NOT expect that website to install anything or ask my computer to run some arbitrary code that it wants to (type b). But I will install browser plugins (type a) 06:39 hmmmm the difference is that they have a lot of users to expose problems very quickly 06:39 Brains Local checks against known good keys are easy enough first steps. 06:40 Zeno` Most browser plugins are to prevent type a 06:40 hmmmm note that when I say arbitrary code I mean basically javascript 06:40 hmmmm there are lots of javascript vulnerabilities though 06:40 Zeno` err b 06:40 Zeno` confused now 06:41 Zeno` yeah 06:41 hmmmm this isn't like 06:41 hmmmm raw code code 06:41 hmmmm i wonder how many heap spattering-type vulns are in the lua interpeter 06:41 Zeno` But, see, I was talking about client-side Lua in the "user side only, they install it or write it, type scripting" and not the server gives the client some script/Lua to run 06:42 hmmmm that's also a good idea 06:42 hmmmm yes 06:42 hmmmm instead of the server sending the code, the server just tells the client which mod it needs 06:42 Zeno` So I think the distinction as to what "client-side Lua" actually means might need to be more clearly defined as part of the planning 06:42 hmmmm and the client will install (from the official modstore) the client side part of the mod 06:42 hmmmm server-side sent lua would certainly be the most convenient though 06:42 hmmmm and flexible 06:42 hmmmm I would be willing to compromise and go with your idea 06:43 Brains I wonder what the setup with debian's apt-get stuff is... 06:44 hmmmm should we hold a vote? 06:44 Zeno` I'd much prefer the "this server needs x, y and recommends z. Look at them here: " type approach 06:44 hmmmm same 06:44 hmmmm alright we'll just go with that 06:45 hmmmm now we need to figure out solid requirements 06:45 Zeno` That way servers that don't have their required mods on the forum (for example) will probably just fail :D 06:45 hmmmm hahaha 06:45 hmmmm great stuff 06:45 hmmmm if the client doesn't take explicit action, this will also prevent running non-free mods 06:46 hmmmm i feel guilty because i run flashplayer and nvidia drivers :/ 06:47 Zeno` So do I 06:48 Zeno` But *shrug*, I chose to trust them 06:48 * Brains doesn't but he is running Windows at this exact moment so... 06:49 kahrl I feel guilty too, I use pngout 06:55 kahrl on a more serious note: I haven't really kept up with the mmdb infrastructure, what is its organization (who can approve mods?) and how fast are new mod versions approved? 06:56 kahrl because if being in the mmdb is a requirement for client-side lua, I think mmdb approval should be very a fast process, else it stifles development 06:56 kahrl a very* 06:57 Zeno` yes, I agree 06:58 Zeno` which is what I meant by one of my points earlier 06:59 * Zeno` will be back later. Happy new year to all 06:59 kahrl also, there needs to be some way to have multiple versions of a mod installed at the same time 06:59 kahrl at least for client side mods 07:00 kahrl if server 1 is only compatible with client mod version <=N and server 2 only with version >=N+1 07:03 Brains Okay, I'm seeing floating glowing trees in my new minetest world so I think that is a signal to shut it down and get some sleep. Later... 07:08 kaeza kahrl, all forum moderators can approve mods; iqualfragile is the only one maintaining the mmdb core though, AFAIK 07:18 paramat MTgame team: better temporary biome for mgv5/v7, located in default/mapgen.lua https://github.com/minetest/minetest_game/pull/392 .also, remove builtin_biome.lua #2036 07:18 ShadowBot https://github.com/minetest/minetest/issues/2036 -- Builtin: Remove builtin_biome.lua if my simple biome is added to MTgame (MTG pull 392) by paramat 07:25 kaeza kahrl, also, approving mods for MMDB is as easy as clicking a button on a webpage, but the archive to download must be done so that uncompressing to mods/ without further intervention (except for enabling it) get a working mod. this means the folder inside the archive must be named correctly, etc 07:26 kaeza many users upload archives downloaded from github, which get named foomod-master, which is inappropriate 07:26 kaeza and we (the moderators) can't upload the archives ourselves :I 09:08 RealBadAngel 1st January 2015, international hangover day ;) 09:09 RealBadAngel who coded that?? 15:33 shadowzone Happy new years folk! 15:33 Zeno` shadowzone, according to your own time you are 9:34 late 15:34 shadowzone I know 15:34 Zeno` drunk again I suppose 15:34 shadowzone I hope not 15:34 shadowzone I only got like 6 or 7 hours of sleep 15:35 rubenwardy It's just an arbitrary point in time where we say a year has ended and a new one has begun 15:35 Zeno` rubenwardy, you have not seen my detailed and comprehensive investigations I think 15:36 rubenwardy huh? 15:36 kilbith Jordach, weird solution of fortune: https://lut.im/fBy10emd/v7YkEcvQ 15:37 Zeno` my investigations where I proved that a large panda created the world and new years day is not subjective or arbitrary at all. It took me 93 years to iron out the wrinkles, but it's irrefutable now 15:38 kilbith oops, wrong channel 17:49 hmmmm what do you guys think about https://github.com/minetest/minetest/pull/2014 17:49 hmmmm I feel as if the text is a bit too verbose, but do others like it?? 18:58 hmmmm so I think I'm going to separate out biome noiseparams from mapgen params 18:59 hmmmm it's going to be logically separate 18:59 hmmmm thank goodness i hadn't made all mapgen params into a settings group yet 19:00 hmmmm biome parameters are going to have to be like mapgen parameters; there will be "biome specific parameters" for each biome system 19:00 hmmmm I guess 19:32 jin_xi hmmmm: i'd like to generate some structures exactly once per biome. do you have an idea how to accomplish this? 19:37 hmmmm well you can't use the schematic api 19:38 hmmmm erm, you can't use the schematic decoration api 21:49 hmmmm hrmm 21:50 hmmmm if there are going to be multiple biome system in minetest, i might as well add minecraft's fractal biome system 21:51 hmmmm the way they do it is interesting and not with perlin noise at all... it basically fills a bitmap pseudo-randomly zooming out with each "layer" in a linked list which works nice because you don't get biome 'bubbles' like with perlin noise 21:54 hmmmm it also guarantees a relatively constant size per biome regardless of how many biomes there are registered 21:54 jin_xi dwarf fortress has some nice terrain and uses a fractal process 22:49 hmmmm agh 22:49 hmmmm my crazy lighting replacement would break any mod that relies on light 23:13 crazyR_ no way to have a legacy light for the old way 23:13 crazyR_ *?