Time |
Nick |
Message |
00:33 |
|
Jason232 joined #minetest |
01:19 |
|
prisonpotato joined #minetest |
01:29 |
|
Jason232 joined #minetest |
01:34 |
|
Markow joined #minetest |
02:21 |
|
Alias joined #minetest |
02:26 |
|
Markow joined #minetest |
02:29 |
|
v-rob joined #minetest |
02:37 |
|
Evergreen7 joined #minetest |
02:50 |
greeter |
i have some falling water on a server. is there any easy non-admin way to despawn it? |
02:51 |
erlehmann |
greeter what do you mean with falling water? |
02:51 |
|
v-rob joined #minetest |
02:52 |
greeter |
i spilled some water near the top of the world. i'm done with it now and picked up the water with a bucket, but now what's flowed away just keeps falling |
02:53 |
erlehmann |
greeter get a sponge i gues?? |
02:54 |
erlehmann |
greeter alternatively, get a cheat client |
02:54 |
erlehmann |
or ignore it |
02:55 |
greeter |
looks like it's despawned now. i followed it down about 1,000 nodes then flew away. when i came back it was gone |
03:16 |
|
Jason232_ joined #minetest |
03:19 |
|
grouinos joined #minetest |
03:28 |
|
queria^clone joined #minetest |
03:33 |
|
queria^clone joined #minetest |
03:43 |
|
v-rob joined #minetest |
03:44 |
|
kamdard joined #minetest |
03:51 |
v-rob |
erlehmann: Did you really recommend someone get a cheat client? That's very much against the rules. |
03:54 |
erlehmann |
v-rob i did, and i believe you are mistaken – https://wiki.minetest.net/IRC#Rules says nothing about cheat clients. |
03:54 |
erlehmann |
v-rob i believe cora has used waspsalive to fight runaway fires that caused server lag |
03:55 |
erlehmann |
so i guessed that code could pretty easily be changed to fight water |
03:55 |
v-rob |
The IRC rules say very few Minetest-specific things, but the forum rules do prohibit it, and most of those should extend to IRC by proxy. |
03:55 |
erlehmann |
the real solution is, of course, to fix the fire algorithm. cora also do that. |
03:56 |
v-rob |
I mean, it's certainly possible to have legitimate "cheat" clients, but I'm just trying to warn you that the rules are rather explicit about it. I'd personally rather not have you get banned or anything like that. |
03:57 |
erlehmann |
i am pretty sure that i have only ever suggested cheat clients that are constructive, i.e. automatically build stuff. |
03:58 |
erlehmann |
or similar things |
03:58 |
v-rob |
I know, but it could get questionable. Some might consider automatic building cheating. |
03:58 |
erlehmann |
waspsaliva can, for example, disable particle effects bc those can cause lag |
03:58 |
erlehmann |
that depends on the server |
03:58 |
v-rob |
That sounds like a legitimate fork feature. |
03:59 |
v-rob |
Forks are definitely different that cheat clients, as one is used for getting unfair advantages over others. |
03:59 |
erlehmann |
well, i call all of those cheat clients, yes |
04:00 |
erlehmann |
but that has to do with my view on the virtual lego games genre in general |
04:00 |
v-rob |
Well, it might behoove you to use better terminology then :) |
04:00 |
erlehmann |
i.e. that exploring an open world and building stuff is a modern robinsonade |
04:00 |
erlehmann |
the perfect neoliberal experience |
04:00 |
erlehmann |
work is always rewarded |
04:01 |
erlehmann |
well, waspsaliva has also goddess mode |
04:01 |
erlehmann |
and features to keep griefers at bay |
04:01 |
erlehmann |
i do not believe there is a good line to draw |
04:01 |
erlehmann |
i mean, i used halfbright mode myself because i have bad contrast vision |
04:02 |
erlehmann |
halfbright, as in: every node appears at least with light level 7 |
04:02 |
|
riff-IRC joined #minetest |
04:02 |
erlehmann |
i do, of course, not do such stuff on CTF or so |
04:03 |
erlehmann |
apart from all of this: i believe that the forum rules neither do nor should they extend to IRC and i believe this is the first time someone explicitly disagrees on that. |
04:03 |
erlehmann |
one reason for that is that as a game dev, i need to discuss cheat clients |
04:04 |
erlehmann |
for the simple reason of “how to defend against that” |
04:04 |
v-rob |
Discussing cheat clients is a different matter than recommending cheat clients |
04:05 |
erlehmann |
if you are more comfortable with that, i can also recommend to not use them. there is historical precedence, wait for it. |
04:05 |
erlehmann |
https://en.wikipedia.org/wiki/Vine-Glo |
04:06 |
erlehmann |
> On the packaging, it included a very specific warning: "After dissolving the brick in a gallon of water, do not place the liquid in a jug away in the cupboard for twenty days, because then it would turn into wine." |
04:07 |
erlehmann |
> old in the United States during Prohibition by Fruit Industries Ltd |
04:07 |
erlehmann |
sold ;) |
04:09 |
erlehmann |
v-rob i do, of course, not want to be banned. so if someone who actually can ban me threatens me with a ban for recommending waspsaliva, i may try to compy. |
04:10 |
v-rob |
Well, start distributing source patches that allow cheating features, and you'll probably find out that we're a bunch of Prohibitionists and not Supreme Court members with conflicts of interest then ;) |
04:10 |
erlehmann |
v-rob but until that happens, i will continue to tell people about that stuff when i deem it apropriate. |
04:10 |
erlehmann |
wdym start distributing source patches? |
04:11 |
v-rob |
I'm making an analogy between giving out wine bricks and code that would allow you to turn Minetest into a cheat client. |
04:11 |
erlehmann |
i *strongly* doubt that anyone is going to ban cheat client authors for anything outside forums. cora and fleckenstein were not banned. |
04:11 |
erlehmann |
neither was anon5 |
04:11 |
erlehmann |
all three of those have contributed something to minetest in the end, like fixes for exploits. |
04:12 |
erlehmann |
e.g. i believe fleckenstein fixed the entityspeed exploit (where being attached to an entity allowed players to break the speed limit) |
04:12 |
v-rob |
In any case, I have no power to ban, as I am not a moderator. I'm just stating that you appear to be on shaky ground. |
04:13 |
erlehmann |
i doubt it, but i appreciate your concern. |
04:13 |
erlehmann |
oh also |
04:13 |
erlehmann |
cheat clients are, definitely, something on almost all servers that have anarchy in the name or description |
04:14 |
erlehmann |
v-rob have you ever used a cheat client btw? if not, i suggest to try. some features would very well fit into minetest proper. |
04:15 |
v-rob |
Now you're recommending them to me :) |
04:15 |
v-rob |
But no, I have not. |
04:15 |
erlehmann |
yes, because you are a dev and i would like mainline minetest to have more interesting CSM APIs |
04:15 |
v-rob |
Ah |
04:16 |
erlehmann |
i mean WS is basically a bunch of CSMs |
04:16 |
erlehmann |
some of them even work on vanilla minetest |
04:16 |
erlehmann |
like, cora gave me one once with which i could see the ghost inventories that a specific dupe polluted the world with |
04:16 |
erlehmann |
so i could research server history |
04:17 |
erlehmann |
like, where did people dupe |
04:17 |
erlehmann |
invisible trails |
04:17 |
v-rob |
I do have a lot of interest in SSCSM (although I'm GUIing for now and the immediate future), and many SSCSM APIs would extend to CSM as well. |
04:18 |
erlehmann |
i believe that SSCSM is a foolish and dangerous endeavour and should never be done. but apart from that, i do think that we share a goal of better CSMs. |
04:18 |
v-rob |
It's interesting, I've seen other games that have Lua scripting, and there is no form of SSM, only SSCSM-type things, which is the exact opposite of Minetest |
04:18 |
v-rob |
Then again, security is not their highest priority... |
04:18 |
v-rob |
Potential buffer overflows being the norm rather than the exception :/ |
04:18 |
erlehmann |
do you know about afl-fuzz btw? |
04:19 |
erlehmann |
well, buffer overflows are a reality in the CVE++ programming language ^^ |
04:19 |
erlehmann |
about lua scripting: notch once mentioned that minecraft could have a server-side lua API, with no installation of client side mods necessary |
04:19 |
erlehmann |
turns out he lied |
04:20 |
erlehmann |
MC never got that hehe |
04:20 |
erlehmann |
v-rob what kind of CSM interests you if it is not automating player actions? |
04:20 |
v-rob |
Rendering |
04:21 |
erlehmann |
please be more specific about that |
04:21 |
v-rob |
Like this PR: #10801 |
04:21 |
erlehmann |
btw, automating player actions is important for accessability. i used autoforward, for example, bc it literally hurts to press the forward key after a long time. |
04:21 |
ShadowBot |
https://github.com/minetest/minetest/issues/10801 -- Add CSM 2D Drawing API by v-rob |
04:22 |
erlehmann |
i look at it |
04:22 |
v-rob |
I closed it partly because of a change in GUI development direction and partly because I wanted it to be entirely decoupled from Irrlicht |
04:22 |
v-rob |
But definitely something I want to pursue more, and also in the 3D realm. |
04:23 |
erlehmann |
i see what you are doing there, but i believe the approach can be better done by declarative vector graphics and declarative animations |
04:23 |
v-rob |
For instance, the ability to render arbitrary objects in the world, like client-side entities, but super light-weight |
04:23 |
erlehmann |
like, see my website here: http://dating.dieweltistgarnichtso.net – the entire thing has rich animations and interactivity, but absolutely no javascript |
04:23 |
v-rob |
Well, it was a light wrapper around Irrlicht's 2D API, so just image and rectangle drawing, mostly. |
04:23 |
erlehmann |
it is almost all declarative SVG animations |
04:24 |
erlehmann |
the difference in performance between declarative drawing and programmatic drawing is A LOT in my experience |
04:24 |
erlehmann |
like svg animations will work on 10 year old phones … javascript bloatware, not so much |
04:25 |
erlehmann |
the reason, of course, being that a declarative API means you can improve the renderer |
04:25 |
erlehmann |
and do not rely on each document to be improved |
04:26 |
erlehmann |
i believe it to be a collosal mistake to have 2d graphics be programmatic. time and time again it has lead to security and performance problems. |
04:26 |
erlehmann |
like, take postscript |
04:27 |
v-rob |
Different things for different jobs. That PR was originally meant for the formspec replacement. All elements have managed rectangles, and then all they need to do is draw an image or box inside that rectangle, so that was the correct approach. |
04:27 |
erlehmann |
maybe. i can not really tell, formspecs are a cursed thing |
04:27 |
v-rob |
Well, the formspec replacement is supposed to replace the formspecs, so they're really entirely separate. |
04:27 |
erlehmann |
i remember having heard a story once, that someone (maybe lutz donnerhacke?) figured out that not only you can make a fractal in the postscript programming language, you can also send that document to a printer |
04:28 |
erlehmann |
contrary to that, you can not do that using svg, short of including documents fragments in themselves – which can easily be forbidden. |
04:29 |
v-rob |
Really, that PR was meant to be a backend for more general drawing, not as a thing that general users would use for their drawing needs. |
04:29 |
erlehmann |
i understand. i took it as an example of a general drawing approach. |
04:29 |
erlehmann |
and having seen how badly mineclone2 manages client resources, i am strongly against such things. |
04:29 |
erlehmann |
fire texture metadata, for example, in mineclone2, was sent each frame. |
04:30 |
erlehmann |
cora calls it “a singleplayer game” for reasons ;) |
04:30 |
v-rob |
Ouch. The more I hear about MineClone 2, the more I never want to touch it. |
04:30 |
erlehmann |
well, it is a very successful thing for reasons. but those reasons do not include performance. |
04:31 |
MTDiscord |
<Jonathon> mineclon* is literally the handbook on what not to do in minetest |
04:31 |
erlehmann |
a thing you may not have noticed is though that a lot of code in there was cobbled together from other mods. |
04:31 |
v-rob |
The code is the #1 thing I never want to see from it :) |
04:31 |
ShadowBot |
https://github.com/minetest/minetest/issues/1 -- GlowStone code by anonymousAwesome |
04:31 |
erlehmann |
originally, i mean. minetest_game, for example, also had similar bugs. not *too* bad, but similar. |
04:32 |
erlehmann |
#0 |
04:32 |
ShadowBot |
erlehmann: Error: That URL raised <HTTP Error 404: Not Found> |
04:32 |
erlehmann |
well |
04:32 |
v-rob |
Hmm, #-1 |
04:32 |
erlehmann |
hehe |
04:32 |
v-rob |
Nope, OK |
04:33 |
erlehmann |
so regarding CSMs |
04:33 |
erlehmann |
anything else you are interested in? |
04:34 |
v-rob |
I haven't thought in great detail. My favourite potential application for SSCSM would be entity management, since it's super slow to do it from the server, but that doesn't extend very well to CSM. |
04:34 |
erlehmann |
here is some inspiration btw https://repo.or.cz/waspsaliva.git/tree/HEAD:/clientmods |
04:35 |
erlehmann |
there is an encrypted messenger in there and teamchat |
04:35 |
erlehmann |
and a way to mark other players as friend or foe |
04:36 |
erlehmann |
i like the simplicity of this one https://repo.or.cz/waspsaliva.git/blob/HEAD:/clientmods/kamikaze/init.lua |
04:36 |
erlehmann |
basically, someone spammed hostile mobs at the spawn of a server |
04:36 |
erlehmann |
which kills noobs |
04:37 |
erlehmann |
kamikaze logs in and punches those, then dies, respawns, does it again |
04:37 |
erlehmann |
to make the server safe again |
04:37 |
erlehmann |
it also punches fire and tnt and exploding crystals |
04:38 |
erlehmann |
v-rob would you consider that cheating? the admin did not interfere with both spamming hostiles nor cleaning it up |
04:38 |
v-rob |
Not really |
04:38 |
v-rob |
But the same code could easily be abused to attack other players |
04:39 |
erlehmann |
well the bot is too lazy for wayfinding i just realized |
04:39 |
erlehmann |
so it just flies lol |
04:39 |
v-rob |
Which makes it difficult to add APIs for such a thing |
04:39 |
erlehmann |
it's not too difficult |
04:39 |
erlehmann |
you are thinking of a different thing probably, killaura |
04:39 |
erlehmann |
it can be detected pretty easily, spawn invisible entities close to players and see if they start punching them |
04:40 |
erlehmann |
if so, they must be cheaters |
04:41 |
erlehmann |
v-rob what about autoeat, where if a player has food and is hungry, the script will make the player eat it. cheating? |
04:42 |
v-rob |
It would probably depend on the hunger mod |
04:42 |
v-rob |
If it's an extreme survival server, it might be. |
04:43 |
v-rob |
Minetest Game + hunger? Maybe not. |
04:43 |
erlehmann |
well, anarchy servers, where players lie, cheat & kill |
04:43 |
erlehmann |
extreme survival ehehehe |
04:44 |
v-rob |
Anarchy is a class of its own, and certainly shouldn't be the basis for CSM APIs, to be sure. |
04:44 |
erlehmann |
to the contrary, i think it should. you get a very good testing that way if an API can and will be used to cheat. |
04:45 |
erlehmann |
if you have a CSM API and it is not used to cheat on an anarchy server, it's probably fine |
04:45 |
v-rob |
I mean we shouldn't design APIs _for_ anarchy servers |
04:46 |
erlehmann |
well, anything that improves user control is like that. so i totally get it that anarchists will want CSMs that are not server-controlled and … others … will want to prevent that level of user autonomy. |
04:47 |
MTDiscord |
<Jonathon> hey vrob, would you be up for looking at some formspec stuff? |
04:47 |
erlehmann |
uh, are CSM formpsecs still broken? |
04:47 |
v-rob |
Sure, which formspec stuff? |
04:47 |
MTDiscord |
<Jonathon> https://github.com/minetest/minetest/issues/11898 and https://github.com/minetest/minetest/issues/11907 |
04:48 |
erlehmann |
https://github.com/minetest/minetest/issues/11700 |
04:48 |
MTDiscord |
<Jonathon> i have a example out in the wild(pr for fixing it) https://github.com/mt-mods/travelnet/pull/32 |
04:49 |
MTDiscord |
<Jonathon> is this something that would block 5.5? |
04:49 |
erlehmann |
oh my, this is horrible |
04:50 |
erlehmann |
i was not aware of that problm |
04:50 |
erlehmann |
problem |
04:50 |
erlehmann |
Jonathon, can the pattern be greped for in contentdb? i have an older cdb dump and some scripts to grep it |
04:50 |
erlehmann |
like, the pattern of close a formspec, open one again |
04:51 |
MTDiscord |
<Jonathon> it seems unknown if this is a server or client side. |
04:51 |
MTDiscord |
<Jonathon> erlehmann: im asking vrob |
04:52 |
erlehmann |
and 0.1 is enough of a delay to always win the race? |
04:52 |
erlehmann |
unclear to me from the info i have read |
04:52 |
erlehmann |
maybe appgurueu knows more |
05:00 |
|
MTDiscord joined #minetest |
05:15 |
v-rob |
Confusing bug... |
05:16 |
MTDiscord |
<Jonathon> is it client, server, both? |
05:16 |
v-rob |
Actually, I think I found it |
05:17 |
v-rob |
It might only happen in singleplayer, lemme check |
05:18 |
v-rob |
Well, maybe not |
05:32 |
v-rob |
I found the source of the bug. It's an old one; it's been around since 5.0.0 at least, probably way, way longer than that. |
05:32 |
MTDiscord |
<Jonathon> is it client, server, both? |
05:34 |
MTDiscord |
<Jonathon> odd it finally surfaced now if its been around that long |
05:35 |
v-rob |
Both |
05:36 |
v-rob |
button_exit[] is clicked, client sends fields to server and destroys GUIFormSpecMenu directly after. However, before the client gets that far, the server sends a formspec right back, which then gets shown. Then the client destroys GUIFormSpecMenu, including the newly shown formspec. |
05:36 |
v-rob |
Nasty |
05:37 |
v-rob |
It looks difficult to fix cleanly. |
05:37 |
v-rob |
However, servers with highish latency shouldn't have this problem, so y'all should make the server lag out more :P |
05:38 |
MTDiscord |
<Jonathon> well, thats a new one |
05:38 |
MTDiscord |
<Jonathon> how does the issue occur? |
05:39 |
v-rob |
As far as I can tell, it's essentially a race condition between client and server |
05:39 |
MTDiscord |
<Jonathon> yikes |
05:39 |
v-rob |
It's pretty bad |
05:39 |
MTDiscord |
<Jonathon> is this a 5.5 blocker or? |
05:40 |
v-rob |
I'd guess no because it's been around such a long time, but IDK |
05:40 |
erlehmann |
v-rob please post your new knowledge to https://github.com/minetest/minetest/issues/11907 |
05:41 |
MTDiscord |
<Jonathon> so probably need sfan5/other devs opinion or something |
05:41 |
v-rob |
I will, I'm just doing more testing |
05:41 |
erlehmann |
ok cool |
05:41 |
MTDiscord |
<Jonathon> Thank you for looking into ir v-rob |
05:41 |
MTDiscord |
<Jonathon> *it |
05:41 |
v-rob |
No problem |
05:44 |
erlehmann |
v-rob how about canceling GUIFormSpecMenu destruction if the client got a new formspec since the last button press or something? |
05:44 |
erlehmann |
by which i mean “why is this a bad idea?” |
05:44 |
erlehmann |
almost all “obvious fixes” are bad ideas, after all |
05:46 |
erlehmann |
https://gitlab.com/torkel104/libstrangle |
05:46 |
erlehmann |
> Cap the FPS (frames per second) of a chosen game by using the included script strangle Example: |
05:47 |
v-rob |
The difficulty is that GUIFormSpecMenu has almost no knowledge of when a new formspec is shown. This is also the cause of difficult problems like showing the same formspec with minetest.show_formspec not causing the formspec to be regenerated. |
05:51 |
v-rob |
Updated the issue |
06:20 |
|
loggingbot_ joined #minetest |
06:20 |
|
Topic for #minetest is now The official Minetest channel | Latest version: 5.4.1 (2021-04-10) | General, player and modding discussion is on-topic. If in doubt, post here | Responses may take a while, be patient | Rules: https://wiki.minetest.net/IRC#Rules | Development: #minetest-dev | Server list: https://minetest.net/servers | IRC logs: https://irc.minetest.net/minetest |
06:34 |
erlehmann |
v-rob what do you think of declarative animations btw? |
06:36 |
v-rob |
They're certainly the proper way to do nearly all animations in a GUI |
06:37 |
erlehmann |
what animations would you not do with them? |
06:39 |
v-rob |
Assuming they're a good set of rules, you'd use them for all GUI animations. If you're doing something like a 2D game, of course, they won't be enough. |
06:41 |
erlehmann |
i still do not know what you mean by “they won't be enough” |
06:42 |
erlehmann |
you want shaders in your 2d images? |
06:44 |
v-rob |
"2D game". Try making Super Mario Bros. with only declarative animations. |
06:45 |
erlehmann |
right, you can only make games that have a limited state space with that |
06:45 |
v-rob |
Granted, that is starting to fall outside the realm of normal GUIs as the term is used, but Minetest does need to support such use-cases. |
06:45 |
erlehmann |
i wish i could just use svg for interface tbh |
06:45 |
erlehmann |
it's so damn clean to do everything in it |
06:45 |
erlehmann |
compared to … literally everything else i have seen |
06:46 |
erlehmann |
aren't dvd menus SMIL animations? |
06:46 |
v-rob |
No idea |
06:47 |
erlehmann |
i looked it up, yes |
06:47 |
erlehmann |
dvd menus and SVG use both smil |
06:47 |
erlehmann |
v-rob did you look at the SVG at my website? |
06:47 |
v-rob |
I definitely should use SVG myself sometime |
06:47 |
v-rob |
I had a brief look, yes |
06:48 |
erlehmann |
well if you ever have any svg questions, ask |
06:48 |
erlehmann |
i wrote every animation in there by hand |
06:48 |
erlehmann |
in emacs |
06:48 |
erlehmann |
it's super easy |
06:48 |
v-rob |
Will do |
06:49 |
erlehmann |
also, click the red square here, then watch the animation, then look at the source code http://daten.dieweltistgarnichtso.net/src/svg-smil-events.svg |
06:50 |
erlehmann |
SVG formspecs when |
06:51 |
erlehmann |
now i wonder |
06:51 |
v-rob |
Wow, that's pretty clean |
06:51 |
erlehmann |
if there is some drop-in library for this |
06:52 |
erlehmann |
v-rob now this ;) http://daten.dieweltistgarnichtso.net/src/svg-animation.html |
06:53 |
erlehmann |
one advantage i see in declarative animation btw is that it is impossible to mess up the state management |
06:53 |
erlehmann |
websites that animate using js often have weird races and get in some impossible state |
06:54 |
erlehmann |
css and svg animations can not have that by design |
06:54 |
v-rob |
I mean, there's Cairo, which I think supports SVG, but I think a lot of these libraries don't support hardware acceleration. |
06:54 |
erlehmann |
wdym? |
06:55 |
erlehmann |
you can just render it onto a surface though? |
06:55 |
v-rob |
Yes, but relatively slowly |
06:55 |
erlehmann |
chrome already has GPU acceleration for SVG and CSS |
06:56 |
v-rob |
I dunno, I haven't looked into it much |
06:56 |
erlehmann |
most CSS/SMIL animation is hardware accelerated in some way per https://mozillagfx.wordpress.com/2013/07/22/hardware-acceleration-and-compositing/ |
06:56 |
erlehmann |
> Some canvas operations are very fast on the gpu (like blitting surfaces) but others are not (drawing bezier curves and shapes in general), so there is a trade-off and “hardware-accelerated canvas” is not always “accelerated” depending on what you are doing with your canvas. |
06:58 |
erlehmann |
> “achieving hardware acceleration” is the wrong goal. You should pursue performance and/or smoothness, |
06:59 |
erlehmann |
https://greensock.com/forums/topic/11842-hardware-acceleration-and-svg/ |
07:00 |
erlehmann |
> GPUs work with a fixed number of triangles. Paths are not defined by triangles, nor do all the points of a path lie on the path itself e.g. Beziers. |
07:01 |
erlehmann |
v-rob btw the svg path attribute language is a neat little thing that might make sense in minetest for some things you want. not sure. |
07:02 |
v-rob |
You know, a little bit off the original topic, but I wonder what SVG in 3D would look like |
07:02 |
v-rob |
As in, make 3D shapes, animate them along 3D paths, etc. |
07:02 |
v-rob |
Sounds interesting |
07:02 |
erlehmann |
uh, that's relatively simple. let me see if i have something for you. |
07:03 |
erlehmann |
v-rob http://daten.dieweltistgarnichtso.net/src/political-compass-surreal.html |
07:03 |
erlehmann |
there is zalgo text in there, so it might have rendering errors |
07:04 |
erlehmann |
note that the hyperlinks are clickable |
07:04 |
erlehmann |
and that, again, everything is purely declarative |
07:04 |
v-rob |
Well, there we go. SVG's pretty fancy |
07:05 |
erlehmann |
as i said, give me your svg questions and i shall answer ^^ |
07:06 |
erlehmann |
regarding hardware accelleration, that space thing actually is something that i have checked worked on >10 year old phones with ~256 MB RAM or so |
07:06 |
erlehmann |
no idea if it was accelerated, but it was smooth |
07:07 |
v-rob |
Well, I guess I didn't know quite as much as I thought. |
07:07 |
erlehmann |
that's always a good thing to happen. now you have new things to think about and tinker with! |
07:08 |
erlehmann |
once youk now a bit of svg, i suggest to check out <svg:use> |
07:08 |
erlehmann |
you can basically include subtrees, i.e. have icon libraries |
07:08 |
erlehmann |
hmmm |
07:09 |
erlehmann |
now i wonder if this can be used to have a simple portable include mechanism without frames |
07:09 |
erlehmann |
in xhtml |
07:09 |
erlehmann |
by using the <svg:use> to include a some <svg:foreignObject> that has xhtml in it |
07:09 |
erlehmann |
would be super useful if that works |
07:10 |
v-rob |
That would be really nice. Frames would be great if they worked better. |
07:10 |
erlehmann |
the thing with including a subtree is: you can actually include some icon from an svg file, then have the site css apply to it |
07:10 |
erlehmann |
(it would not apply to iframe content) |
07:12 |
erlehmann |
v-rob btw, if you want to move something along a path in 3d space, i think you will have to have a 2d path (since the path language is 2d) and rotate the path in 3d space when you want it to change direction. |
07:12 |
erlehmann |
maybe there is a less hacky method, not sure. |
07:18 |
|
specing joined #minetest |
07:58 |
|
calcul0n joined #minetest |
08:33 |
|
Jason232_ joined #minetest |
08:36 |
hlqkj |
hello, is there someone who can help me with building mt on Mingw64? |
08:40 |
MTDiscord |
<Sublayer plank> cross-compiling for windows on linux or are you on windows? |
08:42 |
MTDiscord |
<Sublayer plank> there's buildbot scripts in util/buildbot/ for building for windows on linux, idk if they can be used on windows as well |
08:46 |
hlqkj |
I am on windoes |
08:47 |
hlqkj |
already using the buildbot.sh script, but i get a weird error on CheckSymbolExists for ZSTD |
08:47 |
hlqkj |
ld can't find the file at the path, yet it's there |
08:47 |
hlqkj |
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find /d/minetest/minetest/winbuild/libs/zstd/lib/libzstd.dll.a: No such file or directory |
08:48 |
MTDiscord |
<Sublayer plank> are you trying to build stable 5.4.1 or the latest development version? |
08:48 |
hlqkj |
master |
08:48 |
hlqkj |
i can try stable, didn't think at that sry |
08:49 |
hlqkj |
oh actually, idk if it's the buildbot script checking things out for me? |
08:50 |
MTDiscord |
<Sublayer plank> yeah it does. you can change the branch name inside the script to I think it's stable-5 to switch to building 5.4.1 |
08:50 |
hlqkj |
ok, i |
08:51 |
MTDiscord |
<Sublayer plank> it clones a separate copy for the repository from the specified branch, but for building with local changes there's an environment variable to specify an existing directory |
08:51 |
hlqkj |
*i'll try |
08:51 |
|
TomTom joined #minetest |
09:32 |
|
delta23 joined #minetest |
09:48 |
|
Markow joined #minetest |
09:55 |
|
sys4 joined #minetest |
10:11 |
|
cation joined #minetest |
10:32 |
|
cation joined #minetest |
10:32 |
sfan5 |
the buildbot script is only tested on linux for cross-compilation |
10:32 |
sfan5 |
if you have a mingw environment on windows you can probably install all deps from its package manager much easier |
10:33 |
sfan5 |
and just run cmake, make manually then |
10:34 |
MTDiscord |
<luatic> [OFF] yep I was right: string.char(0x77, 0x73, 0x6F, 0x72) == "wsor" |
10:39 |
MTDiscord |
<Sublayer plank> erlehmann: so the tga encoder has been broken on windows ever since you implemented the RLE compression? |
10:39 |
erlehmann |
Sublayer Plank so the thing is, the encoder did not work on windows, but devs and servers run linux |
10:39 |
erlehmann |
Sublayer plank, yes, but that was relatively recently. before, it apparently corrupted some images, but the header did not contain \n |
10:40 |
MTDiscord |
<luatic> side note: minetest.safe_file_write should work fine with binary files |
10:40 |
erlehmann |
let me look it up |
10:40 |
erlehmann |
i did not write the file code. i guess we need a unit test for that. |
10:41 |
erlehmann |
oh, also: i guess i should rework my tga devtest nodes to actually *generate* the textures |
10:41 |
erlehmann |
some time in the future |
10:41 |
erlehmann |
Subplayer plank, just out of curiousity, the devtest test nodes work fine? |
10:41 |
erlehmann |
the ones from https://github.com/minetest/minetest/pull/11978 |
10:42 |
erlehmann |
luatic are there other ways that minetest can mangle files? |
10:42 |
erlehmann |
luatic or is this the only thing? |
10:43 |
|
HuguesRoss joined #minetest |
10:43 |
MTDiscord |
<luatic> huh? MT doesn't mangle files AFAIK |
10:44 |
erlehmann |
so this is a general lua thing i assume |
10:44 |
erlehmann |
that depending on the platform bytes are replaced unless you set binary mode? |
10:44 |
MTDiscord |
<luatic> not only a Lua thing - if you want to write binary files, always use "wb" |
10:44 |
erlehmann |
ok! |
10:45 |
erlehmann |
luatic oh, i did “man 3 fopen” and it says the b is ignored on POSIX and linux, but “non-UNIX” environments might need it |
10:46 |
MTDiscord |
<Sublayer plank> erlehmann: yeah all of the devtest tga test node textures work fine |
10:46 |
erlehmann |
cool |
10:46 |
erlehmann |
Sublayer plank so if you set the mode for the tga_encoder to wb, can you reproduce the “sometimes the map does not show up” thing? |
10:46 |
MTDiscord |
<Sublayer plank> also it's just a general thing that omitting "b" puts the file writer in plain text mode, which converts EOL to the platform default. python does this too |
10:46 |
MTDiscord |
<Sublayer plank> alright will do |
10:47 |
erlehmann |
i guess i have used linux and mac for too long |
10:47 |
erlehmann |
but good to know |
10:47 |
erlehmann |
luatic i guess it makes total sense that the PNG magic value has \r\n in it hihi |
10:48 |
erlehmann |
always funny when during debugging you find another bug |
10:50 |
MTDiscord |
<luatic> PNG is actually a decent spec, it just has it's fair share of bloat |
10:51 |
MTDiscord |
<Sublayer plank> erlehmann: changed the mode to wb and now it writes proper TGA images, and can also reproduce the fact the map texture does not show up sometimes (5.5.0-rc1) |
10:51 |
erlehmann |
Subplayer plank that means dynamic media is broken in 5.5 i guess |
10:51 |
erlehmann |
was it recently rewritten? |
10:51 |
erlehmann |
like … an incompatible change? |
10:51 |
MTDiscord |
<luatic> there was the dynamic media v2 rewrite |
10:52 |
erlehmann |
i think maybe minetest needs to be forked into some game engine which is almost exactly like it, only all the incompatible changes are not in it |
10:52 |
MTDiscord |
<luatic> @floofy ralsei have you checked the warnings? |
10:52 |
MTDiscord |
<luatic> my recommendation: always set the chat log level to warning |
10:52 |
erlehmann |
Subplayer plank is there anyhing that you can figure out about this? |
10:53 |
erlehmann |
luatic what in the rewrite could have broken dynamic media from 5.4.1? |
10:53 |
MTDiscord |
<luatic> IDK if it wasn't always broken, but sfan5 recently added a warning if a race condition prevents it from working |
10:53 |
MTDiscord |
<luatic> So I'd be worthwhile to check if that warning appears |
10:53 |
MTDiscord |
<luatic> it'd be* |
10:53 |
erlehmann |
for me, it definitely was not always broken like that |
10:54 |
erlehmann |
i mean maybe there was a race condition, but you always won the race |
10:57 |
MTDiscord |
<Sublayer plank> what would the "race condition warning" be? I only get the 'generateImage(): Could not load image "mcl_maps_map_texture_27.tga" while building texture; Creating a dummy image' error even with my chat log level set to action |
10:57 |
MTDiscord |
<Sublayer plank> anyways I can in fact reproduce the fact the map textures always do show up in 5.4.1 though |
10:59 |
erlehmann |
i have a log |
11:00 |
erlehmann |
luatic does this look like the race that sfan5 mentioned? https://mister-muffin.de/p/ItLK.txt |
11:00 |
MTDiscord |
<luatic> https://github.com/minetest/minetest/commit/379473b67007abf78d87ebbaf925b4948cf72ae6 |
11:00 |
erlehmann |
it seems that the file is generated and sent, but then the client assumes it does not have it, even though it does, indeed, have it |
11:02 |
MTDiscord |
<luatic> ah yes, that's because dynamic media has been changed to use a callback |
11:02 |
MTDiscord |
<luatic> you must ensure in your mod code that the client has received it already, as dynamic media isn't blocking anymore |
11:03 |
MTDiscord |
<luatic> so this is in fact not the race condition I had in mind |
11:03 |
erlehmann |
well this is not my mod |
11:03 |
erlehmann |
another incompatible change |
11:03 |
erlehmann |
i will file an issue |
11:03 |
MTDiscord |
<luatic> why would you file an issue? |
11:04 |
MTDiscord |
<luatic> https://github.com/appgurueu/epidermis/blob/master/dynamic_add_media.lua#L27-L59 is how it can be done BTW |
11:04 |
erlehmann |
well the thing is |
11:04 |
MTDiscord |
<luatic> this is IMO the mod author's fault |
11:04 |
erlehmann |
this rug-pulling has to end |
11:04 |
erlehmann |
why |
11:04 |
erlehmann |
this worked in the past? |
11:04 |
MTDiscord |
<luatic> the feature was always considered experimental |
11:05 |
erlehmann |
look, i'll file at least an issue so that i can link to it and collect the knowledge |
11:05 |
erlehmann |
and then i fix it in mineclonia |
11:05 |
erlehmann |
but this is super shitty from an API standpoint |
11:05 |
erlehmann |
like why not call it minetest.dynamic_add_media2 |
11:05 |
MTDiscord |
<luatic> it's not, experimental means devs are free to do whatever they want |
11:05 |
erlehmann |
if the entire calling paradigm is changed |
11:05 |
erlehmann |
yeah, sure |
11:06 |
erlehmann |
i think devs should take reality into account. reality is: no one cares if something is marked experimental, if it works in the default install |
11:06 |
erlehmann |
web browsers have had this with prefixed css properties |
11:06 |
MTDiscord |
<luatic> NTM that dynamic_add_media had a callback already to ease migration (that was called immediately though and not per player IIRC) |
11:06 |
erlehmann |
NTM? |
11:07 |
MTDiscord |
<luatic> Can you link the relevant mod code? If the callback isn't used at all, this is clearly on the mod authors. |
11:07 |
MTDiscord |
<luatic> not to mention |
11:08 |
|
appguru joined #minetest |
11:08 |
MTDiscord |
<Sublayer plank> does claiming it to be "experimental" really excuse breaking compatibility like this |
11:09 |
MTDiscord |
<luatic> yes |
11:09 |
MTDiscord |
<luatic> NVM, 5.4.1 already had the per-name callback |
11:10 |
MTDiscord |
<luatic> So this is 100% on the mod authors who assumed undocumented and frowned upon behavior for an experimental feature |
11:10 |
MTDiscord |
<luatic> https://github.com/minetest/minetest/blob/5.4.1/doc/lua_api.txt#L5455-L5456 |
11:11 |
MTDiscord |
<luatic> 5.3 probably didn't have the callback? |
11:11 |
erlehmann |
luatic it does not matter who is at fault |
11:11 |
MTDiscord |
<Sublayer plank> where does it say it is experimental? |
11:11 |
MTDiscord |
<luatic> argh indeed this was broken: https://github.com/minetest/minetest/blob/5.3.0/doc/lua_api.txt#L5233-L5236 |
11:11 |
erlehmann |
it reminds me of hitchhikers guide to the galaxy |
11:12 |
MTDiscord |
<luatic> 5.3.0 it used to be "blocking", even documented |
11:12 |
MTDiscord |
<luatic> So yes, this is on the MT devs |
11:13 |
MTDiscord |
<luatic> But should they really have preserved the very dirty initial API, which sent all media twice and basically blocked everything else (all other packets) while sending media? |
11:13 |
erlehmann |
yes |
11:15 |
MTDiscord |
<luatic> Fine, file an issue if you want - this is indeed breakage of documented features between minor versions |
11:16 |
erlehmann |
luatic, i have a word for changing the API while you try to avoid bugs like sending stuff twice or race conditions |
11:16 |
erlehmann |
it's called refucktoring |
11:16 |
erlehmann |
a known agile technique! |
11:16 |
erlehmann |
(i am joking of course, agile devs usually have unit tests) |
11:18 |
erlehmann |
Sublayer plank, you are krock? |
11:18 |
erlehmann |
on github? |
11:19 |
MTDiscord |
<Sublayer plank> no lol, I'm ROllerozxa |
11:19 |
erlehmann |
ok! |
11:19 |
erlehmann |
thx |
11:19 |
erlehmann |
are you a core dev? |
11:20 |
erlehmann |
i am asking bc i want approval for the TGA test nodes before i make more test nodes for more complicated formats, in particular PNG |
11:20 |
erlehmann |
i am pretty sure there are bugs that are platform-specific |
11:21 |
MTDiscord |
<Sublayer plank> I'm not a coredev, but I do hope the TGA test nodes do be merged |
11:21 |
erlehmann |
i think all variants of all file formats should have demo files in devtest |
11:21 |
erlehmann |
i actually compared your file against the devtest textures because they are known-good |
11:23 |
MTDiscord |
<Sublayer plank> yeah definitively. might not be as useful for png and jpeg since they mostly use standard libraries (libpng and libjpeg) for working with them but TGA is irrlicht's own code we need to maintain |
11:23 |
erlehmann |
well |
11:23 |
erlehmann |
i think especially then it makes sense |
11:23 |
erlehmann |
because the user might have a different version of libpng or libjpeg |
11:24 |
erlehmann |
so figuring out if some variants of textures do not show up becomes even more important |
11:24 |
MTDiscord |
<Sublayer plank> yeah that's true actually |
11:24 |
MTDiscord |
<Sublayer plank> having too much tests is always better than not enough tests :) |
11:24 |
erlehmann |
tga is so simple everyone of us can write a decoder in a day and make it bulletproof in a week |
11:24 |
erlehmann |
other formats. not so much |
11:25 |
erlehmann |
luatic btw i figured out why gamedevs still use TGA. it seems to be the simplest format supported by software (like gimp) that allows having a true alpha channel. all other simple formats either lack it or only have an alpha bit. |
11:26 |
erlehmann |
also libjpeg-turbo uses it for reference pictures |
11:27 |
erlehmann |
Sublayer plank, btw mineclone5 is the “merge all the things” mineclonia variant. it also has like 2 crossbows and at least one of them makes colorfull fireworks. |
11:27 |
erlehmann |
basically kay27 (the maintainer) just picks a lot of stuff up |
11:27 |
erlehmann |
without reviewing it more than “does the game start” |
11:27 |
erlehmann |
i mean, maybe a bit more. |
11:28 |
erlehmann |
but he thinks that having more features is better. whereas mineclonia is the opposite, we take forever, but then it absolutely has to work. |
11:28 |
erlehmann |
which is also why i find bugs all the time. |
11:28 |
erlehmann |
minetest bugs that i do not find through fuzzing are usually a side effect of mineclonia code reviews |
11:40 |
|
Flabb joined #minetest |
11:41 |
sfan5 |
<luatic> argh indeed this was broken: https://github.com/minetest/minetest/blob/5.3.0/doc/lua_api.txt#L5233-L5236 |
11:41 |
sfan5 |
this api was deprecated in 5.4.0 specifically because it was obvious that it's not viable to keep |
11:42 |
sfan5 |
and with 5.5 the deprecation period has ended and the old usage no longer works |
11:45 |
erlehmann |
cool, please call the next release 6.0 i guess |
11:46 |
erlehmann |
given that we just *now* figured it out, i think this whole API change deprecation thing is totally unworkable in the long-term |
11:46 |
erlehmann |
and you already pointed out that you can just name the new API differently |
11:46 |
sfan5 |
maybe read the warnings the game gives you |
11:47 |
MTDiscord |
<luatic> Depends. dynamic media wasn't used widely enough to warrant a longer deprecation period. |
11:47 |
erlehmann |
look if the new function had a different name, it would OBVIOUSLY break |
11:47 |
MTDiscord |
<luatic> sfan5: hence my recommendation to turn chat log level to warning if you're a mod dev ;) literally can't oversee it then |
11:47 |
MTDiscord |
<luatic> s/oversee/miss |
11:48 |
erlehmann |
first you add send_dynamic_media2, then later when you remove send_dynamc_media in a minor update, everything relying on it breaks obviously |
11:48 |
erlehmann |
and not silently |
11:48 |
erlehmann |
instead of that, we get a function that changes from synchronous, to synchronouos but optionally callback, to callback |
11:49 |
sfan5 |
your proposal is all cool but I haven't heard why you can't read warning messages |
11:49 |
erlehmann |
mineclone5 is not even my mod |
11:49 |
erlehmann |
kay27 maintains it |
11:50 |
erlehmann |
mineclona has a maps branch, but in the process of figuring out if stuff works, i encounter bugs (about half of them engine breakage, half of them “how did this ever work” stuff like the binary writing thing on windows) |
11:53 |
MTDiscord |
<luatic> I've brought this up a while ago but nothing has changed so here it is again, paired with a bit of irony: #11998 |
11:53 |
ShadowBot |
https://github.com/minetest/minetest/issues/11998 -- Too damn many unconfirmed bugs |
11:53 |
erlehmann |
phew, i commented my sarcasm just in time! |
11:54 |
erlehmann |
https://nikolas.github.io/github-drama/ |
11:56 |
erlehmann |
i think this was my best issue speedrun yet |
11:56 |
erlehmann |
though i do not appreciate the outcome, thanks for the debugging help Sublayer plank and luatic |
12:18 |
|
proller joined #minetest |
12:24 |
|
tech_exorcist joined #minetest |
12:45 |
MTDiscord |
<MisterE> Just wondering, is it planned to allow light sources to cast dynamic shadows in the future? |
12:46 |
erlehmann |
MisterE i thought so, which is why i constantly keep saying that a nonexistent *sun* or *moon* should not cast shadows, but on the other hand a shadows API should allow people to define angle or source of shadow casting light sources |
12:46 |
erlehmann |
even if a sun or moon does not exist |
12:46 |
erlehmann |
like deep underground |
12:46 |
rubenwardy |
afaik, it's not planned |
12:47 |
MTDiscord |
<luatic> MisterE: unlikely |
12:47 |
MTDiscord |
<luatic> it is very nontrivial to implement in an efficient manner |
12:47 |
erlehmann |
rubenwardy just to be clear, forum rules do not apply here, do they? v-rob brought it up and i think he is mistaken, but you have OP here so i better ask. |
12:48 |
MTDiscord |
<MisterE> Hmm... it just seemed to me that having the sun cast shadows but not eg torches eas incoherent :| |
12:48 |
MTDiscord |
<MisterE> *was |
12:48 |
MTDiscord |
<luatic> it is |
12:48 |
MTDiscord |
<luatic> but rendering as a whole is basically a mess, as you have to compromise on realism for performance |
12:49 |
MTDiscord |
<luatic> the way shadow mapping works, a depthmap of the scene is rendered from the perspective of the light source to determine where shadows should be cast |
12:49 |
|
Yad joined #minetest |
12:50 |
MTDiscord |
<luatic> for multiple light sources, you'd have to rerender the scene for each light source |
12:51 |
MTDiscord |
<MisterE> yes but correct if wrong, you only have to render to a distance of 10 for a torch |
12:51 |
MTDiscord |
<luatic> perhaps an approximation suffices - such as only doing this for a couple close light sources or reducing shadowmap resolution for small light sources |
12:51 |
MTDiscord |
<MisterE> Which is much simpler than rendering the whole scene for the sun |
12:51 |
MTDiscord |
<luatic> MisterE: yes, optimizations may be possible, but this is still hard to implement efficiently |
12:52 |
MTDiscord |
<luatic> I mean, even a render distance of 10 will probably have the GPU do lots of work |
12:52 |
MTDiscord |
<luatic> MT currently generates meshes per mapblock, so the GPU has to render the entire 16^3 mapblock |
12:53 |
MTDiscord |
<luatic> It can then discard faces as after transforming them if it sees they are out of range |
12:54 |
MTDiscord |
<luatic> But a proper implementation would require lots of carefully tweaked ducttape |
12:55 |
erlehmann |
i think optifine has it though |
12:55 |
erlehmann |
whatever, i am fine with the torch fakery that destroys rollback |
13:15 |
MTDiscord |
<luatic> #10741 must be reopened. I feel devs never test with TPs with empty hearts. |
13:15 |
ShadowBot |
https://github.com/minetest/minetest/issues/10741 -- Health & breathbar ignore max properties |
13:25 |
|
Markow joined #minetest |
14:33 |
|
Fixer joined #minetest |
14:53 |
|
kamdard joined #minetest |
14:57 |
|
Taoki joined #minetest |
14:58 |
erlehmann |
rubenwardy i do not want to cause undue load on your server, but would like to update my local cdb search. can you tell me where to find the latest dump? |
15:02 |
|
jordan4ibanez joined #minetest |
15:02 |
|
proller joined #minetest |
15:06 |
|
grouinos joined #minetest |
15:09 |
|
Markow joined #minetest |
15:10 |
|
nemo42 joined #minetest |
15:12 |
|
definitelya joined #minetest |
15:37 |
erlehmann |
luatic how can i make a dynamic-add-media that works in all situations from 5.3 to 5.5? |
15:38 |
erlehmann |
do you have something like that? |
15:45 |
|
v-rob joined #minetest |
15:50 |
|
Flabb_ joined #minetest |
16:13 |
|
v-rob joined #minetest |
16:17 |
|
Hawk777 joined #minetest |
16:17 |
MinetestBot |
[git] sfan5 -> minetest/minetest: Add game name to server status string 91c6728 https://github.com/minetest/minetest/commit/91c6728eb8cebf060b5a3aaed588a7b6dbf266ad (2022-01-28T16:15:10Z) |
16:17 |
MinetestBot |
[git] sfan5 -> minetest/minetest: Get rid of legacy workaround in SQLite backend 66e8aae https://github.com/minetest/minetest/commit/66e8aae9f2a28ee31ffe30694fdb61a8fdceb8d7 (2022-01-28T16:16:02Z) |
16:18 |
erlehmann |
luatic rebase this? https://github.com/minetest/minetest/pull/11940 |
16:19 |
erlehmann |
not sure if you get a mail or notification from a simple label |
16:19 |
sfan5 |
don't think so |
16:29 |
|
Talkless joined #minetest |
16:38 |
|
appguru joined #minetest |
16:56 |
|
nemo42 joined #minetest |
16:59 |
MTDiscord |
<Jonathon> >how can i make a dynamic-add-media that works in all situations from 5.3 to 5.5? dynamic media wasnt even in 5.3. you would have to use [combine hacks |
17:01 |
erlehmann |
https://github.com/minetest/minetest/blob/5.3.0/doc/lua_api.txt#L5233-L5236 |
17:01 |
erlehmann |
* `minetest.dynamic_add_media(filepath)` |
17:01 |
erlehmann |
tell me again it was not there |
17:01 |
erlehmann |
Jonathon did it not work? |
17:07 |
sfan5 |
it did work |
17:09 |
|
v-rob joined #minetest |
17:10 |
freshreplicant[m |
erlehmann: The Minetest wiki's IRC page has rules on it. Not sure if they're up-to-date. https://wiki.minetest.net/IRC (bottom of page) |
17:11 |
erlehmann |
sfan5 i have since investigated mineclone5 and found that in between minetest.send_dynamic_media() must have *both* accepted a callback *and* blocked. which is a bit weird. |
17:12 |
erlehmann |
is that true? |
17:12 |
sfan5 |
yes |
17:12 |
sfan5 |
this is the case on 5.4.0 |
17:12 |
erlehmann |
no wonder that the callback was empty then |
17:12 |
sfan5 |
the callback was added to prepare for the changes now in 5.5 but the implementation was not changed |
17:12 |
erlehmann |
there was nothing to do after all |
17:13 |
erlehmann |
i do not think that is a good way to handle it, since that means it will not crash, but be racy. |
17:13 |
sfan5 |
well this was done so mod authors could already make use of the callback to write code that would seamlessly work on 5.5 (once it comes out) |
17:13 |
erlehmann |
any other APIs that were changed from blocking to non-blocking? |
17:14 |
erlehmann |
i mean, if devs insist on breaking stuff all the time, maybe it belongs into the release notes |
17:14 |
erlehmann |
i mean, code in a big project is *rarely* changed |
17:15 |
erlehmann |
if it still works |
17:15 |
sfan5 |
so let me get this straight |
17:15 |
sfan5 |
you are still blaming coredevs instead of the person who commited the empty callback without reading the docs or any warnings? |
17:15 |
sfan5 |
plus whoever reviewed it (you do have a review process, right?) |
17:16 |
erlehmann |
i am not blaming anyone, i want the breakage to stop. i literally do not care. |
17:16 |
erlehmann |
who messed it up. |
17:16 |
erlehmann |
i mess up stuff all the time, but it gets caught in reviews usually |
17:16 |
erlehmann |
so i would probably say the reviewer had not the standards i would have, but you don't even let me review stuff (i asked) |
17:16 |
sfan5 |
if you do not care why why aren't you yelling at passerby's on the street? |
17:16 |
sfan5 |
after all they share equally much blame |
17:16 |
erlehmann |
i care about the breakage, not who messed it up |
17:17 |
erlehmann |
and also that there is a persistent pattern of people breaking APIs and expecting some code written years ago would magically be updated |
17:17 |
|
jordan4ibanez joined #minetest |
17:17 |
sfan5 |
I hope you went and annoyed the mineclone5 dev equally then |
17:18 |
erlehmann |
i believe jordan4ibanez has a lot of stories about me annoying mineclone* devs lol |
17:18 |
erlehmann |
sfan5 can you maybe tag @kay27 in the issue? i can't, since you locked it |
17:18 |
erlehmann |
he is the lead of mcl5 |
17:18 |
sfan5 |
you can send them a link |
17:19 |
|
sys4 joined #minetest |
17:19 |
erlehmann |
no idea how to reach, but then i'll open an issue on mcl5 i guess |
17:19 |
erlehmann |
after eating |
17:19 |
erlehmann |
btw, i think my big problem with the coredev API breaking thing is that it practically does not result in smooth upgrades |
17:20 |
erlehmann |
processes to do that do exist though, it's not a question of capability. minetest has protocol versions and funny hacks. |
17:21 |
jordan4ibanez |
My brain has become too overcooked to remember right no |
17:22 |
erlehmann |
well, i doubt mcl2 and mcl5 are going anywhere fast |
17:22 |
jordan4ibanez |
no->now |
17:26 |
erlehmann |
jordan4ibanez you should update this bc the API different in 5.5 due to sentimental versioning scheme https://github.com/oilboi/Crafter-Minetest/blob/b33c96b3f99f8faf8ccf7bc3760f8f1f74a45832/mods/skins/init.lua#L73 |
17:27 |
erlehmann |
by which i mean unexpectedly broken |
17:28 |
erlehmann |
unless you read the lua API file again |
17:28 |
erlehmann |
:P |
17:31 |
jordan4ibanez |
Oh that game mode is pretty dead for now, perhaps one day I will rewrite it in a more data oriented cache happy approach to minimize volatile memory utilization and maximize on chip branch prediction |
17:32 |
erlehmann |
wdym |
17:32 |
jordan4ibanez |
localizations littered throughout the code, pretty disgusting |
17:32 |
erlehmann |
are you making fun of me? |
17:32 |
erlehmann |
oh |
17:32 |
erlehmann |
that |
17:32 |
erlehmann |
well |
17:32 |
erlehmann |
it's not like lua is *that* slow unless you create a lot of strings |
17:33 |
jordan4ibanez |
JIT maps it's data translation to C pretty closely, all those localizations need to be mapped to the central station of the linear loading model so that all functions utilize an already cached memory pointer instead of stack memory, or maybe they need to all be on the stack unless local primitive floats in a function get mapped to the heap anyways, I am unsure of this |
17:34 |
|
Guest3456 joined #minetest |
17:36 |
jordan4ibanez |
Pretty extreme edge cases of snake case causing issues like this where when I was re-reading my own code I thought I misspelled "read" but it is re-add https://github.com/oilboi/Crafter-Minetest/blob/b33c96b3f99f8faf8ccf7bc3760f8f1f74a45832/mods/skins/init.lua#L320 |
17:36 |
jordan4ibanez |
An absolute mess |
17:38 |
erlehmann |
oof |
17:39 |
jordan4ibanez |
Another major things is, is it more efficient for the item entity to get the players, or is it more efficient for the players to get the item entities? Should the item entities just be held in their own table where the elements are the pointers to the item with the only gotten data value is the Vector3f of their position to quickly do math without getting the objects? Just too much to think about |
17:40 |
erlehmann |
well good that you mention those |
17:40 |
erlehmann |
you once made a pretty good player magnet |
17:40 |
erlehmann |
that did not have the lag pingpong problem |
17:41 |
erlehmann |
do you have a cleaned up version of it or want to explain what your code does? |
17:41 |
erlehmann |
bc i do not understand it |
17:41 |
jordan4ibanez |
Yes because it utilized move_to but you cannot set the interpolation speed of move_to so it was using the internal delta to interpolate which for some reason does not stay consistent with it's normalization |
17:42 |
erlehmann |
uh |
17:42 |
erlehmann |
i do not understand that |
17:42 |
erlehmann |
what is the normalization in this context? |
17:44 |
jordan4ibanez |
normalization of a direction which is a vector 3 float in this context is taking 2 vectors, subtracting VecX from VecY to get a direction, then normalization takes the points from these, gets the biggest one, gets the dividend from it to make it equal to 1, and then divides the other two values to get a normalized vector direction |
17:44 |
jordan4ibanez |
That is what the regular item drop uses, in this case, this is happening in engine to do the same thing, but client side |
17:48 |
erlehmann |
so what you worked out is how the client side prediction and the server position can match closer ig? |
17:49 |
|
ewwegweg_ joined #minetest |
17:55 |
jordan4ibanez |
Here https://paste.ofcode.org/6ChiVqTKAnUSAatZTfsyEC |
17:55 |
jordan4ibanez |
:O and that's why you do not use tabs instead of spaces |
17:56 |
erlehmann |
thx |
17:57 |
jordan4ibanez |
Oh wait what I explained is an older version of item magnet, this one just avoids shooting out by adding in the player's velocity https://github.com/oilboi/Crafter-Minetest/blob/b33c96b3f99f8faf8ccf7bc3760f8f1f74a45832/mods/itemhandling/init.lua#L289 |
17:59 |
jordan4ibanez |
I think I literally explained why I didn't use move_to, whoops |
18:09 |
|
Jason232 joined #minetest |
18:09 |
erlehmann |
sfan5, by the way, i looked at the deprecation warning for minetest.dynamic_add_media … and i believe ppl did indeed read the warning at one point – but the warning only says you have to give a callback function. there is nothing in the warning about that the function will stop being blocking. only that calling it without a callback is deprecated. |
18:09 |
erlehmann |
but then in the code, the callback is literally called synchronously, so no wonder ppl add an empty callback |
18:10 |
erlehmann |
probably just assumed weird api design |
18:10 |
erlehmann |
i would have done the same |
18:10 |
erlehmann |
(added an empty function) |
18:10 |
erlehmann |
i guess that clears it up then |
18:10 |
|
definitelya joined #minetest |
18:12 |
erlehmann |
jordan4ibanez, can i copypaste that to mineclonia under GPLv3+? |
18:13 |
jordan4ibanez |
Yeah it's MIT you can just change the license |
18:14 |
erlehmann |
those are two different statements |
18:14 |
erlehmann |
conrary to popular opinion, you can not just change the license |
18:14 |
erlehmann |
but add to id |
18:14 |
erlehmann |
it |
18:14 |
erlehmann |
i will do |
18:14 |
erlehmann |
thank you jordan4ibanez |
18:14 |
erlehmann |
that was nice |
18:15 |
jordan4ibanez |
I guess you can just take a screenshot of this statement |
18:15 |
jordan4ibanez |
I expressly give you permission to relicense my code boi |
18:15 |
erlehmann |
ah ok! |
18:15 |
erlehmann |
btw, what is the best version of crafter if i want to try it |
18:15 |
erlehmann |
i saw your exremely dangerous spiders |
18:15 |
erlehmann |
and minecart trains |
18:15 |
erlehmann |
and i still remember them |
18:16 |
jordan4ibanez |
I wasn't allowed to use code licenses to relicense under any license besides BSD but BSD is boring |
18:18 |
MTDiscord |
<Warr1024> Of all the criticisms I've seen of BSD as compared to MIT, this is the first time I've heard "boring" |
18:20 |
jordan4ibanez |
Probably 0.07 but I didn't make any releases for some reason because I have no brain |
18:24 |
jonadab |
My personal favorite is when people claim the BSD license isn't GPL compatible. |
18:32 |
jordan4ibanez |
I wonder how optimized the JIT can truly be with pure function oriented approach |
18:36 |
|
Toothless joined #minetest |
18:45 |
MTDiscord |
<Warr1024> Which BSD license tho |
18:45 |
MTDiscord |
<Warr1024> You're not still talking the ancient 4-clause, are ya? |
18:49 |
|
grouinos joined #minetest |
18:56 |
|
redquasar joined #minetest |
18:57 |
|
syl joined #minetest |
19:05 |
|
dabbill joined #minetest |
19:18 |
|
specing_ joined #minetest |
19:22 |
|
v-rob joined #minetest |
19:52 |
|
nemo42 joined #minetest |
20:13 |
|
jordan4ibanez joined #minetest |
20:16 |
|
Guest3456 joined #minetest |
20:37 |
|
sys4 joined #minetest |
20:46 |
|
Jason232_ joined #minetest |
20:57 |
|
nemo42 joined #minetest |
20:59 |
|
ewwegweg_ left #minetest |
21:11 |
|
Markow joined #minetest |
21:36 |
|
v-rob joined #minetest |
21:52 |
|
Markow joined #minetest |
22:05 |
jordan4ibanez |
What if: Hand can be custom mesh |
22:08 |
sfan5 |
can't it already? |
22:09 |
MTDiscord |
<Jonathon> if i recall correctly no |
22:09 |
MTDiscord |
<Jonathon> as its a item |
22:10 |
MTDiscord |
<Jonathon> it can be a mesh if you use the hand inventory |
22:10 |
MTDiscord |
<Jonathon> and a node def |
22:15 |
sfan5 |
ah yes I remember |
22:15 |
sfan5 |
there was even an issue about ":" being a node breaking existing worlds |
22:15 |
MTDiscord |
<Jonathon> and a pr |
22:46 |
|
v-rob joined #minetest |
23:00 |
|
Sven_vB joined #minetest |
23:32 |
|
Guest345629 joined #minetest |
23:46 |
|
Jason232 joined #minetest |
23:50 |
|
gargamel joined #minetest |