Time |
Nick |
Message |
00:00 |
BlockMen |
kahrl, its somehow related to narrow_to_wide but i dont know exactly what the problem is |
00:03 |
BlockMen |
ehmm..nvm |
00:03 |
BlockMen |
i found it |
00:03 |
BlockMen |
lol |
00:04 |
BlockMen |
sometime i think im blind |
00:05 |
BlockMen |
*and stupid ^^ |
00:08 |
kahrl |
heh, I see it too |
00:09 |
BlockMen |
https://github.com/BlockMen/minetest/commit/2c68ad040260a9b99b5ccfb76f5bba907db93062 :P |
00:09 |
BlockMen |
i gonna push now |
00:09 |
kahrl |
nobody noticed that for how many years now? |
00:09 |
kahrl |
hold on |
00:09 |
BlockMen |
y? |
00:10 |
kahrl |
there are lots of other instances of "> 1" in guiFormSpecMenu.cpp |
00:10 |
kahrl |
well, I count 3 |
00:11 |
kahrl |
(including the one you fixed) |
00:12 |
BlockMen |
found them |
00:12 |
BlockMen |
anything else to fix? |
00:12 |
kahrl |
not that I know of |
00:12 |
BlockMen |
then i have permission to push now? |
00:13 |
Megaf |
https://forum.minetest.net/viewtopic.php?pid=122259#p122259 |
00:13 |
kahrl |
BlockMen: yup |
00:16 |
BlockMen |
done and im going bed now. bye |
00:16 |
|
BlockMen left #minetest-dev |
00:24 |
VanessaE |
LazyJ mentioned a minor oversight: I didn't add any kind of logging output to the rotate_and_place() call...but I wonder, should I be logging the place event there, or should that be set_node()/add_node()'s job? |
00:25 |
VanessaE |
he noticed this when checking his logs for a grief action, before being informed of how to use rollback check |
00:25 |
VanessaE |
(he had already cleaned up the mess by the time he reported it) |
00:35 |
Exio4 |
https://github.com/minetest/minetest/issues/1052 |
00:38 |
|
werwerwer_ joined #minetest-dev |
01:04 |
VanessaE |
is it safe to say that 0.4.7 is end-of-life? |
01:23 |
Megaf |
can someone help us with this? https://github.com/minetest/minetest/issues/1058 |
01:26 |
Megaf |
I'm going to sleep, good night all |
01:27 |
iqualfragile |
night meg |
01:30 |
|
us`0gb joined #minetest-dev |
01:30 |
|
us`0gb joined #minetest-dev |
02:35 |
Taoki |
https://github.com/minetest/minetest_game/pull/232 |
02:35 |
Taoki |
And now I need to head off. Later |
02:37 |
VanessaE |
Taoki: wait! |
02:37 |
Taoki |
It's late and I need to run, sorry |
02:37 |
VanessaE |
[okay.png] |
02:38 |
Taoki |
Don't worry, I'll look into anything else tomorrow |
02:38 |
VanessaE |
wait |
02:38 |
VanessaE |
does this have 4x4/5x5 benches? |
02:38 |
VanessaE |
add those. |
02:38 |
VanessaE |
replicate darkrose's mod |
02:38 |
VanessaE |
we need this in mt_game |
02:39 |
Taoki |
VanessaE: Bad idea for official minetest_game. It only adds a 3 x 3 workbench like in MC |
02:39 |
Taoki |
Mods can add those though |
02:39 |
VanessaE |
trust me |
02:39 |
VanessaE |
we need it |
02:39 |
VanessaE |
users won't install a workbench mod |
02:39 |
VanessaE |
I have tried and tried and tried |
02:39 |
Taoki |
IMO not for minetest_game officially. But if anyone wants that, they can add it later |
02:39 |
VanessaE |
modders refuse to support |
02:39 |
VanessaE |
it needs to be in mt_game or it's a dead idea. |
02:39 |
VanessaE |
we need 4x4/5x5 recipes |
02:39 |
VanessaE |
now. |
02:40 |
Taoki |
If such a recpie is ever added or suggested, I can personally make such a larger workbench. But not now please |
02:40 |
Taoki |
It would be useless now anyway |
02:40 |
Taoki |
I can do it later if it's needed |
02:42 |
Taoki |
Even this needs a lot of testing and I'm not sure if all the developers will agree (due to the whole "making minetest like Minecraft" idea). We'll see later ok? |
02:43 |
Taoki |
And now I really need to go, laters |
02:45 |
VanessaE |
ok |
03:02 |
VanessaE |
commented in the github issue. |
03:06 |
ShadowNinja |
The new-world-sqlite-rollback issue seems to be a error emmited by SQLite. It can't create the DB. |
03:09 |
VanessaE |
what happens if one touch'es the file first? |
03:32 |
|
zat1 joined #minetest-dev |
03:43 |
ShadowNinja |
That would probably cause a read error. (File is not a sqlite db) |
04:07 |
* ShadowNinja |
waves https://gist.github.com/ShadowNinja/7953481 around |
04:12 |
|
IceCraft joined #minetest-dev |
04:53 |
|
OldCoder joined #minetest-dev |
05:09 |
|
Miner_48er joined #minetest-dev |
05:12 |
|
werwerwer joined #minetest-dev |
05:30 |
|
Miner_48er joined #minetest-dev |
05:31 |
|
djdduty joined #minetest-dev |
05:31 |
|
djdduty joined #minetest-dev |
05:52 |
|
Weedy_lappy joined #minetest-dev |
06:38 |
|
blaaaaargh joined #minetest-dev |
06:41 |
|
darkrose joined #minetest-dev |
06:44 |
thexyz |
VanessaE: no shit users don't care about compatibility; what they care about is the ability to play on servers they want to |
06:45 |
VanessaE |
thexyz: indeed so, to wit: https://forum.minetest.net/viewtopic.php?pid=122219#p122219 |
06:46 |
VanessaE |
(I can only guess that's his reasoning) |
06:47 |
VanessaE |
but users also care that they can download mod $foo and it just works |
06:47 |
thexyz |
blah blah blah blah |
06:47 |
thexyz |
don't want to update for whatever reason |
06:47 |
thexyz |
blah blah blah |
06:47 |
|
Kray joined #minetest-dev |
06:47 |
thexyz |
^ this is what it looked like |
06:48 |
VanessaE |
yeah but look closer: he has 0.4.7 as well. |
06:48 |
VanessaE |
anyway, his is a perfect example of your argument, taken to the extreme |
08:17 |
specing |
lolol |
08:17 |
VanessaE |
? |
08:19 |
specing |
Somebody tell that 0.4.6 dude that it will work on windows XP :P |
08:19 |
specing |
do it, for the lulz |
08:40 |
|
Akien joined #minetest-dev |
09:33 |
|
Akien joined #minetest-dev |
09:37 |
|
darkrose joined #minetest-dev |
09:42 |
|
jin_xi joined #minetest-dev |
09:57 |
|
Taoki joined #minetest-dev |
10:04 |
|
Akien joined #minetest-dev |
10:38 |
VanessaE |
um |
10:38 |
VanessaE |
why does the minetestserver spin at 100% CPU just to send data at 44 kbps to a client, when that data is actually coming from a remote_media server? |
10:38 |
VanessaE |
wtf? |
10:39 |
VanessaE |
this is the source of the sign-on lag I've been seeing. |
10:39 |
VanessaE |
is the minetestserver actually hanging/deadlocking while it waits for the client to say "yay! I'm all done!" or something!? |
10:40 |
VanessaE |
and yes, I am absolutely certain it is coming from the remote_media (in my case, nginx). I've tested it myself (30 seconds to receive 35 MB, of which roughly half of that time was spent waiting for the login to complete) |
10:40 |
VanessaE |
what's the deal here? |
10:41 |
VanessaE |
HA! |
10:41 |
VanessaE |
[12-17 05:40] <kaeza> o crap |
10:41 |
VanessaE |
[12-17 05:41] <kaeza> forgot I have CURL support disabled |
10:41 |
VanessaE |
that makes it even worse, so it IS coming from the minetest server. |
10:41 |
VanessaE |
so minetestserver has to spin at 100% CPU on a 2.6 GHz Xeon to send 44 kbps? wtf? |
10:42 |
VanessaE |
I know the code's a little slow but this is just plain wrong on every level. |
10:42 |
Exio4 |
Xeon? :P |
10:43 |
VanessaE |
well it wouldn't matter if it was a Pentium 1 (if they could have run at that speed). |
10:44 |
VanessaE |
hell even my C64 can serve network data at that speed, that's only 5 kBytes/sec and that machine has a 1.02 MHz 6502 |
10:44 |
Exio4 |
haha |
10:49 |
VanessaE |
I'm not gonna let up on this, guys. |
10:49 |
VanessaE |
wtf? |
10:49 |
VanessaE |
this is suitable for low-end machines, and scalable to tens of users at a time? |
10:52 |
|
proller joined #minetest-dev |
10:53 |
|
diemartin joined #minetest-dev |
11:20 |
|
smoke_fumus joined #minetest-dev |
12:00 |
|
iqualfragile joined #minetest-dev |
12:16 |
|
Megaf joined #minetest-dev |
12:23 |
|
Akien joined #minetest-dev |
12:32 |
iqualfragile |
https://github.com/minetest/minetest/issues/1059 |
12:32 |
VanessaE |
https://forum.minetest.net/viewtopic.php?pid=121980 |
12:33 |
VanessaE |
get my updated version which also restricts all-numeric nicknames |
12:34 |
VanessaE |
if I could find a way to test reliably for gibberish all-random-characters nicks I'd add that too |
12:34 |
VanessaE |
but that's all but impossible |
12:35 |
|
ImQ009 joined #minetest-dev |
12:35 |
celeron55 |
if it's all but impossible, then it should be possible, right? |
12:36 |
VanessaE |
celeron55: I guess that's an americanism |
12:36 |
celeron55 |
maybe you should voluntarily speak logically |
12:37 |
VanessaE |
drop "all but" and you get the more common meaning |
12:37 |
VanessaE |
it's impossible to make such a test |
12:37 |
VanessaE |
(it' |
12:38 |
celeron55 |
well, it's probably possible, but maybe not worth the effort |
12:38 |
VanessaE |
(it's usually used to mean "so very nearly X" that it may as well be X) |
12:38 |
VanessaE |
exactly. |
12:39 |
celeron55 |
doing it might actually be pretty fun |
12:39 |
VanessaE |
an additional proposal for this little mod was to filter out vulgar nicks via a dictionary search |
12:39 |
VanessaE |
might be easier :P |
12:39 |
celeron55 |
just do a huge testcase collecting hundreds of "good" and "bad" and self-typed random gibberish and code until it works 8) |
12:41 |
VanessaE |
too lazy to attempt :) |
12:42 |
celeron55 |
plug a spam filter to minetest to do that 8) |
12:42 |
VanessaE |
lol |
12:42 |
VanessaE |
now THAT would be interesting |
12:42 |
VanessaE |
Bayesian filter, anyone? |
12:43 |
VanessaE |
or whatever they're using these days |
12:50 |
|
bas080 joined #minetest-dev |
12:51 |
|
iqualfragile joined #minetest-dev |
13:20 |
|
Zeitgeist_ joined #minetest-dev |
13:20 |
|
Zeitgeist_ joined #minetest-dev |
13:26 |
VanessaE |
celeron55: you may wanna take a closer look at the media sending code in the server. everyone knows it's slow, blah etc, but there's a problem - it's also causing massive CPU usage on the server. as in locks the server at 100% while transmitting the media, if the receiving client has no cURL support |
13:27 |
VanessaE |
total deadlock relative to all other clients. |
13:29 |
proller |
it already was solved in fm ;) |
13:29 |
VanessaE |
proller: perhaps, but fm has memory usage issues. |
13:29 |
proller |
also + very fast transfer to clients |
13:29 |
proller |
now it already fixed |
13:30 |
Exio4 |
you didn't post any pull requests in main mt |
13:30 |
Exio4 |
what FOSS guy you are |
13:30 |
proller |
and it was adjustable |
13:30 |
VanessaE |
Exio4: ehm, don't go there. |
13:30 |
Exio4 |
aw |
13:30 |
celeron55 |
yeah lol sure i will if someone has already done it but just wants to keep it to themselves |
13:34 |
thexyz |
non-foss? do you expect us to always spoonfeed everyone incapable of looking at the commit log? |
13:34 |
thexyz |
he probably isn't going to post pull requests because all previous ones were ignored; and I don't really feel like arguing about it one more time |
13:34 |
Exio4 |
i guess i should have used <troll> and </troll> around |
13:35 |
celeron55 |
>all previous ones |
13:35 |
|
Gethiox joined #minetest-dev |
13:36 |
thexyz |
okay, not all |
13:37 |
|
hmmmm joined #minetest-dev |
13:46 |
VanessaE |
bbl |
13:46 |
|
zat joined #minetest-dev |
14:09 |
|
NakedFury joined #minetest-dev |
14:26 |
|
Gethiox joined #minetest-dev |
14:30 |
|
diemartin joined #minetest-dev |
15:11 |
|
e1z0 joined #minetest-dev |
15:42 |
|
proller joined #minetest-dev |
15:42 |
|
troller joined #minetest-dev |
15:49 |
|
leo_rockway joined #minetest-dev |
16:08 |
|
harrison joined #minetest-dev |
16:12 |
|
troller joined #minetest-dev |
16:13 |
|
harrison joined #minetest-dev |
16:15 |
|
proller joined #minetest-dev |
16:24 |
|
proller joined #minetest-dev |
16:49 |
|
PilzAdam joined #minetest-dev |
16:52 |
|
Jordach joined #minetest-dev |
17:03 |
|
leo_rockway joined #minetest-dev |
17:39 |
PilzAdam |
ShadowNinja, dont add fixes to the changelog that fix stuff that was broken after the last release |
17:50 |
ShadowNinja |
PilzAdam: Oh, I didn't realize, which one? |
17:51 |
PilzAdam |
BlockMen's MSVC fix, maybe others too |
17:51 |
ShadowNinja |
PilzAdam: The order was changed after 0.4.8 and then back? |
17:51 |
PilzAdam |
yes |
17:52 |
ShadowNinja |
Oh, it's in httpfetch. |
17:52 |
ShadowNinja |
I think everything else was broken in 0.4.8. |
18:03 |
|
Calinou joined #minetest-dev |
18:04 |
PilzAdam |
ShadowNinja, https://gist.github.com/PilzAdam/8009690 |
18:05 |
ShadowNinja |
PilzAdam: Can you get something like that into astyle-dev? (Obviously with a setting rather than hardcoding it) |
18:05 |
|
Zeitgeist_ joined #minetest-dev |
18:05 |
|
Zeitgeist_ joined #minetest-dev |
18:09 |
ShadowNinja |
hmmmm: I have a santa model now. It's built on SamII and is built into the model. See https://forum.minetest.net/viewtopic.php?pid=122153#p122153 What do you think? (And to anyone else that it may concern) |
18:10 |
|
Warr1024 joined #minetest-dev |
18:13 |
PilzAdam |
ShadowNinja, I dont have a sourceforge account, so I cant add it to their bug tracker |
18:14 |
ShadowNinja |
I think kaeza has one... |
18:15 |
kaeza |
? |
18:16 |
ShadowNinja |
kaeza: Astyle indents function arguments to the ( of the function using spaces. It should have a option to indent one or two tabs. |
18:17 |
kaeza |
PilzAdam, create an account? |
18:18 |
PilzAdam |
meh |
18:19 |
|
OldCoder joined #minetest-dev |
18:22 |
Taoki |
PilzAdam: minetest_game is still very basic and lacks most features to make for an exciting gameplay. If there's really a decision to no longer add anything to it, that's saddening. I don't see Minetest getting much further out-of-the-box, although engine improvements for other games will make more possible |
18:23 |
PilzAdam |
Taoki, dont mix Minetest and minetest_game |
18:24 |
Taoki |
I know. Minetest is the engine. But minetest_game is the game it ships with, which most people will use |
18:24 |
PilzAdam |
then lets ship Minetest with other games |
18:25 |
Warr1024 |
what are the criteria for changes or new features making it into minetest_game anyway? |
18:25 |
Taoki |
That's... actually a good idea. Not sure if officially it should become a nexus of multiple unrelated games, that might confuse some people. But that wouldn't be a bad thing yes |
18:25 |
Warr1024 |
I'm working on a completely un-minetest_game-like game myself, as it is. |
18:25 |
Taoki |
PilzAdam: In this case however, minetest_game should probably replace minimal_game. Overall, the two still aren't very different from one another |
18:26 |
PilzAdam |
eh, they differe a lot |
18:26 |
Taoki |
Warr1024: Oh, I have plans for a game of my own myself. For now I'm still waiting though |
18:26 |
Warr1024 |
Taoki: whatcha waiting for? |
18:26 |
Taoki |
For engine improvements, and to finish some of my mods |
18:26 |
Warr1024 |
ah |
18:26 |
PilzAdam |
Warr1024, I do too; and more people should do that |
18:26 |
PilzAdam |
where is your game? |
18:27 |
Warr1024 |
I'm sort of remaking X-COM in the MT engine. |
18:27 |
Taoki |
Anyway, I think a workbench might be a nice last thing to add to minetest_game. Though if all the devs say no, I won't cry about it |
18:27 |
Taoki |
Can easily do as a mod as well |
18:27 |
Warr1024 |
the nice thing about minetest_game is that it offers a common base that a lot of mods can build against. |
18:27 |
Warr1024 |
makes it easier for server ops to mix and match mods that they like. |
18:28 |
Warr1024 |
games are generally not mixable. |
18:28 |
PilzAdam |
Warr1024, thats one more reason to not change this base too much |
18:28 |
Taoki |
Warr1024: true true |
18:28 |
PilzAdam |
e.g. a 2x2 crafting grid will "break" a lot of mods |
18:28 |
Warr1024 |
and anyone writing a mod against a non-minetest_game-game is both limiting their audience, and becoming more dependent on the likely smaller dev team of that game. |
18:28 |
Warr1024 |
maybe you could just do a 3x3 built-in grid, and a 4x4 workbench? |
18:29 |
Taoki |
PilzAdam: Actually I didn't know minetest_game is intended as a base. I thought it aims to grow into a full game with lots of items and scripts and mobs and things to do |
18:29 |
Taoki |
That explains why you never planned to add the mob framework to it either... |
18:29 |
PilzAdam |
Taoki, well, just look at the current situation |
18:29 |
PilzAdam |
whatever you do many people will cry about it |
18:30 |
Warr1024 |
a full game is a good base on which to build mods. |
18:30 |
Taoki |
Yeah. It's not a good situation when a lot of people want something and a lot of others don't want that something as badly |
18:30 |
Taoki |
Usually that's solved by adding a setting about it. But such doesn't always work |
18:30 |
Warr1024 |
i.e. modders don't feel the need to fill in too many gameplay holes, and can just focus on what they want to do... |
18:31 |
PilzAdam |
a mod is kinda like a "setting" |
18:31 |
Warr1024 |
though it'd be nice to have more hooks for disabling stuff, like unregistering abm's or recipes at runtime. |
18:31 |
Taoki |
true |
18:31 |
PilzAdam |
and with the modstore you get a nice GUI for it too |
18:31 |
Taoki |
Still... will Minetest ever have a *full* game of its own? |
18:31 |
Taoki |
As in ship with one |
18:31 |
PilzAdam |
IMO the mod system isnt really good; I think more people should make games |
18:31 |
Taoki |
Actually... is there any list of games that are being considered? |
18:32 |
Warr1024 |
I like the idea that minetest_game would gradually incorporate features that are common and/or popular from other mods. |
18:32 |
* Taoki |
agrees more people should make new games too. Although the mod system is pretty OK as well |
18:32 |
Warr1024 |
I think mods would be more interesting if there were a fleshier base game upon which to build. |
18:32 |
Taoki |
I actually can't think how the mod system could be better. Already very flexible and well thought of |
18:32 |
Warr1024 |
more surface area from which to start exploring... |
18:33 |
Warr1024 |
the mod system is technically very good. |
18:33 |
Warr1024 |
you guys may bitch about how ugly the code is or how inefficiently everything is implemented, but I found it surprisingly easy to learn and insanely flexible. |
18:34 |
Taoki |
Warr1024: +1 |
18:34 |
Warr1024 |
Also, the fact that everything runs entirely server-side and clients don't need to download or patch anything manually is beautiful. |
18:34 |
PilzAdam |
Taoki, my point is that the casual user isnt capable of designing a good game via mods as he is supposed to currently |
18:35 |
Warr1024 |
true, a lot of people's approach to modding is usually "ooh, this sounds cool, let's add it" instead of "will this fit into the overall game experience I want to design?" |
18:35 |
Taoki |
PilzAdam: My hope was that whenever a mod becomes good and stable, it stops being a mod and becomes part of minetest_game. An example of mods which I instantly supported adding is the paintings mod. Also crossbow mod, although I'm not sure how good the arrow throwing code is |
18:36 |
Taoki |
Erm, bow mod, not crossbow |
18:36 |
Warr1024 |
it would be nice for minetest_game to start living up to the _game part a bit more... what it feels like it needs now is some kind of adversary. |
18:37 |
Warr1024 |
i.e. mobs or monsters or other more varied hazards. |
18:37 |
Taoki |
Warr1024: Agreed on that |
18:37 |
Warr1024 |
if you want to preserve the "build without annoyances" experience, maybe fork off a "creative" version or something. |
18:37 |
Warr1024 |
no reason why minetest needs to ship with exactly one game. |
18:37 |
Taoki |
Although PilzAdam is right too. Many people are used to running minetest_game with various mods for various things. If a component is added to minetest_game, people might get upset. eg: "This mobs framework was better, why did you add another one?" |
18:38 |
Warr1024 |
well, maybe it's an argument for allowing mods within a game to be disablable. |
18:38 |
Taoki |
PilzAdam: Actually, there might be a way to solve this! Make various components of minetest_game mods themselves. They are enabled by default, but can be turned off if the sever wants to replace them. |
18:39 |
Warr1024 |
on the one hand they are sort of designed to work together as a single whole, but on the other hand they ARE structures as mods, and they DO have depends.txt... |
18:39 |
Taoki |
eg: You could include your simple_mobs framework in minetest_game and use it by default. But if someone doesn't like it and wants to use their own, they can disable the mods_framework part of minetest to add their own |
18:39 |
Taoki |
That would make everyone happy |
18:39 |
Taoki |
What do you think of this approach? |
18:40 |
PilzAdam |
still same issue: normal players cant design games |
18:40 |
Warr1024 |
what if games didn't contain mods. |
18:40 |
Warr1024 |
instead they were just basically depandancies. |
18:40 |
Taoki |
Some. Some can design mods whcih are good. The server admin would still take the choise though |
18:40 |
Warr1024 |
so there'd be a set of mods/modpacks that make up the standard minetest experience. |
18:41 |
PilzAdam |
(declaimer: this obviously doesnt apply to all players and isnt meant in a bad way) |
18:41 |
Warr1024 |
then a "game" is just a selection of those mods. |
18:41 |
PilzAdam |
*disclaimer |
18:41 |
Taoki |
And it's not just for normal players. Multiple developers might make multiple implementations of the same thing. The one which is decided to be best is added to minetest_game, so everyone benefits of it out of the box. But it can be disabled and replaced |
18:41 |
Warr1024 |
PilzAdam: no, I hear you. I probably couldn't design a game too well myself; my talent is almost exclusively technical. |
18:41 |
Taoki |
There are already multiple sub-folders in minetest_game. the "default" directory includes most things, but others are separated. If only there was a way to easily disable each one |
18:42 |
Warr1024 |
right now the major difference between a "game" and a "modpack" seems to be that (1) you can't mix games, and (2) you can't disable mods from within a game short of deleting them. |
18:42 |
Taoki |
Yeah. That statement is true for some players. As in, if you're mostly just a player and never worked in modding, it's hard to make anything good unless you practice |
18:43 |
Taoki |
I'm a developer and modder apart from a player, so (hopefully lol) I can be both |
18:44 |
Warr1024 |
Ideally, the way I'd see this working is that minetest_game is distributed as a modpack, i.e. a pack of independent-ish content added to the tabula rasa base. Then there are "games" like "minetest survival" and "minetest creative" which are just selections from those modpacks. This means that a lot of base content can also be shared between games. |
18:45 |
Warr1024 |
For that to work with a modstore, though, you'd want to be able to pick a game to download and have it pull all the dependent mod[pack]s automatically. For that to work smoothly, you might need author namespaces in modnames. |
18:52 |
Warr1024 |
anyone find that old "limit the number of mesh rebuilds per frame" patch? |
18:55 |
Taoki |
PilzAdam: BTW. VanessaE noticed that the VBO patch is no longer compatible with latest master. Can you please rebase it sometime? |
18:55 |
Taoki |
If possible, merge it into master as well!!! :P But for now at least rebase please, when you have time |
19:04 |
|
leo_rockway joined #minetest-dev |
19:19 |
|
OldCoder joined #minetest-dev |
19:21 |
|
proller joined #minetest-dev |
19:24 |
Warr1024 |
I'd like to try it out myself. |
19:30 |
Taoki |
Warr1024: VBO code? |
19:35 |
Warr1024 |
yes |
19:36 |
Warr1024 |
I have an intel atom that would make performance improvements related to rendering and mesh recalc very visible. |
19:39 |
Taoki |
If someone rebases it on latest master, sure |
19:39 |
Taoki |
It improves performance a lot. Still waiting for it to be merged |
19:40 |
|
sapier joined #minetest-dev |
19:41 |
Warr1024 |
where's the pull, and how ugly of a rebase are we talking here? |
19:41 |
Warr1024 |
is this something that somebody not familiar with the code in particular, but marginally competent at reading code, could do? |
19:42 |
PilzAdam |
Warr1024, it only helps pretty high-end cards |
19:42 |
Warr1024 |
aw |
19:43 |
Warr1024 |
well, that limiting of the number of meshes to recalc per frame would help low-end quite a bit |
19:43 |
Warr1024 |
but celeron55 seems to have absconded with it :-) |
19:45 |
specing |
? |
19:45 |
specing |
oops |
19:45 |
|
harrison joined #minetest-dev |
19:46 |
Warr1024 |
would it be easy to do it myself (e.g. just throw in a config for how many loops to run of a current dequeue process) or would it be more involved (e.g. current code always processes all meshes, I'd have to add a queue to persist these across frames)? |
19:53 |
Warr1024 |
it looks like mesh recalc is done in a background thread, and it's updating them in the client display thread that's causing the slowdown...? |
19:53 |
Warr1024 |
if that's the case, it looks like I just need to add a num_processed_meshes condition to the loop, in the simplest case. |
19:53 |
Warr1024 |
ideally, I'd be able to hook into some existing timer and set a max number of milliseconds so this scales well with better hardware... |
19:57 |
|
Akien joined #minetest-dev |
19:58 |
thexyz |
why not try it then? |
20:01 |
Warr1024 |
I'ma try it. |
20:01 |
Warr1024 |
it will just take like forever to compile on this machine :-) |
20:01 |
Warr1024 |
if I produce a patch, I can test on some low-end and mid-end hardware, but I'd need help regression-testing on high-end to ensure that things are at least not noticeably worse. |
20:09 |
ShadowNinja |
Um, ServerEnvironment:serializePlayers iterates over every file in the players directory... |
20:09 |
Warr1024 |
makes some sense |
20:10 |
Warr1024 |
on case-insensitive vs. case-sensitive filesystems. |
20:10 |
PilzAdam |
ShadowNinja, also old_inv != inv is always true, thats why all playerfiles are written all the time |
20:10 |
ShadowNinja |
And of course every playerfile is loaded on startup. |
20:10 |
thexyz |
what a waste |
20:10 |
ShadowNinja |
PilzAdam: They shouldn't even be loaded if they aren't connected. |
20:11 |
thexyz |
why? |
20:11 |
ShadowNinja |
thexyz: So that you aren't wasting memory and CPU of course. |
20:11 |
Warr1024 |
it'd actually be kind of nice if stuff like player files could be written instead into sqlite or leveldb databases, transactionally... |
20:11 |
thexyz |
top joke |
20:11 |
thexyz |
wasting cpu (once) and memory (how many megabytes? 1?) |
20:11 |
thexyz |
is unacceptable now |
20:12 |
PilzAdam |
Warr1024, so people cant edit it with their text editor anymore? |
20:12 |
Warr1024 |
PilzAdam: well, you already can't edit the world with a text editor. |
20:13 |
thexyz |
well it's still unclear to me why does it have to load all players and how's that related to case-insensitivity |
20:13 |
Warr1024 |
load? no |
20:13 |
Warr1024 |
but it would have to iterate over the filesystem entries |
20:13 |
Warr1024 |
some filesystems are case-sensitive, some are case-preserving, and some totally mess up case. |
20:14 |
ShadowNinja |
thexyz: No, every time you iterate through the playerlist. And you can have >10000 playerfiles (I have over twice that many.) |
20:14 |
Warr1024 |
(though there aren't too many of the last anymore, as I understand it) |
20:14 |
thexyz |
is minetest case-insensitive? |
20:14 |
Warr1024 |
so you might have a world you created on a system where your player name was written and case not preserved well, then transfer it to a server on a case-sensitive platform... |
20:14 |
Warr1024 |
case-insensitivity with player names would be nice. |
20:14 |
ShadowNinja |
thexyz: And there's no reason to have them loaded AFAIK. |
20:15 |
ShadowNinja |
thexyz: No. |
20:15 |
Warr1024 |
I think it's currently either case-sensitive, or it may depend somewhat on the underlying FS. |
20:15 |
thexyz |
lol that's so wrong |
20:15 |
ShadowNinja |
Warr1024: Mods and the like are case-sensitive. They use case-sensitive string compatisons. |
20:15 |
Warr1024 |
it'd be sort of nice to make it case-insensitive across the board. |
20:15 |
Warr1024 |
at least for player names |
20:16 |
Warr1024 |
case-sensitivity is fine for a programming interface, including any part of mods. |
20:16 |
thexyz |
so on windows it's case-insensitive and on linux is case-sensitive and I still don't understand why does it have to iterate over all players in order to update the files |
20:16 |
|
Miner_48er joined #minetest-dev |
20:16 |
Warr1024 |
to read or update all the files? no, it wouldn't have to |
20:16 |
thexyz |
or, wait, it's case-sensitive on both |
20:16 |
thexyz |
should be |
20:16 |
Warr1024 |
it'd just have to do so to ensure that it can find the files. |
20:16 |
thexyz |
then it's not wrong of course |
20:17 |
* VanessaE |
peeks in and yells random things about network code wuality |
20:17 |
PilzAdam |
thexyz, AFAIK on windows it only preserves case |
20:17 |
VanessaE |
quality* |
20:17 |
Warr1024 |
thexyz: the problem is that you can't be 100% case-sensitive if you're writing playername.txt files on a case-insensitive filesystem. |
20:17 |
daswort |
When does the mine-test end? :P |
20:17 |
Warr1024 |
for instance, if Warr1024 and warr1024 both log in on Windows, whose data will get stored in WARR1024.TXT? |
20:18 |
Warr1024 |
daswort: hopefully it never will. right now, it's a test of the software; eventually, it'll be a test of your skills :-) |
20:18 |
ShadowNinja |
Warr1024: The player that logs in as WARR1024.TXT. :-) |
20:18 |
thexyz |
Warr1024: check the code it should handle this case |
20:18 |
Warr1024 |
can anyone point me to the right file real quick? |
20:18 |
thexyz |
it will make the first one Warr1024 and the second one Warr10240 or so it seems |
20:18 |
PilzAdam |
Warr1024, environment.cpp |
20:19 |
Warr1024 |
oic |
20:19 |
Warr1024 |
then I guess that explains why it has to iterate over and open every player file. |
20:19 |
Warr1024 |
if the player names are stored IN the file, not AS the file name. |
20:19 |
thexyz |
yes but you know |
20:19 |
thexyz |
you can do it on server startup and store file name in Player class |
20:20 |
thexyz |
so then you just iterate over players and update only modified ones |
20:20 |
daswort |
Warr1024~ Good way to put it. :D |
20:20 |
Warr1024 |
alternatively, you could use a sqlite database to store players, and you get (1) atomicity and transactional safety, to a certain degree, (2) players are still accessible using simple cmdline tools, and (3) unambiguous naming and random seek. |
20:20 |
PilzAdam |
thexyz, thats where the old_inv != inv problem peeks in |
20:20 |
thexyz |
people will bitch |
20:20 |
Warr1024 |
or we could just hash the player name and make the filename the hash. |
20:21 |
thexyz |
PilzAdam: well it's a separate one; why is it always not equal? |
20:21 |
PilzAdam |
dunno |
20:21 |
ShadowNinja |
So that's why it loops through every one of 20000+ files with every player. To find the one for a player. |
20:21 |
ShadowNinja |
For Win$ compat. |
20:21 |
Warr1024 |
or just lowercase(playername) + "_" + lowercase(hash(playername)) |
20:22 |
ShadowNinja |
Hashes might solve this, yes. |
20:22 |
thexyz |
by looking at the code of serializedPlayers it seems it doesn't even check anything in the second loop |
20:22 |
Warr1024 |
that scheme would make it relatively easy to find a player by name, but work fine with case-insensitve filesystems. |
20:22 |
Warr1024 |
(hash is hex- or base32- or similar-encoded) |
20:22 |
thexyz |
[00:19:51] <thexyz> you can do it on server startup and store file name in Player class |
20:22 |
thexyz |
[00:20:06] <thexyz> so then you just iterate over players and update only modified ones |
20:22 |
thexyz |
please |
20:22 |
Warr1024 |
yes, writing out only actually-modified players would be very nice. |
20:22 |
Warr1024 |
being able to unambiguously seek to a file instead of having to read them all to find a player would also be awesome :-) |
20:23 |
Warr1024 |
20k+ player files? man, that's such a first-world problem :-) |
20:23 |
ShadowNinja |
Well that can be done, but the filenames should be better. That still requires iterating through all files every time a player joins. Hashes seem like a good solution. |
20:24 |
PilzAdam |
suddenly: backwards compatibility |
20:24 |
ShadowNinja |
Of course you'd have to provide a converter. |
20:24 |
Warr1024 |
ha |
20:24 |
Warr1024 |
true |
20:24 |
Warr1024 |
I guess on server startup you'd have to look for any player files that DON'T have the hash name and rename them. |
20:25 |
Warr1024 |
and we'd have that little bit of legacy stuck around for some time, likely. |
20:25 |
Warr1024 |
alternatively, just loop through all the player files exactly once on startup to build an index, then persist it through the entire session. |
20:25 |
ShadowNinja |
mkdir players2 && for each playerfile mv players/$playerfile players2/$(sha1sum $(get real player name)) end && mv players2 players |
20:25 |
Warr1024 |
how long does it take to scan these files currently? |
20:25 |
thexyz |
ShadowNinja: no it doesn't require you to iterate over all player files when a player joins |
20:26 |
PilzAdam |
we could add .mpf (minetest player file) so its easier to identify the old format |
20:26 |
thexyz |
if you can do something without hashes then better do it without hashes |
20:26 |
Warr1024 |
PilzAdam: +1 |
20:26 |
thexyz |
if of course it's of the same complexity, etc |
20:26 |
thexyz |
oh well no one is listening i probably should stop talking then |
20:27 |
Warr1024 |
listening, just not necessarily commenting. |
20:27 |
PilzAdam |
thexyz, why dont you like hashes? |
20:27 |
Warr1024 |
I don't see any significant advantage to NOT doing hashes. |
20:27 |
|
Calinou joined #minetest-dev |
20:27 |
thexyz |
because this problem can be solved more easily |
20:27 |
thexyz |
and in a sane way |
20:27 |
PilzAdam |
so you say hashes are not easy? |
20:27 |
thexyz |
yes they aren't |
20:27 |
Warr1024 |
I don't see what way you're proposing that's easier than hashes. |
20:28 |
Warr1024 |
man, when did hashes become not easy? |
20:28 |
ShadowNinja |
thexyz: The only other option that I can think of is using escapes for capitalized characters, eg '^'. |
20:28 |
Warr1024 |
just throw an MD5 at it or something. It's not like it's gotta be bulletproof. |
20:28 |
thexyz |
oh shit no one is reading what i say |
20:28 |
thexyz |
whatever |
20:28 |
PilzAdam |
thexyz, maybe others dont share your opinion on hashes? |
20:28 |
Warr1024 |
store file name in player class? |
20:28 |
VanessaE |
or you could keep a database file somewhere with mappings of upper<->lower that is only ever read at server startup/ |
20:29 |
Warr1024 |
that helps you find the player file to write it out when already loaded. |
20:29 |
Warr1024 |
doesn't help you find the file to load it in the first place |
20:29 |
thexyz |
VanessaE: well that's almost what I'm suggesting |
20:29 |
VanessaE |
thexyz: I actually missed your suggestion |
20:29 |
VanessaE |
lost in the noise |
20:29 |
thexyz |
Warr1024: load every player on startup |
20:29 |
Warr1024 |
thexyz: I thought "load every player on startup" was something we were hoping to avoid. |
20:29 |
thexyz |
lol no, it's not a problem |
20:30 |
Warr1024 |
some servers may have tens of thousands of players, 99% of whom are abandoned defunct accounts. |
20:30 |
ShadowNinja |
Or we could make playername chesks case-insensitive, but with caps showing, like IRC. |
20:30 |
thexyz |
and the player file is less than 1k |
20:30 |
thexyz |
anyway I'm fine with any solution |
20:30 |
Warr1024 |
I mean, it's not HORRIBLE (I assume players who aren't logged in won't take much RAM) but it's kind of ugly. |
20:30 |
thexyz |
I just think that people here prefer to talk, not implement things |
20:30 |
Warr1024 |
and 20,000 player files is a fairly good number of HDD seeks... |
20:30 |
thexyz |
so well do hashes if that's what you want, it'll be better than what we have now |
20:31 |
Warr1024 |
I'm thinking about implementing the hash thing, though first I was gonna do the mesh update limiting thing. |
20:31 |
thexyz |
and if it still sucks then we can just replace it by another solution |
20:31 |
Warr1024 |
thexyz: if you really want to implement it, implement it. |
20:31 |
thexyz |
no I really don't because I'm busy with other things |
20:31 |
Warr1024 |
upstreaming of patches is a slow process, but with persistence, it DOES get done... |
20:31 |
thexyz |
like android shitport or something |
20:31 |
Calinou |
idea: remove player files of players 1) with no additional or removed privileges compared to default, 2) with empty inventory, 3) close to the spawn |
20:32 |
Calinou |
I just thought of that |
20:32 |
thexyz |
20k of file reads once at startup? i don't see a problem here |
20:32 |
Warr1024 |
Calinou: neat idea. |
20:32 |
VanessaE |
Warr1024: that's if you can stay on top of your patches and keep them "fresh" long enough to get them merged |
20:32 |
Warr1024 |
kind of the problem here is that there are too many pretty-good ideas, none significantly better than the rest, and nobody seems to be really THAT interested in this problem. |
20:33 |
thexyz |
well you can combine both ways and store filename in player class while having it hashed if so you want |
20:33 |
thexyz |
this way you get both advantages |
20:33 |
Warr1024 |
VanessaE: yeah, you can really only champion a few at a time, at most; gotta pick your battles to make any real headway. |
20:33 |
ShadowNinja |
snprintf(m_name, PLAYERNAME_SIZE, "%s", name); -- Um, strncpy? |
20:33 |
thexyz |
you don't have to load all player files and you don't have to recalculate file name every time |
20:34 |
thexyz |
lol wtf why do we have C strings here |
20:34 |
Warr1024 |
Calinou: actually, for very large servers, it might be more practical to just write a mod that tracks player last-seen timestamps and either deletes, or specially-archives, any player that hasn't been seen in a long time. |
20:35 |
thexyz |
i now think minetest can be described as "inconsistent nih" |
20:35 |
VanessaE |
Warr1024: the problem is eventually, after just so many battles, you walk away with too many cuts and more scars than clean skin, and you start asking yourself when is 'enough'. |
20:35 |
VanessaE |
that's the problem we have been having here. |
20:36 |
ShadowNinja |
I'll push this in a minute if nobody objects. |
20:36 |
ShadowNinja |
http://pastebin.ubuntu.com/6590848/ |
20:37 |
Warr1024 |
VanessaE: well, there's always the option of forking, I guess. Usually not a very amicable solution, but it can work for when the bureaucracy of a project starts to run away from the developers... |
20:37 |
VanessaE |
Warr1024: suddenly, Freeminer. |
20:37 |
Warr1024 |
hm, I guess I may check that out. |
20:37 |
VanessaE |
it is the result of that exact process. |
20:37 |
Warr1024 |
I'm working on a game for MT, so it's probably a good hedge to make sure it works on some major forks as well :-) |
20:41 |
ShadowNinja |
Or this rather: http://ix.io/9pH |
20:42 |
Calinou |
<thexyz> i now think minetest can be described as "inconsistent nih" |
20:42 |
Calinou |
there are projects which do way worse in NIH... |
20:42 |
Calinou |
it's bad to accuse NIH all the time, it makes you not do other things |
20:44 |
Warr1024 |
it's not NIH to try to reinvent the wheel, necessarily. It doesn't become NIH until you say "their wheels are rounder, but I think we should stick with the square ones we developed in-house" |
20:44 |
Calinou |
PilzAdamWarr1024, it only helps pretty high-end cards |
20:44 |
thexyz |
but there are just so many cases of NIH |
20:44 |
Calinou |
VBO helps here... |
20:44 |
Calinou |
(I pasted PilzAdam talking about VBO) |
20:44 |
Warr1024 |
Calinou: you're on mid/low-end? |
20:44 |
Calinou |
old high end |
20:44 |
Calinou |
but not that much high end |
20:44 |
Warr1024 |
ok. |
20:44 |
Warr1024 |
I'm generally on new-low or semi-old-mid end. |
20:45 |
Warr1024 |
actually, I *might* be on low and very-low, depending on perspective. |
20:45 |
Warr1024 |
All IGP's atm. |
20:45 |
Calinou |
VanessaE, talking about the lack of cURL support from clients, maybe there could be a setting to disallow non-cURL people from connecting |
20:45 |
Warr1024 |
it's just that MT does pretty well on the low-end, so it doesn't feel too low. |
20:45 |
Calinou |
(which causes lots of CPU usage) |
20:45 |
VanessaE |
Calinou: VBO is nice if you can get PilzAdam to rebase it. Notice he ignored Taoki's request? |
20:45 |
Calinou |
I saw it |
20:45 |
thexyz |
ShadowNinja: I object |
20:45 |
VanessaE |
someone needs to JUST FUCKING MERGE IT! |
20:46 |
Calinou |
but I use freeminer, which works fine on Minetest server |
20:46 |
Calinou |
so I have it already |
20:47 |
thexyz |
Calinou: i think we should just make it fail to compile without freetype/curl and output a message that if you really want to compile without this stuff then comment this line |
20:47 |
VanessaE |
thexyz: +1 |
20:48 |
VanessaE |
but that doesn't solve the problem |
20:48 |
VanessaE |
the media/network sending code needs fixed. BADLY. |
20:48 |
Warr1024 |
thexyz: I concur, except without the message about commenting. |
20:48 |
VanessaE |
because cURL or no cURL, it's trivially easy to end up with a situation where some or all media on a server gets sent over the old protocol |
20:49 |
thexyz |
VanessaE: well proller has fixed something like that in freeminer |
20:49 |
VanessaE |
so I heard. |
20:49 |
VanessaE |
as you know my attempt to migrate to freeminer ended in failure :( |
20:49 |
Calinou |
downloading from server is usually not efficient, compared from downloading from web anyway |
20:49 |
Calinou |
VanessaE, how and why? |
20:49 |
thexyz |
VanessaE: yeah well |
20:49 |
VanessaE |
Calinou: I'm not talking about the transfer efficiency. |
20:49 |
Warr1024 |
VanessaE: I was thinking about working on a solution at some point that would let the server send *updated* or *new* textures during play. Maybe the general solution (see Inventor's Paradox) is just to make texture transfer happen in background at any time during the session. |
20:50 |
Calinou |
not efficient as in, slow |
20:50 |
sapier |
can someone explain to me why minetest sends 512byte packets? |
20:50 |
Warr1024 |
It'd be kind of interesting to allow a player to emerge *instantly* and just play in a solid-shaded world as textures gradually load. Uglier, but potentially more functional. |
20:50 |
Calinou |
sounds good, but not sure if doable |
20:50 |
VanessaE |
Calinou: I am talking about the CPU usage, efficiency, and latency of the *server* side of the equation as it applies to the other clients who are already connected when a new client signs on and begins downloading media. |
20:51 |
Warr1024 |
sapier: avoiding IP frags when path MTU's are not well-known? |
20:51 |
Calinou |
textures only seem to be checked once at load, except menu textures |
20:51 |
Calinou |
or HUD textures |
20:51 |
sapier |
MTU below 512? |
20:51 |
proller |
sapier, minetest players must suffer |
20:51 |
Warr1024 |
sapier: I've used MTU's of 576 on dial-up back in the day. |
20:51 |
Calinou |
VanessaE, maybe that's from where the general lag on big servers comes from... and that's amplified by "Guest" people |
20:51 |
Warr1024 |
kind of unlikely these days, but who knows...? |
20:51 |
VanessaE |
Calinou: precisely. |
20:51 |
Warr1024 |
some ATM uplinks use MTU's of like 1300 or 1400 |
20:52 |
Warr1024 |
1024 should be pretty safe on most modern networks, though, except I can't vouch for cellular. |
20:52 |
VanessaE |
Calinou: guests and all-numeric accounts are blocked on my servers with that on-pre-joinplayer function kaeza added, so that helps greatly, but it still doesn't solve the problem |
20:52 |
sapier |
so we add 150% overhead for downloading media to avoid fragmentation for 1% of users, withing a game phase the one wouldn't even realize performance issues? |
20:53 |
Calinou |
guests should just be off by default, I don't get it why there are so many of them |
20:53 |
sapier |
assuming mintest really handles fragmentation faster then router would do ;-) |
20:53 |
Warr1024 |
sapier: true.dat |
20:54 |
Warr1024 |
sapier: actually, UDP packets can go up to 64k, and IP probably handles fragmentation BETTER than we do, as long as we don't do weird shit like set the DF flag on our frags like Linux NFS has. |
20:54 |
VanessaE |
then ramp it the fuck up to 64k |
20:54 |
Warr1024 |
sapier: so 512 may be a reasonable packet size limit for gameplay action and such, but we should probably just max it out for bulk transfers. |
20:55 |
Warr1024 |
test it out on a shitty wifi and make sure it doesn't choke harder than the old one did. |
20:55 |
sapier |
no 64k is jumbo frames those aren't supported by a lot of networks |
20:55 |
VanessaE |
auto-test for the maximum size then |
20:55 |
sapier |
but I'd guess 1300bytes wouldn't cause any fragmentation for 99.9% |
20:55 |
VanessaE |
send a 64k packet, then 32, then 16... |
20:55 |
sapier |
mtu autodiscovery isn't a simple task ;-) |
20:56 |
VanessaE |
bull. |
20:56 |
VanessaE |
send packet, client sends back ack or nak, repeat. |
20:56 |
sapier |
we don't have any way to find out |
20:56 |
VanessaE |
we had this figured out back in the 1980's :) |
20:56 |
VanessaE |
um. |
20:56 |
Warr1024 |
64k is not a jumbo frame, it's a datagram. |
20:56 |
Warr1024 |
it gets broken up into multiple frames automatically on layer 3. |
20:56 |
VanessaE |
the client can always send back a checksum that says "I can receive that much safely" |
20:56 |
sapier |
you're right Warr1024 |
20:56 |
thexyz |
yeah well we should just drop the connection.cpp and use some library in the next major release |
20:56 |
Warr1024 |
fuck PMTUD, let 'em fragment :-) |
20:57 |
|
Gethiox joined #minetest-dev |
20:57 |
VanessaE |
thexyz: maybe so. |
20:57 |
Warr1024 |
I mean, we're ALREADY doing our OWN fragmentation. |
20:57 |
Warr1024 |
might as well simplify. |
20:57 |
VanessaE |
thexyz: what would this break, seriously? |
20:57 |
sapier |
we can't drop connection but we can stop it from fragmenting |
20:58 |
Warr1024 |
thexyz: yeah, there are probably a lot of 3rd-party libraries by now that have compatible licensing and are more mature than what's in MT right now. |
20:58 |
thexyz |
Warr1024: i think someone has suggested enet |
20:58 |
sapier |
can we do this in a compatible way? |
20:58 |
thexyz |
lol no |
20:58 |
ShadowNinja |
I'll push THIS in a minute... http://ix.io/9pM |
20:59 |
thexyz |
ShadowNinja: i object once again |
20:59 |
Warr1024 |
don't we already have occasional compatibility breaks in the protocol? |
20:59 |
ShadowNinja |
thexyz: Why? |
20:59 |
thexyz |
perhaps but no one has ever tested it |
20:59 |
Warr1024 |
a complete network overhaul might be worth it for like an 0.5.0 milestone... |
20:59 |
thexyz |
and it seems to be more-or-less compatible |
20:59 |
Calinou |
more like 1.0 </normal versioning scheme> |
20:59 |
thexyz |
yeah, adding a key-value would be a good idea too |
20:59 |
thexyz |
ShadowNinja: because those are two different functions that do different things |
20:59 |
Warr1024 |
Calinou: don't be silly, open-source projects don't DO 1.0 :-) |
21:00 |
ShadowNinja |
I'd like to have a release where we don't worry about campatability and can fix things. |
21:00 |
sapier |
for security reasons the memset to password should be done after sending that packet ... but I guess we'd have to add this at so many locations we can't even coun't them |
21:00 |
Warr1024 |
in the open-source world you ship good quality code and call it beta, and in the commercial world you ship alpha code and call it release. |
21:00 |
ShadowNinja |
thexyz: snprintf is used as strncpy. Unless you know of a way that they differ? |
21:01 |
Calinou |
Warr1024, that's the problem |
21:01 |
thexyz |
ShadowNinja: yes i know |
21:01 |
Warr1024 |
if we're dropping in a new net backend, datagram TLS would be a pretty sweet thing to add too :-) |
21:01 |
ShadowNinja |
thexyz: Well?... |
21:01 |
Calinou |
version number advances too slow... it doesn't change product quality, but an higher one makes it feel more polished |
21:01 |
thexyz |
ShadowNinja: well of course i can't expect people to read standard or google so I'll explain |
21:01 |
Calinou |
ShadowNinja, where do we worry about compatibility much? |
21:01 |
thexyz |
The functions snprintf() and vsnprintf() write at most size bytes (including the terminating null byte ('\0')) to str. |
21:01 |
thexyz |
If the length of src is less than n, strncpy() writes additional null bytes to dest to ensure that a total of n bytes are written. |
21:02 |
thexyz |
got it? |
21:02 |
Warr1024 |
Calinou: I actually prefer projects whose versioning is just fixed time intervals, like Ubuntu or OpenBSD, that just ship a monotonically-increasing version number every 6 months. |
21:02 |
Calinou |
or we could use a year.month.day scheme |
21:02 |
Calinou |
like I used to do for my mods |
21:02 |
ShadowNinja |
Calinou: The protocol mostly. |
21:03 |
sapier |
thexyz you are aware that strncpy doen't ensure 0 termination? |
21:03 |
ShadowNinja |
thexyz: That allowed me to remove a memset, but besides that it's irrelevant. |
21:03 |
thexyz |
sapier: well that's what i'm talking about, isn't that clear? |
21:03 |
thexyz |
ShadowNinja is not aware it seems |
21:05 |
|
sapier1 joined #minetest-dev |
21:05 |
sapier1 |
ShadowNinja: do not ADD http://ix.io/9pM |
21:05 |
sapier1 |
you miss 0 termination in case source string is > field size |
21:06 |
proller |
Warr1024, firefox increases version every month. but why? except marketing |
21:06 |
ShadowNinja |
:-| You'd think that a string function would ensure 0-termination. |
21:06 |
sapier1 |
read man page it does |
21:07 |
Warr1024 |
proller: simplicity. some projects increase by 0.1 or 0.01 at fixed intervals, but the data is really just a decimal-shifted integer in reality. |
21:07 |
sapier1 |
The functions snprintf() and vsnprintf() write at most size bytes (including the trailing null byte ('\0')) to |
21:07 |
sapier1 |
str. |
21:07 |
Warr1024 |
I've thought about adopting an "r1", "r2", "r3", etc. scheme. |
21:07 |
VanessaE |
christ in a cartoon. players are seeing HALF HOUR LAGS on my server |
21:07 |
VanessaE |
G*D damn it guys. this shit has to stop! |
21:08 |
thexyz |
you'd think people read man pages |
21:08 |
proller |
Warr1024, major version must be changed when something incompatible appears |
21:09 |
ShadowNinja |
sapier: I was refering to strncpy, whitch is actually in (c)string(.h) |
21:10 |
sapier |
strncpy doesn't ensure 0 termination |
21:10 |
proller |
VanessaE, welcome to fm ;) |
21:10 |
Warr1024 |
proller: I usually bump major whenever I EOL an old branch. |
21:10 |
sapier |
there's a explicite warning in man page for this issue ;- |
21:10 |
VanessaE |
proller: until fm is supported by the core team and I can be 100% sure its memory and CPU usage are equal to or less than minetestserver, I don't think i can use i. |
21:10 |
VanessaE |
it* |
21:11 |
ShadowNinja |
sapier: Yes, but it would make sense for it to, seing as it's a string function, and strings are nul-terminated. It seems strncpy is pretty much just memcpy then. |
21:11 |
proller |
VanessaE, anything is adjustable |
21:11 |
sapier |
yes seems to be ... I got used to non-sense things in programming ;-) |
21:12 |
sapier |
proller connection handling is broken by design if you did redesign it we're pleased to merge that fix ;-) |
21:13 |
proller |
sapier, some improvements was commited today |
21:13 |
proller |
but it must be rewritten |
21:14 |
proller |
to tcp or enet or... |
21:14 |
proller |
sctp ;) |
21:14 |
sapier |
not an option |
21:14 |
sapier |
we need a more performant compatible variant first |
21:14 |
sapier |
switching to tcp can be done later |
21:15 |
proller |
too hard to implement good protocol over udp |
21:17 |
Calinou |
enet uses UDP, proller |
21:17 |
Calinou |
and it is good, I think :D |
21:17 |
proller |
need to test |
21:18 |
proller |
"I think" - very bad test |
21:20 |
thexyz |
a guy who is a developer of some open source shooter game says it's good |
21:20 |
thexyz |
VanessaE: lel, core team |
21:20 |
Calinou |
enet is made by eihrul, the lead dev of sauerbraten/tesseract and red eclipse contributor |
21:20 |
thexyz |
VanessaE: you will never switch then |
21:20 |
Calinou |
it's used by some commercial games too, and some games that aren't FPSes at all like Stunt Rally |
21:21 |
thexyz |
Calinou: yeah the only problem is that there's apparently no ipv6 support but I guess proller will do that |
21:21 |
Calinou |
(Stunt Rally uses a peer to peer networking model) |
21:21 |
Calinou |
no ipv6 support, yeah :/ |
21:21 |
Calinou |
that's weird though, I've seen someone claiming to use ipv6 in general, and I've still seen them play sauerbraten |
21:21 |
VanessaE |
thexyz: it may turn out that the core team may abandon ship and follow you and proller and co. to fm, or you guys may figure out how to move your patches back to mt and make them work to everyone's satisfaction. |
21:22 |
VanessaE |
this will only fail if people let it/want it to. |
21:22 |
thexyz |
VanessaE: so in your world those two projects can't coexist |
21:22 |
thexyz |
okay then |
21:23 |
VanessaE |
thexyz: incorrect |
21:23 |
Calinou |
they can coexist, competition is fine |
21:23 |
thexyz |
oh well it's offtopic here so |
21:23 |
VanessaE |
in my view they can and should. But they should also share code both directions. |
21:23 |
VanessaE |
and it's hardly offtopic |
21:26 |
VanessaE |
I'm just saying that at some point the two projects should ideally merge together again - if fm can draw fresh code from mt every couple of days, why can't mt draw fresh fixes from fm? |
21:28 |
proller |
why pulls accepted in 6-9 months? |
21:33 |
|
vladimirg joined #minetest-dev |
21:34 |
sapier |
proller don't start this discussion again noone is paid for doing this |
21:39 |
|
smoke_fumus|2 joined #minetest-dev |
21:40 |
VanessaE |
ok so |
21:41 |
VanessaE |
enough of the unproductive arguing. |
21:41 |
VanessaE |
can we PLEASE just DO something about these problems? |
21:41 |
VanessaE |
maybe just push thexyz's idea into place about not allowing building without cURL, and whoever's idea it was that allows a server to reject non-cURL-capable clients? |
21:42 |
VanessaE |
the rest can be handled server-side by making sure every last byte of media is on a remote_media server |
21:42 |
VanessaE |
phase out the broken code entirely |
21:42 |
VanessaE |
delete it from the repository |
21:42 |
VanessaE |
yes? no? piss off? |
21:42 |
VanessaE |
something? |
21:42 |
VanessaE |
or are you gonna just wit there jerking off? :P |
21:43 |
sapier |
that'l result in breaking compatibility to all clients out there ... not a good idea |
21:44 |
VanessaE |
and this is different from the past........how? |
21:45 |
ShadowNinja |
thexyz: Does this still allow single depth variables? https://github.com/freeminer/freeminer/commit/e598375c840c5223f645ca923223801bf34d8199 |
21:47 |
thexyz |
ShadowNinja: of course this does |
21:47 |
Calinou |
it was my idea to reject non-cURL clients |
21:48 |
* Calinou |
patents that idea, 75 cents per Minetest client compiled |
21:48 |
Calinou |
:p |
21:48 |
VanessaE |
right calinou's idea |
21:48 |
VanessaE |
ok so. |
21:48 |
VanessaE |
what's it gonna be? |
21:48 |
Calinou |
or it could be, require cURL for compiling |
21:49 |
VanessaE |
one last major client breakage for the sake of finally getting rid of a piece of bad code that's been a thorn in the side of every Minetest server operator since kimml gornisht? |
21:49 |
sapier |
the difference is atm a old client can connect to a new server running a simple game |
21:51 |
VanessaE |
sapier: we've had plenty of instances in the past where this failed. |
21:51 |
VanessaE |
hell right now, you can't connect to very old servers anymore |
21:51 |
VanessaE |
(like redcrab:30401), not that this should actually be a cause for concern, as those old servers really should update. |
21:51 |
sapier |
but it's still something we try to avoid wherever possible ... for this case there's no technical reason why it can't be avoided |
21:52 |
VanessaE |
I know |
21:52 |
VanessaE |
but you're missing my point: |
21:52 |
ShadowNinja |
proller: Um, shouldn't fatal errors, by definition crash the server? |
21:52 |
sapier |
curl doesn't fix the in game transmission of data |
21:52 |
proller |
ShadowNinja, no. |
21:53 |
sapier |
while this isn't as critical as media it's way beyonde optimal state too |
21:53 |
proller |
every lua mod contain fatal errors |
21:53 |
VanessaE |
it doesn't matter if it can or can't connect. If it DOES connect and it uses that old code, it locks up the server until the media has been sent. |
21:53 |
VanessaE |
the old code evidently can't be ficed |
21:53 |
VanessaE |
fixed* |
21:53 |
proller |
sapier mods crasshes 3-5 times per day ;) |
21:53 |
VanessaE |
or no one cares enough to fix it |
21:53 |
VanessaE |
so it needs to be removed, |
21:53 |
VanessaE |
pick one. |
21:53 |
sapier |
vanessae it can be fixed |
21:53 |
VanessaE |
fix it or remove it |
21:53 |
sapier |
it's a server side issue |
21:54 |
sapier |
it's just nothing you fix in 15 minutes |
21:54 |
VanessaE |
sapier: well of course not in 15 minutes. But not in a year either? |
21:54 |
sapier |
seems you haven't been annoying enough ;-) |
21:54 |
VanessaE |
hm. |
21:55 |
* VanessaE |
makes plans to get even more annoying then |
21:55 |
VanessaE |
:P |
21:55 |
ShadowNinja |
proller: The definition of a FATAL error is that you can't continue. |
21:56 |
|
rambomedic joined #minetest-dev |
21:56 |
proller |
definition of server - be stable, and dont drop 10-100 players every 10 minutes |
21:57 |
thexyz |
just add a config option to never serve media |
21:57 |
ShadowNinja |
proller: You have broken mods if your server crashes that often, fix your mods. And one error will lead to more. |
21:57 |
thexyz |
I assume that's what VE wants? |
21:58 |
VanessaE |
thexyz: way to totally misread my point. |
21:58 |
thexyz |
uh |
21:58 |
proller |
ShadowNinja, every admin will shutdown server and forgot about this buggy game, |
21:58 |
thexyz |
I wanted to be helpful ;_; |
21:58 |
proller |
but its minetest way.. |
21:58 |
thexyz |
> reject non-cURL-capable clients? |
21:58 |
thexyz |
isn't it the same? |
21:59 |
VanessaE |
I think I said pretty clearly at the end there: the whole point of this argument is thus: either the bad media sending code can't be fixed or no one cares. Either fix it or get rid of it. |
21:59 |
ShadowNinja |
proller: If he can't fix his mods he shouldn't be running a server. |
21:59 |
proller |
wrong. |
21:59 |
proller |
player wants to play, not fix ALL shitty mods |
21:59 |
VanessaE |
thexyz: no, reject as in disallow then signing on, like the on-preconnect feature does for the no-guests mod kaeza and I worked up. |
21:59 |
thexyz |
do you expect admin (== user) to fix mods that someone wrote while being drunk? |
22:00 |
ShadowNinja |
Don't add mods if they don't work. |
22:00 |
thexyz |
VanessaE: isn't it the same as not serving media? |
22:00 |
proller |
ShadowNinja, 80% mods dont work |
22:00 |
thexyz |
because I don't think there's a way to detect if it's a curl-enabled client |
22:00 |
thexyz |
80% of code doesn't work; to be precies |
22:00 |
thexyz |
or maybe not "doesn't" but "shouldn't" |
22:00 |
ShadowNinja |
proller: Where have you been getting your mods? |
22:00 |
VanessaE |
thexyz: nope, because if the user DOES have cURL support, they may still occasionally be able to receive media through the non-cURL channel e.g. if the remote_media server is missing a file. |
22:01 |
Calinou |
disallow from-server downloads is proably how you would disallow cURL |
22:01 |
proller |
ShadowNinja, forum. |
22:01 |
VanessaE |
well if there's no way to detect it, then code in a way? |
22:01 |
Calinou |
but you need all data to be avilable on remote_media then |
22:01 |
ShadowNinja |
proller: I'm surprised something hasn't exploded yet from thet. (All of the saved data getting niled out specifically) |
22:01 |
VanessaE |
if the client doesn't respond with some flag in its features list (I assume such a thing exists) on connect, then assume no cURL. simple. |
22:01 |
VanessaE |
there is always a way |
22:02 |
VanessaE |
or assume it based on the version number of the client, like assume if it's 0.4.9 it's been forced to build with cURL support, let's say |
22:02 |
* ShadowNinja |
writes a mod to SIGINT servers on errors for freeminer users. |
22:02 |
thexyz |
VanessaE: ah well then it's the only solution, right |
22:02 |
proller |
400k bytes per second FM now serve media without httpfetch |
22:02 |
thexyz |
ShadowNinja: […] then they fight you […] |
22:02 |
VanessaE |
thexyz: the only other solution, which of course is the proper one, is to fix the media transmission code at the core. |
22:03 |
thexyz |
yeah that's what proller was trying to do |
22:03 |
ShadowNinja |
thexyz: Hmmm? |
22:03 |
thexyz |
nah just ignore it if you don't get the quote |
22:03 |
VanessaE |
make it not suck 100% CPU to send at 5 kBytes/second. FORGET how FAST it can send. Pay attention to what it does TO THE SERVER (which as you just said, is what proller is trying to do) |
22:04 |
proller |
VanessaE, connection.cpp is terrible with lot of useless copying data |
22:04 |
VanessaE |
proller: you're getting 400 kBytes/sec without remote_media? impressive. |
22:04 |
thexyz |
yeah we should just throw the current network stack out and use something like enet |
22:04 |
proller |
yes, |
22:05 |
proller |
who want to try - join to sky server without curl, 17mb data |
22:07 |
VanessaE |
VE-Survival has 39MB of data to send... |
22:08 |
proller |
ShadowBot, imagine http server, making core on each served broken html page |
22:08 |
proller |
~100 seconds |
22:08 |
VanessaE |
proller: 39 MB, ~30 seconds via http_fetch. your math is a little off. |
22:09 |
VanessaE |
oh you mean for the html example heh |
22:09 |
proller |
no, for minetest |
22:09 |
proller |
but 100 much better than current |
22:09 |
VanessaE |
indeed so |
22:10 |
VanessaE |
[12-17 17:10] <kizeren> 16:06:01: ACTION[main]: Client: Contacting remote server "http://minetest.digitalaudioconcepts.com/creative-survival-media/" |
22:10 |
VanessaE |
[12-17 17:10] <kizeren> Quit message received. |
22:10 |
VanessaE |
um, wut? |
22:10 |
|
Megaf joined #minetest-dev |
22:11 |
VanessaE |
(from a user who usually has no problems) |
22:11 |
VanessaE |
is this a minetest client issue, or an nginx issue? |
22:11 |
thexyz |
nginx has no issues |
22:12 |
VanessaE |
where does the above message come from then? |
22:13 |
ShadowNinja |
proller: HTTPds don't process HTML, unless you enable SSI. |
22:14 |
thexyz |
well if you want to argue instead of trying to understand his point |
22:14 |
thexyz |
let's say that was a php or python or perl script |
22:14 |
Warr1024 |
I'm not really too optimistic about the idea of getting rid of non-cURL media downloads entirely. |
22:14 |
Warr1024 |
I like the fact that I can setup an MT server, complete with media transfer, using only 1 firewall port. |
22:15 |
proller |
also as bonus - instant nodedef transfer |
22:15 |
Warr1024 |
but for people like me, there is always the option of low-def media, I guess. |
22:15 |
VanessaE |
well it did turn out to be fairly easy to actually get it working, it's just that most of the nginx tutorials I found sucked batshit. :) |
22:15 |
VanessaE |
and my scripting skills also suck, but that's a different matter. |
22:16 |
ShadowNinja |
thexyz: Then it would show a server error page. It wouldn't continue to exeute the PHP/Python/perl. |
22:16 |
Warr1024 |
I'm just not sure I want to dedicate that many different daemons to working in concert just to host one game world :-) |
22:16 |
Warr1024 |
also, I've been sticking to 16x16 png's for all of my media in my mods, and optimizing the hell out of the pngs. |
22:16 |
Warr1024 |
if people don't like the way it looks, they're welcome to make texture packs. |
22:17 |
thexyz |
ShadowNinja: exactly! the server just breaks out of the mod it can't execute |
22:18 |
ShadowNinja |
thexyz: So it shuts down? Mods aren't seperated after load time. |
22:18 |
Warr1024 |
having all of the mods run in the same sandbox means that they can share library functions and the like, which is VERY helpfu. |
22:19 |
Warr1024 |
but it also means that you can't have the system partially fail; it's gotta all work or none. |
22:19 |
thexyz |
ShadowNinja: meh it's boring to argue with you |
22:19 |
thexyz |
the web server doesn't shut down when it fails to process a request |
22:19 |
thexyz |
get it? |
22:21 |
ShadowNinja |
thexyz: Why would it? It is a non-fatal error, it can continue to process requests and just send a error message. However if it hot a fatal error(eg, OOM) then it would shut down. All Lua errors are fatal. |
22:21 |
ShadowNinja |
got* |
22:21 |
thexyz |
well keep believing that, sorry but it's a waste of time |
22:21 |
thexyz |
because I won't convince you anyway |
22:21 |
thexyz |
and vice-versa |
22:22 |
VanessaE |
bbiab. |
22:25 |
rambomedic |
how do I get access to editing the main minetest wiki page |
22:26 |
rambomedic |
there are very severe issues with it |
22:26 |
rambomedic |
(or you can do the edit for me) |
22:26 |
rambomedic |
the issue is that it's linking to the old developer wiki (the c55 one not the dev.minetest.net) |
22:36 |
ShadowNinja |
rambomedic: The main page in administrator-only. I'll check that. |
22:38 |
ShadowNinja |
"Development resources" Isn't really helpfull at all, it just gives links to the dev wiki and the old dev wiki. |
22:41 |
ShadowNinja |
rambomedic: If you have ideas for the Main page make a copy in your user namespace and modify it and notify us. |
22:43 |
|
smoke_fumus joined #minetest-dev |
22:44 |
|
Megaf joined #minetest-dev |
22:44 |
|
Megaf joined #minetest-dev |
22:59 |
|
VanessaE joined #minetest-dev |
23:00 |
|
Akien joined #minetest-dev |
23:10 |
|
Megaf left #minetest-dev |
23:20 |
|
deltib joined #minetest-dev |
23:20 |
|
sapier left #minetest-dev |
23:21 |
hmmmm |
who highlighted me |
23:21 |
hmmmm |
it got cut off |
23:22 |
VanessaE |
[12-17 13:10] <ShadowNinja> hmmmm: I have a santa model now. It's built on SamII and is built into the model. See https://forum.minetest.net/viewtopic.php?pid=122153#p122153 What do you think? (And to anyone else that it may concern) |
23:23 |
VanessaE |
last one I saw. |
23:23 |
VanessaE |
(but I was off for about an hour doing a hardware upgrade) |
23:23 |
hmmmm |
well |
23:23 |
hmmmm |
my intent was to make a separate hat model that's rendered on top of the player's head, separate |
23:23 |
hmmmm |
this way it doesn't break alternate skins |
23:28 |
ShadowNinja |
I asked for that, but ^ is what I got. |
23:28 |
|
Akien joined #minetest-dev |