Time |
Nick |
Message |
00:19 |
|
specing_ joined #minetest |
00:40 |
|
Sven_vB joined #minetest |
00:54 |
|
Verticen joined #minetest |
01:07 |
|
gg_ joined #minetest |
01:17 |
|
Verticen joined #minetest |
02:21 |
Sokomine |
is the forum still in maintenance mode? |
02:21 |
FriendlyPerson[m |
Sokomine: It's been out of it ever since this afternoon actually. ? |
02:22 |
Sokomine |
:-( hope it will soon be up again |
02:22 |
FriendlyPerson[m |
Sokomine: It IS and it's BEEN since this afternoon lol. |
02:22 |
MTDiscord |
<Jonathon> current IS up |
02:31 |
Sokomine |
er. is the forum now up or not? |
02:32 |
FriendlyPerson[m |
Sokomine: As I already said twice now... The forum been up since this afternoon. |
02:32 |
|
Hawk777 joined #minetest |
02:32 |
MTDiscord |
<fatalerror420> shut up |
02:33 |
MTDiscord |
<fatalerror420> stupid head |
02:34 |
FriendlyPerson[m |
?? |
02:42 |
MTDiscord |
<Jonathon> :thonking: |
02:42 |
MTDiscord |
<Jonathon> sokomine: if your that confused, why not visit it and find out for yourself? |
02:44 |
FriendlyPerson[m |
I mean it's possible if they have difficulties processing information or even if they are not native. Which is why I reworded my responses every time and reassured them that that what I meant in the past. |
02:46 |
MTDiscord |
<fatalerror420> STOOPID |
02:46 |
MTDiscord |
<fatalerror420> Bashes head into window |
02:48 |
|
funkydom joined #minetest |
02:48 |
wsor4035 |
well then |
02:49 |
FriendlyPerson[m |
Um not quite and I never understand why people think it's "cool" to be calling others "stupid" per say. |
02:49 |
MTDiscord |
<fatalerror420> im not a hero, just a man with a dream |
02:50 |
MTDiscord |
<Jonathon> please cease |
02:50 |
|
Verticen joined #minetest |
02:50 |
MTDiscord |
<fatalerror420> ceased |
03:31 |
FriendlyPerson[m |
Alrighty I am gonna head off, you all take care and have a good evening. ? |
03:34 |
|
aldo joined #minetest |
03:39 |
|
Extex joined #minetest |
04:16 |
|
olliy1or joined #minetest |
04:40 |
|
AspireMint joined #minetest |
04:44 |
|
reumeth joined #minetest |
05:01 |
|
riff-IRC joined #minetest |
05:17 |
|
Elzington joined #minetest |
06:11 |
|
CWz joined #minetest |
06:27 |
|
ssieb joined #minetest |
06:33 |
|
independent56 joined #minetest |
06:53 |
|
Talkless joined #minetest |
07:05 |
|
Guest88 joined #minetest |
07:43 |
|
Talkless joined #minetest |
08:22 |
|
est31 joined #minetest |
09:00 |
|
reumeth joined #minetest |
09:04 |
|
hecks joined #minetest |
09:04 |
|
hecks left #minetest |
09:41 |
|
entuland joined #minetest |
09:50 |
|
calcul0n__ joined #minetest |
09:52 |
|
Fixer joined #minetest |
10:27 |
|
absurb joined #minetest |
10:32 |
|
tech_exorcist joined #minetest |
10:34 |
|
Elzington joined #minetest |
11:04 |
|
gg__ joined #minetest |
11:53 |
|
independent56 joined #minetest |
12:20 |
|
specing_ joined #minetest |
12:23 |
|
Verticen joined #minetest |
12:30 |
|
independent56 joined #minetest |
12:40 |
|
Taoki joined #minetest |
12:41 |
|
jluc joined #minetest |
13:06 |
|
funkydom joined #minetest |
13:32 |
|
gg joined #minetest |
13:53 |
|
independent56 joined #minetest |
13:54 |
|
kamdard joined #minetest |
14:17 |
|
olliy joined #minetest |
14:23 |
|
FamilyMiner joined #minetest |
14:25 |
FamilyMiner |
Hi, can someone tell me how to use /spawnentity to get mods_animal animals appear? |
14:26 |
FamilyMiner |
I have tried mobs_animal:bunny as the EntityName |
14:27 |
FamilyMiner |
the animals are spawning in wild as they should |
14:27 |
MTDiscord |
<Warr1024> probably need to read the code (unless it's documented) to find out the names of entities |
14:28 |
FamilyMiner |
I thought it was by this line: mobs:register_mob("mobs_animal:bunny") |
14:29 |
FamilyMiner |
but I just get message "Cannot spawn an unknown entity" |
14:31 |
FamilyMiner |
Ha! sorry, I just realized... mods != mobs :D |
14:35 |
Sven_vB |
hi :) is there any way in MineTest 5.4.1 to toggle safe dig mode via a chat command? |
14:36 |
Sven_vB |
I'd prefer to not have to leave the server for that, because the login takes several minutes |
14:37 |
|
Sven_vB joined #minetest |
14:38 |
FriendlyPerson[m |
Sven_vB: 100's of MBs of media I am assuming? Because even when I was trying to remote media mine with 9 .oggs it was done in a minute or two. |
14:40 |
MTDiscord |
<Warr1024> You should probably setup a test SP world to verify your settings or something. Client config stuff is generally either "baked in" or otherwise frozen at the time you enter a world, and there's no way to access those settings, let alone modify or apply them, without dropping back out to the menu. |
14:43 |
Sven_vB |
FriendlyPerson[m, yes, it's the media section that takes forever |
14:44 |
Sven_vB |
FriendlyPerson[m, however, even if it were just a second to reconnect, it would clear the chat history. there's just no excuse why toggling such a simple flag would require a reconnect. |
14:46 |
FriendlyPerson[m |
Sven_vB: It's not that setting it's how the server is. Even changing a chat message (e.g. a mod) requires the server to be restarted. I am assuming since the minetest.conf is only read when the server is started. |
14:57 |
|
longerstaff13 joined #minetest |
15:29 |
|
IvanGorinich joined #minetest |
15:29 |
IvanGorinich |
Hello i have dynamic Ipv6 with Miredo |
15:29 |
IvanGorinich |
I connect DynDNS |
15:29 |
IvanGorinich |
can i use only domain |
15:29 |
IvanGorinich |
without bind_adress |
15:30 |
MTDiscord |
<Warr1024> I think you can bind to an IPv6 wildcard address, similar to how binding to 0.0.0.0 in IPv4 means "all IPv4 addresses" |
15:33 |
sfan5 |
you shouldn't need to specify the bind_address |
15:34 |
|
hanetzer joined #minetest |
15:37 |
|
hlqkj joined #minetest |
15:37 |
Sven_vB |
FriendlyPerson[m, safe dig mode is a client setting |
15:38 |
Sven_vB |
FriendlyPerson[m, the server is not restarted. I'm playing in multiplayer. |
15:38 |
Sven_vB |
would be hilarious if admins would have to restart the entire server just for one player toggling their dig mode. :D |
15:40 |
MTDiscord |
<Warr1024> You might have to specify the bind address if MT only tries to bind a single socket, and the OS only allows one address family per socket. |
15:40 |
FriendlyPerson[m |
Sven_vB: I honestly never heard of such of a client setting before. Forgive me for sounding "dumb" but what does it actually do? Auto sneaks you to prevent you falling so easily? |
15:41 |
Sven_vB |
FriendlyPerson[m, it decides whether holding the primary mouse button will continue digging after the first successfully dug node, and whether holding the secondary mouse button will atempt to place more blocks after the first successfully placed block. |
15:42 |
Sven_vB |
would be super nice if I could easily toggle whether my super fast pickaxe shall mine one block or lots |
15:44 |
FriendlyPerson[m |
AH I see so it's prevent you digging too fast so you are diging more safely. That's makes sense. |
15:47 |
|
hanetzer joined #minetest |
15:48 |
specing |
Sven_vB: you can write a CSM that rate-limits it |
15:49 |
specing |
you can do this with stock client |
15:50 |
Sven_vB |
specing, I'd rather implement a toggle key for the existing option if I have to |
15:51 |
sfan5 |
IvanGorinich: if you specify ipv6_server = true in your config it should just work automatically |
15:51 |
IvanGorinich |
i do |
15:51 |
IvanGorinich |
but nothing |
15:51 |
|
Extex joined #minetest |
15:51 |
sfan5 |
how are you testing it? |
16:00 |
|
Talkless joined #minetest |
16:09 |
|
garywhite joined #minetest |
16:09 |
|
garywhite joined #minetest |
16:45 |
|
Verticen joined #minetest |
16:50 |
|
calcul0n_ joined #minetest |
17:56 |
|
erlehmann joined #minetest |
17:59 |
erlehmann |
sfan5 why does this PR also remove a comment? "// added in protocol version 14" |
17:59 |
erlehmann |
https://github.com/minetest/minetest/pull/11511/files |
18:00 |
sfan5 |
nobody cares about that |
18:01 |
|
erlehmann joined #minetest |
18:02 |
erlehmann |
sfan5 why does your PR have „Drop it ingame, observe a warning but no crash“ here? https://github.com/minetest/minetest/pull/11511 |
18:02 |
sfan5 |
because that's one of the things it fixed? |
18:03 |
erlehmann |
wait, what happens if you drop the item? |
18:03 |
erlehmann |
it is very important that the item metadata gets preserved as long as it is only dropped and picked up |
18:03 |
erlehmann |
(otherwise shulkers will break) |
18:04 |
Krock |
which metadata are you talking about? |
18:04 |
erlehmann |
staticdata |
18:04 |
erlehmann |
i have an example for you |
18:04 |
Krock |
do you know right that such large packets couldn't be sent in first place? |
18:04 |
erlehmann |
these objects exist in mineclone2, mineclonia and mineclone5 |
18:05 |
erlehmann |
https://git.minetest.land/Mineclonia/Mineclonia/pulls/132 |
18:05 |
erlehmann |
they are fine as long as … oh |
18:05 |
erlehmann |
well |
18:06 |
erlehmann |
i think they are fine as long as their metadata is not touched because the PR by fleckenstein that avoids bookbanning is active on clamity |
18:06 |
Krock |
btw staticdata != metadata |
18:07 |
erlehmann |
shulkers are portable chests. it is very easy to get over the 64kb (or so) threshold |
18:07 |
sfan5 |
erlehmann: the server crashes because the wield item in object properties also has a limit of 64k |
18:07 |
erlehmann |
so i just want to make sure that this patch does not break mineclone2 / mineclone5 / mineclonia and whoever else uses shulkers |
18:07 |
sfan5 |
the entity will not be modified |
18:07 |
sfan5 |
it just may not appear correctly on the client |
18:08 |
erlehmann |
sfan5 so it is possible to drop it and pick it up even with the patch? |
18:08 |
sfan5 |
yes |
18:08 |
erlehmann |
good, thank you |
18:09 |
erlehmann |
i would suggest to add something like the “getwrittenbook” command here to devtest https://git.minetest.land/Mineclonia/Mineclonia/pulls/132/files |
18:09 |
erlehmann |
> “/getwrittenbook 65323” creates an item that creates the largest possible serializable written book item entity when dropped. |
18:09 |
Krock |
don't don't do that |
18:09 |
Krock |
*just don't |
18:09 |
erlehmann |
> “/getwrittenbook 65324” creates an item that creates the smallest possible non-serializable written book item entity when dropped. |
18:10 |
erlehmann |
Krock, what do you mean? |
18:10 |
erlehmann |
don't do what? |
18:10 |
Krock |
keep data within reasonable limits |
18:10 |
erlehmann |
have you used shulkers? |
18:10 |
Krock |
I never used MineClone2, so I don't think so |
18:11 |
erlehmann |
there is a shulker mod on contentdb i think |
18:11 |
erlehmann |
they are very important for the gameplay |
18:11 |
Krock |
however the wrench from technic also might contain tons of metadata, but that's item metadata |
18:11 |
erlehmann |
now the problem is, an object can legitimately have a few kb of metadata. think of a book, or a heavily enchanted item. |
18:11 |
erlehmann |
the problematic interaction has two parts |
18:11 |
Krock |
then compress it better |
18:11 |
erlehmann |
first, you have shulkers – the portable chests |
18:12 |
Krock |
anything else requires a protocol change |
18:12 |
erlehmann |
second, you can drop those and item entities are created |
18:12 |
erlehmann |
uh no it works right now |
18:12 |
erlehmann |
the only thing that did not work was the crash |
18:12 |
erlehmann |
maybe i am missing something |
18:12 |
Krock |
the crash did not work, so no crash happened? |
18:12 |
MTDiscord |
<Warr1024> You'll probably have to limit the capacity of those things, or you'll have to store the data in a separate channel when it overflows |
18:13 |
erlehmann |
oh the interesting thing is that those things are heavily used but so damn worth it that apparently since they were introduced it only rarely happened that anyone dropped them and walked away |
18:13 |
erlehmann |
the capacity of them is limited |
18:14 |
Krock |
deflate compression might solve that |
18:14 |
sfan5 |
not reliably |
18:14 |
sfan5 |
image putting books inside |
18:14 |
sfan5 |
imagine* |
18:14 |
erlehmann |
yeah, someone could write a book with random characters. that book is like, what, 4kb or so. typical book size. |
18:14 |
FriendlyPerson[m |
I think they are concerned that if this patch goes live it will break those games. While MCx shouldn't be the king of everything it's probably best to at least understand the implications it MAY have on those games. If it can't be easily adjusted at least make it clear on the patch that games that uses so much metadata (or whatever it is) MUST adapt accordingly. |
18:15 |
erlehmann |
well as i understand sfan5 it will only lead to a warning and nothing will break |
18:15 |
erlehmann |
to the contrary, the crash that i experienced (and fixed in mineclonia) will not occur |
18:15 |
erlehmann |
because the serialization function does not bug out |
18:16 |
erlehmann |
Krock Warr1024 mineclone2 did a lot of stupid things regarding resources, but shulkers are an essential gameplay concept. people make so-called “kits” with specific contents, dupe them and give them to other players. like: redstone kit. |
18:17 |
erlehmann |
or someone wants to build a city, first thing they do is carry a lot of shulkers with building materials there. |
18:17 |
sfan5 |
should've used chest minecarts smh |
18:17 |
MTDiscord |
<Warr1024> Yeah, NodeCore has Totes that are similar, but their capacity is limited so they're never close to serialization limits. |
18:17 |
erlehmann |
ton clamity, i made a kit that contains banners with patterns. (banners are another item that can legitimately have metadata) |
18:18 |
Krock |
or detached inventories :3 |
18:18 |
erlehmann |
sfan5, chest minecarts do not exist as far as i know. |
18:18 |
sfan5 |
i thought MCL2 was a minecraft clone |
18:18 |
sfan5 |
how can that be |
18:18 |
MTDiscord |
<Warr1024> If you can have an item that can hold up to the limit of metadata, then that item cannot also be stored inside another item that stores its items in metadata. |
18:18 |
erlehmann |
sfan5 no one implemented it properly yet |
18:18 |
sfan5 |
granted making this work via detached inventories is a bit tricky but shouldn't be that hard |
18:19 |
erlehmann |
i have a shulker full of shulkers full of obsidian hehe |
18:19 |
MTDiscord |
<Warr1024> Storing overflow metadata in mod_storage or separate files is also not that hard |
18:19 |
erlehmann |
that's like, 27 * 27 * 64 obsidian |
18:19 |
erlehmann |
yes i thought about mod storage |
18:19 |
MTDiscord |
<Warr1024> You can't allow nesting these infinitely without either running into an engine limit, or just bombing the engine. |
18:19 |
sfan5 |
@Warr1024 tracking item metadata stored separately is hard |
18:20 |
erlehmann |
it was allowed to do it in minetest 5.3 as far as i know |
18:20 |
erlehmann |
at least fleck claimed that |
18:20 |
MTDiscord |
<Warr1024> I mean it's straightforward, it's just messy as hell. |
18:20 |
sfan5 |
how do you know when to delete an entry then? |
18:20 |
MTDiscord |
<Warr1024> Whenever the world is deleted |
18:20 |
erlehmann |
sounds like a memory leak |
18:20 |
sfan5 |
that does not satify my criteria for a proper implementation |
18:20 |
erlehmann |
TO ME |
18:21 |
erlehmann |
what sfan5 says |
18:21 |
erlehmann |
Warr1024 do not worry, shulkers can not legally be nested anymore. |
18:21 |
erlehmann |
but you can put items in them |
18:21 |
MTDiscord |
<Warr1024> I didn't say it was possible to do properly |
18:22 |
erlehmann |
and even if every item has like 2.5kb of metadata only (standard size for heavily enchanted stuff), then 27 items get you over the limit |
18:22 |
erlehmann |
the enchantment stuff might get better with zlib/deflate |
18:22 |
erlehmann |
but books exist |
18:22 |
sfan5 |
that kinda seems like a problem with enchantments to me |
18:23 |
MTDiscord |
<Warr1024> Also all this obsession with having the highest standards of "proper" implementation is probably why we only ever have complete crap implementations instead of having moderately okay ones. As soon as someone thinks "I should make this not be a complete piece of shit" development gets stalled trying to make it actually GOOD. |
18:23 |
erlehmann |
sfan5 oh, the enchantments mod was way worse before ryvnf fixed it! |
18:23 |
Krock |
they might be serializing some date to JSON or lua tables to put into a meta data field |
18:23 |
erlehmann |
an enchanted item could take up 21kb of space! |
18:23 |
MTDiscord |
<Warr1024> You might just have to disallow items in the shulker that contain more than a certain total length of metadata. |
18:23 |
FriendlyPerson[m |
MTDiscord: Agreed I think they are worried about breaking more than it's worth. At least in ONE SITTING. |
18:23 |
sfan5 |
there's a difference between a non-ideal implementation and a hack |
18:23 |
erlehmann |
> As soon as someone thinks "I should make this not be a complete piece of shit" development gets stalled trying to make it actually GOOD. |
18:24 |
erlehmann |
lol what |
18:24 |
MTDiscord |
<Warr1024> Yeah, the difference between a non-ideal implementation and a hack is how long it takes you to say the name |
18:24 |
erlehmann |
ok then tell me something |
18:25 |
erlehmann |
fleckenstein has delivered a thing that deals with item lag (bookbanning) |
18:25 |
erlehmann |
where you throw a bunch of books at a player to lag them |
18:25 |
erlehmann |
that is not merged in minetest, why |
18:25 |
erlehmann |
is it because it breaks client stacking prediction? |
18:25 |
MTDiscord |
<Warr1024> Basically when you have something that's bad, you should try to move the needle toward good. If you can't make it as far as you wanted to, that doesn't mean you should just leave it as bad. |
18:25 |
Krock |
add text limits to your books. easy. |
18:26 |
erlehmann |
this one https://github.com/minetest/minetest/pull/11014 |
18:26 |
sfan5 |
erlehmann: it doesn't break that |
18:26 |
FriendlyPerson[m |
MTDiscord: Exactly aim for 100% but when that's not possible do what's practical. |
18:26 |
|
z812 joined #minetest |
18:27 |
erlehmann |
sfan5, oh then i misunderstood |
18:27 |
Krock |
FriendlyPerson[m: MTDiscord is a bot or relay server. check the name afterwards |
18:27 |
erlehmann |
> TechDudie approved these changes Apr 23, 2021 |
18:27 |
erlehmann |
what else needs to happen? |
18:27 |
erlehmann |
as far as i know, that patch runs on clamity |
18:27 |
erlehmann |
but |
18:28 |
sfan5 |
you quoted a random person approving the changes. |
18:28 |
sfan5 |
anyone can do that |
18:28 |
erlehmann |
ah ok |
18:28 |
erlehmann |
so anyone can approve stuff lol |
18:28 |
erlehmann |
sfan5 what is your gripe with the thing? is it still that you think it is unreasonable to store this stuff? |
18:28 |
erlehmann |
i think in any case it is a good optimization |
18:28 |
FriendlyPerson[m |
Krock: Understood thanks for reassuring me of that but I was trying to quote the reply. Is there's a better way to do that? |
18:28 |
Krock |
FriendlyPerson[m: copypaste the name |
18:29 |
sfan5 |
FriendlyPerson[m: ah, must be matrix doing that automatically then? |
18:29 |
sfan5 |
erlehmann: https://github.com/minetest/minetest/pull/11014#issuecomment-791531973 |
18:29 |
FriendlyPerson[m |
sfan5: Yes it does that automatically. |
18:30 |
MTDiscord |
<Warr1024> Don't we already have private vs. public fields on node meta? |
18:30 |
sfan5 |
apart from discussion about the implementation having the client announce that it's saving the map is a misfeature IMO |
18:30 |
FriendlyPerson[m |
So I can either quote the reply or I can't. There's no "quote this person as" |
18:30 |
sfan5 |
yes, this would be item meta |
18:31 |
MTDiscord |
<Warr1024> Oh, I see, Fleck already discussed that in one comment |
18:31 |
MTDiscord |
<Warr1024> saying that it would be better to make these private by default instead of public ... unfortunately, there was an issue to do the same for node meta but it got shot down |
18:31 |
MTDiscord |
<Warr1024> I ended up doing it at the Game level |
18:31 |
MTDiscord |
<Warr1024> I suppose if we had set_private in item meta then it could similarly be done at the game/mod level |
18:32 |
erlehmann |
sfan5, my browser (elinks) says “The requested fragment "#issuecomment-791531973" doesn't exist.” |
18:32 |
sfan5 |
it's inside the collapsed comments |
18:32 |
erlehmann |
oh |
18:32 |
erlehmann |
damn github |
18:33 |
sfan5 |
gitlab runs on even more javascript stuff, be glad we aren't using that |
18:33 |
erlehmann |
is it possible to link directly to it? |
18:33 |
erlehmann |
i mean to the comment |
18:33 |
erlehmann |
i try chromium |
18:34 |
sfan5 |
expanding comments and then pressing return inside the address bar should bring it up |
18:34 |
sfan5 |
anyway it's my comment from 5th Mar |
18:34 |
MTDiscord |
<Warr1024> Map-saving concerns are certainly scope-creep. The server should be allowed to choose not to send data to the client for the common use-case of the client simply playing the game and wanting non-shitty behavior. |
18:34 |
erlehmann |
such UX ._. |
18:34 |
erlehmann |
ok thx |
18:34 |
erlehmann |
hiding comments is really an antifeature |
18:35 |
erlehmann |
“common use case” lol |
18:35 |
erlehmann |
i am an amateur historian |
18:35 |
erlehmann |
i collect cursed items and impossible builds in world downloads |
18:35 |
|
Alias joined #minetest |
18:35 |
MTDiscord |
<Warr1024> Allowing the server to hide selected meta fields from the client seems like a perfectly reasonable thing to live at the MetaRef level, not just at the NodeMetaRef level. |
18:36 |
erlehmann |
wow, it is possible to click “more items” on github before the js has fully evaluated everything and then it does not work. so everyone, do not click as soon as the page loads, wait a few seconds. |
18:36 |
erlehmann |
sfan5 ok i see your comment |
18:37 |
erlehmann |
sfan5 but the thing you are proposing is an entirely different way of addressing the problem that requires mod authors to do stuff |
18:37 |
erlehmann |
whereas fleckensteins solution requires mod authors do to basically nothing |
18:37 |
erlehmann |
the engine just handles it |
18:37 |
MTDiscord |
<Warr1024> Requiring mod authors to do stuff is not at all unreasonable. Mod authors already have to do stuff to be mod authors. |
18:38 |
MTDiscord |
<Warr1024> Requiring people to do stuff to keep things the same is more unreasonable than requiring them to do stuff to take advantage of a new feature. |
18:38 |
erlehmann |
well i work in IT security and from experience i think it is wishful thinking that every poser with a keyboard will do the work to check if their items are too big. |
18:38 |
MTDiscord |
<Warr1024> I would not be opposed to a compromise of having some fields marked private by default and using the set_private API just to handle exceptions to those rules ... but historically PRs that leave default behavior intact have a better chance of actually passing. |
18:38 |
erlehmann |
i mean, a lot of people who claim to be professional developers can't make hello world binaries that fit on a floppy |
18:38 |
erlehmann |
or web pages that can be downloaded over 3g lol |
18:39 |
MTDiscord |
<Warr1024> It's not the engine's job to completely prevent broken mods, only to provide the tools necessary for sufficiently competent mod authors to be able to solve the problem in at least SOME way. |
18:39 |
erlehmann |
the thing is, in this case, fleckenstein is one of the posers with the keyboard |
18:39 |
erlehmann |
but i think he has a point |
18:40 |
MTDiscord |
<Warr1024> Yeah, too bad this isn't an open source community where anyone could just send a PR to ... oh wait... :-| |
18:40 |
MTDiscord |
<Warr1024> Personally I would be okay with marking a shitton of stuff private by default and require it to be manually marked public ... but based on MT's past history I don't expect that to fly. |
18:41 |
erlehmann |
the thing is, i agree that mineclone2 approaches are ridiculous often |
18:41 |
erlehmann |
and i disagree with fleck about it being a super important game or something |
18:41 |
erlehmann |
it is just one of many |
18:41 |
erlehmann |
but it is one that manages to be so broken at times that it shows how badly designed some engine things are (because it lets mods do the things that mineclone2 does) |
18:41 |
MTDiscord |
<Warr1024> I honestly haven't decided whether having a relatively good clone of MC in the MT ecosystem is actually more beneficial or harmful yet, it's clearly some mix of both. |
18:42 |
erlehmann |
Warr1024 i have had a lot of fun with it |
18:42 |
erlehmann |
best thing, i don't need to think about game balancing when implementing stuff, unless minecraft is obviously wrong |
18:43 |
FriendlyPerson[m |
erlehmann: YEA I am not gonna say he's the king of everything but to be fair what games do we have that people would want to make servers for right? I can count maybe the top 5 would probably be competent on a server. MCx games, NodeCore variants and Dreambuilder. There's possibly a few others but that's seems to the highest polished games I can see. |
18:43 |
erlehmann |
(like with snow layer / silk touch interaction – silk touch does not work on snow layers in minecraft because they erroneously closed the bug) |
18:43 |
MTDiscord |
<Warr1024> I've sort of given up on expecting the engine to do the right things out of the box. Mostly I just want it to support doing the right things at all, and leave whether they're done right or not to the community. Footgun, cold dead hands, etc, apparently. |
18:44 |
erlehmann |
my approach right now in mineclonia is also “mineclone2 does probably the first thing that come to mind and it is probably not the best thing and the engine will find some way to handle it in most cases and crash if i approach the boundaries” |
18:44 |
MTDiscord |
<Warr1024> We don't need a TON of games. Really just a few good ones. |
18:44 |
MTDiscord |
<Warr1024> Having an MC clone makes it easier for MC players to make the jump to MT ... but on the flip side, it also keeps them sort of stuck in the MC rut. |
18:45 |
erlehmann |
well that is an issue entirely orthogonal to “should the engine try to do the right thing because mod authors don't read the rubenwardy book” |
18:46 |
erlehmann |
i mean, think of stuff like a network packet being sent as a side effect, even if some value did not actually change |
18:46 |
MTDiscord |
<Warr1024> I mean a LITTLE idiot-proofing is not a bad thing, I just wouldn't go too far down that rabbit-hole after I've seen the speed at which they patch the idiots to bypass said idiot-proofing. |
18:46 |
erlehmann |
in my opinion, the engine could at least output a warning whenever a packet is sent that is not necessary |
18:46 |
FriendlyPerson[m |
MTDiscord: Yes and no, there still not a lot of choices when it comes to games. As I said there's maybe 5 games that are worth actually playing. As in "I installs it, turns on and it's plays". |
18:46 |
erlehmann |
like, mineclonia sends over 50 packets/s less than mineclone2 and mineclone5 |
18:46 |
sfan5 |
erlehmann: if it could output a warning it could also just not send that packet |
18:47 |
MTDiscord |
<Warr1024> There's some stuff that seems really obvious that the engine could do, like not sending duplicate entity properties ... but I also find that solving it in Lua actually works out better anyway. |
18:47 |
erlehmann |
sfan5 the problem with not sending that packet without a warning is that the globalstep or whatever that uselessly updates the stuff is then not detected |
18:48 |
erlehmann |
the problem with “solving it in lua” is the bookkeeping |
18:48 |
erlehmann |
if you get it wrong … well, crash, corruption, or, ideally, dupe :D |
18:48 |
MTDiscord |
<Warr1024> Friendly: there are a few hidden gems farther down the list. A lot of the problem is that "top" stuff is mostly sorted by popularity, and especially popularity is measured by downloads rather than the experiences people have AFTER the downloads. Reviews and the CDB Featured list is helping with that, but there's still a lot of built up popularity effects that haven't dissipated yet. |
18:48 |
sfan5 |
erlehmann: great so we agree this should be solved in lua ;) |
18:48 |
sfan5 |
btw this should be easy to detect with a lua wrapper |
18:49 |
sfan5 |
engine doesn't have to do it |
18:49 |
MTDiscord |
<Warr1024> It's also important to remember that not everyone is looking for the same kind of playing experience, and some of the more obscure games offer very different play styles. Box World 3D, for example, is basically a 3D Sokoban clone with no sandboxiness at all, plus it's a very SHORT game, so it's fun for a while and then you reach the end and (probably) uninstall it. |
18:50 |
FriendlyPerson[m |
Isn't the GS akin to "ticks" in Minecraft? or I am missing something on why it's "stupid"? |
18:50 |
erlehmann |
sfan5 the problem with the current approach is that people like fleck develop stuff that works on their machine |
18:50 |
erlehmann |
because the engine is not limiting it |
18:50 |
MTDiscord |
<Warr1024> I prefer to solve stuff in Lua in-situ, and if I find the problem is part of an underlying theme, I promote it up to the Game level, and then if I think it might be applicable beyond that, I'd migrate it into builtin, if it's clean enough. ABM Muxing, for example, could be a candidate for that, if it were only cleaner. |
18:51 |
erlehmann |
FriendlyPerson[m, it is stupid to do a bunch of stuff in a globalstep that should be event-based. mineclone2 and mineclone5 for example, check each globalstep if the player has armor or not and then send a network packet to either show the armor bar or not. mineclonia has that fixed (by upgrading to a newer version of the wuzzy hudbars mod). |
18:52 |
MTDiscord |
<Warr1024> It's not terrible to do background checks for things where there's a possibility of events being lost ... but every step is overkill, and actually sending updates every step even if there is no change is extra-bad. |
18:52 |
FriendlyPerson[m |
erlehmann: Understood thanks for explaining that to me. It was just the context not the actual GS. I thought it was. |
18:52 |
erlehmann |
FriendlyPerson[m, similarly, the sprint mod in mineclone2 and mineclone5 tells every player to adjust their field of view every tick. it just adjusts which value it sends, based on if the player is sprinting. this is, of course, really bad. and fixed in mineclonia! |
18:53 |
erlehmann |
i think the engine should at least output a warning for sending dozens of packets with the same content each second |
18:53 |
erlehmann |
i mean, dozens of warnings lol |
18:53 |
sfan5 |
erlehmann: if there was good documentation on what to look for and how to debug this it would be less an issue, but there is not |
18:53 |
erlehmann |
then ppl would *probably* clear it up |
18:54 |
FriendlyPerson[m |
Indeed warn then limits/removes. |
18:54 |
sfan5 |
the fewest modders know about the packet counter in --verbose |
18:54 |
sfan5 |
which it gives a pretty good idea what you're doing wrong in many casesd |
18:54 |
sfan5 |
-d |
18:54 |
sfan5 |
while* |
18:54 |
erlehmann |
sfan5 i actually used that and it is in --info i think? |
18:54 |
MTDiscord |
<Warr1024> I don't see a reason the engine should actually send the packets if they match the state that was already just sent. If I can keep track of past sends in lua then the engine should be able to do so too ... but then, if I can keep track of it myself, then I'll probably just do that and not care whether the engine does. |
18:54 |
sfan5 |
--trace also shows it if you mean that |
18:56 |
erlehmann |
sfan5 oh i have a thing that could be in minetest utils/tools directory: https://git.minetest.land/Mineclonia/Mineclonia/src/branch/master/tools/analyze-packet-spam |
18:56 |
erlehmann |
# To collect such a log file of minetest running for 10 minutes, run: |
18:56 |
erlehmann |
# timeout 600 minetest --info >log.txt 2>&1 >/dev/null |
18:56 |
erlehmann |
# To get packet counts from that file, run: |
18:56 |
erlehmann |
# ./analyze-packet-spam <log.txt |
18:57 |
erlehmann |
sfan5 could that script go into minetest proper? |
18:57 |
sfan5 |
that's pretty mcuh an exact recreation of the packet counter I'm trying to tell you about |
18:57 |
sfan5 |
much* |
18:57 |
erlehmann |
oh lol |
18:57 |
erlehmann |
ok tell me more |
18:57 |
sfan5 |
except the builtin one works in 30 second intervals |
18:57 |
erlehmann |
oh well |
18:57 |
sfan5 |
would be easier to make that configurable if wanted |
18:58 |
erlehmann |
this one just does one thing |
18:58 |
erlehmann |
it figures out the measurement interval, eats the 30 second interval things and calculates packets per second |
18:58 |
erlehmann |
so i would argue it is an improvement |
18:58 |
sfan5 |
http://sprunge.us/4fLyab |
18:58 |
sfan5 |
hmm I thought I added per packet averages... |
18:59 |
erlehmann |
well right now my thing works |
18:59 |
erlehmann |
we used it to reduce mineclonia packet spam |
18:59 |
erlehmann |
and i bet other mods would use it too |
18:59 |
erlehmann |
the per-second thing is important to see when it is excessive |
19:00 |
sfan5 |
maybe if we had a fancy GUI more modders would use it ;) |
19:00 |
erlehmann |
did you know that some weather mod (the one in the mcl* games) simulates each raindrop separately and sends a TON of particle spam |
19:00 |
erlehmann |
maybe i am not in the mood for jokings |
19:01 |
specing |
sounds like a job for CSM |
19:01 |
MTDiscord |
<Warr1024> I actually started work on a proxy that analyzed MT traffic, but wasn't sure exactly which direction to take it. I was sort of inclined to try to measure networking costs ... seeing that it's possible with logging sounds like it would simplify things a lot |
19:01 |
erlehmann |
sfan5, that thing is the thing i parse |
19:01 |
sfan5 |
yeah I realized |
19:01 |
MTDiscord |
<Warr1024> I'm more concerned with total bandwidth than packet count, for the most part, though. Sending a lot of big packets is a lot worse than a lot of little ones... |
19:02 |
erlehmann |
sfan5 yeah so can my script go into minetest proper or do you think it needs work? it is immensely useful, because 30 seconds is too little of a measurement interval tbh |
19:02 |
erlehmann |
so it adds up a bunch of 30 second thing, figures out start and end, gives you packet count per second, done |
19:02 |
erlehmann |
on the other hand the 30 second thing helps you if you want to see if you have issues *right now* |
19:02 |
erlehmann |
but it does not work well in code review |
19:02 |
sfan5 |
hm |
19:05 |
erlehmann |
sfan5 you can see how we used it in mineclonia here: https://git.minetest.land/Mineclonia/Mineclonia/issues/111 |
19:06 |
|
Conrad joined #minetest |
19:07 |
MTDiscord |
<Warr1024> Do you see evidence of these problems in the F5 graphs, or do you actually have to dig into them with more powerful tools before you can detect them? |
19:07 |
erlehmann |
well you can see that there are too many packets |
19:07 |
erlehmann |
but you need to figure out which ones |
19:07 |
erlehmann |
we used my script and asked anon5 for help |
19:08 |
erlehmann |
anon5 has this go-based proxy (that also strips out needless stuff i think) |
19:08 |
erlehmann |
sfan5 you can see here how the 30 second counts were too variable for cora to say “yep this is it” https://git.minetest.land/Mineclonia/Mineclonia/issues/111#issuecomment-25445 |
19:08 |
erlehmann |
so she averaged 10 of them |
19:08 |
erlehmann |
my script just automated that process |
19:10 |
erlehmann |
sfan5 Warr1024 you can see here how we checked that the improvements wuzzy did to the hudbars mod were working https://git.minetest.land/Mineclonia/Mineclonia/issues/111#issuecomment-25729 |
19:10 |
erlehmann |
or no |
19:10 |
erlehmann |
this was just for armor bar autohiding turned on vs off |
19:10 |
erlehmann |
58.0PACKET_COUNT_TOCLIENT_HUDCHANGE |
19:10 |
erlehmann |
vs |
19:10 |
erlehmann |
44.1PACKET_COUNT_TOCLIENT_HUDCHANGE |
19:11 |
erlehmann |
you see, there was a change, but it is not obviously supported by 30 second sampling |
19:12 |
erlehmann |
(which is why we sampled for around 600 seconds) |
19:12 |
erlehmann |
(i.e. 10 min) |
19:12 |
erlehmann |
<specing> sounds like a job for CSM |
19:12 |
MTDiscord |
<Warr1024> It'd be nice if we could also get an idea of the bandwidth cost of those packets rather than just the counts... |
19:13 |
erlehmann |
specing, to you everything sounds like a job for a CSM lol |
19:13 |
erlehmann |
Warr1024 true, but the problem with the packet amount is that any lost packet can lead to lag / desync etc. |
19:13 |
erlehmann |
try playing on a high-bandwith connection with a few percent of packet loss |
19:13 |
MTDiscord |
<Warr1024> For a while I used to just compare packet counts against MTG, but "do-nothing game does nothing" doesn't seem like a fair standard. |
19:13 |
erlehmann |
lol |
19:14 |
erlehmann |
try to compare against mineclonia. if you exceed it, you probably do something stupid. |
19:14 |
erlehmann |
i doubt you will exceed it. the stupidity i have encountered is entirely located within mineclone2, mineclone5 and the weather mod all three games share. |
19:14 |
erlehmann |
and by stupidity i mean the things i already described. |
19:15 |
specing |
erlehmann: yeah |
19:15 |
erlehmann |
simulate each raindrop etc. |
19:15 |
erlehmann |
specing why don't you contribute to waspsalive then |
19:15 |
specing |
need to rebase first |
19:15 |
specing |
read its api and port my scripts |
19:16 |
MTDiscord |
<Warr1024> Well, just shooting for "more packets than MTG but fewer than MC2" sounds like a decent sanity range, but I'd really like to have a narrower target :-D |
19:16 |
specing |
i also want to make sscsm a reality |
19:17 |
MTDiscord |
<Warr1024> even if SSCSM were extremely sandboxed and could only do things like manipulate HUDs, particles, and sounds, I could see getting a lot of use out of them. |
19:17 |
erlehmann |
Warr1024 not fewer than mineclone2, fewer than mineclonia. |
19:17 |
erlehmann |
mineclonia is mineclone2 with a lot of packet spam fixed |
19:17 |
erlehmann |
(and other stuff ofc) |
19:18 |
erlehmann |
if minetest makes server-sent client-side mods, i guaranteed you i will spend a *lot* of energy to make client-send server-side mods |
19:19 |
erlehmann |
(very sad that the feature of client-sent server side mods got removed) |
19:20 |
specing |
nah warr, I'd do SSCSMs on waspsaliva, with full access to the whole API |
19:20 |
specing |
and a contentdb for them, so they'd be reviewed beforehand |
19:23 |
|
erle joined #minetest |
19:27 |
Pexin |
erle: client-sent server side mods.. I cannot express how deeply I wish I could inject serverside code into web servers that try to force js for basic functionality.. :| (very different problem domain, I know. but I can fantasize) |
19:28 |
erlehmann |
Pexin well, sometimes you can |
19:29 |
Pexin |
"you want to force me to run your code on my side of http? well Fair's Fair!" |
19:31 |
MTDiscord |
<Warr1024> At first you think "js is code! I shouldn't be running somebody else's CODE, that could cause security problems!" ... then they discover yet another bug in common JPEG libraries that allows RCE ... :-/ |
19:32 |
MTDiscord |
<Warr1024> Turns out that the difference between code and data is mostly just something we made up and hackers don't abide by it. |
19:33 |
Pexin |
js is _intended_ to be code |
19:33 |
MTDiscord |
<Warr1024> On the flip side, the fact that JITted JS runs so close to your hardware that they can actually read stuff out through timing sidechannels is pretty bonkers. |
19:33 |
|
longerstaff13 joined #minetest |
19:34 |
Pexin |
outright security vulnerabilities aside, there are things "modern" js is deliberately allowed to do that I may not want it to |
19:35 |
Pexin |
even something like android's halfassed permission system for the js engine would arguably help |
19:36 |
MTDiscord |
<Warr1024> Effectively js does have a half-assed permission system in the browser, but it's sort of meta-half-assed because it's not implemented or enforced consistently across browsers, and may be meta-meta-half-assed because they decided to only make it cover very few things like location APIs and stuff. |
19:37 |
MTDiscord |
<Warr1024> ...so, eighth-assed? |
19:37 |
Pexin |
quantifiable ass |
19:39 |
MTDiscord |
<Warr1024> tbh it's been bugging me for a long time: when you say half-assed, is the "assed" half the half you screwed up, or the half that you actually at least made an attempt at? Would quarter-assed be better or worse than half-assed? |
19:39 |
* Pexin |
ponders |
19:40 |
|
reumeth joined #minetest |
19:45 |
erlehmann |
<Warr1024> Turns out that the difference between code and data is mostly just something we made up and hackers don't abide by it. |
19:45 |
erlehmann |
no Warr1024 read about LANGSEC |
19:45 |
erlehmann |
everything not context-free or regular or calc-regular is dangerous |
20:12 |
|
delta23 joined #minetest |
20:27 |
|
reumeth joined #minetest |
20:29 |
|
Guest joined #minetest |
21:16 |
|
ShadowBot` joined #minetest |
22:00 |
|
Sven_vB joined #minetest |
22:20 |
|
erlehmann joined #minetest |
22:44 |
|
Verticen joined #minetest |
22:48 |
|
Norkle joined #minetest |
23:06 |
|
Extex joined #minetest |
23:39 |
|
AliasAlreadyTake joined #minetest |
23:40 |
|
erlehmann joined #minetest |