Time Nick Message 00:00 dsimon it's a little like http last-modified headers 00:00 dsimon well, or maybe exactly like those :-) 00:00 hmmmm did you ever consider a timestamp? 00:00 dsimon i thought about it, but was worried about two changes occuring during the same ms 00:01 dsimon such a change would be invisible to a client which was unlucky enough to get only the first of those two changes 00:01 hmmmm ah true 00:01 dsimon i suppose i could use a finer-definition timer, but aiui that becomes kind of a portability problem 00:01 hmmmm yes 00:01 dsimon and anyways it wouldn't solve the issue, just make it less probable 00:02 hmmmm so the version number should be okay then 00:02 dsimon yah 00:02 dsimon i don't serialize that number 00:02 dsimon so the on-disk format stays the same 00:02 dsimon i considered that serializing it might actually be handy 00:02 dsimon so that clients can keep disk caches of data like web browsers do 00:02 dsimon and those caches would stay valid through server restarts 00:03 dsimon but i had some trouble figuring out the serialization code so i skipped it for now 00:03 VanessaE +1 for caching the map 00:03 hmmmm yeah, that's what some people wanted 00:03 hmmmm client-side map caching is sort of big though 00:03 dsimon as in disk space? 00:03 hmmmm big as in disk space and a big change in how things work 00:04 dsimon hm 00:04 dsimon i think mapblocks should compress pretty well 00:04 hmmmm another big change we've (well at least i) have been thinking of is only storing the differences of the blocks 00:04 dsimon most natural blocks have only a few block types 00:04 dsimon ah, that could be very cool 00:04 dsimon because you could also use the same mechanism to only _transmit_ the differences to the client 00:04 hmmmm it's completely viable now that map generation is near instantaneous 00:04 hmmmm but again, this would be huge 00:05 dsimon wow, it is? 00:05 dsimon that's awesome 00:05 VanessaE hmmmm: which, after realizing 80% of my map file was the rollback log, isn't quite as necessary. but then again redcrab would disagree 00:05 dsimon i remember mapgen being the biggest problem before 00:05 VanessaE (his map is almost 6GB and is running into mapgen corruption) 00:05 dsimon hm, also 00:05 dsimon hmm 00:05 hmmmm yes 00:05 hmmmm mapgen is being improved a bunch 00:05 hmmmm also the EmergeManager is next 00:05 dsimon ideally, we could transmit deltas between one state of a block and the next 00:06 dsimon so i.e. if i add a brick to my castle, it only transmits that one change 00:06 hmmmm well it does that already 00:06 dsimon ah, yeah 00:06 hmmmm with the add_node packet 00:06 dsimon as a specific optimization 00:06 dsimon oh, that reminds me 00:06 dsimon that's the biggest thing i need to fix with my branch 00:06 dsimon i need to add that stuff into my versioning system 00:06 hmmmm there's a real lot that's been changed 00:06 dsimon so that when client gets add_node, it's like "with the addition of this node, the block version is now X" 00:07 hmmmm i'd personally suggest getting a new version and placing your changes in there by hand 00:07 dsimon furthermore that also needs to include the _previous_ version so that the client doesn't fall out of sync 00:07 hmmmm yeah 00:07 dsimon ah, you mean remerging from master? 00:07 dsimon yeah, that'll definitely be necessary 00:32 Exio the main point of it is like the name says: the client requests what blocks it wants, instead of the server providing the blocks that it predicts the client needs 00:32 Exio is that real? 00:32 dsimon yes 00:32 dsimon as it is in master, there's a big chunk of code dedicated to seeing where the client is looking and figuring out which blocks are visible 00:33 dsimon but the client is already doing a similar calculation with its occlusion culling code, and more accurately too since the client knows things like its own fov (which the server must guess) 00:34 dsimon in my branch the client notes which blocks it wants to draw (whether or not it actually has them) and uses that to figure out what blocks to request from the server 00:34 Exio only the blocks? not the "mapblocks"? 00:34 dsimon i mean mapblocks 00:34 Exio oh 00:35 dsimon the terminology is confusing, eh? :-) 00:35 dsimon as minecraft is to minetest, so block is to node, and so chunk is to mapblock 04:02 hmmmm K 04:02 hmmmm http://dev.minetest.net/Development_troubleshooting 04:03 hmmmm I just finished writing that page, if anybody would like to contribute, please do. There's obviously a lot more 05:08 dsimon okay, night y'all 12:19 Taoki PilzAdam: Regarding this change https://github.com/celeron55/minetest_game/pull/100 Don't rush to merge that yet. x is better than b3d in some ways, and best of all it's supported natively by Blender (whereas for b3d I still couldn't find a good exporter). x has issues that will be fixed in Irrlicht 1.9 I believe. 12:20 Taoki But switching to b3d is more of an experiment if anything, and IMO it shouldn't be considered now. Especially until we have a stable, easy and known way to export models to b3d from Blender, so this doesn't risk making it hard to maintain meshes 12:21 Taoki x is also a text format, which is usually better than binary ones. So I tend to prefer it for that reason too. At the same time it's a bit larger, so that's the downside. That doesn't matter as much though 12:22 Exio but, until it is in memory it doesn't matter, no? (the format, or the size or anything, just having a x or a b3d doesn't matter until it is loaded) 12:24 Taoki I think so. Don't know for sure but I think 17:31 F00 I've found what seems to be a server DoS vulnerability 17:31 F00 More often than not, when a falling block (gravel, sand, etc.) falls out of the map, a short while later the server will become unresponsive 17:32 F00 (Accidentally took out Redcrab's server for a day this way) 17:32 F00 Testing locally it seems to cause runaway CPU usage 17:33 hmmmm huh? fall out of the map? 17:33 Calinou what doesn't increase server CPU usage? 17:34 PilzAdam entities keep duplicating when they are out of the maplimit 17:36 F00 Wouldn't that lead to increased RAM usage primarily? 17:38 F00 [off] This seems serious to me because the anti-cheat doesn't prevent downward movement, i.e. anybody with a teensy bit of C++ knowledge and a compiler can easily teleport to the bottom of the map, and then hang the server 17:40 hmmmm ah, you have to get to -31000 17:41 hmmmm well it's great to know that people are actively trying to break things instead of just playing the damn game 17:42 VanessaE heh, and lord knows *I* am good at breaking shit :D 17:42 F00 Didn't actually mean to, I was building on the bottom of the world and mined stone that had gravel above it 17:42 F00 Poof goes server for 24 hours 17:43 Calinou automatic server restart script: http://paste.ubuntu.com/1583023/ 17:43 Calinou :-D 17:44 hmmmm well i guess anticheat for vertical movement can be added 17:44 VanessaE http://forum.minetest.net/viewtopic.php?pid=66710#p66710 17:45 VanessaE Calinou: ^^^^^ 17:45 hmmmm it just has to have a threshhold higher than that of the terminal velocity of a falling player 17:45 Calinou there is no terminal velocity in MT 17:45 hmmmm yeah that needs to be added then. 17:45 Calinou VanessaE: my version is much easier to remember :P 17:45 hmmmm otherwise there's no good way to solve this. 17:46 F00 Presumably the bottom of the map could be solid 17:46 hmmmm bedrock? 17:46 VanessaE indeed, why aren' 17:46 hmmmm there are problems with that too 17:46 VanessaE indeed, why aren't we just drawing some kind of bedrock anymore? 17:46 Calinou why not add magma (darker and more red lava, kills instantly) 17:46 hmmmm because it's not foolproof either 17:46 hmmmm it's a nonsolution 17:46 Calinou at layer -30910 or so 17:46 Calinou (also it can't be picked up) 17:47 F00 You can still fly outside the world, as well. Can't place blocks but can drop items 17:47 VanessaE well sure it doesn't fix the entity-duplication, but it would help somewhat until it *can* be fixed. 17:48 hmmmm alright so here's what i say 17:48 hmmmm add a terminal velocity for players 17:48 hmmmm add vertical movement to the anticheat 17:48 hmmmm add a boundary check for falling nodes in builtin 17:49 F00 Terminal velocity to prevent downward teleporting doesn't help much 17:49 hmmmm why not 17:49 F00 I have a shaft down to -30910 on Redcrab's, it only takes 20 minutes to fall down it (chunk loading delay) 17:50 hmmmm you're saying it would be too slow otherwise? 17:50 Calinou lol'd at "only" 17:50 VanessaE "only" and "20 minutes" in the same sentance. 17:50 VanessaE he 17:50 VanessaE heh 17:50 Calinou +1 for terminal velocity 17:50 Calinou 100 blocks/s or so? 17:51 VanessaE 200 b/s 17:51 hmmmm hm 17:51 VanessaE that's what I counted last time I was able to reach that speed. 17:51 F00 It takes about 3 hours theoretically to dig that far with a Mese pickaxe 17:51 hmmmm i've read that humans have a terminal velocity of 120 feet per second 17:51 hmmmm or something 17:51 F00 Personally I'd rather my last teleporting direction not be removed 17:51 celeron55 ehm... 17:52 VanessaE 125 mph 17:52 VanessaE miles per hour that is. 17:52 celeron55 why not just make any object (non-player) dropping to below the world to get simply deleted? 17:52 hmmmm yeah 17:52 VanessaE celeron55: indeed. 17:52 celeron55 it will fix the original problem 17:52 hmmmm where would you put that check though 17:53 celeron55 or, well, really anywhere that is outside the world 17:54 F00 It seems like elements of that are present 17:54 F00 Fluids won't flow outside the world bounds, the player can walk on the bottom of the world 17:55 F00 Seems it's just items and falling blocks that don't have bounds checks 17:55 F00 Also, AFAIK trying to place a block outside the world will just eat the block 17:55 hmmmm you know on that note, i want there to be a limit to how far water can fall 17:55 hmmmm like in minecraft 17:56 VanessaE why? 17:56 hmmmm err wait a minute, does it actually have a height limit, or does it just flow until it hits a block that's not loaded? 17:56 hmmmm i've only watched minecraft videos, never played it 17:56 VanessaE it flows to an unloaded block boundary. 17:56 celeron55 probably the latter, like in minetest 17:56 VanessaE at meast in MT. 17:57 hmmmm oh okay, good then 17:57 celeron55 i don't know much about MC internals though 17:57 hmmmm celly the pull requests are piling up 17:57 Calinou in MC, going at Y -63 or below deals 2 hearts of damage every 0.5 second 17:57 hmmmm pending your approval 17:57 hmmmm what are you going to do about that 17:57 Calinou 0 being last bedrock layer 17:58 Exio hmmmm: minecraft have "big vertical chunks", like saying a mapblock with 256(height)x16x16 blocks/nodes but not mapblocks/chunks below it, and below it you can get the void 17:58 Exio below or upside 17:58 hmmmm oh yeah, i forgot about that. i knew they used vertical chunks 17:58 hmmmm like our sectors 17:59 celeron55 MC actually does have the equivalents of MT blocks and sectors, but i think MC uses the limited height ones only for drawing 18:00 Exio what do you mean with "only for drawing"? 18:00 hmmmm https://github.com/celeron55/minetest/pulls 18:05 celeron55 Exio: the world geometry is precalculated in some units 18:08 hmmmm forget pulling..... let's try yanking 18:09 hmmmm by the way, I made this http://dev.minetest.net/Mapgen 18:09 hmmmm gonna probably split that page off and put just information there