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      <dsimon> 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