Time Nick Message 05:47 VanessaE celeron55: this may be more to your liking: https://github.com/celeron55/minetest_game/pull/64 07:27 celeron57 mese should have no ingots 07:29 celeron57 mese can't be smelted in any way, it's melting point is so high you can't get there in the game (except maybe with a nuclear bomb or something) 07:30 celeron57 when you make a mese pick, you just use three mese crystals; let's say they will form a pick that way because the crystals like forming into picks 07:32 celeron57 i'd say a single crystal put onto the crafting grid should make crystal pieces and general stuff (that does not require the expensiveness of a single crystal) should use them 07:33 celeron57 or maybe mese smelt in a furnace would break into pieces 07:48 yunfan celeron57: i'd like the idea 07:49 yunfan all metal tools should could be smelt back to the original masterial by furnace 11:29 celeron57 hmm, interesting 11:31 celeron57 i just started minetest 0.3.1 (the one shipped by debian) as a quick udp network test, and could kind of feel the game in it 11:31 celeron57 because i know it contains mobs 8) 11:34 celeron57 and spawned in a jungle 13:09 thexyz what's the good way of implementing something like this? https://github.com/minetest/minetest/commit/8a97505b870d5d710ddeafcdf08fd18aa5f885c1 13:10 thexyz should i make separate thread for it? 13:16 celeron56 i guess there is no need for threads if it's done at connect-time 13:17 celeron56 (thread-safety can be a real bitch and i don't even want to start shouting at people doing it wrong and then having them not even understand me) 13:20 thexyz the problem is that everything freezes 13:22 celeron56 and? 13:22 thexyz and I don't know other way to fix it 13:22 thexyz is it fine? 13:22 PilzAdam the "media" stays at 0% 13:22 thexyz that's what I meant 13:26 celeron56 hmm 13:26 celeron56 that is true 13:28 celeron56 by the way, didn't you remove CE_TEXTURES_UPDATED for the case of receiving the stuff the old way? 13:29 celeron56 that isn't right 13:30 celeron56 anyway, yes, there could be a thread for that 13:31 thexyz i didn't remove anything, should i? 13:31 celeron56 you moved it to be only done if the curl way is used 8) 13:31 celeron56 as far as i can tell from the messed up diff 13:32 thexyz oh 13:32 thexyz seems so 13:33 celeron56 also, remote_media would be better called http_media 13:33 celeron56 because that is what it is 13:33 celeron56 or... ehm 13:34 thexyz well, curl also supports ftp, https, etc.. 13:34 celeron56 but it's not like the current media wasn't remote 13:34 thexyz it's remote from minetestserver 13:35 thexyz the name is weird though 13:35 celeron56 external might be better, but still odd 13:36 thexyz so, the new thread should populate some list with resource name and its data and then client in step() should do loadMedia, correct? 13:40 celeron56 feed the list of stuff to the thread in TOCLIENT_ANNOUNCE_MEDIA, start the thread, poll for results in... i guess step() (that is, call loadMedia and handle m_media_receive_progress, and set m_media_received = true and stop the thread when all is done) 13:40 celeron56 (or, well, the thread should stop itself of course, or go into an idle state) 13:41 thexyz ok 14:53 thexyz celeron56: https://github.com/minetest/minetest/commit/89ab66763bd68170460df9b758882c95c81be4f2 16:38 VanessaE celeron55_ / celeron56 : Done per your suggestion. 16:38 VanessaE (see pull request #64) 16:38 celeron55_ hmm 16:39 celeron55_ how about making mese blocks from 9 crystal fragments? 16:39 celeron55_ 9 crystals is kind of... much? not? 8) 16:40 thexyz celeron55_: did you see my message? 16:40 VanessaE no 16:40 VanessaE that's too cheap. 16:40 thexyz https://github.com/minetest/minetest/commit/89ab66763bd68170460df9b758882c95c81be4f2 16:40 VanessaE that would be the equivalent of making it out of 3 whole Crystals which is slightly cheaper than a pickaxe 16:40 VanessaE (which needs sticks also) 16:42 VanessaE celeron55_: remember I'm trying to aim for balance between the behavior of mese and how mods use it, and what really should be now. This is getting pretty damn close imho :-) 16:43 celeron55_ which brings me to the fact that the mese crystal should be named default:mese 16:43 celeron55_ and PilzAdam's two first points 16:44 celeron55_ or is there a particular reason to make mods that require the previous single mese block to require the new very expensive block? 16:46 darkrose it's about not breaking maps, which would happen if all the mese in existing maps suddenly turned to crystals 16:47 VanessaE simple: 16:47 VanessaE old mods should *not* use the mese block. 16:48 VanessaE they should use mese crystals or mese crystal fragments 16:48 VanessaE the block is kept as decorative, which is how people use it in practice when they aren't crafting with it. 16:48 VanessaE crystals should *not* be named default:mese at all, and PilzAdam's ideas suck :-) 16:48 celeron55_ "old mods should not use the mese block" <- ehm... that is the only mese the old mods have had available 16:49 VanessaE nononononononon 16:49 VanessaE that isn't what they used, technically 16:49 VanessaE they used "mese". 16:49 VanessaE which was just whatever you put in there, right? 16:49 VanessaE so now, they use "mese crystal" instead. 16:49 VanessaE or they shouldm 16:49 celeron55_ hmm, i see default:mese is now the ore 16:49 VanessaE yes. 16:49 VanessaE or rather, it's a bunch of crystals embedded in stone 16:50 VanessaE which is more or less how you would find them in practice. 16:50 VanessaE so this way, old maps don't break 16:50 VanessaE and that alias I had before isn't needed anymore 16:50 VanessaE breaking old maps is BAD, mmkay? :-) 16:50 celeron55_ default:mese should now have node_sound_stone_defaults 16:51 VanessaE I'll leave it to you to change the sounds, I don't know how those work 16:51 celeron55_ and default:meseblock too 16:51 VanessaE (never messed with them - that's why most of homedecor objects sound like leaves or wood :D ) 16:51 celeron55_ just change the line, how hard can it be? 16:51 VanessaE but I do agree 16:51 VanessaE ok, I'll change it. 16:51 VanessaE sec. 16:51 celeron55_ the two lines 16:52 celeron55_ then there is PilzAdam's second point, which should be considered very carefully 16:53 celeron55_ "default_stone.png^default_mese.png" is simply wrong 16:53 celeron55_ it must be "default_stone.png^default_mineral_mese.png" or what ever the convention is; that way texture packs won't make it look like a mese block that it isn't 16:54 VanessaE gotchya. 16:55 VanessaE hrm 16:55 celeron55_ but the mese block shouldn't have default_mese.png as the texture (like it now doesn't), because naming conventions are good and texture packs can just supply it doubly if they want to support multiple versions, and falling back to the default one on old packs is fine 16:55 celeron55_ BUT, default:meseblock should not have default_mese_block.png 16:55 celeron55_ either meseblock or mese_block; is there a convention for this? 16:56 celeron55_ hell, steel block is made that way 16:56 PilzAdam coal_lump 16:56 VanessaE it seems materialblock is the convention. 16:56 VanessaE actually strike that 16:56 celeron55_ "default:steelblock" -> default_steel_block.png 8D 16:56 celeron55_ that is full of shit 16:56 Calinou you should change it :P 16:56 VanessaE looking at my collection of mods, they seem to be more or less evenly divided between XXXblock and XXX_block 16:56 PilzAdam and the legacy mod grows and grows... 16:56 Calinou this trolls people who use /give since 2011 16:58 celeron55_ i wonder if steelblock or steel_block is the expected name 16:58 VanessaE tiles = {"default_steel_block.png"}, 16:58 Calinou steel_block probably 16:58 VanessaE that's what we have now. 16:58 VanessaE but, 16:58 VanessaE minetest.register_node("default:steelblock", { 16:58 celeron55_ given that there are "default:steel_ingot", "default:clay_brick" and the like, it should be default:steel_block 16:58 Calinou else steel_ingot would be named steelingot 16:58 thexyz >naming conventions are good 16:58 Calinou thexyz: GNOME developers agree! 16:58 VanessaE so it's without the underscore in the node name, but has an underscore in the texture file. 16:59 darkrose rename it to block_steel just to confuse people 16:59 thexyz lua api agrees too 16:59 Calinou accidental ctrl+w press 16:59 VanessaE now about default_stone.png^default_mese.png <--- default_mineral_mese.png is wrong too. 16:59 celeron55_ minetest is full of things that completely inverses current ways of doing things 16:59 VanessaE mese crystals in stone isn't a mineral, to name it that way is wrong 17:00 celeron55_ VanessaE: mineral is close enough 17:00 darkrose default_crystal_mese.png 17:00 VanessaE meh 17:00 VanessaE ok 17:00 celeron55_ we're programming here, not writing english dictionaries 17:00 PilzAdam VanessaE, naming conventions are more important than logic 17:00 VanessaE darkrose: there's already default_mese_crystal.png for the dropped crystal object :-) 17:00 VanessaE I'll change it to default_mineral_mese.png then 17:00 PilzAdam VanessaE, btw: the textures are ugly 17:01 VanessaE PilzAdam: they're better than what we had before. 17:01 darkrose make mese purple! 17:01 PilzAdam but not good enough 17:01 PilzAdam the old mese was so strange that it was funny 17:01 celeron55_ anyway, it should be default:mese_block, and default:steelblock should be renamed (in an another commit) default:steel_block and an appropriate alias added to minetest_game/legacy 17:01 VanessaE darkrose: noooooooo! 17:01 celeron55_ i hope not many mods use the steel block for anything 17:01 celeron55_ or, more like, guess 17:02 VanessaE celeron55_: ok, I'll make it mese_block then 17:02 PilzAdam celeron55_, we will add an alias to legacy so other mods can still use steelblock 17:02 darkrose eh, modders can just sed the change... it's breaking maps that's problematic 17:02 celeron55_ PilzAdam: it doesn't work in that direction in every place 17:03 celeron55_ darkrose: map loading takes aliases into account 17:03 celeron55_ and inventory loading 17:03 VanessaE darkrose: exactly, and I refuse to break old maps. 17:03 celeron55_ everything else is somewhat undefined 17:09 VanessaE celeron55_: how does this look? 17:09 VanessaE https://github.com/celeron55/minetest_game/pull/65 17:10 VanessaE (I've been re-cloning/re-adding changes to keep them condensed into one commit, since I'm not familiar with rebasing) 17:11 PilzAdam you can craft default:mese? 17:11 PilzAdam you cant craft the iron and coal in stone 17:11 VanessaE PilzAdam: a workaround for old mods. 17:11 celeron55_ now the only problem is the textures 8) 17:11 VanessaE PilzAdam: so that people can still use them until they're updated. 17:11 VanessaE celeron55_: hey now, I think the textures look good thank you :-) 17:12 VanessaE besides, it was either this or go photorealistic ;) 17:12 celeron55_ there should be a comment above the default:mese recipe 17:12 celeron55_ saying why it's there 17:13 VanessaE *cries* 17:13 PilzAdam what do you do with the fragments? 17:13 VanessaE your pull request log is gonna hit 100+ before this it done with :D 17:13 darkrose 9 crystals = 1 block, dig the block = get 1 crystal back 17:14 VanessaE PilzAdam: those are to be used by mods that need mese but don't genuinely need the full power of a mese crystal 17:14 celeron55_ fragments are good, no need to discuss about them! 17:14 darkrose oh, no ignore me 17:15 PilzAdam the fragment looks like a carrot 17:15 celeron55_ i thought it was a pen 17:15 VanessaE I've never seen a bright yellow carrot before :-) 17:15 celeron55_ we need a good pixel artist here, where's cisoun when you need thim? 8) 17:15 celeron55_ -t 17:15 PilzAdam rename the description of the fragment to Mese Carrot, eastereggs ftw 17:16 Calinou we're 4 horrible pixel artists! let's make a better texture 17:16 darkrose should be purple, that'd solve the carrot problem 17:16 Calinou PilzAdam: "fragment"... let's rename it to "NTFS Partition" 17:16 VanessaE darkrose: purple? no, it has to be yellow - for the sake of nostalgia :-) 17:16 celeron55_ if you write on paper with the mese pen, you get the MESEFS Specification and you can use it on a mesecon hard drive 17:17 VanessaE hah! 17:17 PilzAdam VanessaE, is there any reason to spread the definitons over the whole init.lua? 17:17 VanessaE PilzAdam: I was trying to keep them more or less grouped with related parts of init.lua 17:17 VanessaE (except mese block got moved before and no longed needs to be) 17:18 PilzAdam crystal and fragment could be at the same position 17:19 celeron55_ the next changelog is going to contain the line "Absolutely perfected MESE Lua definitions" 17:20 VanessaE *sigh* :-) 17:20 VanessaE celeron55_: just commit the damn thing and make your texture changes then :-) 17:20 celeron55_ (by VanessaE, PilzAdam, celeron55, darkrose, Calinou and 10 other contributors) 17:20 VanessaE lol 17:20 thexyz i feel ignored, everybody talks about this mese stuff instead of curl media fetch, which really improves something 17:21 VanessaE mese is easy to fix :-) 17:21 VanessaE as long as celeron55 doesn't make me lose all my hair first! 17:21 celeron55_ thexyz: it's on a tab of my browser, right next to more important things like mese and internet kittens 17:21 VanessaE :D 17:21 thexyz sure 17:22 PilzAdam Mod idea: old_mese 17:24 celeron55_ thexyz: one thing i saw earlier is that you didn't update clientserver.h with the additional parameter of the... announcement or something 17:24 celeron55_ it's our only reasonable protocol summary and should be correct 8) 17:25 thexyz ok, will do 17:28 Calinou talking about announcement, why not remake the MOTD stuff in lua and allow multi-line MOTDs 17:28 Calinou it's just a message that appears when connecting... very easy to do actually :p 17:29 PilzAdam how would you save that in minetest.conf? 17:29 celeron55_ thexyz: i have a TCP socket class hanging around; i guess i'll commit it upstream so somebody can implement a very simple media server with it to the minetest server 17:30 thexyz i don't think this could be useful, there're already many web http servers 17:30 VanessaE celeron55_: please push that commit so I can relax :-) 17:30 thexyz the whole point of this was to reduce server load 17:30 Calinou PilzAdam: several strings with ""? 17:30 thexyz *minetestserver 17:30 Calinou separated with , 17:30 celeron55_ but it also gets rid of the slowness of the UDP network stack of minetest 17:31 celeron55_ so there definitely should be an out-of-the-box solution for getting the speed benefit 17:31 celeron55_ it's just a small additional thread anyway 17:32 celeron55_ it would be totally insane to not implement it 17:34 thexyz well, i personally don't really want to do it; anything else about this implementation? 17:35 celeron55_ you don't have to 8) 17:40 celeron55_ do you think having 8 threads has any benefit over having, like, 2? 17:41 * VanessaE looks at her 6-core processor... 17:41 VanessaE ;) 17:41 celeron55_ ...these are i/o threads, you silly 17:42 * VanessaE looks at her SSD also... ;-) 17:42 * PilzAdam looks at his 8 core processor 17:42 celeron55_ VanessaE: they grab stuff over the network 17:42 VanessaE celeron55_: I'm just kidding, jeez :-) 17:42 VanessaE ok, time to head out. 17:43 VanessaE bbl 17:43 celeron55_ i guess the 8 threads are kind of reasonable when the same http connection isn't reused 17:44 thexyz celeron55_: nah, just a random number 17:44 thexyz it is, of course, has benefits over having two 17:49 thexyz 8 threads — 12 seconds, 2 threads — 30 seconds (using minetest_game + ambience) 17:49 celeron55_ what server? 17:49 celeron55_ http, that is 17:50 thexyz nginx/1.2.3, minetest.ru 17:50 celeron55_ well, whatever; it's because of the overhead of establishing tcp connections compared to file sizes - an another way of fixing it would be to reuse the http connection 17:50 celeron55_ which curl probably can do too 17:51 celeron55_ but i guess that doesn't matter too much 17:55 celeron55_ hmm 17:55 celeron55_ one thing does come to mind 17:56 thexyz https://github.com/minetest/minetest/commit/486b40a363716fd0c6c662a3c29030d56c42eaa3 17:56 celeron55_ it would be useful if it could download everything from some place and fall back to the classic download (or an another location?) for those that are not found 17:57 celeron55_ hmm, that wouldn't actually be very hard 17:58 celeron55_ just have a list of failed downloads in the threads, combine them into core::list and send a TOSERVER_REQUEST_MEDIA instead of TOSERVER_RECEIVED_MEDIA 17:59 celeron55_ there's potential for much awesomeness in this 8) 17:59 thexyz ok 17:59 celeron55_ don't do that now 17:59 celeron55_ unless you want 18:00 thexyz why not? 18:00 celeron55_ go ahead then :P 18:00 celeron55_ no reason other than laziness 18:02 celeron55_ (there are more ways to extend this too, like sending a list of media locations that would be tried in order (that would allow having a fast centralized repo for stuff and still-quite-fast one for stuff that isn't there); probably useful for some configurations) 18:03 celeron55_ ...that wouldn't be hard either, actually 18:04 celeron55_ the only nontriviality is that the configuration file format does not natively support lists :P 18:05 hmmmm std::list Settings::getList("blah") 18:05 thexyz that also wouldn't be too useful ATM 18:05 hmmmm parses a comma separated value thing 18:05 hmmmm "a", "b","c","d" 18:05 hmmmm what's wrong with that 18:06 celeron55_ that should allow something more like: a, "b",foo bar, "d" 18:06 celeron55_ but yeah, not hard 18:06 celeron55_ just one thing more to be implemented 18:07 hmmmm should it return a copy of a std::list it creates? 18:08 celeron55_ well, copies are fine, it's not like a list of things would be requested at a high interval 18:09 hmmmm i am pretty sure you have ->getStuff() inside of loops 18:09 hmmmm i dunno, this is just me, but i think g_settings should be made up of actual variables that are retreived upon startup, once, just once 18:10 celeron55_ settings are always read to variables for tight loops 18:10 hmmmm tight loops, yes, but in general, not the case from what i've seen 18:10 celeron55_ hmmmm: it's very useful to change them during runtime and development is much easier when it's completely dynamic 18:11 celeron55_ you'll have very hard time proving Settings would consume any considerable CPU anywhere 18:12 hmmmm it kind of rustles my jimmies when i see something like that, though 18:12 hmmmm can't help it 18:12 celeron55_ you should code more in dynamic languages 8) 18:12 celeron55_ a good few thousand lines of python and javascript should make you reasonable 8D 18:12 celeron55_ few ten thousand* 18:12 hmmmm i try to avoid anything like that if possible 18:13 celeron55_ that wasn't hard to guess :-) 18:13 hmmmm in my code i put a lot of thought into ways of not duplicating work 18:14 celeron55_ duplicating, in what way? 18:14 hmmmm dunno, i guess when a bit of code calculates the same exact result as it did previously in most cases 18:15 hmmmm instead of making the case where it has a different result the exception 18:15 celeron55_ some people consider the worst duplication being that when you write the same stuff by hand in many places 18:16 hmmmm well, duplicating source code is bad too, it is the sure mark of a novice 18:16 hmmmm the golden rule is "don't repeat yourself" 18:16 celeron55_ anyway, i generally just draw a line at 90% of the computation time of a program and anything that goes under it is optimized enough; no need to optimize them in any other way than making them optimized for writing code 18:19 hmmmm this happens with bigger applications all the time 18:19 hmmmm they keep adding small, slow bits to the program that are only, say, 40% slower than another 'optimal' alternative 18:19 hmmmm and then they keep piling up and piling up and all of a sudden the whole thing is 40% slower 18:19 celeron55_ of course sometimes when you go and optimize the one using 50% of time, some of the 10% will become more than 10% and then they need to be reconsidered once again 18:19 hmmmm and you can't fix it either because it's too late because the slowness is absolutely everywhere 18:20 celeron55_ well, there needs to be some fixed standard of "good enough" 18:20 hmmmm of course 18:21 hmmmm i get stuck on details like this all the time and i hardly ever finish my own projects 18:21 celeron55_ better of which is wasted work and worse of which is a cpu bottleneck 18:21 hmmmm (or i get bored) 18:21 sema4 don't you know the two things about optimization? 1) never optimize 2) optimize only when you have to :) 18:21 hmmmm that's absolutely retarded 18:22 celeron55_ i know, and it pisses off people like hmmm 8) 18:22 hmmmm always optimize, when you can 18:22 Calinou sema4: buy us a xeon then :P 18:22 hmmmm it's usually not hard to optimize 18:22 hmmmm just don't do stupid stuff 18:22 celeron55_ "don't do stupid stuff" is a good rule 18:22 hmmmm you guys make it sound like "oh, well optimizing, gonna have to sit down for an hour and figure out how to make minute improvements" 18:23 hmmmm i think i can sum my point up this way: 18:23 celeron55_ sometimes people have come here and told something has to be optimized that doesn't make any sense at all 18:24 sema4 well i guess it's a difference of always writing optimial code by default vs eeking out extra cycles in a chunk of code 18:24 hmmmm write good code the first time and you won't have to 'optimize' 18:26 sema4 yeah i think "the two things" adage depends on what you just said, hmmmm 18:26 * sema4 shrugs 18:27 hmmmm i'll admit that when i was younger i used to do stupid things like initialize variables by doing int i = i^i;, which would fall under your first of the "two things" 18:27 hmmmm if you frame it in that context, i guess it makes more sense 18:28 celeron55_ there is no silver bullet, but rather a rather finite list of things to get right 18:29 celeron55_ to me, interfaces are always the most important thing 18:29 celeron55_ as long as an interface is good, you can always rewrite either side of it 18:43 thexyz celeron55_: https://github.com/minetest/minetest/commit/d3325834bb2346d991439d56dd3a309174d1920d 19:54 thexyz celeron55_: https://github.com/celeron55/minetest/pull/354 21:14 VanessaE back... 22:18 PilzAdam celeron55_, you deleted my commit that all dropped items are 3D; Minecraft has added this in the latest snapshot: http://youtu.be/beCgkWkULrA?t=7m17s 22:19 hmmmm you really want to extrude all items like that!? 22:19 hmmmm that can be really slow if there are lots of transparent pixels 22:19 hmmmm think of how many verticies you'd have to define 22:20 celeron55_ PilzAdam: i saw that today; this makes me want to never ever do that 23:09 cy1 celeron55_: nice