Time Nick Message 00:58 hmmmm !seen paramat 00:58 ShadowBot hmmmm: I saw paramat in #minetest-dev 1 day, 22 hours, 8 minutes, and 50 seconds ago saying "per node force place confirmed working, no more tree trunks removed by a nearby tree's leaves" 00:58 hmmmm hrmm 00:58 * hmmmm scratches head 01:04 hmmmm heh... the logic in generateBiomes is quite messy, but i'll admit it works very well 01:13 paramat hiya 01:13 RealBadAngel hi 01:13 hmmmm hi 01:13 hmmmm do you continuously monitor the logs or something 01:13 RealBadAngel hehe 01:14 paramat heh i just happened to look 01:14 * VanessaE peeks in also 01:14 RealBadAngel rotfl 01:14 RealBadAngel who else gonna pop up? :) 01:15 hmmmm meh 01:15 hmmmm in any case I'm in the process of generalizing generateBiomes() and making it part of the BiomeManager 01:15 paramat 'messy but works very well' is good code? 01:15 hmmmm wondering if it makes sense from an organizational standpoint to place symbolic content_t values in the voxelmanipulator instead of actual stone, water, and air 01:16 paramat ah 01:16 hmmmm it's good code because it works :) 01:16 paramat quite right 01:16 hmmmm hard to follow and a some redundancy but it works 01:16 hmmmm something that i couldn't do :p 01:17 hmmmm anyway 01:17 paramat my only concern is different/future mapgen may need generate biomes to work differently 01:18 hmmmm they'd either override the biomemanager's version or define a new version inside biome manager 01:18 paramat okay cool 01:18 hmmmm hmm 01:18 paramat i think they're identical for mgv5/v7 currently 01:18 hmmmm i want to decouple air from the constant CONTENT_AIR 01:18 hmmmm using mapgen_air is a decent start 01:18 hmmmm but should biomes have their own air? 01:19 hmmmm in particular what I'm thinking of is a space biome that has vaccum instead of air so the player would suffocate 01:19 hmmmm or maybe a swamp gas air 01:25 paramat yeah vacuum nodes replacing air would be good, very useful 01:25 paramat and in line with c55's roadmaps 01:26 hmmmm well it's easy to decouple air from the constant 01:26 hmmmm but per-biome air? 01:26 paramat not sure it needs to be per-biome.. 01:27 hmmmm okay, done 01:27 paramat air or vacuum seems more of a per-realm thing 01:27 hmmmm i'll keep that in mind 01:28 hmmmm realms are still an idea that's going to happen 01:28 hmmmm it's just very much on the backlog 01:28 paramat usually defined by y 01:28 paramat good 01:28 paramat so per stacked realm 01:29 hmmmm https://github.com/minetest/minetest/blob/master/src/mapgen_v7.cpp#L618 01:29 hmmmm about this 01:29 hmmmm do you have any reasoning in particular for checking CONTENT_IGNORE and CONTENT_AIR? 01:30 paramat 'symbolic content_t values in the vm' are these needed when biome API can replace stone and water with anything we want? 01:30 * paramat looks 01:30 hmmmm not really no 01:31 hmmmm the idea is to have generateTerrain place constant values instead of real content_t values from nodedefmanager 01:31 hmmmm and then the biomemanager looks for those constants when making node placement decisions 01:32 paramat yeah line 618 is for detecting a solid or water node to detect the next upper surface encountered while working downwards 01:32 paramat that's the bit that recalculates biomes for each new upper surface 01:33 hmmmm right so the condition for that block is actually, in words, "is there a new surface I'd need to recalculate biomes for" 01:33 hmmmm ? 01:33 paramat yeah 01:33 hmmmm hmm 01:33 paramat has to work for liquids too 01:34 paramat oh and the 'y==node_max.y' bit is to make sure to calculate if the top node is already an underground node 01:35 hmmmm have_air should really be renamed is_not_surface 01:36 hmmmm the extra y==node_max.y logic shouldn't necessarily be there 01:36 hmmmm that's just to ensure that values are initialized at least once 01:36 paramat erm 01:36 hmmmm ? 01:37 paramat yes it's necessary 01:38 paramat if top node and overtop were both underground, have_air would be false, then biomes will not be calculated to set correct stone 01:39 paramat also it avoids calculating biome for chunks containing only air 01:39 paramat so faster than always calculating at the top of each column 01:40 paramat not sure if ignore should be there though 01:44 hmmmm I mean if that same block of logic is always executed outside of the Y loop 01:44 hmmmm just once 01:44 hmmmm and then inside of the Y loop it's only ever recalculated if there's a change in have_air 01:45 hmmmm as it stands right now, if all columns are air, it recalculates the biome at that point every time 01:45 hmmmm ahh or not, it avoids this extraneous recalculation because of the c == CONTENT_AIR check 01:47 paramat yeah 01:47 hmmmm it's all very clever 01:47 hmmmm but not so intuitive 01:47 hmmmm what i'm trying to do right now is find ways that it could be written to make it both work well and intuitive 01:48 hmmmm comments :)! 01:48 paramat i just saw.. water sets have_air to true, which possibly means recalculation for every water node 01:48 hmmmm that's true 01:48 hmmmm see what you're actually trying to describe with logic is 01:48 hmmmm "was there a change in have_air statuses" 01:49 paramat i think water should set have_air to false 01:49 paramat (if that works) 01:50 hmmmm looking at it, i think it should work because have_air is only ever interpreted in the biome recalculation and when placing stone 01:50 paramat since a biome has definitions for water node and the solid nodes in the seabed, the last recalculation should be at water surface 01:50 hmmmm you want to avoid recalculating when it hits water, and the latter case doesn't matter since its status would change once it does hit ground 01:51 paramat no recalculation is needed when hitting water, because of definable water nodes 01:54 paramat .. and is not needed aganin because that one selected biome takes care of the seabed nodes too 01:55 paramat yeah there is some repetition of code for stone :) 01:55 paramat but it seemed to be needed 01:56 hmmmm I cut down on that 01:56 paramat fine, as long as it works the same 01:57 paramat im fairly sure water should set have_air to false, if it works 01:58 paramat otherwise every water node triggers recalculation 01:58 hmmmm what i'm doing is separating biome logic from mapgen logic 01:59 hmmmm so noise_heat and noise_humidity get separated out into the biome manager 01:59 hmmmm except the biome manager is not made for concurrency, so each instance of the heat/humidity noises needs to be bound per-mapgen 02:00 hmmmm so there'd be a Biome... Provider object? that is a member of each mapgen 02:00 hmmmm looking for a better name than BiomeProvider 02:01 hmmmm anyway this BiomeThing would have its own copy of the noises for creating biomes, as well as a link to the biome manager 02:02 paramat i see 02:18 paramat so yes i do check IRC logs every hour or so, i prefer that to always being connected, IRC still makes me a little nervous and i can concentrate more when i know i won't be interupted 02:23 RealBadAngel guys, what about makin minimap not just an engine feature but a craftable item? 02:25 * est31 is a log checker too 02:25 est31 RealBadAngel, nice idea 02:25 est31 what about making it settable by lua? 02:25 est31 (like other hud elements) 02:26 RealBadAngel thats what im talkin about, my code could provide just texture for use in mods 02:26 est31 also inside formspec? 02:27 RealBadAngel i think thats possible 02:28 RealBadAngel lemme check something 02:34 RealBadAngel yea, i can do that 02:35 paramat hmmmm actually i think mapgen base terrain nodes should not be hardcoded to mapgen aliases but be flexible and definable per-realm, because various realms will need different stone nodes and generatebiomes only alters surface chunks and above 02:36 paramat on that subject i realise generatebiomes should act on the chunk layer below surface chunks too, because mgv5 oceans reach down a long way 02:37 paramat maybe even the 2 chunk layers below surface chunks 02:37 est31 what about this vacuum stuff 02:39 paramat i will try to add a vacuum node to MTGame 02:39 est31 but what is it about 02:39 est31 what does it differ from air? 02:39 * paramat suffocates 02:39 est31 lol 02:41 paramat to make use of MT's height we need stacked realms, as the next structure up in size from biomes. each realm will have ymin, ymax and have it's own set of biomes and base terrain nodes, including of course definable air 02:42 paramat here's my vacuum node https://github.com/paramat/moonrealm/blob/master/nodes.lua#L88 02:43 paramat then my spacesuit resets player breath to max every second or so via globalstep 02:46 paramat concerning the depth generatebiomes acts to, the condition for filler, heat, humidity noises in calculatenoise needs editing too 02:47 paramat craftable minimap is good, due to it's magical/cheating radar function it should have an expensive recipe 02:52 RealBadAngel i will just have to tweak texture source, to be able to pass texture names from lua without lookin for them on disk in the first place 02:53 RealBadAngel lets say if name starts with "!" it could skip searching for it and just accept the name 02:53 paramat okay mgv5 genbiomes needs to act down to y=-192 (2 chunks below surface chunk) mgv7 down to y=-112 (1 below surface chunk) ugh so much fixing to do 02:54 RealBadAngel this way i can generate "!minimap_image" on the fly and mods could use it, on hud, in formspecs or whatever 02:55 paramat to work with mapgens with deep oceans or custom noise params best enable down to y=-192 for everything 03:17 hmmmm i can totally identify with paramat. 03:17 hmmmm irc is a huge distraction. i blow away so much time talking to people 03:24 VanessaE it can be, but sometimes talking helps work out whatever it is you're trying to do - or it just gives your mind a break 03:26 hmmmm i take way too many breaks 03:26 hmmmm it's a sucky feeling 03:26 VanessaE I know what you mean. 05:35 est31 I guess 33% of all map data stored can be saved if we abandon per-mapblock id-name mapping 05:36 est31 perhaps more, perhaps less 05:36 est31 but roughly 05:38 est31 we can "spare" a block of 16^3 = 4096 ids 05:39 est31 so that when a map-global nameid mapping is full, we can use ids from that block instead 05:39 est31 (fall back to normal serialisation) 05:49 est31 ok perhaps 10-20% 07:03 hmmmm est31: thanks for at least taking a look at it :p 07:04 hmmmm I think a lot of people are scared to touch the current map format which has this extreme philosophy of containing exactly only one kind of data 07:06 est31 how do you mean that hmmmm? 07:07 hmmmm right now the map db ONLY contains position hashes -> serialized mapblocks 07:07 hmmmm and the serialized mapblock is a self-contained entity that can be swapped in or out of other map dbs 07:08 hmmmm that's a nice design, but like you said before, it must necessarily lead to redundancies 07:08 hmmmm by the very nature of context vs. no context 07:09 RealBadAngel VanessaE, those levers are COOL 07:09 est31 yea 07:09 VanessaE thanks 07:09 hmmmm data with no context has no dependencies and are self-explanitory, stateless, but they must somehow carry that same information (either implicitly or explicitly) needed to make sense of it 07:10 est31 yea 07:10 hmmmm stateful data, like you said, having a global nameid/content map, is more efficient since that context is shared across all 07:10 hmmmm statelessness is an ideal to strive toward but it's not realistic in most scenarios 07:11 est31 the second thing I wonder about is this old idea of not storing the data themselves, but a diff to mapgen, and mapgen parameters. 07:11 hmmmm yeah.. 07:11 hmmmm there are big issues with that 07:11 hmmmm it's so sensitive to quirks and everything lining up precisely between the server and the client 07:12 hmmmm believe me; I wanted to do the same 07:12 est31 I'm mostly targeting disk 07:13 RealBadAngel that would mean client and server running exactly the same version 07:13 est31 yea, we would need a way to simulate older versions for mapgen 07:14 hmmmm that'd be a nightmare 07:14 est31 yea 07:14 hmmmm emulating every single quirk 07:14 hmmmm I guess this would be doable if the mapgen were more-or-less an afterthought, as is the case with most other block games 07:14 est31 idea perhaps would be to modularize mapgen, and then just copy the old source 07:21 hmmmm mapgen changes waaay too often for that to be plausible :p 07:21 est31 every stable release we copy off 07:21 est31 for git versions, we store the data like the old way 07:22 hmmmm that's really complex you know 07:23 est31 yea :( 07:23 hmmmm i've been sticking to simpler designs for things lately 07:23 hmmmm the simpler the better 07:24 celeron55 the only way to make that happen would be to store the mapgen as some kind of a bytecode program in the world data... and compile it more efficiently than LuaJIT to be used to generate stuff 07:24 celeron55 which is kind of rocket science 07:25 hmmmm celeron 07:25 hmmmm i caught you 07:25 hmmmm now tell me why peer_ids aren't associated with a Player until it's attached to a PlayerSAO 07:25 hmmmm :/ 07:25 celeron55 i don't know 07:25 hmmmm I don't understand the reasoning behind it, and I guarantee that if it gets changed without me completely understanding why, it's going to break things in subtle and horrible ways 07:26 celeron55 i can guarantee it has changed quite a lot since i last touched it 07:26 hmmmm well okay :) 07:26 est31 yea thats an approach too celeron 07:27 hmmmm lol 07:27 hmmmm if we move all mapgens out to lua that'd be totally plausible 07:27 est31 (to the "ship mapgen with map" idea) 07:27 hmmmm now hold on 07:27 hmmmm just because it's technically doable doesn't mean we should do it 07:27 hmmmm how is what we currently bad? 07:28 hmmmm currently have bad* 07:28 celeron55 i'm not really proposing anyone would do that (except as an interesting experiment) 07:28 hmmmm maybe with buildat 07:28 est31 to optimize map size on disk 07:28 hmmmm and forfeit 2.5x the performance of a core mapgen 07:29 hmmmm --; 07:29 est31 buildat has a c++ compiler 07:29 hmmmm erm 07:30 hmmmm I said that because buildat is a true framework-based voxel thing 07:30 celeron55 ....eeehm, yeah, sure, load a world you downloaded from the internet so that parts of it are compiled to native code? 07:30 hmmmm it has scripting on both sides and is what minetest should be 07:30 est31 if it also uses git, it could be used to checkout the needed revision of the mapgen and compile it 07:30 hmmmm in *theory* 07:30 celeron55 that's a complete security disaster 07:30 est31 there are sandboxes for that 07:30 hmmmm buildat is also for highly experimental type things 07:31 hmmmm that would be the perfect playground for this sort of concept 07:31 celeron55 i don't think anyone has the resources to develop buildat though, it's a bit weird to push things there 07:31 celeron55 just stick with what works i guess 07:31 est31 the most efficient compression for a pseudorandom function's output is shipping the program coding the function together with the input params 07:32 hmmmm dunno 07:32 hmmmm it's the most efficient but also quite problematic 07:33 celeron55 people need more freedom than just a few noise functions 07:33 hmmmm if you want to pursue the idea, i'd suggest waiting until client side modding is here and mature 07:33 est31 lol 07:33 hmmmm :p 07:33 hmmmm like a year maybe 07:33 hmmmm or two 07:33 est31 you want that it never gets made :) 07:33 hmmmm hey I'm working my butt off 07:34 hmmmm I have a full time job as well btw 07:34 est31 was a joke dude 07:38 Calinou client-side modding is literally our “modding API” private joke 07:38 * Calinou looks at Mojang 07:38 hmmmm come on man 07:38 hmmmm I'm starting it right after I do this 07:46 hmmmm fwahh 07:47 hmmmm transformed this https://github.com/minetest/minetest/blob/master/src/mapgen_v7.cpp#L603 into this http://fpaste.org/223673/32107954/ 07:47 celeron55 i actually have a secret project somewhat related to that but i have worked on it only for one day so far and no, i won't tell more because i don't want any pressure on it 07:48 hmmmm celeron's got the right idea 07:48 hmmmm minetest used to be no pressure a long time ago 07:49 hmmmm just some odd finnish guy working on a cool game, people were pleased with whatever new cool thingie he came out with next 07:49 celeron55 just do stuff on your own if you feel like it and then publish it however you want; upstream will sort itself out when the time comes 07:52 est31 I'm just looking for ways to improve minetest 07:52 hmmmm i'll tell you how to improve minetest 07:52 hmmmm voxel area entities 07:53 hmmmm it's the biggest most coolest feature i'll never get around to 07:54 est31 how do you think should their physics be implemented? 07:54 hmmmm erm 07:54 hmmmm like a regular SAO 07:54 celeron55 deciding about physics is part of making them 07:54 est31 most likely we'll have to do it ourselves, dont we 07:54 celeron55 8) 07:54 hmmmm I'm not really sure what you mean by physics 07:54 hmmmm do you want them to break apart or something? 07:55 est31 no, only basic stuff 07:55 est31 like ships 07:55 est31 they should swin 07:55 est31 m* 07:55 hmmmm yeah hrmm 07:55 hmmmm there's a prerequisite 07:55 est31 and best that they stop when there's land 07:55 hmmmm active objects should have a 'buoyancy' attribute 07:55 hmmmm that's trivial to add, is it not?? 07:56 est31 ? 07:56 hmmmm it's a boolean, or maybe an integer 07:56 hmmmm if it's set, it won't go through liquid nodes 07:56 hmmmm fall 07:56 hmmmm i mean 07:56 hmmmm so it'll hit a shoreline and then just stop 07:57 celeron55 i'd actually suggest a kind of different approach to things than the "hype stuff up and never get it done" way some people do: assume you will fail, but try anyway 07:57 hmmmm right now, all active objects just fall through liquid nodes 07:57 RealBadAngel https://www.youtube.com/watch?feature=player_embedded&v=ZGYaQPIiq84 07:57 hmmmm so anyway buoyancy could be an integer 07:58 hmmmm this integer his how many nodes of water deep the active object will sink 07:58 hmmmm that's how I would personally handle the physics of ships :) 07:58 hmmmm but yeah, the primary idea here is that a group of nodes on the map get selected by some magic VAE wand 07:59 est31 I'll have to collect use cases 07:59 est31 but not now 07:59 est31 gtg 07:59 est31 bye 07:59 RealBadAngel ^^mc mod which allow to make voxel entities 07:59 hmmmm select a region, then tap the wand, and the group of nodes in the region will be transferred to another not-map part of memory, and the region it existed on the map will be replaced with air content 07:59 hmmmm so that region of nodes becomes its own mesh and its own server active object 08:00 hmmmm and it moves around and has the same physics as one, defined by mods that can move it or whatever 08:00 hmmmm you can set its velocity/acceleration/direction or whatever 08:00 hmmmm yes? no? 08:01 RealBadAngel have you watched that video? 08:01 hmmmm yeah i'm watching it 08:02 RealBadAngel kinda cool imho 08:02 hmmmm it seems like it's been hacked in 08:02 hmmmm there's also a voxel area entity mod for minetest too 08:02 hmmmm that's a big hack too 08:02 hmmmm it's like VAEs were never done officially and correctly 08:09 rubenwardy IRL, bounancy is based on mass and volume of the entity. If the body can displace enough water using its volume to counteract its mass, then it will float. 08:09 rubenwardy But I imagine you know that 08:10 rubenwardy Like, if 1/2 of its volume displacing water displaces water 08:10 rubenwardy water to the same mass, then it floats. But then again, Minetest isn't particularly realistic. 08:10 RealBadAngel i just found a dungeon flying around, kinda funny place 08:12 rubenwardy Also, once a body is fully submerged then it won't get any more upthrust force. So it won't float say 5 nodes under water if it can't float 1 node under water 08:12 rubenwardy But that assumes water density stays the same, which it mostly does in depths up to 50 m 08:12 RealBadAngel http://i.imgur.com/yO246IE.jpg 08:13 VanessaE two maps? 08:14 rubenwardy One's an item, I guess 08:14 RealBadAngel comparing original sized and scaled by irrlicht 08:14 rubenwardy from that screen shot, the white border looks pixelly 08:15 RealBadAngel its only 129x129 px 08:15 VanessaE ah 08:16 RealBadAngel but it works quite good, i mean HillPlaneMesh thing 08:16 RealBadAngel it autoscales everything no matter the screen port size 08:17 RealBadAngel it could be used to replace hud and could save us all those ratio calculations 08:17 RealBadAngel simply, with it you dont need to calculate anythin 08:21 RealBadAngel but back to the screenshot, its kinda funny place, top of the jungle, to find a dungeon, dont you think so? :) 08:23 VanessaE haha 08:29 rubenwardy Some survivial games might want to be able to do some sort of FOW 08:30 rubenwardy Like, only render places where you have been in Line of sight with 08:30 rubenwardy So you wouldn't see the dungeon unless you've been in it 09:16 rubenwardy What capitalisation for local variables? 09:16 rubenwardy local 09:16 rubenwardy * local_variable 09:17 rubenwardy code style says not localVariable, but nothing else 09:18 rubenwardy That was incredibly rude, hmmmm 09:18 rubenwardy http://dev.minetest.net/index.php?title=Code_style_guidelines&oldid=2693 09:19 rubenwardy "Don't use distracting and unnecessary amounts of object orientated abstraction. See Terasology and a certain enterprisey Java coder's conception of perlin noise as examples of what not to do." 09:19 rubenwardy where "certain enterprisey Java coder's conception of perlin noise" links to prestidigitator's PR for noise 09:22 technomancy all new abstractions must only be post-stidigitated. 09:23 rubenwardy What do you mean? 09:24 technomancy just a lame joke 09:26 technomancy "Avoid leading and/or trailing underscores. They're ugly and can be hard to see." huh, is there any convention then for unused arguments? 09:26 technomancy in most languages I've used a trailing underscore like "_player" means "this function is passed a player argument, but it's not used" 12:08 Zeno` ffs 12:08 Zeno` fedora DNS is fubar 12:53 Zeno` RealBadAngel, I got minetestserver to compile without irrlicht :D 12:54 Zeno` Only another 5 weeks and maybe irrlicht can be discarded altogether 12:54 Zeno` (dunno if that's good or bad) 13:41 Calinou it's not like Irrlicht is an exotic library 15:34 hmmmm lol 15:34 hmmmm rubywarden is a fun killer 15:34 hmmmm he edited the code style page 15:34 hmmmm alright, whatever, i'll leave it as-is this time. it has enough backlash. 15:38 sfan5 http://dev.minetest.net/index.php?title=Code_style_guidelines&diff=2990&oldid=2939 15:38 sfan5 how lame 15:40 VanessaE imho he's right. 15:40 VanessaE two are just stupid jokes, and one is an ad hominem attack 15:40 sfan5 how are stupid jokes rude? 15:40 VanessaE I'm not saying they are. 15:41 VanessaE but what he removed has no place in a core dev wiki. 15:41 sfan5 rubenwardy did 15:41 sfan5 and you said he's right 15:41 VanessaE he's right for removal I mean 15:41 VanessaE not necessarily for his edit summary :P 15:41 sfan5 also 15:41 sfan5 what about the link to terasology 15:41 sfan5 that text "attacks" them 15:41 sfan5 why was that not removed? 15:42 VanessaE ask ruben :P 15:42 VanessaE perhaps it should be changed to point to some page/site with deliberate examples. 15:43 sfan5 imo the code style guidelines are not a business document and doesn't need to be free from (stupid) jokes 15:43 sfan5 also by removing that he removed the only specific example 15:44 sfan5 nobody is going to look through the whole terasology repo to find what design patters are probably meant by the author of the style guidelines 15:44 VanessaE I agree with you on that. 15:45 hmmmm hey now I didn't intend for anything to be a joke 15:45 hmmmm just some snarky sarcasm 15:46 hmmmm apparently there are some people who think our dev wiki is a business document and needs to be completely clean from anything that might be considered 'rude' 15:46 hmmmm not just rubenwardy, there's someone else too 15:46 hmmmm if multiple people want it to be business-like, then fine 15:47 VanessaE I'd rather it *not* be business-like actually. 15:47 VanessaE because then it becomes a dry read that may even be hard to understand or follow. 15:47 hmmmm the prestidigitator reference was a nod to the fact that he wrote the code and full of those nonsensical design patterns bloated in exactly the way we don't want 15:48 hmmmm and he was so arrogant and bitter about it too! 15:48 hmmmm "you don't like my code because /you don't understand it/ 15:48 hmmmm many people forget that fact 15:48 VanessaE exactly my point - I don't like him, but to single him out in a public document like this is wrong. 15:49 hmmmm I also singled out terasology 15:49 hmmmm it's not intended to be an ad hominem attack. when I initially wrote that line, I thought it was a perfect example of what not to do here in minetest's code 15:49 hmmmm it just so happens that a single person was responsible for it 15:50 hmmmm I also single out Xorg and others if you read the entire page 15:50 VanessaE well, Xorg deserves it ;) 15:51 hmmmm the detrimental effect these individual coding styles and practices have on a project aren't immediately apparent 15:51 hmmmm showing a real world example of what happens when they're taken to the extreme, I reasoned, was good 15:52 sfan5 http://irc.minetest.ru/minetest-dev/2012-07-20#i_2381165 15:52 hmmmm someone will look at these rules and say "oh please, pshh..." but if they were to actually look at terasology and experience the crap themselves, "holy crap, where IS the code that actually does X in this mess? How many subdirectories and BlahProviderFactories are there??? When am I going to get to the point?" 15:52 VanessaE I think the point is the "certain enterprisey java coder's..." part. 15:52 VanessaE not necessarily the code that was linked to 15:52 hmmmm well 15:53 hmmmm he is actually more of a C# fan as I recall 15:53 hmmmm but the point is all of these negative things stem from the Java/C#/enterprise business application realm 15:54 VanessaE I think if it had just said something like "See [terasology link] and [presti's link] as examples..." it would have been fine 15:54 hmmmm where code as well as so-called "best practices" that have a detrimental impact in reality are sholved into the code in a cargo cult-like manner 15:55 hmmmm shoveled* 15:56 hmmmm so you don't like the wording 15:56 VanessaE well ruben didn't, anyway :) 15:56 VanessaE I can't speak for him though 15:56 hmmmm but he also didn't like the wording of other things 15:56 hmmmm different people have different ideas of how a document like that should be 15:56 hmmmm but everybody has the same amount of write access to the same document 15:57 hmmmm so it's going to end up being the version of whoever feels the most strongly about the topic 15:57 VanessaE I might have left the "you should feel horrible" joke in, but the other two just don't work 15:57 sfan5 you mean whoever has the most time to edit it 15:57 VanessaE (and I say that as someone who's used camelCase in her code before, years ago :P ) 15:57 hmmmm sfan5, if they felt that strong about the topic, they would *make* time to edit it 15:58 RealBadAngel https://github.com/RealBadAngel/minetest/tree/minimap3 anybody wanna try it? 15:59 hmmmm but fundamentally, do people agree with me on the backlash against those super-object-oriented design patterns and bloaty code? 15:59 hmmmm or is that style page an echo chamber of my own opinion?? 15:59 hmmmm I don't want it to be the latter 15:59 RealBadAngel i also dont like such style, youre not alone 15:59 est31 RealBadAngel, forgot to add minimap to the android build 16:00 twoelk can anyone really avoid the latter when writing? 16:00 RealBadAngel est31 i havent tried it on android yet 16:00 RealBadAngel somebody should do that 16:00 est31 just as a note 16:00 hmmmm I tried to gather consensus on the style before writing a page for it 16:01 hmmmm not to mention that the fact it IS a wiki page means that other people are able to shape it as well 16:01 VanessaE hmmmm: I agree, abstractly -- anything that makes code harder to read, follow, or maintain and doesn't provide an obvious benefit (that can't be done more simply) should be shunned outright 16:01 hmmmm that's all grossly subjective though 16:02 hmmmm i think most of us can agree that 50 layers of abstraction isn't helping though 16:02 hmmmm *cough* terasology 16:02 est31 yea too much abstraction hurts 16:03 VanessaE hmmmm: exactly my point 16:04 VanessaE you can abstract the shit out of some feature but if the top-most layer isn't any easier to work with than the bottom-most, and/or the result is slower, the abstraction is useless. 16:10 ElectronLibre RealBadAngel, I got a crash with your minimap (when switching to radar with minimum zoom) : http://pastebin.ubuntu.com/11247107/ 16:11 RealBadAngel ah, those unknown nodes 16:11 RealBadAngel forgot bout them 16:13 VanessaE ElectronLibre: I just gdb'd it: http://pastebin.com/ZEmX0LWB 16:13 VanessaE oh hell, you beat me to it. 16:13 TeTpaAka RealBadAngel, the placement of the minimap behaves weird. When minetest starts, the map is displayed at a fixed position and round. But when you change the dimensions of the window, it gets stretched. 16:14 TeTpaAka So the appearence of the minimap depends on the dimensions when minetest got started. 16:14 VanessaE I can confirm TeTpaAka's comment 16:17 VanessaE wb 16:17 VanessaE wb, check the log. 16:18 VanessaE s/wb,/rba/ 16:25 est31 RBA, perhaps when you switch modes, it should instantaneously render the map 16:26 est31 bad to have a delay in there 16:26 est31 check log RealBadAngel 16:27 RealBadAngel ok 16:27 kilbith i confirm (from 800*600 to fullscreen) : https://lut.im/5ZUulez4/JL6zbUyd 16:28 est31 getting a segfault when I part 16:28 RealBadAngel atm size of minimap depend on actual resolution, not just when game starts 16:29 est31 MinimapUpdateThread::getColorFromId at src/minimap.cpp:301 16:29 est31 inimapUpdateThread::getMap at src/minimap.cpp:142 16:29 est31 MinimapUpdateThread::Thread at minimap.cpp:69 16:29 est31 etc 16:31 RealBadAngel thats because of unknown nodes 16:31 RealBadAngel will fix that shortly 16:39 Krock I'm uncertain if I should include the minimap commit into my next dev build; woult it be the branch "minimap3"? 16:47 Krock hmmmm, are you serious? https://github.com/minetest/minetest/commit/43702ec#diff-372c9891c96fb39f64e8ed61e63d2cc3R20 it should be 16:49 Krock however, MSVC doesn't know 16:50 TeTpaAka There is another issue with the placement. When you start in a bigger resolution, the minimap isn't in the upper right corner, but slightly to the left. 16:50 sfan5 Krock: would be , this is strings.h however which is a non-standard extension 16:50 sfan5 s/extension/addition/ 16:52 TeTpaAka http://i.imgur.com/MSWWv6b.png 17:07 rubenwardy "a certain enterprisey Java coder's conception of perlin noise" is rude and offensive, which is what I was talking about 17:08 rubenwardy terasology is an entire project, and the attack isn't so personal, which is why I didn't remove it. 17:10 sfan5 rubenwardy: what about the rest? 17:11 rubenwardy It's just snobbish and unnecessary 17:12 rubenwardy I agree that the over abstraction and OOPness is bad 17:13 RealBadAngel ok, ive fixed crashes with unknown nodes 17:13 rubenwardy It's this sort of thing that puts developers off this project. It wasn't enough for hmmmm to just say no, this uses too many factories to fit into Minetest, he instead makes a sour comment in the code style shaming him. 17:20 sfan5 rubenwardy: people are put off by two phrases that could sounds slightly rude? 17:22 rubenwardy Those were just unnecessary insults, not really rude. If one of your languages was Java, and you read that, you get the impression that the dev community is snobbish and would be no fun to work with. 17:27 celeron55 it's quite a balancing act between people that are too rude and people who are too liberal and i don't even pretend to be getting it right 17:28 celeron55 i think i mostly approve of rubenwardy's changes altough the BlahFactory/BlahProvider/BlahSource -> factories change kind of loses information 17:29 rubenwardy the "you should feel" isn't so bad, and can be readded if you feel it emphasises it enough. 17:30 rubenwardy What should be used for local variables? one_two ? 17:30 celeron55 yes, lowercase and underscores 17:53 hmmmm whoops 17:53 hmmmm sorry that should be string.h 17:53 hmmmm my BSD is showing 17:54 hmmmm rubenwardy, I don't see how that text can be "rude and offensive" 17:54 rubenwardy You're publically shaming him 17:54 hmmmm this self censorship is a slippery slope 17:54 hmmmm no I'm not 17:54 hmmmm is somebody who works primarily with Java something to be shameful about? 17:56 rubenwardy It seems that it is, according to your wording 17:56 hmmmm you're interpreting it wrong then 17:57 hmmmm I would highly prefer for minetest to not become infected with political correctness 17:57 hmmmm I don't want to need to worry about how everything I say comes off to people 17:58 Calinou Java is a fine language that has its place in the modern world 17:58 Calinou languages don't die like you want to, it's the real life 17:58 Calinou same goes for SQL, C# and such 17:59 hmmmm sorry YOU are offended by that, but most people are not. if you begin catering to fringe groups through censorship, where does it end? 18:00 rubenwardy Slippery slopes is the first logical fallacy 18:00 hmmmm it's not a logical fallacy 18:00 hmmmm induction is a logical tool that everybody uses 18:01 hmmmm what the logical fallacy is in slippery slope is when somebody claims a slippery slope with insufficient evidence 18:04 rubenwardy It is just sour shaming, and bad people skills 18:05 hmmmm you make it sound like I'm shaming and criticizing this person 18:05 hmmmm their code is fantastic, done in their way that has many disadvantages 18:06 hmmmm i want to present that code as an example of what not to do because examples are much more illustrative than words. somebody can click on the link, see the actual source, and gain an intuitive understanding of why that methodology is bad 18:06 kilbith RealBadAngel, does the radar mode can be auto-activated in caves ? 18:07 rubenwardy It would be less bad if it was anonymous 18:10 hmmmm and for what it's worth, 'shaming' a project can easily be just as bad as 'shaming' a certain person in particular 18:10 hmmmm pre-2012 or whenever, celeron worked on minetest himself 18:11 hmmmm so insulting minetest means insulting celeron 18:11 hmmmm same thing with terasology. the vast majority of it came from a single person 18:11 sfan5 terasology is an entire project, and the attack isn't so personal, which is why I didn't remove it. 18:23 hmmmm rubenwardy is our new HR person 18:26 celeron55 i actually like reading all kinds of criticism about minetest though, especially if someone has found something worth insulting :P 18:28 rubenwardy Criticism is good. 18:30 RealBadAngel kilbith, propably could be, but i have no idea on how to trigger it 18:48 hmmmm rubenwardy, you should add a trigger warning to that page 18:49 rubenwardy Such as "don't name names or use someone's PR as an example of 'what not to do', as it may offend them"? 18:50 hmmmm your face offends me. can you please put a paper bag over it 18:50 hmmmm :) 18:50 hmmmm anything can possibly offend anybody 18:50 hmmmm stop making assumptions 19:21 sofar hmmmm: that offends me ;^) 19:21 sofar it's hard to have a deep discussion. Just look at the issue I posted :/ 19:22 sofar frankly I didn't help, but some people have a hard time not screaming "but listen to me too" even if they don't add to the discussion 19:24 sofar I best give up... I'm not improving the discussion and the damn thing is changeable through a server setting anyway 19:39 hmmmm what do you mean? which discussion? 19:46 est31 sofar: server setting? I can't follow from here, is this still about rubenwardy editing the wiki? 19:47 est31 ah I guess the "disable physics in mid air" thing 19:49 est31 RealBadAngel, thanks for that youtube clip 19:49 RealBadAngel bout voxel area entities? 19:49 sofar voxel area entities? 19:50 sofar that sounds ... like a lot of potential 19:50 est31 yea 19:51 RealBadAngel i liked trains made with it 19:51 RealBadAngel quite cool 19:55 est31 yea