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 |
06:01 |
|
Deiz joined #minetest-dev |
08:16 |
|
BackupCoder joined #minetest-dev |
09:08 |
|
BackupCoder joined #minetest-dev |
10:16 |
|
Progers joined #minetest-dev |
10:34 |
|
rsiska joined #minetest-dev |
10:36 |
|
Progers joined #minetest-dev |
10:41 |
|
PilzAdam joined #minetest-dev |
11:21 |
|
darkrose joined #minetest-dev |
11:21 |
|
darkrose joined #minetest-dev |
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 |
14:10 |
|
SpeedProg joined #minetest-dev |
15:17 |
|
Taoki joined #minetest-dev |
15:33 |
|
darkrose joined #minetest-dev |
15:33 |
|
darkrose joined #minetest-dev |
15:34 |
|
jyfl987 joined #minetest-dev |
15:59 |
|
hmmmm joined #minetest-dev |
16:05 |
|
F00 joined #minetest-dev |
16:32 |
|
Calinou joined #minetest-dev |
17:09 |
|
rubenwardy joined #minetest-dev |
17:12 |
|
SpeedProg joined #minetest-dev |
17:13 |
|
SpeedProg joined #minetest-dev |
17:16 |
|
rubenwardy left #minetest-dev |
17:28 |
|
rubenwardy joined #minetest-dev |
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: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 |
19:59 |
|
Taoki joined #minetest-dev |
21:29 |
|
iqualfragile joined #minetest-dev |
23:03 |
|
rsiska joined #minetest-dev |