00:05 < bridge> being able to "follow" people directly in the server or share world/map on one virtual host with optional cross-map chat would be amazing 00:05 < bridge> being able to "follow" people directly in the server or have multiple maps on one virtual host with optional cross-map chat would be amazing 00:05 < bridge> MMOTee (I believe) did this probably others 00:56 < bridge> oh like you want the chat to have channels like in WoW 00:56 < bridge> oh like you want the chat to have channels like in WoW and alike 01:06 < bridge> i like t0 so 128 players would be nice 01:13 < bridge> also that means less servers with same map 01:14 < bridge> so probably less money for hosting 02:15 < bridge> std::cout << "woah" << '\n'; 02:16 < bridge> also what is GetWeaponFireDelay used for here 02:16 < bridge> i dont understand it, tested and didnt find 02:16 < bridge> its not used anywhere else and it might be wrong even, because it uses hammer hit delay instead of normal delay 05:23 < bridge> if the load is negligible it might not make a diff 08:46 < bridge> lmao that’s the „how to quit vim“ meme for AI going on in this pr https://github.com/ddnet/ddnet/pull/10238 08:46 < bridge> Bro went full agent mode 09:28 < bridge> Quite strange user. 09:28 < bridge> Such a strange user. 09:29 < bridge> Whose bot is it? 10:28 < bridge> Somehow this function is only used to get the hammer hit delay and not for any other weapons. According to the comments the difference between the variables is whether a tee is hit or not: 10:28 < bridge> ```cpp 10:29 < bridge> MACRO_TUNING_PARAM(HammerFireDelay, hammer_fire_delay, 125, "Delay of hammering (when hitting nothing)") 10:29 < bridge> MACRO_TUNING_PARAM(HammerHitFireDelay, hammer_hit_fire_delay, 320, "Delay of hammering (when hitting another tee)") 10:29 < bridge> ``` 12:09 < bridge> Why suddenly my skin is also my frozen skin after the update? Where do I disable that? 12:13 < bridge> Nightly? 12:14 < bridge> you mean nightly release? 12:14 < bridge> yeah I seem to have nightly yeah 12:14 < bridge> how the hell do I disable that, it's awful 12:14 < bridge> (not nightly but the feature) 12:18 < bridge> You are sure you didn't do `cl_show_ninja 0` ? 12:18 < bridge> I have it set to `1` 12:18 < bridge> Ok 12:18 < bridge> Do you have prediction off or something? 12:18 < bridge> Probably some bug 12:19 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1378316896503599144/image.png?ex=683c2924&is=683ad7a4&hm=6cca4652792620536545c0da593a06bd0d3946f344dc47bd2acb0314a4735bb8& 12:19 < bridge> TiL the animation of `cl_freeze_stars` and the splash effect of kill in /practice arent aligned :angy: 12:20 < bridge> should I make a ticket in the repo or something or it's enough I reported it here? 12:20 < bridge> :catsob: 12:20 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1378317270144782417/asdasd.mp4?ex=683c297d&is=683ad7fd&hm=b859ea2bff68c19b33f96a005e126619c89bebe9a9f56f840caab55512893255& 12:20 < bridge> can you send a screenshot of your tee? 12:20 < bridge> can you send a screenshot of your tee when frozen? 12:20 < bridge> can you send a screenshot of your tee when frozen please? 12:21 < bridge> Enough, I'll check in a second 12:21 < bridge> sent it above already but here you go 12:21 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1378317425740746832/DDNet_wIyLrMIjz8.png?ex=683c29a2&is=683ad822&hm=f7c41210abf177aaeaba9907b90af04473f8a6666845ddf17e1850137a2d5a8d& 12:21 < bridge> oh no I did not send it above, sry 12:21 < bridge> hmm that just looks like `cl_show_ninja 1` ... - i tested it on master and its fine for me 12:21 < bridge> here you go 12:21 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1378317425740746832/DDNet_wIyLrMIjz8.png?ex=683c29a2&is=683ad822&hm=f7c41210abf177aaeaba9907b90af04473f8a6666845ddf17e1850137a2d5a8d& 12:21 < bridge> hmm that just looks like `cl_show_ninja 0` ... - i tested it on master and its fine for me 12:21 < bridge> I am on nightly 12:22 < bridge> nightly is basically master 12:22 < bridge> It's probably the skin prediction we added 12:22 < bridge> nightly is "basically" master 12:22 < bridge> lol, sry, didn't know your workflow guys 12:22 < bridge> xd 12:22 < bridge> lmk if I can help in any way 12:22 < bridge> xD no worries, me dropping weird names here 12:23 < bridge> I am dev myself 😉 12:23 < bridge> We'll ping you if we have trouble reproducing it 😉 12:23 < bridge> kk no worries 12:23 < bridge> `proceeds to ping because i couldnt reproduce` :kek: 12:24 < bridge> what the hell, okay, this does not happen on KoG servers for instance but it happens on Blockwords 12:24 < bridge> weird shit 12:24 < bridge> Oh 12:24 < bridge> 12:24 < bridge> Blockworlds runs on teeworlds source, not DDNet 12:24 < bridge> maybe thats why? 12:26 < bridge> just optimized rendering for quads in my rendering pipeline, 1400 -> 1800 fps (envelopeless) when watching a pixelart :3 12:26 < bridge> just because kebs asked me to "unstatic" something and I am prebuilding it now 12:27 < bridge> what exactly did u optimize 12:28 < bridge> envelopeless quad layers 12:28 < bridge> just fast batching this 12:30 < bridge> grouping quads envs is the biggest potential anyway 12:30 < bridge> But i fear it gets a bit messy, but starting with those without envs might already help yeah 12:31 < bridge> do you determine this at setup time? 12:41 < bridge> how would it be if DDNet made using Unity Engine 12:41 < bridge> ^ overcomplicated 12:41 < bridge> And I am not DDNet dev 12:41 < bridge> And I am not even DDNet dev 12:44 < bridge> yes but only for the simple case, contains or not 12:45 < bridge> i cant reproduce 12:45 < bridge> and since u have ninja sword while in freeze ure probably on custom client 12:45 < bridge> I am no regular DDNet nightly release from steam 12:45 < bridge> it happens only on blockwords server 12:46 < bridge> I am on regular DDNet nightly release from steam 12:50 < bridge> depends on what your goal is. 12:50 < bridge> 12:50 < bridge> it would likely need some workarounds for some stuff. it would run slower. 12:50 < bridge> 12:50 < bridge> on the positive side you'd have easier access to post processing shaders. could probably add some nice light effects 13:06 < bridge> yea, but in that animation function, i dont think it does anything 13:12 < bridge> Hello everyone! I had such a problem: I wrote a new class in riskir.srr put a function to draw the shield there. Everything was compiled perfectly, drove the command into the gsop, made a function in gamecontext.sr to call this class through new CShield:: CShield, etc. Everything was fine. But nothing works. When entering a command by idea, a shield that does nothing should spawn on the cursor. The object is just being drawn. But nothing happens at 13:18 < bridge> ok so blockwords doesnt count them as freeze, but as ninja 13:18 < bridge> and it doesnt predict it for some reason 13:44 < bridge> at this rate we are going to be able to play ddnet on web soonish 13:57 < bridge> you can afaik 14:01 < bridge> i thought there were a few issues ^ 14:01 < bridge> roby has been slowly making and fixing them 14:03 < bridge> how dow clangd know there are no errors if it doesnt compile (compiling a header change taking 60s) 14:03 < bridge> its right most of the time 14:04 < bridge> voodoo witchcraft 14:04 < bridge> also takes all me ram 14:05 < bridge> @gerdoe wheres the timeout msg? 14:14 < bridge> https://tenor.com/view/pipotam-baby-hippo-hippo-wash-shower-gif-3406421565683572068 14:15 < bridge> i mean, teeworlds 0.6 was ported to web by some small indie company (being 1 guy responsible afair) with dedicated servers 14:15 < bridge> do websockets not.. play nice? 14:16 < bridge> can web ddnet not interact with normal srvs? 14:16 < bridge> its kinda pointless if they have to use dif servers 14:40 < bridge> debugging over a remote fs is just refusing to work 14:40 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1378352473013747783/image.png?ex=683c4a46&is=683af8c6&hm=0f951abe958d1de732a048dc0b4571446b0e889e7bf2ea596e3c59b18ed1bfd0& 14:40 < bridge> so ya boi has got x forwarding D: 14:40 < bridge> ive never done this before its so jank 14:46 < bridge> nice segfualt nvm 14:46 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1378353834815918200/image.png?ex=683c4b8a&is=683afa0a&hm=d8e8acf2f2ff3f00293eba0cb984173bc2523fb1cce0c55665d51fd4a58255c6& 14:54 < bridge> seems sdl just segfault with x11 forwarding 15:53 < bridge> please 15:54 < bridge> Haven't found a way to fix networking, so at this point you can only use it as a demo, editor or map viewer (with some more changes). There's supposed to be a way to use POSIX sockets over websockets, but `PROXY_POSIX_SOCKETS` doesn't work with SDL2. Maybe SDL3 will fix Emscripten proxying support. 15:54 < bridge> Are you some kind of AI? 15:54 < bridge> 15:54 < bridge> we code in cpp 15:55 < bridge> ``` 15:55 < bridge> void CShield::Snap(int SnappingClient) 15:55 < bridge> { 15:55 < bridge> if(!Server() || NetworkClipped(SnappingClient)) 15:55 < bridge> return; 15:55 < bridge> 15:55 < bridge> CNetObj_Pickup *pPickup = static_cast(Server()->SnapNewItem(NETOBJTYPE_PICKUP, GetId(), sizeof(CNetObj_Pickup))); 15:55 < bridge> if(!pPickup) 15:55 < bridge> return; 15:55 < bridge> 15:55 < bridge> pPickup->m_X = round_to_int(m_Pos.x); 15:55 < bridge> pPickup->m_Y = round_to_int(m_Pos.y); 15:55 < bridge> pPickup->m_Type = POWERUP_ARMOR; 15:55 < bridge> } 15:55 < bridge> ``` 15:55 < bridge> 15:55 < bridge> Is this the right function for a snap shield at all? | 15:55 < bridge> You can add it where you want 15:55 < bridge> But looks fine to me 15:58 < bridge> Technically servers should be able to support websockets at the same time as existing UDP sockets, but AFAICT neither Windows nor Ubuntu actually support Websockets. On Windows it just crashes and on Ubuntu the websocket creation fails without specific error message. 15:58 < bridge> wdym "support" 15:58 < bridge> arent websockets ontop of tcp sockets? 15:58 < bridge> he means our impl sucks 15:59 < bridge> does the web have any equivilant to udp? 15:59 < bridge> Our UDP socket implementation just wraps UDP IPv4 socket, UDP IPv6 socket and Websocket 15:59 < bridge> No 15:59 < bridge> webrtc 16:00 < bridge> but no raw udp 16:00 < bridge> I couldn't get raw TCP over Websockets to work either though 16:00 < bridge> do you not just get data/size pairs from sockets? 16:00 < bridge> Probably because of missing proxying support 16:01 < bridge> do you not just get data/size pairs from (web)sockets? 16:02 < bridge> https://emscripten.org/docs/porting/networking.html 16:02 < bridge> Despite literally being on the web, networking is the most complicated part 16:03 < bridge> you cant get access to raw sockets for security reasons 16:03 < bridge> is shame 16:03 < bridge> > Currently Emscripten does not provide a C/C++ API for interacting with WebRTC. 16:04 < bridge> i dont see why websockets are any different from udp except the implementation adds resends 16:04 < bridge> Since you had so much trouble with emscripten I feel like web isn't really realistic target for us anyway 16:04 < bridge> Were there any issues left? 16:04 < bridge> "our implementation sucks" is a good reason 16:05 < bridge> It should work for the purposes that it was already used for (with your additional patches): demo player and map viewer 16:06 < bridge> But if it was possible to connect to a local server running on the web that would also be cool to try the game online 16:06 < bridge> any different between 16:06 < bridge> ```cpp 16:06 < bridge> template 16:06 < bridge> constexpr T absolute(T a) 16:06 < bridge> { 16:06 < bridge> return a < T(0) ? -a : a; 16:06 < bridge> } 16:06 < bridge> ``` 16:06 < bridge> and std::abs? 16:06 < bridge> i think we could do group effort at 128 player support 16:06 < bridge> and not emscripten 😄 16:07 < bridge> Probably only legacy, `std::abs` is already used in code as well 16:19 < bridge> me when the regex is not sensative of the case 16:19 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1378377312013254738/image.png?ex=683c6168&is=683b0fe8&hm=3cce513ccb9627608897c8e1a384cdf986946efba587c4fc38342db0f79d5b41& 16:20 < bridge> I think that var should be called MINIMUM_ATLAS_DIMENSION 16:20 < bridge> 😏 16:20 < bridge> hehe free commits 16:21 < bridge> Except it means the maximum _our_ code uses 16:21 < bridge> 😉 16:22 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1378378020578000988/image.png?ex=683c6211&is=683b1091&hm=42e50961b29fa6b9f08d5aa70443c7c260324fd1476e8e2234386de45ddcedd3& 16:22 < bridge> whats this guy doin here? 16:23 < bridge> which code even is that 16:24 < bridge> hash_libtomcrypt 16:24 < bridge> not external 16:29 < bridge> @chillerdragon 16:29 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1378379835323453521/image.png?ex=683c63c1&is=683b1241&hm=e47adb2c2706d578542486a70d8fe0232044c998785baaf993b8fbbe9fdae9bb& 16:29 < bridge> i want automatic dump uploads 18:03 < ws-client> ye 18:41 < bridge> should be opt-in if anything 18:41 < bridge> thats fine 19:07 < ws-client> @fushi_gg why 19:08 < ws-client> either nobody opts in then its useless. Or the opt in has to happen in an annoying popup thats ass. 19:08 < ws-client> it should happen automatically no questions asked 19:09 < bridge> why would it not be opt in, user has problem comes here you tell him to opt in 19:09 < bridge> like you still need to somehow identfy the user with the problem either way 19:10 < ws-client> why 19:10 < ws-client> you dont have identify the user 19:10 < bridge> unless you just wanna comb through a ton of crashlogs 19:10 < ws-client> also i am trying to also cover the users that do not find their way to discord 19:10 < bridge> I can't think of many people wanting to do that besides yourself 19:10 < ws-client> having crashlogs is better than having none 19:11 < ws-client> if not all are red is fine 19:11 < ws-client> most of them should be dupes anyways 19:11 < ws-client> should be managable 19:11 < ws-client> why should it not be doing it automatically @fushi_gg ? 19:11 < bridge> there is no real reason for it to be automatic 19:11 < ws-client> there is 19:11 < ws-client> and that is to get coverafe 19:11 < ws-client> coverage 19:12 < ws-client> as of right now a lot of crash dumps and asserts are missed 19:12 < ws-client> because users do not report them 19:12 < bridge> like already mentioned you would probably the only person going through them 19:12 < ws-client> sounds good 19:12 < ws-client> i am sure all devs are interested in the crash reasons 19:12 < ws-client> many players care about client stability 19:13 < bridge> I have nothing about saving crash logs but sending them is another thing 19:13 < ws-client> saying it should be opt in because i am the only person reading the dumps makes little sense to me 19:13 < ws-client> why is it another thing @fushi_gg 19:13 < ws-client> the saved crash logs are the ones that actually do not get red 19:13 < bridge> saying it should be automatic because you wanna read them makes little sense to me 19:13 < ws-client> that seems to be the thing you are most worried about, that nobody reads it 19:14 < ws-client> if they just fill up users disk space and nothing else happens to them isnt that worse 19:14 < ws-client> @fushi_gg why does it make little sense? 19:14 < ws-client> we miss out crash dumps and assert hits because not all users report them 19:14 < ws-client> this information is quite valuable to improve the client stability 19:15 < ws-client> and interesting to all devs not only to me 19:15 < ws-client> what downside do you see here @fushi_gg ? 19:15 < ws-client> i am not following 19:17 < ws-client> i am seriously intersted in your concerns @fushi_gg but so far the only thing i got from you is that it has to be opt in because nobody wants to read it and it should not be automatic because i want to read it 19:17 < ws-client> did i understand that correctly? 19:17 < bridge> alright so what is the point of it being automatic? 19:17 < ws-client> as i said to get them all 19:17 < bridge> you mentioned client stability and that is it 19:17 < ws-client> ah yes final goal would be to look at them and then fix the bugs to reduce client crashes yes 19:18 < bridge> I could raise user safety as a point for the logs 19:18 < ws-client> can you elaborate? 19:19 < bridge> privacy? wdym 19:19 < ws-client> yes which privacy is at risk? 19:20 < bridge> with laws in the EU like gpdr you have to notify the user anyways if you want to collect any data 19:20 < bridge> not saying it will be but it could be 19:20 < ws-client> its not personal data 19:21 < ws-client> or what is private about it? 19:21 < bridge> then you will have to make sure the crash log can not be used to identify any users 19:21 < ws-client> yes ofc 19:22 < bridge> we could have a button to confirm if they want to send the crash log 19:22 < ws-client> no button! 19:22 < bridge> automatic is probably a no 19:22 < ws-client> NO BUTTON! 19:22 < ws-client> why @kebscs 19:22 < bridge> the majority of users don't run into crashes anyways 19:22 < ws-client> we should never violate the privacy of the users, peroid. A button does not justify violating privacy. 19:22 < ws-client> A button is just annoying for everybody 19:22 < bridge> so why force logs for people that do have issues, if they have they could be pointed towards the opt-in 19:22 < ws-client> and makes the feature less useful 19:23 < ws-client> @fushi_gg why not 19:23 < ws-client> @fushi_gg i told you why 19:23 < bridge> no I am saying it should inform the user anyways if its not private 19:23 < ws-client> @fushi_gg the users i talk about can not be pointed because nobody is in contact with them 19:23 < ws-client> @fushi_gg why should the user care? 19:23 < ws-client> why do you want to bother them with that 19:23 < ws-client> whats the benefit? 19:24 < bridge> if im debugging a crash you probably dont want your logs spammed every time im doing something 19:24 < bridge> automatic is just bad 19:24 < bridge> people could see the option in the client and you could put it on the ddnet website 19:24 < ws-client> in DDEV its off 19:24 < ws-client> only in release builds 19:24 < bridge> there has to be no direct contact to the people 19:24 < ws-client> @fushi_gg the people i talk about do not seek a way to report it 19:24 < bridge> I really don't get chillers point here 19:24 < ws-client> i really dont get your point here 19:24 < bridge> sounds like a them problem 19:25 < ws-client> no its our problem 19:25 < ws-client> because it is a crash in the client 19:25 < ws-client> that could be known to us 19:25 < ws-client> but isnt 19:25 < ws-client> so we will run into it mid race 19:25 < ws-client> that could have been avoided 19:25 < ws-client> or a map is lost because the editor crashed 19:25 < bridge> Of course the system has to detect and group identical crashes 19:25 < ws-client> yea 19:26 < ws-client> @fushi_gg cant we agree on crashes being bad? 19:26 < ws-client> and information on how to fix them being valuable? 19:26 < bridge> idk I haven't crashed 19:26 < ws-client> well thats because we try to fix crashes 19:27 < ws-client> ok so we cant even agree on crashes being bad? 19:27 < bridge> so how do you know about crashes from people that are in contact with no one 19:27 < ws-client> that explains why this conversation is progressing so poorly 19:27 < ws-client> well thats the system i am proposing 19:27 < bridge> how do you know they are crashing and how do you know it's the fault of the client and not their system 19:27 < ws-client> it does not depend on contact or any action what so ever from the users 19:27 < ws-client> it just automatically sends the crash details to ddnet.org 19:27 < ws-client> and then someone can look at it and potentially fix it 19:28 < bridge> Check if a crash dump exists, or check if the client didn't exist normally 19:28 < bridge> Check if a crash dump exists, or check if the client didn't exit normally 19:28 < bridge> if you crash would you seek for a way to make it not crash as a user? 19:28 < ws-client> @fushi_gg it is always the fault of the client if the client crashed 19:28 < ws-client> yes @fushi_gg 19:29 < bridge> https://discord.com/channels/252358080522747904/293493549758939136/1322879589734813696 19:29 < bridge> so why do you assume somebody who is crashing wouldn't do that 19:29 < ws-client> oh because i know 19:29 < ws-client> for a fact 19:29 < ws-client> that not everyone is doing it. Especially if they are not deeply invovled or just dont care. 19:29 < ws-client> Are you saying that every crashing user ends up on discord and uploads their crash dump? 19:30 < bridge> the majority yes 19:30 < ws-client> well i dont have the numbers 19:30 < bridge> if they care enough they will be 19:30 < ws-client> you dont have numbers 19:30 < ws-client> but even if it is not the majority which i highly doubt btw 19:30 < ws-client> we are still missing something 19:30 < ws-client> and it would be even less if it was opt in @fushi_gg 19:31 < ws-client> so what do we gain from the opt in button @fushi_gg ? 19:31 < bridge> I still don't see your point, you want automatic crash logs because of a potential minority that exists 19:31 < bridge> that do not care in the first place 19:31 < ws-client> i would lean that far that i would bet my left eye on that minority to exist 19:31 < bridge> I am not saying they don't 19:32 < ws-client> there a zillion players out there that cant even access discord from china or cant speak a single word of english 19:32 < ws-client> 12yo that run a kirby game and when the client crashes the just turn on the playstation instead 19:32 < bridge> well cool part about a button in the client is that it will be in chinese 19:32 < ws-client> i have the feeling you try to trol me 19:32 < ws-client> lemme try one more time 19:32 < bridge> I wonder about that relationship in the first place tbh 19:32 < ws-client> what benefit does the button give? 19:33 < bridge> user control, less spam on the servers 19:33 < ws-client> why does the user need control 19:33 < ws-client> the servers are not getting spammed 19:33 < ws-client> that really shouldnt be a problem 19:33 < ws-client> as you said you never crashed 19:33 < bridge> average big corpa response 19:33 < ws-client> i am not big corpa dude 19:34 < ws-client> control over what 19:34 < bridge> I know but that is something they would say 19:34 < ws-client> its control over a pointless decision 19:34 < ws-client> thus just annoying 19:34 < ws-client> why would anyone not want that? 19:34 < bridge> what if people do not deem it pointless 19:34 < bridge> just look at #questions 19:34 < bridge> 19:34 < bridge> the fact that we give the user so much control gives us 20 questions about these controls each day 19:34 < ws-client> we also dont have "do you really want to join this server" button 19:35 < bridge> you could spend your time writing a bot instead that automatically answers these 19:35 < ws-client> i am fine with a opt out config if someone needs it for whatever reason 19:35 < bridge> $configdir 19:35 < bridge> ^ like this? 19:35 < ws-client> but forcing a opt in popup onto all users is giga annoying 19:35 < ws-client> hiding in the settings makes the feature uselessly unused 19:35 < bridge> we have that. that doesnt solve crashes 19:35 < ws-client> and your only argument seems to be control for the sake it of it 19:36 < bridge> okay so that user crashing today because of his system 19:36 < bridge> is not gonna benefit from the idea of automatic crash logs 19:36 < bridge> and there is not 20 a day of those 19:36 < ws-client> why doesnt he benefit? 19:36 < ws-client> everyone benefits from a more stable client that can be built with more crash details 19:37 < bridge> what are you gonna do about his issue, deploy a better system to him? 19:37 < ws-client> and every user being prompted with stupid "do you want to send crash logs" prompt will suffer and waste their time on your button 19:37 < ws-client> who? 19:37 < ws-client> idk which case you talk about 19:37 < bridge> oh nyoo have to click one button 19:37 < ws-client> yes its bad 19:37 < ws-client> especially if there is no benefit 19:37 < bridge> it can be a button that is being show during the tutorial 19:37 < ws-client> i also dont have to click a button to use the in game chat 19:38 < bridge> See #9831. This could also include a setting to send crash dumps, but the default should be to send the dumps, just like the default is to send your name to show finishes. Though the crashpad would clearly have to be a separate executable because it's not possible for the client to handle it's own crash in all cases. 19:38 < bridge> https://github.com/ddnet/ddnet/issues/9831 19:38 < ws-client> why a setting @robyt3 19:38 < bridge> See #9831. This could also include a setting to send crash dumps, but the default should be to send the dumps, just like the default is to send your name to show finishes. Though the crashpad would clearly have to be a separate executable because it's not possible for the client to handle its own crash in all cases. 19:38 < bridge> why not? 19:38 < bridge> read the title 19:38 < ws-client> the crash dump should not be privacy concerning 19:38 < bridge> we have user control for those less trivial things already 19:39 < ws-client> well it should be trivial 19:39 < ws-client> just include non personal data 19:39 < bridge> that is just your point of view 19:39 < bridge> It would probably allow fingerprinting 19:39 < ws-client> how so @robyt3 ? 19:39 < bridge> Because it contains a list of all loaded libraries and their versions, which would likely be rather unique 19:39 < ws-client> i see 19:40 < ws-client> then we know that the same people crashed over and over again 19:40 < ws-client> and when 19:40 < ws-client> and which ip they had 19:40 < bridge> not only that you are only considering people who live in a country where it doesn't matter where their data goes 19:40 < ws-client> doesnt sound concering to me 19:40 < bridge> yes to you 19:40 < ws-client> i dont understand how that could be problematic 19:40 < ws-client> but hey even if 19:40 < ws-client> we can limit it 19:40 < ws-client> to only be the asserts 19:40 < ws-client> with no additional data what so ever 19:40 < bridge> that is the entire reason this conversation will have no end 19:40 < ws-client> just to see which asserts get hit 19:40 < bridge> because you only look at it from your point of view 19:41 < ws-client> @fushi_gg i would claim i am quite big on privacy 19:41 < bridge> but you want automatic logs without opt in 19:41 < ws-client> in fact i dislike the fact how much discord stuff is baked into the client 19:41 < ws-client> @fushi_gg well thats the thing i want them in a way that they can not expose any private data 19:41 < ws-client> and that seems easily possible 19:41 < bridge> idk about the discord stuff I don't use the desktop client 19:42 < ws-client> well you use ddnet 19:42 < ws-client> which is a desktop client 19:42 < ws-client> and it runs discord code 19:42 < bridge> why isn't that opt in 19:42 < ws-client> but thats besiders the point 19:42 < ws-client> i am just saying i care about privacy 19:42 < ws-client> i really do 19:43 < bridge> ^ reminder that Chiller is the most wanted man in germany, havent seen him for a good decade - always hiding 19:43 < ws-client> its just that these crash dumps are not violating anyones privacy 19:43 < bridge> I we have different views on the topic as you can see 19:43 < bridge> I like privacy too 19:43 < ws-client> clearly 19:43 < ws-client> but i dont understand your view at all 19:43 < ws-client> what private data are you concerned about? 19:43 < bridge> yes and I don't understand yours 19:43 < bridge> roby literally just brought up fingerprinting for example 19:43 < ws-client> you dont understand what? 19:44 < ws-client> i literally responded to that 19:44 < bridge> now imagine you are in china e.g and you send data to the ddnet server 19:44 < ws-client> 1. who cares 2. if someone cares dont include it 19:44 < bridge> Crash dumps still don't contain any personal data and we can just anonymize this information easily 19:44 < ws-client> @fushi_gg yes i imagine and then 19:44 < ws-client> @robyt3 okay if you say so 19:44 < ws-client> @robyt3 then lets make it assert string only 19:45 < bridge> while they could be used for fingerprinting 19:45 < bridge> 19:45 < bridge> we could just.. not log who sends them to us :kek: 19:45 < ws-client> i would have to have a look at the crash dumps to determine that 19:45 < ws-client> i only know gdb backtraces 19:45 < bridge> I can see why already 19:46 < ws-client> and know that the variables that are in the gdb backtrace can expose some real data 19:46 < ws-client> i just assumed there was a easy way to keep it fully clean 19:46 < bridge> if there was why do you think even UE doesn't have automatic logs 19:47 < bridge> and rather an annoying pop up when you crash 19:47 < bridge> (what is UE) 19:47 < bridge> unreal engine 19:47 < bridge> ah 19:47 < ws-client> @fushi_gg well they probably want to include a bunch of shit there 19:47 < bridge> well we have a similar thing on windows 19:47 < bridge> 19:47 < bridge> if you crash, you get a popup. you could simply add a "send crash log" button there ngl 19:47 < ws-client> we can just keep it minimal 19:47 < ws-client> no @meloƞ 19:47 < bridge> well we have a similar thing on windows 19:47 < bridge> 19:47 < bridge> if you crash, you get a popup. you could simply add a "send crash log" button there ngl (if.. we're able to do that) 19:47 < bridge> that sounds pretty minimal to me 19:48 < bridge> waiting for people to upload stuff, then its also not the right things is annoying D: 19:48 < bridge> I like that chillers arguments are just no and who cares 19:48 < bridge> super fun discussing like that 19:48 < ws-client> ay thats not true 19:48 < ws-client> i just say buttons bad and buttons useless 19:48 < bridge> if lldb is installed you can get the line numbers 19:48 < ws-client> a button does not justify violating privacy 19:49 < ws-client> privacy should never be violated 19:49 < bridge> we already have buttons for other privacy concerning stuff 19:49 < bridge> atleast on linux that is useful, since a few might have it installed, and debug info is attacthed to releases 19:49 < ws-client> and buttons/popups are always annoying 19:49 < bridge> whats one more button 19:49 < bridge> you could even group them up 19:49 < ws-client> please no 19:49 < ws-client> thats horrible 19:49 < bridge> you haven't seen that popup in ages chiller 19:49 < bridge> because it is in the tutorial 19:49 < bridge> we would need even more so to catch segfaults and fpes if we want a crash popup 19:50 < bridge> Releases don't have debug info, you need to download the symbols for the specific git revision separately from https://ddnet.org/downloads/symbols/ 19:50 < bridge> oh.. 19:50 < bridge> thats wack 19:50 < bridge> i thought they did 19:50 < bridge> well that was a compromise I was willing to accept, my original was opt-in 19:51 < bridge> Well, otherwise releases would be much largers 19:51 < bridge> true 19:51 < bridge> its just that the debuginfo even if its out there its not easily accessable and applybale 19:51 < bridge> would definitely need some kind of external script. the assert behavior you see is handled by SDL and ddnet’s state is already done for by the time you see that 19:51 < bridge> i gues thats the job for a jank python script (find the debug info and use it) 19:51 < bridge> it’s also not windows specific 19:52 < bridge> RelWithDebInfo 19:52 < bridge> catching segfaults isnt... bad, unless the bits of the program are rendered dead by the segfault, but normally segfaults dont cause memory obliteration 19:52 < bridge> As I said, the crashpad needs to be a separate executable, i.e. a transparent launcher, otherwise it's impossible to detect `__fastfail` crashes 19:53 < bridge> how does the footprint compare to a normal release or debug build i wonder 19:53 < bridge> cant ddnet just dump the stack trace even if with just addresses 19:53 < ws-client> @robyt3 what do you think about uploading old crash dumps from disk on client boot? 19:53 < bridge> no 19:53 < bridge> Not all crashes invoke the crash handler 19:53 < bridge> and you cant catch __fastfail 19:53 < bridge> since you cant catch __fastfail 19:53 < bridge> crash handling you see in other apps is almost always done by a watchdog process or the like 19:54 < bridge> you can have crashes that happen outside of userland and then ddnet will shit the bed with no understanding as to why 19:54 < bridge> Possible but I think a separate launcher for crashpad and updating would be cleaner 19:54 < bridge> uhh 19:54 < bridge> many more scenario 19:54 < bridge> Indeed, especially the weird graphics driver crashes 19:54 < bridge> how? 19:54 < bridge> memory corruption is common 19:54 < bridge> or drivers 19:54 < bridge> `device lost` my beloved. 19:55 < bridge> yeah but that is known to ddnet 19:55 < bridge> yeah but that is caught by ddnet 19:55 < bridge> that is caught by ddnet 19:55 < bridge> which 19:55 < bridge> "device lost" is already caught by ddnet 19:55 < bridge> a driver working as intended by gating behavior isn't the same as a driver misbehaving and causing a crash 19:55 < bridge> That's not even a crash though, at least something detects that the driver or device is not working correctly 19:56 < bridge> fair 19:56 < bridge> a program cant just stop for no reason 19:56 < bridge> it can 19:56 < bridge> lol 19:56 < bridge> theres always a signal or something 19:57 < bridge> ive been under the assumption that atleast on linux, everything can be caught 19:57 < bridge> the signal doesn't always mean anything + the assumption that you can detect and act on it isn't always true 19:57 < bridge> most ddnetters aren't on linux 19:57 < bridge> See https://learn.microsoft.com/en-us/cpp/intrinsics/fastfail?view=msvc-170 19:57 < bridge> by the time you get messages more often than not your stack is already Fucked 19:57 < bridge> if you never go up the stack that sfine 19:58 < bridge> something has to call __fastfail though? 19:59 < bridge> Yeah, some AMD driver 19:59 < bridge> grr 19:59 < bridge> 😭 watchdog it is 20:00 < bridge> guysss my ddnet crasheddddd 20:00 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1378432860146372763/2025-05-31_19-59-08.mp4?ex=683c9523&is=683b43a3&hm=572f4b1fdad0ef8e67853d41a84ca3561a194c9946dc76dab5b37a7bf7993553& 20:00 < bridge> i think we just deal with it ngl 20:00 < bridge> shouldn't steam have behavior for this? 20:00 < bridge> dont want to rely on steam 20:01 < bridge> how.. easily cross platform is it to get stack traces of other processes 20:01 < bridge> a watchdog is clutter for an open source app like ddnet 20:01 < bridge> but is required since __fastfail cant be cought 20:01 < bridge> linux and windows should be fairly easy 20:01 < bridge> 20:01 < bridge> macos.. not so much 20:01 < bridge> but is required since __fastfail cant be caught, and apparently^tm^ angry amd driver throws it 20:01 < bridge> macos has really good diagnostics as is 20:02 < bridge> this behavior is not required in the base version of the game IMO. if there should be crash log submission handling, i think it makes sense to do it via. steam because you'll get a good portion of the total % of crashes and it's not adding extra stuff to the repo which doesn't really work in a unified way 20:03 < bridge> It's not impossible without, but a separate launcher would be a lot cleaner. For example, when client starts launching you write a file "iamlaunching" and after initializing the graphics you delete the file. If you launch the client and the file already exists then it was terminated abnormally the last time. 20:03 < bridge> that determines if the last exit was clean, but doesnt give any info on what happened 20:04 < bridge> that determines if the last exit had a clean launch, but doesnt give any info on what happened 20:04 < bridge> i guess steam doesn't have anything like what i'm describing rn 20:04 < bridge> 20:04 < bridge> exception-oriented, lol 20:05 < bridge> doesnt catch __fastfail presummably 20:05 < bridge> something like that is what i want 20:06 < bridge> something like that is what i want(ed) 20:06 < bridge> Last updated for Windows 8 :justatest: 20:06 < bridge> i just googled 20:07 < bridge> solly how do you expect to catch this without external observation of some sort 20:07 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1378434657850495118/image.png?ex=683c96d0&is=683b4550&hm=04ddf48f08d465b93de75a8b9407d89fd30422b856ffc5587680372f7b361789& 20:07 < bridge> probably just a state file or something in temp dir 20:07 < bridge> would do just fine 20:07 < bridge> ddnet would need to be adjusted to make it observable in this instance 20:07 < bridge> an external program would have to attatch a debugger to get a dump from taht 20:07 < bridge> Yeah, either write a file with the current state or have an external observer, maybe even connected using a pipe 20:08 < bridge> an external program would have to attatch a debugger to get a dump from taht 20:08 < bridge> unless windows has already got a dumper 20:08 < bridge> i could gather some intel on how to do this on windows 20:08 < bridge> wacup crash reporter works almost all the time and does automatic minidump submission via email 20:08 < bridge> i can ask the dev for tips if we're serious 20:08 < bridge> but ddnet would need to be compatible with such a thing 20:10 < bridge> an external program would have to attatch a debugger to get a dump from taht 20:10 < bridge> unless windows has already got a dumper 20:10 < bridge> would still need an external program to send it 20:10 < bridge> We already produce crash dumps on Windows with https://github.com/jrfonseca/drmingw for catchable exceptional crashes. Would mostly need the wrapper to check for dumps, determine if it's a reportable crash, strip info and send. 20:11 < bridge> YAAAAooo 🤩 WHAts up ddnet developer community !!!!!!! 😎 😎 🙂 just know that Today you guys are Rockstars !!!!!!!! 🤑 🤑 😤 keep up the grind and stay winning👏 👏 🤛 20:11 < bridge> true 20:11 < bridge> For most failfast we can't really solve these anyway, but the crashpad should automatically attempt or suggest switching graphics settings in this case 20:12 < bridge> For most fastfail we can't really solve these anyway, but the crashpad should automatically attempt or suggest switching graphics settings in this case 20:13 < bridge> this would be a good candidate since it has virtually no extra runtime requirements 20:13 < bridge> for writing the little wrapper 20:13 < bridge> OK Team I think we should touch base on a couple Key Projects this morning, ive organized an Agenda at the present but if there are any blockers on any of your current tasks feel free to jump right in here 20:13 < bridge> gorp what they got u on 20:14 < bridge> hype man-ager 20:14 < bridge> if you could, please hold questions until the end, on a tight schedule to day and I have another meeting after this one 20:15 < bridge> rule #6: no roleplay in #developer 20:15 < bridge> WHAT 20:15 < bridge> idk 20:16 < bridge> actually..... rule number is 6 is about drama only.... duhh 🤓 20:16 < bridge> i have never read those rules through 20:16 < bridge> same and I'm a mod I guess 20:17 < bridge> @gorp_tw go back to #moderator giving people a hard time concentrating when you flirt with Ali. 20:17 < bridge> mod chat sounds crazy 20:17 < bridge> I LITERALLY NEVER START IT 20:17 < bridge> Hey guys look 20:17 < bridge> Hellou :3 20:17 < bridge> i have a channel 20:17 < bridge> ITS ALWAYS HER FAULT 20:17 < bridge> # no access 20:17 < bridge> how cool 20:17 < bridge> LOOK 20:17 < bridge> okay enough ragebaiting here - good luck! 20:18 < bridge> omg I have been ragebaited grr GRAAAH ARGGG I'm so angry! 20:18 < bridge> https://cdn.discordapp.com/attachments/920709476724649984/1304513285013508137/togif-10.gif 20:19 < bridge> we're never gonna get crash reporting at this rate 20:20 < bridge> too much blah reporting not ebenough accounting 20:21 < bridge> crash reporting sounds cool but won't work for dis game 20:21 < bridge> you can't be this fucked up at... 11 am? 20:22 < bridge> I'm not fucked up I'm trying to not be insufferable 20:22 < bridge> but yeah telemetry big no no 20:22 < bridge> you could streamline the crash report process ig 20:22 < bridge> dumps don't typically contain any real PII 20:23 < bridge> opt-in anonymous reporting is super common 20:23 < bridge> there's really no way to guarantee that 20:23 < bridge> or decide for users what they do or dont care about 20:23 < bridge> huh 20:23 < bridge> the game will crash and it'll prompt them "do you want to submit crash log" 20:23 < bridge> that's not deciding for them 20:23 < bridge> it's asking quite literally 20:23 < bridge> it would be better if it was open file location or copy to clipboard etc 20:24 < bridge> and a place to put it, link button 20:24 < bridge> speaking of literally 20:24 < bridge> i saw this lately 20:24 < bridge> i love the evolution of language 20:24 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1378438984103104552/image.png?ex=683c9ad7&is=683b4957&hm=cf6a47ba4fe280e306d7bc1357a33ebd948ade5edbd91f8b4a90b964e1d0e0aa& 20:24 < bridge> it sucks that we literally do not have another word like literally to represent the idea of something happening in a literal way 20:24 < bridge> now it means nothing 20:24 < bridge> just a butter word 20:25 < bridge> witewawwy 20:33 < bridge> witerwahwee 20:34 < bridge> eventually a common alternative will exist, many probably already do, and eventually we will use that to high hell 20:34 < bridge> same thing happens to toilet 20:35 < bridge> sk 22:02 < bridge> SK??? 22:02 < bridge> I wanna play town of salem 23:00 < bridge> you have to learn how to talk right, its scary 23:00 < bridge> i did it once, but the way you talk has changed 23:00 < bridge> so i suck again x-x 23:01 < bridge> oh what 23:01 < bridge> you mean people nitpicking comms? 23:01 < bridge> that's super cringe 23:02 < bridge> i know most acronyms but i like fucking around with classic where ppl dont know what that stuff means 23:02 < bridge> doesnt mean they're autoham 23:02 < bridge> forum mafia way better though, shit was mad draining though 23:02 < bridge> consumed my life for like 2 months 23:03 < bridge> even unranked requires you to "talk right" 23:03 < bridge> wowzers 23:04 < bridge> town of salem is the least tryhard of the social deduction games 23:04 < bridge> atlkeast i noticed straight away that... stuff had changed, and i had no clue what was going on 23:04 < bridge> they needa chill 23:09 < bridge> lol town of salem is not sweaty like dat 23:09 < bridge> at least not my experience in unraked 23:10 < bridge> ppl would br generally goofy, maybe its changed since 23:10 < bridge> yuh i remember epicmafia was crazy sweaty 23:31 < bridge> yeppers 23:31 < bridge> forum mafia is the worst though i felt like we were literally psychologically dismantling each other 23:31 < bridge> i was reading the thread for like 8 hours a day or more