Time |
Nick |
Message |
00:45 |
VanessaE |
there's already a security patch that's eventually gonna go in (or become default-enabled) that forbids that. |
00:49 |
Soni |
VanessaE, I meant like no bytecode loading for softmods... |
00:49 |
Soni |
hardmods and plugins should allow bytecode loading |
00:50 |
Soni |
(well I mean... hardmods include native/C/C++ mods...) |
00:51 |
|
zat joined #minetest-dev |
01:41 |
|
AnotherBrick joined #minetest-dev |
03:50 |
|
sloantothebone joined #minetest-dev |
05:31 |
hmmmm |
:\ |
05:31 |
hmmmm |
https://github.com/kwolekr/minetest/commit/7fd0c46048ec81c78b3c8655d9c08c01328d35bd |
05:31 |
hmmmm |
pushing in 30 minutes if nobody has any more comments |
05:32 |
VanessaE |
that looks useful. |
05:41 |
|
Hunterz joined #minetest-dev |
06:08 |
|
paramat joined #minetest-dev |
06:12 |
paramat |
i was about to comment =) it needs lazy calculation of top and bottom noises, and format info for 'noise puff top' 'noise puff bottom' added to lua_api.txt near line 3338. with those i approve |
06:14 |
paramat |
hmmmm i found an interesting mapgen on the forums that uses ramps, see screenshots here and following page https://forum.minetest.net/viewtopic.php?f=50&t=12889 |
06:16 |
paramat |
it's the slowest lua mapgen i know of, the code is very java / OOP and indecipherable to me. the slopes make caves quite an experience |
06:27 |
hmmmm |
very interesting |
06:27 |
hmmmm |
i think this guy might have a C# or Java background |
06:28 |
paramat |
yeah java |
06:28 |
hmmmm |
in lua, there is an actual tradeoff between clever object oriented abstractions and more optimizations that result in 'raw' code |
06:28 |
hmmmm |
he's probably not used of it |
06:29 |
hmmmm |
as i recall there exists an official lua best practices page that describes all the common optimizations |
06:29 |
hmmmm |
paramat, did you get the lazy calculation idea from my comment, by any chance? |
06:30 |
paramat |
yes |
06:30 |
hmmmm |
i don't think it really makes much of a difference at all with 2d noise |
06:31 |
paramat |
still more efficient though, even if a small gain |
06:32 |
paramat |
where did your perfectionism go? ;) |
06:33 |
paramat |
i consider 2 2D perlinmaps a fairly big lump of processing |
06:33 |
hmmmm |
blghg |
06:33 |
paramat |
hehe |
06:33 |
hmmmm |
they went under there |
06:34 |
paramat |
oh and someone is porting this mapgen to C++ https://forum.minetest.net/viewtopic.php?f=9&t=11430 |
06:34 |
paramat |
it's similar to my river mapgens |
06:37 |
hmmmm |
ahh |
06:37 |
hmmmm |
from the one screenshot it looks like he's adding 3d noise on top of 2d noise |
06:37 |
hmmmm |
kind of like v7, except it's more hrmm.. spattered looking? |
06:38 |
paramat |
it's complex, about 20 noises |
06:38 |
hmmmm |
ahh nuts |
06:38 |
hmmmm |
that explains why |
06:38 |
hmmmm |
i seriously try to keep the number of noises for base terrain generation low |
06:40 |
paramat |
8 3D noises |
06:55 |
hmmmm |
I just did a comparison |
06:56 |
hmmmm |
it appears that the optimized version saves 21 microseconds |
06:56 |
hmmmm |
..or it could be a statistical anomaly |
06:57 |
paramat |
seems small |
06:58 |
paramat |
well never mind that, it should still be optimised |
06:59 |
paramat |
especially for when an ore is made rare, so not present in most chunks |
07:01 |
Hunterz |
in the minecraft(bukkit) is something like worldborder which can pregenerate world before game started, for example pregenerate world which ends 5000 blocks from 0,0 |
07:01 |
hmmmm |
http://fpaste.org/268299/47325914/ |
07:01 |
Hunterz |
is possible something similar in the minetest? |
07:01 |
hmmmm |
not currently |
07:01 |
hmmmm |
why would you want to do that anyway? |
07:01 |
hmmmm |
generating world anew is faster than loading the world from disk |
07:02 |
Hunterz |
when is mapgen slow or does not want 300GB map |
07:02 |
kahrl |
hmmmm: maybe it's a slow lua mapgen |
07:04 |
kahrl |
Hunterz: you might be able to with a mod that loops over the volume and forceloads each chunk with a voxelmanip |
07:06 |
hmmmm |
yeah, this would probably be a lot easier to have an in-game command that queues up all the blocks within a given volume |
07:06 |
hmmmm |
generating map outside of the world... |
07:06 |
hmmmm |
I guess it could be done but the way minetest is structured makes it really awkward |
07:14 |
paramat |
there's a mod in the forum that will auto-explore a lua mapgen to generate it, think it's called 'explore map' by 'echo' |
07:15 |
hmmmm |
incredible how people put so much more effort into total hack solutions than it would take to implement it properly |
07:15 |
hmmmm |
christ, I'll do it right now |
07:16 |
VanessaE |
https://forum.minetest.net/viewtopic.php?id=2950 |
07:17 |
paramat |
^ that |
07:18 |
paramat |
it works with core mapgen too, but there's usually no point |
07:20 |
paramat |
Hunterz we now have a configurable world border distance |
07:24 |
Hunterz |
nice |
07:31 |
|
nanepiwo joined #minetest-dev |
07:44 |
|
julienrat joined #minetest-dev |
07:46 |
paramat |
good, lazy calculation was added to puff ore |
07:47 |
paramat |
waterlilies go in soon game#675 |
07:47 |
ShadowBot |
https://github.com/minetest/minetest_game/issues/675 -- Flowers: Add waterlily and add to mapgen by paramat |
07:49 |
|
RealBadAngel joined #minetest-dev |
07:58 |
paramat |
can anyone confirm that 'add node' is deprecated and we should use 'set node'? searching through history of docs doesn't make clear which one is deprecated |
08:02 |
VanessaE |
from a modder's point of view, it is |
08:02 |
VanessaE |
I believe the API says one is aliased to the other |
08:03 |
paramat |
indeed |
08:03 |
paramat |
thanks i was thinking set node was the deprecated one |
08:04 |
VanessaE |
of course that raises the question: when was each of those added? :) |
08:06 |
|
julienrat joined #minetest-dev |
08:06 |
|
julienrat left #minetest-dev |
08:07 |
|
Sketch2 joined #minetest-dev |
08:09 |
paramat |
both were present at the start of lua_api history so i couldn't find out |
08:13 |
|
kilbith joined #minetest-dev |
08:13 |
kilbith |
https://github.com/minetest/minetest/blob/master/doc/lua_api.txt#L1934 |
08:21 |
|
kilbith left #minetest-dev |
08:29 |
RealBadAngel |
paramat, your changes to flowers are ok, but leaves are not |
08:30 |
RealBadAngel |
i tried to get used to that motion but no |
08:31 |
paramat |
what would improve it? |
08:31 |
RealBadAngel |
imho leaves, plants (flowers) and plantlike in general shall use different code |
08:31 |
RealBadAngel |
what you have done was an attempt to unify it |
08:32 |
RealBadAngel |
and its like i predicted |
08:32 |
RealBadAngel |
when you made flowers ok, you broke everything else |
08:33 |
RealBadAngel |
split the code is the only answer |
08:34 |
RealBadAngel |
different for flowers, different for grass and leaves |
08:35 |
RealBadAngel |
also we shall make x,y factor more used |
08:35 |
RealBadAngel |
otherwise we have ugly "grids" |
08:36 |
RealBadAngel |
i mean x and z |
08:37 |
paramat |
what is it about grass motion that you feel needs to be different from flower motion? |
08:43 |
paramat |
it's optimum to use the 1 oscillation 'disp' for all, but it can be applied to plants and leaves differently (as it is already) i don't think there is enough need to separate flowers from plants |
08:46 |
RealBadAngel |
paramat, what you have done to leaves is making them sliding it just one direction |
08:47 |
RealBadAngel |
from my point of view, unaccepatble |
08:47 |
RealBadAngel |
you just BROKE the effect |
08:47 |
paramat |
they move in y and z too but only a little, that could be increased |
08:48 |
RealBadAngel |
i can make it separate |
08:48 |
paramat |
the previous effect was 'writhing jelly' many have commented how odd it looked =) |
08:48 |
RealBadAngel |
and many said its lovely |
08:48 |
RealBadAngel |
world was alive |
08:48 |
paramat |
it used separate oscillators for each direction, which was heavy and unnecessary |
08:48 |
RealBadAngel |
now its shiftin |
08:49 |
paramat |
it looks more natural to me, branches swaying mostly in x |
08:50 |
RealBadAngel |
youre voxel freak, no offence |
08:50 |
RealBadAngel |
thats not any close to natural |
08:51 |
RealBadAngel |
you just told one axis to fuck off |
08:51 |
RealBadAngel |
and called it a wind |
08:52 |
paramat |
we could increase the y and z motions for leaves a little? |
08:53 |
RealBadAngel |
my proposal is that i will make code separate |
08:54 |
RealBadAngel |
so we can fine tune each plant, or plantlike behaviour |
08:57 |
paramat |
motion for grass seems fine for flowers, seems unnecessary complexity to split these. anyway you have a fork for this over-engineered stuff |
08:59 |
|
deltib joined #minetest-dev |
09:00 |
paramat |
i'll consider more subtle tweaks to the wavng code though |
09:00 |
paramat |
this old PR game#395 seems good will merge later |
09:00 |
ShadowBot |
https://github.com/minetest/minetest_game/issues/395 -- Make furnace work even when unloaded by Kalabasa |
09:02 |
|
nanepiwo joined #minetest-dev |
09:04 |
RealBadAngel |
gfx is not about making things complex |
09:04 |
RealBadAngel |
its about making things nice lookin |
09:05 |
RealBadAngel |
you are makin them lookin too simple, grids |
09:06 |
RealBadAngel |
and yes, we do have a fork |
09:06 |
RealBadAngel |
your changes will be reverted |
09:07 |
RealBadAngel |
i dont like such mathematical shit around |
09:07 |
RealBadAngel |
sorry |
09:07 |
paramat |
do you mean everything moving as a grid when seen from above? i could try reducing the wavelength of the motions |
09:07 |
paramat |
no problem |
09:07 |
RealBadAngel |
base of your change was wrong |
09:07 |
paramat |
it may well need some tweaking |
09:08 |
RealBadAngel |
it needs separation |
09:08 |
RealBadAngel |
you made flowers wave right |
09:08 |
RealBadAngel |
yes |
09:08 |
RealBadAngel |
but you broke everythin else |
09:09 |
RealBadAngel |
and damn, you cant get it |
09:09 |
RealBadAngel |
exactly i predicted |
09:09 |
|
julienrat joined #minetest-dev |
09:10 |
paramat |
well nevermind we are polar opposites when it comes to visual stuff, my tastes are very close to celeron's |
09:11 |
RealBadAngel |
agree we are polar |
09:11 |
RealBadAngel |
but when i admit youre master in biomes or mapgen |
09:12 |
RealBadAngel |
you should on the other hand admit i do know something about gfx |
09:12 |
RealBadAngel |
if you step on my playground you should ask before doing it |
09:12 |
paramat |
yes, you have the technical knowledge sure |
09:13 |
paramat |
taste is different |
09:13 |
RealBadAngel |
taste is very differnt thing |
09:14 |
RealBadAngel |
problem is to pick correct one |
09:14 |
RealBadAngel |
that most will like |
09:15 |
RealBadAngel |
im not the oracle, but im coder, player, and just a comp freak |
09:15 |
|
FR^2 joined #minetest-dev |
09:15 |
RealBadAngel |
what i have noticed lately im the only one dev who actually plays the fucking game |
09:16 |
RealBadAngel |
none of you were seen on the servers lately |
09:16 |
paramat |
yeah i admit i should play more |
09:16 |
paramat |
i'm actually very shy about servers =} |
09:17 |
paramat |
i usually run for the hills |
09:17 |
RealBadAngel |
come play skyblock |
09:17 |
VanessaE |
play on my Basic Plus server. no one's ever there lately :) |
09:17 |
RealBadAngel |
paramat, VanessaE nothing helps more for a dev like playing |
09:18 |
paramat |
agreed |
09:18 |
RealBadAngel |
i see issues, bugs, or flaws |
09:18 |
RealBadAngel |
on my own, and i can understand why |
09:19 |
RealBadAngel |
what we have reached in minetest is having bunch of semi-idle coders |
09:20 |
RealBadAngel |
which do not play or care about the project |
09:21 |
RealBadAngel |
whatever comes new is pushed away or ignored |
09:21 |
|
julienrat left #minetest-dev |
09:21 |
VanessaE |
I think "do not [...] care about the project" is a bit strong, no? |
09:21 |
RealBadAngel |
most important are whitespaces and formatting |
09:21 |
VanessaE |
however you're right, not enough of the coders play the game |
09:21 |
VanessaE |
especially on servers. |
09:22 |
paramat |
sometimes i wonder if we should have a private server for trusted, mature behaving players |
09:22 |
RealBadAngel |
if i wasnt loving this project i wasnt putting my keyboard to waste |
09:22 |
RealBadAngel |
and yet im polishing it all over |
09:23 |
RealBadAngel |
sometimes i feel like i get enough |
09:23 |
RealBadAngel |
but yet im still coding candies :P |
09:23 |
RealBadAngel |
its the fucking marriage or what? ;) |
09:26 |
RealBadAngel |
anyway, kahrl, you were wrong |
09:26 |
RealBadAngel |
far players DO GET updates |
09:26 |
RealBadAngel |
its made in the queue, not in my code |
09:27 |
|
paramat left #minetest-dev |
09:27 |
RealBadAngel |
my routine gets the list, update it and later on its being handled |
09:27 |
RealBadAngel |
same as for add or remove node |
09:29 |
|
cvtsx joined #minetest-dev |
09:45 |
|
Lunatrius joined #minetest-dev |
10:19 |
|
H-H-H joined #minetest-dev |
10:32 |
|
OldCoder joined #minetest-dev |
10:36 |
|
Kray joined #minetest-dev |
10:51 |
|
kilbith joined #minetest-dev |
10:52 |
kilbith |
is there the archlinux packager around ? |
10:52 |
kilbith |
the stable release ain't translated |
10:54 |
RealBadAngel |
who is using archlinux anyway? |
10:55 |
RealBadAngel |
im a coder with more than 20yrs experience, have tried dozens of distros |
10:56 |
RealBadAngel |
and havent even heard of archlinux |
10:56 |
RealBadAngel |
so, dismiss |
10:58 |
RealBadAngel |
(sidenote, you know why) |
10:59 |
kilbith |
you should try it, thats the most performant distro |
11:01 |
RealBadAngel |
kilbith, as for me ubuntu is fine enough |
11:01 |
RealBadAngel |
home system that is never restarted, for periods like months |
11:02 |
RealBadAngel |
is more that stable |
11:02 |
kilbith |
ubuntu is a commercial shit for plebs |
11:02 |
RealBadAngel |
im on xubuntu |
11:03 |
RealBadAngel |
and it is working for me 24/7 |
11:03 |
kilbith |
only thing is like on *buntu is the font rendering and themes |
11:03 |
kilbith |
*i |
11:03 |
RealBadAngel |
whatever |
11:03 |
RealBadAngel |
lemme check something |
11:04 |
kilbith |
with archlinux you're always up-to-date and it's a KISS structure |
11:04 |
RealBadAngel |
last restart was 31 days afo |
11:05 |
RealBadAngel |
kilbith, with kiss approach you may want to fight with your bride |
11:05 |
RealBadAngel |
not your system |
11:05 |
kilbith |
unix is fundamentally KISS |
11:05 |
kilbith |
the command_line is a tradition |
11:05 |
RealBadAngel |
as i said above |
11:06 |
RealBadAngel |
and im repeating |
11:06 |
RealBadAngel |
coding is not tradition |
11:06 |
RealBadAngel |
coding is not a style |
11:06 |
kilbith |
command line != coding |
11:07 |
Hunterz |
everyone prefer own way, someone use ubuntu, someone suse, windows, macosx... |
11:07 |
RealBadAngel |
you have to see "code" in your mind |
11:07 |
RealBadAngel |
get how it could work |
11:08 |
|
lisacvuk joined #minetest-dev |
11:08 |
RealBadAngel |
i hate imposters that seems to see and understand code without the code iself |
11:10 |
RealBadAngel |
hmmm, that is mostly about YOU |
11:11 |
kilbith |
? |
11:11 |
RealBadAngel |
im watchin ur actions, what have you done recently? |
11:12 |
RealBadAngel |
complain to some Teckla that youre ashamed to be part of this community? |
11:12 |
kilbith |
oh well, fuck off |
11:12 |
kilbith |
you're again in your sequency of puking your contempt |
11:13 |
kilbith |
*sequence |
11:13 |
|
Calinou joined #minetest-dev |
11:13 |
RealBadAngel |
community is frozen |
11:13 |
kilbith |
who is Teckla ? |
11:13 |
RealBadAngel |
nothing happens |
11:13 |
RealBadAngel |
idk |
11:13 |
kilbith |
never talked to him |
11:13 |
RealBadAngel |
but hmmm was ashamed of her to see |
11:14 |
RealBadAngel |
he acclaimed to be sorry to be taking part in such SHITTY project |
11:14 |
RealBadAngel |
and thats his words |
11:14 |
RealBadAngel |
not mine |
11:15 |
RealBadAngel |
so,hmmm, sex is on your side |
11:15 |
RealBadAngel |
i do actually love the project |
11:15 |
RealBadAngel |
you may fuck this |
11:15 |
kilbith |
what about #3166 |
11:15 |
ShadowBot |
https://github.com/minetest/minetest/issues/3166 -- Send to clients only changed node metadata instad of whole mapblock by RealBadAngel |
11:16 |
RealBadAngel |
kilbith, this is being worked on |
11:17 |
RealBadAngel |
sending single meta is good, but sending couple would be better |
11:17 |
kilbith |
59 FPS on screenshot was a very ephemeral pick or almost constant ? |
11:18 |
RealBadAngel |
constant |
11:18 |
RealBadAngel |
i had to turn R to get lower fps |
11:19 |
kilbith |
that's surprising at VE-S spawn |
11:19 |
RealBadAngel |
i used to get there no more like 10fps |
11:20 |
RealBadAngel |
i knew what was the reason for it |
11:20 |
kilbith |
Zeno with his i7 as well |
11:20 |
RealBadAngel |
i have fixed that issue |
11:20 |
RealBadAngel |
if mt wants to get it? idk |
11:21 |
kilbith |
MT is eager of every optimization |
11:21 |
RealBadAngel |
this optimization was screaming here loud for ages |
11:21 |
Calinou |
this is why you remove dead code :) |
11:22 |
RealBadAngel |
thats not single version to version dead or buggy code |
11:22 |
|
julienrat joined #minetest-dev |
11:22 |
RealBadAngel |
it was designed in BAD WAY |
11:22 |
RealBadAngel |
celeron55, and its your fault |
11:23 |
kilbith |
i think you should stop adding new features on focus on big rooms for optimization |
11:23 |
kilbith |
s/on/and |
11:23 |
RealBadAngel |
ROTFL |
11:23 |
kilbith |
particles, VBO, lighting... |
11:23 |
RealBadAngel |
you call this a feature> |
11:23 |
kilbith |
no |
11:23 |
RealBadAngel |
????????????????????????????????????????????????? |
11:23 |
|
julienrat left #minetest-dev |
11:24 |
RealBadAngel |
fuck this is biggest bug fix i remember since yrs |
11:24 |
kilbith |
but IMO it was necessary to spend such time on minimap and signs |
11:24 |
kilbith |
wasn't* |
11:24 |
RealBadAngel |
lol |
11:24 |
RealBadAngel |
lol |
11:24 |
RealBadAngel |
lol |
11:24 |
RealBadAngel |
lol |
11:24 |
RealBadAngel |
and rotfl |
11:24 |
RealBadAngel |
go asleeep |
11:24 |
|
sloantothebone joined #minetest-dev |
11:25 |
kilbith |
especially minimap |
11:25 |
RealBadAngel |
youre ignorant |
11:25 |
kilbith |
everyone contesting you is |
11:26 |
RealBadAngel |
sure |
11:26 |
RealBadAngel |
effects you can see |
11:27 |
RealBadAngel |
i do the GFX |
11:28 |
RealBadAngel |
u may hate me, but i create the visuals |
11:28 |
RealBadAngel |
and how the game looks like |
11:29 |
|
paramat joined #minetest-dev |
11:29 |
Calinou |
you didn't create the most important part of the visuals: the textures and models :) |
11:29 |
kilbith |
i don't hate you, i like your work in fact |
11:30 |
kilbith |
but i don't agree with your roadmap focused on nolvelties |
11:30 |
RealBadAngel |
Calinou, ive touched EACH and EVERY node in game in fact ;) |
11:31 |
RealBadAngel |
.13 comes with nearly all normalmaps |
11:31 |
paramat |
now merging game#675 |
11:31 |
Calinou |
those are not enabled by default |
11:32 |
ShadowBot |
https://github.com/minetest/minetest_game/issues/675 -- Flowers: Add waterlily and add to mapgen by paramat |
11:32 |
Calinou |
paramat, yay |
11:32 |
kilbith |
Calinou: you can close yours |
11:32 |
|
julienrat joined #minetest-dev |
11:32 |
RealBadAngel |
Calinou, you may enable them in menu |
11:33 |
RealBadAngel |
anyway, theres no such good lookin renderer as ours |
11:33 |
RealBadAngel |
ive spent months to make those effects real |
11:34 |
RealBadAngel |
no fuckin notch have such nice reliefed mapping nodes |
11:37 |
paramat |
merge complete |
11:38 |
|
Darcidride joined #minetest-dev |
11:45 |
|
paramat left #minetest-dev |
11:56 |
kilbith |
ah shit paramat has left |
11:56 |
kilbith |
we aren't supposed to walk over the lilies |
12:01 |
OldCoder |
Wasn't this channel pretty strict 2 years ago? |
12:01 |
OldCoder |
I was shouted at a couple of times even for disturbing the silence |
12:02 |
OldCoder |
It's almost like #startups these days |
12:02 |
OldCoder |
It's nice to feel relaxed but decorum can serve a purpose |
12:02 |
OldCoder |
|
12:13 |
|
est31 joined #minetest-dev |
12:18 |
|
nrzkt joined #minetest-dev |
12:18 |
est31 |
hi nrzkt! |
12:21 |
* est31 |
wonders whether the bug in RBA's pr is fixed yet that you get the metadata of ALL nodes, not just those close to you |
12:24 |
* est31 |
makes a github comment |
12:56 |
Darcidride |
Bonjour |
12:56 |
Darcidride |
Bonjour / Hi |
13:09 |
|
Megaf_ joined #minetest-dev |
13:11 |
|
julienrat joined #minetest-dev |
13:14 |
est31 |
https://www.youtube.com/watch?v=S9pc8li4fuQ |
13:29 |
|
julienrat left #minetest-dev |
14:02 |
|
Elinvention joined #minetest-dev |
14:19 |
|
domtron joined #minetest-dev |
14:24 |
|
domtron joined #minetest-dev |
14:33 |
Megaf_ |
Minetest timeout is too short now |
14:33 |
Calinou |
timeout to connect to a server? |
14:34 |
|
Lunatrius joined #minetest-dev |
14:35 |
Megaf_ |
nope, while playing |
14:35 |
est31 |
still, is it server side timeout or client side |
14:35 |
Megaf_ |
Im timeing out all the time from my server, I know my internet is not very good at the moment, but timing out every 15 seconds is ridiculous |
14:35 |
est31 |
perhaps increase it then |
14:36 |
Megaf_ |
ssh still connected and IRC still connected, but minetest client is timing out |
14:36 |
est31 |
freenode has really high timeout value |
14:36 |
est31 |
which is good IMO |
14:36 |
est31 |
I know mozilla irc |
14:36 |
Megaf_ |
perhaps we need a better way to detect a real time out |
14:36 |
est31 |
where you time out quite quickly |
14:36 |
est31 |
and all channels are filled with joins and parts |
14:37 |
est31 |
here its quieter fortunately |
14:38 |
est31 |
ah damn its not customizeable |
14:39 |
est31 |
it should be IMO. |
14:40 |
est31 |
well, for the meantime, do you know how to edit source/ compile etc? |
14:41 |
est31 |
if yes, go to src/game.cpp search for the line with "if ((*address != "") && (wait_time > 10)) {" |
14:41 |
est31 |
and replace "10" with your custom value |
14:47 |
|
Zeitgeist_ joined #minetest-dev |
14:49 |
est31 |
YESSS |
14:49 |
est31 |
YES |
14:49 |
est31 |
damn great |
14:50 |
est31 |
found my VPX test changes |
14:50 |
est31 |
wondered where they were |
14:50 |
est31 |
knew I've worked on them in may |
14:50 |
est31 |
and knew i've stored them somewhere |
14:50 |
est31 |
now where? |
14:50 |
est31 |
reflog didnt show them |
14:51 |
est31 |
found them on my stash stack |
15:03 |
H-H-H |
totally unrelated to minetest but does anyone know how to merge one git repo into another lol |
15:04 |
est31 |
H-H-H, what exactly do you want to accomplish |
15:05 |
H-H-H |
ihave 2 repos both started the same but in one i have commited 17 chanes and i wanted to apply those to my clean one |
15:05 |
H-H-H |
if that makes sense |
15:06 |
est31 |
either you add one repo as remote of the other |
15:06 |
est31 |
or you create a patch then apply that |
15:08 |
H-H-H |
ok thanks i think the patch route is probably the better option as i then have the patch for later use |
15:08 |
H-H-H |
ty |
15:09 |
est31 |
H-H-H, in the source repo with the commits you want, find the first commit id and the last one |
15:10 |
est31 |
then do git format-patch firstid..lastid --stdout > your-patch.patch |
15:10 |
est31 |
on the receiving side do git am your-patch.patch |
15:10 |
est31 |
ofc you copy the patch file over in between |
15:11 |
H-H-H |
ok thanks :) |
15:11 |
H-H-H |
using the first 6 digits of the commit id is enough ? or do i need the whole thing? |
15:12 |
|
T4im joined #minetest-dev |
15:13 |
T4im |
git will allow you to use as few as are still unique |
15:16 |
|
zat joined #minetest-dev |
15:18 |
|
CraigyDavi joined #minetest-dev |
15:22 |
H-H-H |
ty |
15:26 |
|
hmmmm joined #minetest-dev |
15:32 |
|
younishd joined #minetest-dev |
15:32 |
|
paramat joined #minetest-dev |
15:35 |
paramat |
sfan5 ShadowNinja i will merge this fix for waterlilies very soon game#678 |
15:35 |
ShadowBot |
https://github.com/minetest/minetest_game/issues/678 -- Flowers: Make waterlily not walkable. Add missing flower group by paramat |
15:35 |
sfan5 |
TIL we have waterlilies |
15:35 |
sfan5 |
or maybe i already knew? |
15:35 |
sfan5 |
paramat: looks good |
15:35 |
paramat |
thanks |
15:39 |
paramat |
here's one that just needs another +1 game#674 |
15:39 |
ShadowBot |
https://github.com/minetest/minetest_game/issues/674 -- Add a crosshair with shadow for visibility by Ferk |
15:40 |
est31 |
wtf |
15:40 |
est31 |
paramat, arent you the person who likes minetest more basic |
15:40 |
est31 |
seems thats wrong |
15:40 |
paramat |
game#395 has 2 approvals so i'm considering merging it, in case someone wants to check it |
15:40 |
ShadowBot |
https://github.com/minetest/minetest_game/issues/395 -- Make furnace work even when unloaded by Kalabasa |
15:41 |
est31 |
I dont care if furnaces work if away and farms don't |
15:41 |
paramat |
referring to the crosshair? |
15:41 |
est31 |
yea ofc |
15:41 |
kilbith |
well it's like the crack images, at beginning there was only white |
15:42 |
kilbith |
s/white/black |
15:42 |
est31 |
i dont really care anymore |
15:42 |
kilbith |
and then has been combined with white for visibility |
15:42 |
est31 |
it might be best to have two channels #mt-dev and #mtgame-dev |
15:42 |
est31 |
so that i can only be in one of them |
15:42 |
est31 |
and monitor that |
15:45 |
est31 |
or I just learn to ignore better :) |
15:48 |
paramat |
now merging game 678 |
15:52 |
|
Hunterz joined #minetest-dev |
15:53 |
paramat |
complete |
16:08 |
|
Soni joined #minetest-dev |
16:11 |
|
Soni joined #minetest-dev |
16:12 |
|
paramat left #minetest-dev |
16:25 |
T4im |
huh? 200, 395... everyone keeps rewriting furnace to work unloaded but noone uses nodetimers for it? O_o |
16:26 |
kilbith |
timers are slower than ABMs, someone made a benchmark : https://forum.minetest.net/viewtopic.php?p=178943#p178943 |
16:27 |
T4im |
that benchmark is cobble :D |
16:27 |
|
Krock joined #minetest-dev |
16:27 |
T4im |
he benchmarked a case of a typcial abm case.. |
16:28 |
T4im |
I can't imagine furnaces working better with an abm checking gametime manually then a nodetimer |
16:28 |
T4im |
you can't compare abms and nodetimers here in speed alone |
16:29 |
kilbith |
256 growing plants are quite a lot |
16:30 |
kilbith |
50% slower on that :/ |
16:30 |
T4im |
yes, but we are not talking about a mass of one nodetype being worked on in a lazy manner, but selected nodes working realtime |
16:30 |
T4im |
this are complete different usecases |
16:32 |
RealBadAngel |
trying to ride on lawnmover? sure its possible ;) |
16:32 |
T4im |
heh |
16:33 |
RealBadAngel |
this benchmark is documenting such ride |
16:33 |
T4im |
indeed :D |
16:38 |
|
julienrat joined #minetest-dev |
16:40 |
|
julienrat left #minetest-dev |
16:40 |
T4im |
one huge issue with this is, that every furnace is triggering that abm, whether active or not.. and most of the time they are not... a nodetimer can simply be stopped in such cases and retstarted once it is needed |
16:41 |
T4im |
kilbith, for example you could compare autocrafters before and after I rewrote them to use nodetimers... they became _a lot_ faster afterwards.. and they are able to "power down" if finished by any means, which iirc made quite some difference |
16:44 |
|
domtron joined #minetest-dev |
16:46 |
kilbith |
you should rewrite the default furnance then ;) |
16:50 |
|
asl97 joined #minetest-dev |
16:51 |
RealBadAngel |
imho main problem is not the abm itself |
16:52 |
RealBadAngel |
the real problem is what that triggers |
16:52 |
RealBadAngel |
as usual, sending whole block, with all the metas, triggering mesh update for this block and all its neighbours |
16:53 |
asl97 |
the lua mg example in the dev wiki seem to be broken, line 50, attempt to index local 'heightmap' (a nil value) |
16:53 |
T4im |
true... and its bad... every furnace does metadata and crafting recipe lookups every second without reason |
16:53 |
asl97 |
example on http://dev.minetest.net/VoxelManip |
16:53 |
est31 |
RealBadAngel, an abm doesnt do that |
16:53 |
kilbith |
#3002 |
16:53 |
RealBadAngel |
wanna bet? |
16:53 |
ShadowBot |
https://github.com/minetest/minetest/issues/3002 -- ABM scanning is very slow |
16:53 |
RealBadAngel |
each metadata change does that shit |
16:54 |
est31 |
RealBadAngel, of course if you tell it to change the metadatas |
16:54 |
est31 |
but thats not the abm's fault |
16:54 |
RealBadAngel |
i havent said its abm |
16:54 |
T4im |
est31: that one does |
16:54 |
RealBadAngel |
RealBadAngel> imho main problem is not the abm itself |
16:54 |
RealBadAngel |
<RealBadAngel> the real problem is what that triggers |
16:55 |
T4im |
that abm function does a lot of stuff to inactive furnaces |
16:55 |
est31 |
RealBadAngel, sorry then misunderstood |
16:56 |
RealBadAngel |
with the simple patch we have eliminated lag for complex mods |
16:56 |
RealBadAngel |
im working now on sending queue for metas, so it should be even faster |
16:57 |
RealBadAngel |
thats so basic error, that in practice it hits everything |
16:58 |
asl97 |
heightmap is nil... |
16:58 |
RealBadAngel |
wut? |
16:59 |
est31 |
asl97, mapgen was unstable likely |
16:59 |
est31 |
best ask in #minetest |
16:59 |
asl97 |
it's about the example on the dev wiki |
16:59 |
est31 |
RealBadAngel, the main problem is that it doesnt respect being close |
17:00 |
est31 |
still not minetest engine development related |
17:00 |
est31 |
~topic |
17:00 |
ShadowBot |
est31: Minetest core development and maintenance. Last release: 0.4.13, Aug 20 2015. Chit-chat goes to #minetest. Consider this instead of /msg celeron55. http://irc.minetest.ru/minetest-dev/ http://dev.minetest.net/ |
17:00 |
RealBadAngel |
remove the lags, then talk to me again ;) |
17:00 |
RealBadAngel |
atm clients are just spammed with blocks |
17:00 |
est31 |
RealBadAngel, please fix the bug, then I can continue evaluating your patch |
17:01 |
RealBadAngel |
est31, i need to finish queues code |
17:01 |
est31 |
I dont think we really do need queues |
17:01 |
RealBadAngel |
its not about checking if meta is not null just |
17:01 |
RealBadAngel |
we do |
17:02 |
RealBadAngel |
like REALLY |
17:02 |
est31 |
the queue might be the reason its so slow |
17:02 |
est31 |
currently |
17:02 |
est31 |
I havent investigated though |
17:02 |
RealBadAngel |
its blocks queue, not the meta one |
17:02 |
est31 |
its either because we send additional data, or the queue, or both |
17:02 |
est31 |
can you make it in a way one can disable/enable it |
17:02 |
est31 |
? |
17:03 |
RealBadAngel |
on the other hand, two lines in lua, changing two variables will cause two refreshes |
17:03 |
RealBadAngel |
we dont want that |
17:03 |
RealBadAngel |
if made on single step, meta shall be sent just once |
17:03 |
est31 |
yes but you dont send it immediately |
17:03 |
est31 |
but after a delay |
17:04 |
est31 |
also, you spend time checking the whole queue |
17:04 |
est31 |
this is O(n^3) |
17:04 |
RealBadAngel |
ofc |
17:04 |
est31 |
ermm O(n^2) |
17:04 |
est31 |
sorry |
17:04 |
RealBadAngel |
but when world is empty queue will be slower |
17:04 |
RealBadAngel |
you will get gain on developed worlds |
17:05 |
RealBadAngel |
and i mean technic here, and the like |
17:06 |
est31 |
if you add 1000 things to the queue, you need roughly 500 000 checks |
17:06 |
est31 |
if it isnt flushed before |
17:06 |
RealBadAngel |
current behaviour - sending whole blocks - effectively rendered such mods unuseable |
17:06 |
RealBadAngel |
and thus you cant see them on servers |
17:07 |
RealBadAngel |
est31, i highly doubt if we could hit such high numbers in one step |
17:07 |
RealBadAngel |
im rather thinkin of assembling a packet through queue |
17:08 |
RealBadAngel |
if it hits a limit it will be sent |
17:08 |
RealBadAngel |
like 16 at the time |
17:09 |
RealBadAngel |
otherwise, if it wont trigger whole packet assembly, it should be send at step end |
17:09 |
RealBadAngel |
tests have shown that even without queueing those packets and even with having them doubled |
17:09 |
RealBadAngel |
it is way faster |
17:11 |
RealBadAngel |
and also, this is one of the reasons to rethink backwards compability |
17:11 |
RealBadAngel |
keeping old shit around for ages will raise such problems no matter what |
17:13 |
est31 |
man dude |
17:13 |
est31 |
backwards compat doesnt work that way |
17:13 |
RealBadAngel |
read the code for those events.... |
17:13 |
est31 |
old shit can be of course removed, if the users dont use it anymore |
17:13 |
est31 |
and if the opposite is really too hard to maintain |
17:13 |
RealBadAngel |
it cannot even work properly |
17:14 |
RealBadAngel |
see the code for voxel areas |
17:14 |
RealBadAngel |
that just cant work at all |
17:14 |
RealBadAngel |
remember requesting me to document what p means? |
17:15 |
RealBadAngel |
go for this event and voxel areas, you will laugh |
17:15 |
est31 |
? event? |
17:15 |
RealBadAngel |
map edit event i mean |
17:16 |
RealBadAngel |
you just cant get voxel area with metas |
17:16 |
est31 |
RealBadAngel, what are you talking bout |
17:17 |
RealBadAngel |
lemme link you the code |
17:17 |
RealBadAngel |
hold on |
17:19 |
RealBadAngel |
map.h |
17:19 |
RealBadAngel |
case is MEET_OTHER |
17:20 |
|
64MADVFF5 joined #minetest-dev |
17:21 |
RealBadAngel |
and this is exactly what i mean where compability leads |
17:22 |
RealBadAngel |
to a clusterfuck |
17:22 |
RealBadAngel |
and i should really check who dared to comment that out in code as a "FIX" |
17:27 |
est31 |
where is that comment |
17:28 |
est31 |
I still cant see what you regard as such a big problem |
17:29 |
RealBadAngel |
// Old clients always clear metadata; fix it |
17:29 |
RealBadAngel |
// by sending the full block again. |
17:29 |
RealBadAngel |
client->SetBlockNotSent(p); |
17:30 |
RealBadAngel |
the behaviour is copied over |
17:30 |
|
kahrl joined #minetest-dev |
17:30 |
RealBadAngel |
typical compability clusterfuck |
17:30 |
est31 |
why is that a clusterfuck |
17:31 |
est31 |
you have 7 lines |
17:31 |
RealBadAngel |
kahrl, good to see you: |
17:31 |
RealBadAngel |
void content_nodemeta_serialize_legacy(std::ostream &os, NodeMetadataList *meta) |
17:31 |
RealBadAngel |
{ |
17:31 |
RealBadAngel |
// Sorry, I was too lazy to implement this. --kahrl |
17:31 |
RealBadAngel |
writeU16(os, 1); // version |
17:31 |
RealBadAngel |
writeU16(os, 0); // count |
17:31 |
RealBadAngel |
} |
17:31 |
RealBadAngel |
/ END |
17:31 |
est31 |
7 lines to retain compatibility |
17:31 |
RealBadAngel |
could you clean that mess> |
17:31 |
RealBadAngel |
? |
17:31 |
est31 |
so whats a clusterfuck about it? |
17:32 |
RealBadAngel |
est31, p means once node pos, once blockpos |
17:32 |
RealBadAngel |
voxel areas are broken thx to it |
17:32 |
est31 |
ahh |
17:32 |
RealBadAngel |
and the main problem is sending whole blocks for sake of older clients |
17:33 |
RealBadAngel |
which rendered effectively well developed worlds slideshows |
17:33 |
est31 |
DAMN |
17:33 |
|
kilbith joined #minetest-dev |
17:34 |
est31 |
WHY DO YOU SAY THAT SENDING STUFF TO OTHER CLIENTS DESTROYS FPS FOR AN UPDATED CLIENT |
17:34 |
est31 |
those two things have nothing in common |
17:34 |
est31 |
NOTHING |
17:34 |
est31 |
they might slow down server |
17:35 |
RealBadAngel |
hold ur horses |
17:35 |
RealBadAngel |
what does meta update do atm? |
17:35 |
RealBadAngel |
it is causing mesh to be regenerated |
17:36 |
RealBadAngel |
for center block an the edges |
17:36 |
est31 |
I know that part of the story |
17:36 |
RealBadAngel |
this is all connected |
17:36 |
est31 |
no it isnt |
17:36 |
est31 |
it has NOTHING to do with the server sending wrong blocks to older clients |
17:36 |
est31 |
there is no problem with that |
17:36 |
est31 |
it might make life a shit for old clients, yes |
17:37 |
est31 |
but you dont care for old clients, so it shouldnt be a problem for you should it |
17:37 |
T4im |
denial of service? even new clients will have to deal with the data, or not? |
17:37 |
RealBadAngel |
oh cmon, just put some dstream in mesh update |
17:38 |
RealBadAngel |
move something in the chest then |
17:38 |
RealBadAngel |
and watch how many mapblock meshes were done :P |
17:39 |
RealBadAngel |
now rethink what technic or mesecons are doing this way |
17:40 |
RealBadAngel |
anyway, if i wasnt right, my approach couldnt make VE spawns to regain 60 fps at 240 range |
17:41 |
RealBadAngel |
facts are very cruel :P |
17:41 |
est31 |
RealBadAngel, this isnt confirmed by independent sources |
17:42 |
est31 |
RealBadAngel, if you can let users test it before and after I believe you, but neither me nor vanessae has reported a high fps increase |
17:42 |
RealBadAngel |
do you expect proofs for wheel to be really round? |
17:42 |
RealBadAngel |
just put the timers and dstream infos into the code |
17:43 |
est31 |
RealBadAngel, I agree that we might spare some needless mesh updates and utilize network bandwith |
17:43 |
RealBadAngel |
you will see how often it was called before |
17:43 |
est31 |
but your patch doesnt have the effect you describe |
17:43 |
est31 |
that DOESNT mean I disagree with the idea of it |
17:44 |
RealBadAngel |
ive tested it and it does |
17:44 |
VanessaE |
what is it about est31's and my systems that just don't seem to benefit as well from your changes as yours does? |
17:45 |
RealBadAngel |
VE you are affected with another issue and you know that |
17:45 |
RealBadAngel |
i promise i will find out the reason for it |
17:45 |
kahrl |
hi |
17:45 |
kahrl |
what is the deal with content_nodemeta_serialize_legacy? |
17:45 |
T4im |
is it possible that not everyone notices the increase because of different settings related to mesh-cache? or other settings |
17:45 |
kahrl |
that function isn't even called by anything anymore |
17:45 |
RealBadAngel |
trashcan |
17:46 |
RealBadAngel |
please just clean the mess :) |
17:47 |
* H-H-H |
sits back with his popcorn |
17:47 |
kahrl |
who even looks in content_nodemeta.cpp |
17:47 |
kahrl |
anyway I'm not even paid cleaning maid wages here, so I'm out |
17:48 |
|
kahrl left #minetest-dev |
17:48 |
RealBadAngel |
lol |
17:48 |
RealBadAngel |
best approach ever ;) |
17:49 |
Megaf_ |
[17.09.15-:18:47:08] -*- H-H-H sits back with his popcorn |
17:49 |
Megaf_ |
same here |
17:49 |
Megaf_ |
Quite entertaining |
17:49 |
RealBadAngel |
gimme some plz |
17:49 |
* Megaf_ |
gives a bucket of popcorns to RealBadAngel |
17:50 |
|
DFeniks joined #minetest-dev |
17:50 |
Megaf |
now, I don't like the way Mt sends these blocks either, but I can't see a better solution |
17:50 |
Megaf |
Maybe nodes should be sent on demand, and air shouldn't need to be sent... |
17:50 |
est31 |
meh |
17:51 |
RealBadAngel |
single chest change is about 200-400 bytes, zipped |
17:51 |
Megaf |
sometimes the client just have to sit and wait to receive lots of blocks of air |
17:51 |
est31 |
72 chars per mapblock |
17:51 |
RealBadAngel |
and thats whole packet |
17:51 |
est31 |
if its filled with air |
17:51 |
est31 |
more if it has content |
17:51 |
RealBadAngel |
now get the block, 16x16x16 |
17:51 |
est31 |
so yeah perhaps we should shortcut air filled mapblocks |
17:51 |
RealBadAngel |
PLUS all the metas |
17:51 |
est31 |
but not worth it imo |
17:51 |
RealBadAngel |
beat my approach please |
17:52 |
RealBadAngel |
best with numbers :P |
17:53 |
Megaf |
what if we changed the default block sizer to something liek 5x5x5? |
17:53 |
RealBadAngel |
problem will remain |
17:53 |
RealBadAngel |
that shit is here since always |
17:53 |
Megaf |
What I see is, lots of stuff are refreshed with no need |
17:53 |
RealBadAngel |
it was designed to work that way |
17:54 |
RealBadAngel |
thats why fresh worlds are fast |
17:54 |
est31 |
Megaf, thats the wrong direction |
17:54 |
est31 |
better tune it up |
17:54 |
RealBadAngel |
more u develop it, its getting slower |
17:54 |
Megaf |
also, everythime we reconnect to a server everything has to be re downloaded, that makes things worse |
17:54 |
|
DFeniks joined #minetest-dev |
17:54 |
est31 |
Megaf, the problem is that the world can change so much |
17:54 |
RealBadAngel |
theres more funny thing also |
17:55 |
est31 |
Megaf, perhaps we can implement something caching like |
17:55 |
RealBadAngel |
if you have signs there |
17:55 |
RealBadAngel |
each refresh is calling for new textures |
17:55 |
est31 |
Megaf, the main problem though is that the cache sha ids will be longer than the actual content xD |
17:55 |
RealBadAngel |
and those are never deleted |
17:55 |
RealBadAngel |
only on client shutdown |
17:56 |
Megaf |
so smaller blocks, with caching, will lead to less data being trasnfered, should a change in the world happen |
17:56 |
RealBadAngel |
so moving shit in a chest == new texture for all the signs |
17:56 |
Megaf |
signs should just be rewriten from scratch |
17:56 |
est31 |
RealBadAngel, congrats, i leave now because of your trolling |
17:56 |
VanessaE |
RealBadAngel: how does that change, if at all, where force-loaded blocks are involved? |
17:56 |
est31 |
bye |
17:56 |
Megaf |
lol |
17:57 |
RealBadAngel |
out of popcorn or what? |
17:58 |
Megaf |
sounds like it |
17:58 |
VanessaE |
RealBadAngel: to be fair, you keep repeating the same thing over and over. |
17:58 |
RealBadAngel |
and you do know why |
17:59 |
VanessaE |
of course. |
17:59 |
VanessaE |
but that doesn't solve the problem. |
17:59 |
VanessaE |
at the risk of invoking hmmmm... more code, less talk. :) |
17:59 |
RealBadAngel |
im trying to move all the asses around to actually solve real problems |
18:01 |
RealBadAngel |
all i get is demand for benchmarks |
18:01 |
VanessaE |
yes |
18:01 |
RealBadAngel |
fuck, that wheel was not round at all, fuck the benchmarks |
18:01 |
VanessaE |
and that's a reasonable demand. |
18:01 |
RealBadAngel |
just fix it |
18:01 |
VanessaE |
let's put it this way: a round wheel is great and all, but which surface does it roll faster over? sand or asphalt? |
18:02 |
RealBadAngel |
it rolls better by its definition |
18:02 |
VanessaE |
maybe, but if the surface you are rolling it over is hilly and bumpy, you won't see much improvement. |
18:03 |
VanessaE |
in other words, you gotta prove that it's better in a range of situations. |
18:03 |
RealBadAngel |
thats exactly opposite case |
18:03 |
RealBadAngel |
more hills, it will perform better |
18:03 |
VanessaE |
ok this analogy isn't working |
18:03 |
VanessaE |
just...make some benchmarks |
18:04 |
RealBadAngel |
we could solve it another way |
18:04 |
VanessaE |
and find out why it doesn't improve much for est31 and I as compared to you. |
18:04 |
RealBadAngel |
lets just set up a modified server for a week or so |
18:04 |
RealBadAngel |
then we could compare traffic and the load |
18:05 |
T4im |
both server and client need the patch? or just server? |
18:05 |
RealBadAngel |
both |
18:05 |
RealBadAngel |
older clients can still join, but wont benefit |
18:06 |
T4im |
which sadly means that traffic correlates probably not with any benefit at all |
18:06 |
T4im |
hm.. well is there still a server up? perhaps simply adding more samples (more people testing it) might help |
18:06 |
VanessaE |
I'll patch VE-Survival if you want. |
18:06 |
* T4im |
'll patch it in here too |
18:07 |
RealBadAngel |
ok |
18:07 |
|
MinetestForFun joined #minetest-dev |
18:07 |
RealBadAngel |
i will prepare some quick fixes for already known problems just |
18:07 |
VanessaE |
no. |
18:07 |
VanessaE |
no "quick fixes". |
18:07 |
VanessaE |
PROPER fixes. your "quick" fixes tend to... have glitches :) |
18:08 |
RealBadAngel |
theres meta == null case not fixed in the PR |
18:08 |
VanessaE |
oh yeah, had that happen at least once |
18:08 |
RealBadAngel |
i havent pushed that because im still working on queues |
18:09 |
RealBadAngel |
lemme just push that one |
18:18 |
|
CraigyDavi joined #minetest-dev |
18:22 |
|
Niebieski joined #minetest-dev |
18:22 |
Niebieski |
!seen HybirdDog |
18:22 |
ShadowBot |
Niebieski: I haven't seen HybirdDog in #minetest-dev. |
18:25 |
|
est31 joined #minetest-dev |
18:26 |
H-H-H |
!seen HybridDog |
18:26 |
ShadowBot |
H-H-H: I haven't seen HybridDog in #minetest-dev. |
18:32 |
Megaf |
est31: I beliebe we should drop support for old clients, remove all legacy and caompatibility stuff and release the 0.5 |
18:34 |
asl97 |
the old remote media stuff too if you are going to remove legacy stuff, it can be abuse for dos |
18:34 |
est31 |
asl97, what precisely? |
18:34 |
Megaf |
and we should get rid of the bitmap fonts, for sizes sake! |
18:35 |
asl97 |
i talked about a few days ago in #minetest |
18:35 |
est31 |
asl97, can you repeat perhaps |
18:35 |
T4im |
or at least send a link to the log x) |
18:36 |
est31 |
Megaf, there is no point in removing legacy support if our users are on legacy devices |
18:36 |
est31 |
also removing legacy support can just introduce bugs, not remove them |
18:37 |
RealBadAngel |
est31, keeping legacy support is causing way more problems than that |
18:38 |
RealBadAngel |
lookin at networking code, its just a mess |
18:38 |
RealBadAngel |
we are shooting own foot with it |
18:38 |
est31 |
of course, it has to be replaced |
18:38 |
est31 |
but question is whether the protocol has to be replaced as well |
18:39 |
RealBadAngel |
idk, it works |
18:39 |
RealBadAngel |
maybe just clean it up? |
18:40 |
est31 |
yeah, thats needed |
18:40 |
est31 |
clean up and very thorough check of code |
18:40 |
est31 |
for bad things that can possibly happen |
18:40 |
RealBadAngel |
theyre already happening |
18:41 |
RealBadAngel |
sorry, im not any good at networking, but what i saw there just scared me |
18:41 |
est31 |
lol not just you |
18:41 |
RealBadAngel |
thats why i was "trolling" so loud here |
18:42 |
RealBadAngel |
i just wanted to make proper signs, and meet a huge blocker there |
18:42 |
RealBadAngel |
ive spent 2 weeks or more to analyze whats wrong |
18:42 |
RealBadAngel |
and i found out that very basics are broken |
18:43 |
T4im |
watching wireshark, despite packeet dissector go at it in VanessaEs spawn is scary :o |
18:43 |
T4im |
packet* |
18:43 |
RealBadAngel |
im aware of it |
18:43 |
|
Amaz joined #minetest-dev |
18:43 |
RealBadAngel |
but some data have to be sent no matter what |
18:44 |
est31 |
thats ok |
18:44 |
RealBadAngel |
problem was we were sending too much |
18:44 |
RealBadAngel |
so the clients got spammed |
18:45 |
est31 |
T4im, note that if VanessaE has the patch installed, you might experience the bug of RBA's pr that the server sends all changes on the server to the client not just the ones to blocks you are close to |
18:45 |
asl97 |
http://irc.minetest.ru/minetest/2015-09-14#i_4394388 |
18:45 |
asl97 |
finally found it ^ |
18:45 |
VanessaE |
I do not have the patch. |
18:45 |
RealBadAngel |
im working on it atm |
18:45 |
VanessaE |
still waiting for RealBadAngel to stop hemming-and-hawing over it. |
18:45 |
VanessaE |
:P |
18:46 |
T4im |
no, this is just a lot of entities being moved/replaced and even more node swapping.. im not even sure I'll see a difference with the patch with this :o |
18:46 |
RealBadAngel |
est31, whats the case?? |
18:46 |
RealBadAngel |
i think that if youre not near, you will be placed in far players list |
18:46 |
VanessaE |
RealBadAngel, est31: what about force-loaded blocks that are off in the boonies (relative to the user)? are they being sent to the client? |
18:47 |
asl97 |
est31: forgot to ping, there is the log about the abuse for ddos> http://irc.minetest.ru/minetest/2015-09-14#i_4394388 |
18:47 |
est31 |
VanessaE, precisely that is the bug |
18:47 |
VanessaE |
est31: as I thought. |
18:47 |
VanessaE |
RealBadAngel: ^^^^ fix it. then we can talk :) |
18:47 |
est31 |
http://irc.minetest.ru/minetest-dev/2015-09-10#i_4390788 |
18:48 |
est31 |
http://irc.minetest.ru/minetest-dev/2015-09-10#i_4390811 <----- RealBadAngel look here |
18:48 |
RealBadAngel |
kahrl_ this doesn't pass a far_players list |
18:48 |
VanessaE |
ok that's what I thought; I do remember discussing it but I wasn't sure of the disposition. |
18:48 |
RealBadAngel |
it does? |
18:49 |
VanessaE |
kahrl isn't in here. |
18:49 |
est31 |
RealBadAngel, it doesnt pass the list |
18:49 |
RealBadAngel |
fuck me walking, the list is there, its worked on, and being processed later on |
18:49 |
est31 |
https://github.com/minetest/minetest/pull/3166/files#diff-ad60d65b34e16a3319296bb5d683acd6R929 |
18:50 |
est31 |
here it is passed |
18:50 |
est31 |
but it has to be passed every time |
18:51 |
RealBadAngel |
ouch, i see |
18:51 |
VanessaE |
RealBadAngel: told you. |
18:52 |
RealBadAngel |
sorry |
18:52 |
est31 |
in fact kahrl is wrong as it seems |
18:52 |
est31 |
the far_players list is only for writing back |
18:52 |
est31 |
as a result so to say |
18:53 |
est31 |
ermm correct that |
18:53 |
est31 |
karhl is not wrong |
18:53 |
est31 |
but it still stands far_players is only for writing |
18:54 |
est31 |
so yes, the bug would be fixed if far_players would be set, but that would be bad design |
18:54 |
est31 |
at least from what it seems |
18:55 |
RealBadAngel |
im not even sure its needed at all |
18:55 |
RealBadAngel |
if block is modified we do already call raise modified |
18:55 |
RealBadAngel |
so it shall mean its not sent yet |
18:56 |
RealBadAngel |
whenever SAO gets in range it will request the block anyway |
18:56 |
est31 |
RealBadAngel, imagine the following |
18:56 |
RealBadAngel |
go on |
18:56 |
est31 |
1. player A visits a farm. player A gets the blocks |
18:56 |
est31 |
of the farm |
18:56 |
est31 |
2. player A goes home again |
18:57 |
est31 |
3. player B logs in, visits the farm as well and modifies blocks there |
18:57 |
est31 |
now currently the server sets the blocks as not sent for A |
18:57 |
est31 |
4. if now player A goes to the farm to meet B, he will be inside the range of the blocks again |
18:58 |
est31 |
now its needed that the blocks are set as not sent |
18:58 |
est31 |
because if they still set as sent, player A won't see B's modifications |
18:58 |
RealBadAngel |
every modification to the blocks marks them as modified |
18:58 |
est31 |
because the server thinks "hey cool, A was here before, I can chill a bit and not send a those blocks" |
18:59 |
RealBadAngel |
thats why we call raise modified |
18:59 |
RealBadAngel |
that is effectively forcing the block to be resent |
18:59 |
RealBadAngel |
no matter what |
18:59 |
est31 |
but its only sent to the players close |
19:00 |
est31 |
i mean in 3. when player B did the modifications, we shouldnt send the updates to A in real time only because they were there |
19:00 |
RealBadAngel |
if B player will go in range it will request for it |
19:00 |
est31 |
there is no such request |
19:01 |
RealBadAngel |
are you sure? |
19:01 |
est31 |
the client doesnt request blocks, the erver sends them based on where the client is |
19:01 |
est31 |
yes |
19:01 |
RealBadAngel |
i think that youre wrong |
19:01 |
est31 |
there was such a request mechanism in the past though |
19:01 |
RealBadAngel |
turn on minimap and look around |
19:01 |
VanessaE |
RealBadAngel: there's an old patch floating around that makes the client request blocks explicitly. |
19:02 |
VanessaE |
it was never merged, to my knowledge |
19:02 |
RealBadAngel |
client is effectively demanding certain blocks to be loaded |
19:02 |
T4im |
those in viewing direction.. but doesn't the server know about that one too? |
19:02 |
est31 |
yea |
19:02 |
VanessaE |
the server decides what to send, |
19:02 |
est31 |
yup |
19:03 |
RealBadAngel |
no matter the reason but mechanism is here |
19:03 |
est31 |
and this is good |
19:03 |
VanessaE |
and yeah, taking view angle into account |
19:03 |
est31 |
there is TOSERVER_GETBLOCK |
19:03 |
est31 |
but TOSERVER_GETBLOCK is deprecated |
19:03 |
T4im |
what I see in wireshark is, that client ACK's reception to the client, without a request up front |
19:04 |
RealBadAngel |
we can just test that situation |
19:04 |
T4im |
it just gets the blocks send |
19:04 |
RealBadAngel |
imho it shall just work |
19:05 |
T4im |
TOSERVER_GOTBLOCKS? |
19:05 |
T4im |
what is that doing O_o |
19:05 |
RealBadAngel |
if any out of sync will happen it will mean i was wrong |
19:06 |
RealBadAngel |
and then you can just shoot me ;) |
19:06 |
est31 |
T4im, the server always knows which blocks the client currently has loaded |
19:06 |
* VanessaE |
shoots RealBadAngel a dirty look |
19:06 |
VanessaE |
good enough? ;) |
19:06 |
RealBadAngel |
wow |
19:06 |
est31 |
T4im, so that the server knows which blocks to not send when the client gets back to an old pos |
19:06 |
est31 |
T4im, provided those blocks didnt change ofc |
19:06 |
RealBadAngel |
that was really dirty harry's style ;) |
19:06 |
T4im |
oh, ok |
19:06 |
est31 |
which gets us back to topic :) |
19:07 |
RealBadAngel |
est31, ive put there cases to check if meta is not null, both sides |
19:07 |
T4im |
so its more like the client inhibits blockloading than actually requesting it.. |
19:08 |
est31 |
yea |
19:08 |
T4im |
interesting turned around logic :D |
19:08 |
RealBadAngel |
also updated calls, to carry the far players list |
19:08 |
RealBadAngel |
anything more? |
19:08 |
est31 |
T4im, no checks needed whether the client loads areas they should not get |
19:09 |
est31 |
RealBadAngel, dont think so |
19:09 |
RealBadAngel |
theres one piece im still thinkig of |
19:09 |
RealBadAngel |
MapBlock *block = m_env->getMap().getBlockNoCreateNoEx(blockpos); |
19:09 |
RealBadAngel |
if (block) |
19:09 |
RealBadAngel |
block->raiseModified(MOD_STATE_WRITE_NEEDED, |
19:09 |
RealBadAngel |
MOD_REASON_REPORT_META_CHANGE); |
19:10 |
RealBadAngel |
that code is copied over from add and remove node |
19:10 |
RealBadAngel |
what if we cant have the block? |
19:10 |
est31 |
thats important so that the mapblock gets saved to the map db |
19:11 |
RealBadAngel |
idk, io error or something |
19:11 |
est31 |
then block == null |
19:11 |
RealBadAngel |
atm all events are assuming block is here |
19:12 |
RealBadAngel |
that check is only to mark it modified |
19:12 |
|
Robert_Zenz joined #minetest-dev |
19:12 |
RealBadAngel |
but what if it doesnt exist at all? |
19:13 |
est31 |
hrmm good question |
19:13 |
est31 |
I dont really know how getBlockNoCreateNoEx works |
19:14 |
est31 |
e.g. whether it does a serious attempt at e.g. loading the block from map |
19:14 |
est31 |
AFAIK that method only works if a block is loaded |
19:14 |
est31 |
which means players can only modify loaded blocks |
19:15 |
est31 |
dunno if that's bad or not |
19:15 |
est31 |
its a great DOS protection |
19:15 |
est31 |
and hacked client protection as well |
19:16 |
est31 |
so raiseModified has to be called |
19:18 |
RealBadAngel |
i do call it no matter what |
19:19 |
RealBadAngel |
and centralized usage of it |
19:19 |
|
werwerwer joined #minetest-dev |
19:19 |
est31 |
if you do a "if (block)" its fine |
19:19 |
est31 |
if you don't there is a possible nul dereference |
19:19 |
est31 |
which is a bug :) |
19:19 |
RealBadAngel |
but then we proceed with modifications |
19:20 |
RealBadAngel |
imho we shall quit if theres no block |
19:20 |
est31 |
we dont need the block |
19:20 |
est31 |
we only need the meta |
19:21 |
RealBadAngel |
how the meta could be there if theres no block in the first place? |
19:21 |
est31 |
ofc we should quit if there is no meta |
19:21 |
est31 |
well, currently they are tied together, but in the future they might not be |
19:21 |
RealBadAngel |
thats what im rising |
19:22 |
RealBadAngel |
i need meta to be client side able to hold things |
19:22 |
RealBadAngel |
this is where all the story begun |
19:22 |
est31 |
of course, on the client we have to check as well |
19:23 |
RealBadAngel |
get meta, set meta ofc |
19:23 |
RealBadAngel |
still, wheres the block? |
19:23 |
est31 |
on the client thats not important |
19:24 |
est31 |
oh no it is important there as well |
19:24 |
est31 |
for local map saving |
19:24 |
RealBadAngel |
what is the possible reason for this check to fail |
19:24 |
RealBadAngel |
i think it may be important |
19:24 |
est31 |
that it isnt loaded |
19:24 |
est31 |
something like that |
19:24 |
est31 |
ask hmmmm for the details |
19:25 |
RealBadAngel |
if its not loaded, client should not get any meta |
19:25 |
RealBadAngel |
it cant bind the meta with node anyways |
19:25 |
est31 |
well, I guess there is no problem in not using m_env->getMap().getNodeMetadata(p); |
19:25 |
est31 |
but instead using the metadata from the block directly |
19:26 |
est31 |
I mean what does getNodeMetadata() do |
19:26 |
est31 |
it just does MapBlock *block = getBlockNoCreateNoEx(blockpos); |
19:26 |
est31 |
v3s16 p_rel = p - blockpos*MAP_BLOCKSIZE; |
19:26 |
est31 |
NodeMetadata *meta = block->m_node_metadata.get(p_rel); |
19:26 |
est31 |
thats it |
19:26 |
est31 |
and v3s16 blockpos = getNodeBlockPos(p); |
19:26 |
est31 |
but should be ovious |
19:26 |
|
AnotherBrick joined #minetest-dev |
19:27 |
RealBadAngel |
thats just assuming other code should care about cases |
19:27 |
est31 |
? |
19:27 |
RealBadAngel |
i think i should just quit if theres no block |
19:27 |
est31 |
ah |
19:28 |
est31 |
the situation in getNodeMetadata is different |
19:28 |
est31 |
here we call emergeBlock first |
19:28 |
VanessaE |
s/quit/early exit/ :P |
19:28 |
est31 |
when we detect that the block is NULL |
19:28 |
est31 |
so best is you do something like getNodeMetadata does |
19:29 |
RealBadAngel |
see client side now |
19:29 |
RealBadAngel |
http://pastie.org/10426524 |
19:29 |
RealBadAngel |
we have new meta incoming |
19:29 |
RealBadAngel |
if theres old one, we have to delete it first |
19:30 |
RealBadAngel |
and then replace with new pointer and content |
19:31 |
RealBadAngel |
but still, we are not sure if block, pos is valid |
19:32 |
RealBadAngel |
sorry, we do catch invalid pos |
19:33 |
RealBadAngel |
nvm then |
19:33 |
est31 |
perhaps move removeNodeMetadata down into the try part? |
19:33 |
RealBadAngel |
remove shall work the same way as delete |
19:33 |
RealBadAngel |
isnt it? |
19:34 |
RealBadAngel |
i just assumed that here |
19:34 |
est31 |
yea thats even the better way than doing getNodeMetadata; delete |
19:34 |
est31 |
just move removeNodeMetadata(p) down into the try |
19:35 |
est31 |
otherwise you dont check there for the p |
19:36 |
RealBadAngel |
i think that reading p shall be made with some sanity function anyway |
19:36 |
est31 |
asl97, to give you a reply on that issue, I dont think it can be abused for ddos |
19:36 |
est31 |
can it? |
19:36 |
asl97 |
why not? |
19:36 |
RealBadAngel |
thats open door for abuses |
19:37 |
est31 |
I dont really know what happens if p is invalid |
19:37 |
asl97 |
it wouldn't be a big flood of request but can still be annoying for the target |
19:37 |
RealBadAngel |
just some ABS with settings |
19:37 |
est31 |
I think RealBadAngel it throws an serialisationerror or so |
19:37 |
est31 |
which is catched somewhere |
19:37 |
|
AnotherBrick joined #minetest-dev |
19:37 |
asl97 |
countless 404 from random part of the worlds |
19:38 |
RealBadAngel |
i mean incorrect or unwanted positions here |
19:38 |
RealBadAngel |
hacked clients |
19:38 |
est31 |
RealBadAngel, hacked clients?? |
19:38 |
est31 |
RealBadAngel, this is sending from server to client not other way round |
19:39 |
est31 |
asl97, you mean an evil person sets up the server and tells that target is the media server? |
19:39 |
RealBadAngel |
some morons love to modify clients to get advantages |
19:39 |
asl97 |
est31: more or less |
19:39 |
RealBadAngel |
we are not the first ones to face it |
19:39 |
est31 |
asl97, thats indeed a problem |
19:39 |
asl97 |
the old way just send request for each and every single file |
19:39 |
est31 |
asl97, can you make a github report about it? |
19:40 |
RealBadAngel |
but such tiny assumptions can save us such problems in the future |
19:40 |
RealBadAngel |
dont make something thats undoable |
19:41 |
RealBadAngel |
otherwise you will be called in some newspaper for next security hole found ;) |
19:41 |
|
kilbith joined #minetest-dev |
19:42 |
est31 |
RealBadAngel, whats precisely the problem |
19:44 |
est31 |
well, I gotta go |
19:44 |
est31 |
bye! |
19:44 |
RealBadAngel |
est31, not a real problem, just "if" |
20:15 |
|
VargaD_ joined #minetest-dev |
20:31 |
|
Elinvention joined #minetest-dev |
20:33 |
|
leat joined #minetest-dev |
20:34 |
|
Guest17504 joined #minetest-dev |
20:38 |
|
Niebieski left #minetest-dev |
20:42 |
|
domtron joined #minetest-dev |
20:46 |
|
domtron joined #minetest-dev |
20:46 |
|
H-H-H joined #minetest-dev |
20:50 |
|
est31 joined #minetest-dev |
20:55 |
|
Siva joined #minetest-dev |
21:01 |
|
domtron joined #minetest-dev |
21:03 |
|
Player_2 joined #minetest-dev |
22:05 |
|
Darcidride joined #minetest-dev |
22:47 |
|
Kray joined #minetest-dev |
23:02 |
|
asl97 joined #minetest-dev |
23:03 |
|
Siva joined #minetest-dev |
23:04 |
|
VanessaE joined #minetest-dev |