00:04 < bridge_> @chillerdragon ihttps://learn.microsoft.com/en-us/cpp/dotnet/for-each-in?view=msvc-170 00:04 < bridge_> hmm 00:05 < ws-client1> **** watfak 00:05 < ws-client1> **** whats a `ref` 00:05 < ws-client1> **** and a `String^` 00:05 < ws-client1> **** wtf 00:08 < bridge_> c#? 00:12 < ws-client1> **** it says C++ in the ms docs 00:13 < ws-client1> **** @patiga i tried to do tactical skip through freeze on to boat and got really confused when my avoid freeze hack wouldnt let me get frozen and i had too much speed xd 00:13 < ws-client1> **** https://tube.zillyhuhn.com/video.php?t=failed_to_get_frozen_smh.mp4&u=chiller 00:14 < ws-client1> **** i compiled tclient just for that clip xd 00:14 < ws-client1> **** the draw feature is kinda neat 00:15 < bridge_> c# 00:16 < bridge_> screenshot has using var, definetly c$ 00:16 < bridge_> screenshot has using var, definetly c# 00:17 < bridge_> .NET stuff is really life saver 00:18 < bridge_> If you found something seems to not able to work on c#, Nuget it 00:19 < bridge_> looks like java to me 00:19 < bridge_> Yes it's do 00:20 < bridge_> C# is pretty much as same as java in the early state 00:20 < bridge_> oh yeah looks very similar 00:20 < bridge_> var true 00:21 < bridge_> but with a better coding experience 00:21 < bridge_> you can really feel like your brain works smoother coding on c# 00:21 < bridge_> they just setup almost everything 00:23 < bridge_> as I know, the performance in the front end of C# isn't so good, but it can be pretty fast in the back-end (but all in all, it's not system programming language, so it can't compete with c++ or c) 00:24 < bridge_> it really depends on the C# you write 00:24 < bridge_> it can be nearly or about as fast as managed C++ depending on what you're doing 00:25 < bridge_> there's dotnet AOT which lets you precompile it and eliminate a lot of the IL bytecode overhead 00:25 < bridge_> this is all on windows, mono is not as good 00:25 < bridge_> but aot still works for other platforms 00:25 < bridge_> I remember I've seen a test of the performance of c# very long time ago, but I can't remember its detail 00:29 < bridge_> I start my computer programming experience from C#, at the very beginning, I was trying to kick the door with python, but I felt like I don't know what I'm coding and what I'm expecting because the python I've learned that stage isn't strongly typed, so I tried C#, and I instantly feel "this language knows me" 00:31 < bridge_> But because of this, now when I facing languages like javascript, I just feel half of my brain shuts down (exaggerated speaking) because I have no idea what the code is processing about 01:32 < bridge_> c# is nice 01:32 < bridge_> almost too nice to the point its boring 😹 01:50 < bridge_> I like c# because the packages are made by serious people, not like Javascript framework #43 that was minted a month ago. 06:43 < bridge_> rust 06:43 < bridge_> ur outdated, nobody uses mono 07:29 < bridge_> hmm? 08:01 < bridge_> modern .net runs on linux 08:01 < bridge_> i have net sdk 9 08:02 < bridge_> dotnet 08:02 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421376440863031356/image.png?ex=68d8cf77&is=68d77df7&hm=7eec504e0c16322cd913cf7ce4d7caec709670132704755ead2998e46cbb7fd2& 08:02 < bridge_> mono is only for rly legacy apps now old 08:02 < bridge_> i think older than net 6 08:03 < bridge_> today i fixed a bug in my kernel 08:03 < bridge_> i had a simple bool for high priority threads 08:03 < bridge_> i was adding to many threads to the run queue with priority, which just means push front 08:03 < bridge_> so i starved some threads from runtime 08:03 < bridge_> such a dumb issue but it cost me hours 08:19 < bridge_> I was quite suprised that I replaced SDL2 with SDL3 in Teeworlds and FPS is even lower than work on SDL2 08:19 < bridge_> :thonk: 08:50 < bridge_> did you actually replace it? you can help ddnet with migration i guess 08:57 < bridge_> Yeah, and the client has released. 08:57 < bridge_> https://github.com/Bamcane/teeworlds-carbon/ 08:57 < bridge_> But I don't know why the rendering performance is poorer than vanilla. 08:58 < bridge_> Yeah, and the client has released. 08:58 < bridge_> https://github.com/NewTeeworldsCN/teeworlds-carbon/ 08:58 < bridge_> But I don't know why the rendering performance is poorer than vanilla. 08:58 < bridge_> Yeah, and the client has released. 08:58 < bridge_> https://github.com/NewTeeworldsCN/teeworlds-carbon/ 08:58 < bridge_> But I don't know why the rendering performance is poorer than vanilla. 09:14 < bridge_> thats... a lot of changes, i can't even find commit responsible for sdl upgrade 09:19 < bridge_> Hm... 09:21 < bridge_> It seems I combined it with other client modifications into one commit. 09:31 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421398706426744893/image.png?ex=68d8e433&is=68d792b3&hm=e32f7d06348b082512b59b99ce0b2f1d413d91e7ece31b828c97e3f22845ff76& 09:31 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421398706858627072/image.png?ex=68d8e434&is=68d792b4&hm=bccad0e11422cc644939ce16e002f3152f166df0d7946e3009491b127948cae4& 09:31 < bridge_> pog, i have procfs 09:31 < bridge_> i need to actually remove dying threads 09:32 < bridge_> chiller 09:33 < bridge_> is there any wireshark tutorial? 09:55 < bridge_> @jupeyy_keks: what do you need to know? What are you working on? 09:57 < bridge_> i simply want to compare the connecting step of ddnet with ddnet-rs (or libtw generally) 09:58 < bridge_> I want to understand what they do differently.. If at all 10:01 < bridge_> That seems simple enough to be done without wireshark knowledge 10:01 < bridge_> You have heino dissector installed? 10:01 < bridge_> no 10:01 < bridge_> Okay do that first 10:01 < bridge_> Very important 10:02 < bridge_> ok let me search internet for heino dissector 10:02 < bridge_> https://chillerdragon.github.io/teeworlds-protocol/index.html 10:02 < bridge_> I got this xd 10:02 < bridge_> libtw2 10:02 < bridge_> It’s linked there 10:02 < bridge_> wireshark dissector 10:02 < bridge_> oge 10:03 < bridge_> https://github.com/heinrich5991/libtw2/tree/master/wireshark-dissector 10:03 < bridge_> Build that and move it to plugin dir 10:03 < bridge_> Which wireshark version are you on? 10:04 < bridge_> how can i trust this tool if libtw might be the reason for different connecting phase? 10:04 < bridge_> Yes it’s trusty 10:04 < bridge_> It just decodes packets, doesn’t change anything 10:05 < bridge_> I think josspit might also not trust its decoding xd 10:05 < bridge_> If there is something ddnet does that libtw somehow doesn’t even recognize, it’ll stay as an undecoded packet 10:05 < bridge_> But I triple checked it 10:06 < bridge_> @jupeyy_keks: u have a ddnet-rs pcap for me? 10:06 < bridge_> Or how do I get one that doesn’t work? 10:07 < bridge_> plugin aint working :c 10:07 < bridge_> oke 10:07 < bridge_> what is that 10:08 < bridge_> ah wireshjark capture? 10:08 < bridge_> i dont have any 10:11 < ws-client1> **** ok 10:11 < ws-client1> **** how do i get one? 10:11 < ws-client1> **** how do i make it not work 10:11 < ws-client1> **** i will send you some debugging time now because i love u 10:12 < bridge_> i dunno. start ddnet-rs, connect to any ger ddnet server 10:12 < ws-client1> **** ok 10:12 < ws-client1> **** lemme try to launch the rust rocket 10:12 < bridge_> i can also do that 10:12 < ws-client1> **** `cargo run` was it rite? 10:13 < ws-client1> **** do you want me to help you get the plugin to work? or should i just have a look? 10:13 < ws-client1> **** the pluggin needs some version fiddeling potentially 10:14 < ws-client1> **** not being able to double click to join a server drives me crazy xd 10:14 < bridge_> i just unsafely copied the plugin into my usr/lib dir and then it worked 10:14 < ws-client1> **** pr 10:14 < ws-client1> **** o 10:14 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421409681305501858/image.png?ex=68d8ee6c&is=68d79cec&hm=ddc253ae654b9a8683c7b26cfe051160bd3bf298389e2382f9346b3ea8fd4cd3& 10:14 < bridge_> Now simply compare to ddnet? 10:14 < ws-client1> **** yes 10:14 < ws-client1> **** https://zillyhuhn.com/cs/.0a34556f-7a2d-448e-a9a9-6240ed2a55ec.png 10:15 < ws-client1> **** why is it 127.0.0.1 10:15 < ws-client1> **** oh wow 10:15 < ws-client1> **** cant screenshot ddnet-rs? 10:15 < bridge_> it uses a proxy 10:15 < bridge_> so it connects to proxy and the ui doesnt support that yet 10:15 < ws-client1> **** nvm i cant screenshot in general anymore 10:15 < bridge_> showing the proxy addr 10:15 < ws-client1> **** i regret updating my system again 10:16 < ws-client1> **** i get these annoying notifications every time i tab out of ddnet and now screenshots broke too 10:16 < ws-client1> **** wtf gnome 10:16 < bridge_> ok, ddnet simply sends ctrl.connect twice 10:16 < bridge_> but i do that too later 10:16 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421410199276752958/image.png?ex=68d8eee8&is=68d79d68&hm=36e254424562cb48d3c1a3010d992b8f03971bfc2bee0ceb00f8b514b7a32f66& 10:16 < ws-client1> **** i doubt ddnet sends it twice intentionally 10:16 < bridge_> that mf server simply ignores me 10:16 < ws-client1> **** its probably just a resend or something like that 10:17 < bridge_> but there is no resend answer in my wireshark thing 10:17 < bridge_> What i could imagine is that it's about sending a request to the master server 10:18 < bridge_> which i do too, but not with curl, but with reqwest 10:18 < ws-client1> **** doubt davide can catch these 10:18 < bridge_> I think he can 10:18 < bridge_> that was the idea of not having a TCP server 10:18 < bridge_> TCP connection* 10:18 < ws-client1> **** maybe we shouldnt reverse engineer ddos protection in public 10:18 < ws-client1> **** xd 10:18 < ws-client1> **** and rather dm @davide55 10:18 < bridge_> i dont want to annoy other ppl with my project 10:18 < ws-client1> **** he chill dude 10:19 < bridge_> i send two connects now, lets see 10:20 < ws-client1> **** i even receive map chunks 10:20 < ws-client1> **** u dont? 10:20 < ws-client1> **** there is no progress bar so i cant tell if the map download is just slow or broken 10:21 < bridge_> ah yeah that is also broken 10:21 < ws-client1> **** map downloads? 10:21 < bridge_> i think libtw is buggy 10:22 < ws-client1> **** well then the connecting works 10:22 < ws-client1> **** i just get stuck in download 10:22 < bridge_> yeah at some point it just stops replying to map chunk requests 10:22 < bridge_> yes 10:22 < ws-client1> **** ddnet ger3 10:22 < ws-client1> **** ez working 10:22 < bridge_> but the download requests are vital, but i never get their response 10:22 < bridge_> it's luck based 10:25 < bridge_> now it kinda works i guess 10:25 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421412466021367837/image.png?ex=68d8f104&is=68d79f84&hm=fa64fbad1c2b4b25c533e43114bbefdd932b9b7f8f2a0ffa4b81aa30b8bc9adb& 10:25 < bridge_> just spam connect packages 10:25 < ws-client1> **** dont spam them 10:26 < ws-client1> **** there is logic to it 10:28 < ws-client1> **** send it every 500ms 10:28 < bridge_> but sending twice does the job 10:28 < bridge_> just that libtw is not in some invalid state 10:28 < bridge_> but i'd call that progress 10:28 < ws-client1> **** https://github.com/ddnet/ddnet/blob/174340a8c49c91a68dbd8b9a5efd6ea98c0df748/src/engine/shared/network_conn.cpp#L576-L580 10:29 < bridge_> bro idc about these 8 bytes extra send to all servers 10:29 < bridge_> that's not a ddos 10:29 < ws-client1> **** but u only send twice now? 10:29 < bridge_> yes 10:30 < ws-client1> **** u need to send it more often i guess if you want to be as reliable as the c++ client 10:30 < ws-client1> **** ctrl is not vital 10:30 < ws-client1> **** so if it gets hiccupped you stuck in connection screen 10:30 < ws-client1> **** twice is a magic number that just might work on your current setup 10:30 < bridge_> yeah but i cant 10:30 < bridge_> that's libtws job 10:31 < ws-client1> **** oh i see 10:31 < bridge_> I have no access to these packets 10:31 < ws-client1> **** i didnt know it also handles state 10:31 < ws-client1> **** @heinrich5991 pls fix 10:32 < ws-client1> **** how do you send it twice then? 10:32 < bridge_> simply call connect twice, but that doesnt work 10:32 < bridge_> it breaks smth in libtw xd 10:32 < bridge_> so i patch it now 10:32 < bridge_> to simply send it twice 10:32 < ws-client1> **** xd 10:32 < ws-client1> **** u use custom libtw2 now? 10:34 < bridge_> i do anyway 10:34 < bridge_> https://github.com/heinrich5991/libtw2/issues/122 10:35 < bridge_> I had to add backward compatbility to libtw2 10:35 < bridge_> 😬 10:35 < ws-client1> **** open new issue for connect resend 10:35 < bridge_> i dont want heinrich to waste time for my project 10:37 < ws-client1> **** wait 10:37 < ws-client1> **** i think heino does it 10:37 < bridge_> if he does, then it doesnt work 10:37 < ws-client1> **** my rust so bad 10:37 < ws-client1> **** https://github.com/heinrich5991/libtw2/blob/a31611e8c4ba5a521ebf8da2abe2f36380d17a56/net/src/connection.rs#L657-L673 10:37 < bridge_> bcs i patched libtw2 now and it works now 10:37 < ws-client1> **** but this looks promising 10:38 < bridge_> https://github.com/Jupeyy/libtw2/commit/0b6b1b7533dc00c48483dca51eedf04656efb66d 10:38 < ws-client1> **** wait wat xd 10:38 < bridge_> yes 10:38 < bridge_> that fixes it 10:38 < ws-client1> **** isnt tick_action called on tick? 10:39 < bridge_> i dunno wtf even a tick is in network code 10:39 < ws-client1> **** and it checks if in state connectiong then it sets `control` to connect packet 10:39 < ws-client1> **** and the it sends it on tick every 500 milli seconds 10:39 < ws-client1> **** you now send it twice every 500ms? 10:39 < bridge_> https://tenor.com/view/pipotam-baby-hippo-hippo-wash-shower-gif-3406421565683572068 10:39 < bridge_> I call ticks apparently 10:40 < ws-client1> **** what does `self.send.set(cb, Duration::from_millis(500));` even do 10:40 < bridge_> ```rs 10:40 < bridge_> pub fn run_once(&mut self, mut on_event: impl FnMut(&mut Self, ChunkOrEvent<'_, SocketAddr>)) { 10:40 < bridge_> self.net 10:40 < bridge_> .tick(&mut self.socket) 10:40 < bridge_> .for_each(|e| panic!("{e:?}")); 10:40 < bridge_> 10:40 < bridge_> while let Ok(res) = self.socket.try_recv() { 10:40 < bridge_> self.run_recv(res, &mut on_event); 10:40 < bridge_> } 10:40 < bridge_> } 10:40 < bridge_> ``` 10:40 < bridge_> I dunno 10:40 < bridge_> I dont want to read libtw2, not bcs i dont like it. 10:40 < bridge_> 10:40 < bridge_> but bcs i dont want to learn about old network 10:40 < bridge_> did you know i use async socket with libtw2 xdd 10:41 < ws-client1> **** whatever that is 10:41 < bridge_> https://github.com/ddnet/ddnet-rs/blob/2b8545cb52c75088405c58bfa4d9c03736299bb8/game/legacy-proxy/src/socket.rs 10:41 < ws-client1> **** i should really try to use libtw2 once to better understand it 10:42 < ws-client1> **** @Jupstar ✪ wdym heino waste time 10:42 < ws-client1> **** if libtw2 is bugged it should be fixed 10:42 < ws-client1> **** im sure he will use it for accounts 10:42 < bridge_> with async sockets i can basically easily wait on multiple async code.. even non-network code 10:43 < bridge_> that way i can have the legacy proxy run without any kind of perma run loop 10:43 < bridge_> I am really confused by Rust code. 10:43 < bridge_> wait until either proxy socket or new network get any packet 10:43 < bridge_> :thonk: 10:43 < bridge_> otherwise do nothing 10:43 < bridge_> i dunno if it's bugged 10:43 < bridge_> it's not high level code 10:43 < bridge_> he'll show me some weird hack to make it work 10:45 < ws-client1> **** heinrich the hacker? 10:45 < bridge_> well it's the same with the map download 10:45 < bridge_> it simply does not return packages sometimes 10:45 < bridge_> i dunno why 10:45 < bridge_> if you want to debug, go ahead xd 10:46 < bridge_> sometimes changing maps also doesnt work, it says smth about couldn't decode packet, maybe the unpacker is not reset properly or smth 10:46 < bridge_> the whole tw network code is just overengineered and over complicated 11:19 < bridge_> new hook lines incoming 🎉 11:44 < ChillerDragon> I KNOW WHY MY ENTIRE SYSTEM IS FUCKED AAA 11:44 < ChillerDragon> update switched me to wayland watafak 11:45 < ChillerDragon> the root of all evil 12:08 < bridge_> true story.. they simply cannot accept that, just because they had a good idea. their software still sucks ass 12:08 < bridge_> so much not ready for production 12:09 < bridge_> Is this a trend or has it always been happening? 12:09 < bridge_> they fix some minor things every year 12:09 < bridge_> and i wait since 20 years that it is usable 12:10 < bridge_> where people like to architect software that's in theory better than the current standard 12:10 < bridge_> but it never gets there because it's too ambitious 12:10 < bridge_> i guess we are simply missing labour 12:10 < bridge_> ddnet-rs is also cooler than ddnet but sucks 😬 12:11 < bridge_> I feel like Rust in general is almost a part of this trend 12:11 < bridge_> no 12:11 < bridge_> Not the language but many of the applications 12:11 < bridge_> i honestly have the feeling using rust libs you get higher quality software than the c counter part 12:11 < bridge_> i dunno rust is used a lot in microservices already 12:11 < bridge_> Old software is sufficiently dumb 12:11 < bridge_> so that is where it's very stable 12:11 < bridge_> if you mean like gui.. yes 12:11 < bridge_> it sucks 12:13 < bridge_> and microservices are one of those things that solve a problem while creating ten more 12:13 < bridge_> :greenthing: 12:14 < bridge_> how so 12:14 < bridge_> I guess we do have new software that is good... So I may be experiencing survivorship bias 12:14 < bridge_> too fancy 12:14 < bridge_> i dont think it has to do with fancy 12:15 < bridge_> it's more about not using some ugly ass apache with php anymore 12:15 < bridge_> writing software to solve exactly one problem makes it easy to write tests for it etc. 12:15 < bridge_> but yeah you can overuse microservices, no doubt about that 12:16 < bridge_> ddnet example: 12:17 < bridge_> i think an assets server would be good addition 12:17 < bridge_> it can handle assets upload, download, download with hashes, deliver an index 12:17 < bridge_> not more, not less 12:17 < bridge_> I talk about traditional software as if it's so great but like our core utils are GNU and those codebases are terrifying 12:17 < bridge_> possible yeah xD 12:18 < bridge_> but honstly they use c 12:18 < bridge_> that is scary alone 12:18 < bridge_> Yet somehow they keep being one of the fastest around despite the complexity 12:19 < bridge_> The scarier part is the three other languages you've never heard of 12:19 < bridge_> yeah but there again, devs 20 years ago were not bad, they just reinvented the wheel for everything and used ass tools like autoconfig 12:19 < bridge_> and then you get code bases like this 12:24 < bridge_> DSLs are based but the problem with them is that there are a lot of domains 12:30 < bridge_> oh damn 12:30 < bridge_> i thought that would tkae longer 12:30 < bridge_> epic 12:34 < bridge_> you are partly right, all linux core utils are gettin rewritten in rust due to memory safety 12:36 < bridge_> but this opens, of course, another can of worms, and rust doesn't prevent you from doing logic mistakes 12:36 < bridge_> the only thing rust does to prevent this is making writing tests very easy 12:36 < bridge_> it motivates you to do the boring part 12:37 < bridge_> you can just slam it right under your code in the same file 12:38 < bridge_> Reimplementations or replacements? 12:38 < bridge_> I'm not a fan of nonstandard tools 12:39 < bridge_> same interface ig 12:39 < bridge_> otherwise it would be kinda useless 12:39 < bridge_> Then I can get on board 12:39 < bridge_> https://github.com/uutils/coreutils 12:41 < ChillerDragon> we should rewrite all software in lua 12:41 < bridge_> The chart at the bottom is really interesting, so you can assume it will get ready in the next 1-2 years 12:41 < bridge_> yeah, let's add a lua interpreter to the client, like n-client did 🥳 12:43 < bridge_> idk 80-20 rule probably applies 12:43 < bridge_> so by that logic, in 10 years 😄 12:43 < bridge_> so by that logic, in 10 years for full 100% 😄 12:44 < ws-client1> **** n-client has it too? 12:44 < ws-client1> **** wait whats n-client 12:44 < ws-client1> **** i only know h-client 12:44 < ws-client1> **** ath is the lua goats 12:45 < bridge_> n-client was a 0.6 client from map64 12:45 < bridge_> this was like 10 years ago, probably longer 12:45 < ws-client1> **** ono @robyt3 doxygen in ci raped my ass in forks xd 12:46 < bridge_> @chillerdragon https://www.teeworlds.com/forum/viewtopic.php?id=8025 12:46 < bridge_> 12:46 < bridge_> you can still find it xD 12:46 < bridge_> 2011 xD 12:46 < ws-client1> **** i think i know this name: MAP94 12:46 < ws-client1> **** isnt he mapper too? or i confuse it 12:46 < ws-client1> **** N-LVL also rings a bell 12:46 < bridge_> He is known, or he was 12:47 < ws-client1> **** rip 12:47 < bridge_> This guy introduced me to programming when I was 13 and I started to implement lua scripts and breaking his API 12:47 < ws-client1> **** no way 12:47 < ws-client1> **** u know him? 12:47 < ws-client1> **** he was your mentor? 12:48 < bridge_> idk if he was my mentor, more like a Vorbild (there is no english word for this?) 12:49 < ws-client1> **** my mentors where Krisko (k-client dev), Meskalin (AllTheHaxx) and FruchtiHD (status.tw)! 12:49 < ws-client1> **** pretty goated 12:49 < ws-client1> **** they took a lot of time to sit down with me when i didnt know arrays yet 12:50 < bridge_> I also bombarded Botox with questions, he inspired me a lot to do stuff, but I remember he was very hated by some people 12:50 < ws-client1> **** Assa u soo old 12:50 < ws-client1> **** as a newfag i envy u 12:50 < bridge_> he was the creator of zEsc 12:50 < ws-client1> **** ofc i know botox 12:50 < ws-client1> **** he did a lot 12:50 < ws-client1> **** isnt ddnet.org still powered by botox code? xd 12:50 < ws-client1> **** the status thing 12:51 < bridge_> probably maybe 😄 12:51 < ws-client1> **** linux server monitoring using teeworlds protocol xd 12:51 < ws-client1> **** jupstar would hate it 12:51 < ws-client1> **** https://github.com/ddnet/ServerStatus 12:52 < ws-client1> **** i think its that https://ddnet.org/stats/ 12:52 < ws-client1> **** no dis? https://ddnet.org/stats/server/ 12:52 < ws-client1> **** or dis xd https://ddnet.org/status/ 12:52 < ws-client1> **** bruv idk 12:53 < bridge_> These are all really well made tbh 12:55 < bridge_> confirms, ddnet is mostly hosted in germany and played by russians :p 12:56 < ws-client1> **** fr 12:58 < bridge_> 2391 maps released 12:58 < bridge_> most of them are Brutal oO 12:59 < bridge_> I think I did not see a lot of brutal maps in my life 12:59 < bridge_> no if you combine race and solo, then solo is the biggest category (which makes sense) 13:14 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421454855331119205/image.png?ex=68d9187e&is=68d7c6fe&hm=7152195d30370520f1e653a3c4befa1b13bcbe24d7982a7d73d76dc0e081fc2e& 13:20 < ws-client1> **** 99 69 69 13:20 < ws-client1> **** love it 13:24 < bridge_> thx solly ❤️ 13:25 < bridge_> @chillerdragon I assume doxygen outputs it's errors on stderr ? 13:37 < ws-client1> **** yes 13:39 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421461197403721778/RDT_20250927_1338497564322094023770480.jpg?ex=68d91e66&is=68d7cce6&hm=e29d80b6a54bb5ead225479146d0de9df204dd7bb9e84c217bc03984a806773a& 13:39 < bridge_> Chiller check wire please:brownbear: 13:40 < ws-client1> **** such random meme teero xd 13:42 < bridge_> and I move my dev memes into off topic 🙁 13:55 < bridge_> working on lag profiler using the tracing crate and some custom logic. 13:55 < bridge_> 13:55 < bridge_> pretty cool. 13:55 < bridge_> 13:55 < bridge_> e.g. if a frame takes longer than 17ms, it prints an output like dis. 13:55 < bridge_> 13:55 < bridge_> And it's completely opt-in at compile time without runtime overhead 13:55 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421465167220445234/image.png?ex=68d92219&is=68d7d099&hm=5a19624c996573f24b75907324735e233d321fa555cc45c532e7bd43f0d5af94& 14:04 < bridge_> ```cpp 14:04 < bridge_> if(m_pCustomCommunitiesDDNetInfoTask != nullptr) 14:04 < bridge_> { 14:04 < bridge_> m_pCustomCommunitiesDDNetInfoTask->Abort(); 14:04 < bridge_> m_pCustomCommunitiesDDNetInfoTask = nullptr; 14:04 < bridge_> } 14:04 < bridge_> ``` 14:04 < bridge_> why does this segfualt shouldnt shared ptr be safe 14:04 < bridge_> abort() is just a setter 14:04 < bridge_> it segfaults on = nullptr 14:05 < bridge_> `#7 CCustomCommunities::StartLoadCustomCommunitiesDDNetInfo (this=0x555555cb0a30) at /home/solly/Code/ddnet/src/game/client/components/tclient/custom_communities.cpp:18` 14:05 < bridge_> ``` 14:05 < bridge_> #0 0x00005555557ccf35 in __gnu_cxx::__exchange_and_add (__mem=0x555555a0e40d, __val=-1) at /usr/include/c++/15.2.1/ext/atomicity.h:68 14:05 < bridge_> #1 __gnu_cxx::__exchange_and_add_dispatch (__mem=0x555555a0e40d, __val=-1) at /usr/include/c++/15.2.1/ext/atomicity.h:103 14:05 < bridge_> #2 std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x555555a0e405) at /usr/include/c++/15.2.1/bits/shared_ptr_base.h:349 14:05 < bridge_> #3 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=) at /usr/include/c++/15.2.1/bits/shared_ptr_base.h:1069 14:05 < bridge_> #4 std::__shared_ptr::~__shared_ptr (this=) at /usr/include/c++/15.2.1/bits/shared_ptr_base.h:1531 14:06 < bridge_> #5 std::__shared_ptr::operator= (this=0x555555cb0a40, __r=...) at /usr/include/c++/15.2.1/bits/shared_ptr_base.h:1627 14:06 < bridge_> #6 std::shared_ptr::operator= (this=0x555555cb0a40, __r=...) at /usr/include/c++/15.2.1/bits/shared_ptr.h:439 14:06 < bridge_> #7 CCustomCommunities::StartLoadCustomCommunitiesDDNetInfo (this=0x555555cb0a30) at /home/solly/Code/ddnet/src/game/client/components/tclient/custom_communities.cpp:18 14:06 < bridge_> ``` 14:07 < bridge_> oh wait getfile returns unique ptr not shared ptr 14:07 < bridge_> oof 14:08 < bridge_> ```cpp 14:08 < bridge_> m_pMapdownloadTask = HttpGetFile(pMapUrl ? pMapUrl : aUrl, Storage(), m_aMapdownloadFilenameTemp, IStorage::TYPE_SAVE); 14:08 < bridge_> m_pMapdownloadTask->Timeout(CTimeout{g_Config.m_ClMapDownloadConnectTimeoutMs, 0, g_Config.m_ClMapDownloadLowSpeedLimit, g_Config.m_ClMapDownloadLowSpeedTime}); 14:08 < bridge_> m_pMapdownloadTask->MaxResponseSize(MapSize); 14:08 < bridge_> m_pMapdownloadTask->ExpectSha256(*pMapSha256); 14:08 < bridge_> Http()->Run(m_pMapdownloadTask); 14:08 < bridge_> ``` 14:08 < bridge_> but they do the same thing here?? 14:12 < ws-client1> **** that is cool @Jupstar ✪ 14:14 < bridge_> I'm archiving the repo 14:14 < bridge_> u cant do that 14:14 < bridge_> !!!! 14:17 < bridge_> its memoery shanagans caused by asan :D 14:18 < bridge_> its memoery shanagans caught by asan :D 14:28 < bridge_> @soulyvevo are shadows also tinted according to custom color? 14:28 < bridge_> on skins 14:47 < bridge_> @teero777 you mean the back layer? 14:47 < bridge_> the one thats fully black in vanilla 14:47 < bridge_> yes 15:38 < bridge_> @kebscs hows that for small pr 15:40 < bridge_> soon #11111 15:53 < ws-client1> **** oh 15:53 < ws-client1> **** gnome 49 removed xorg support 15:53 < ws-client1> **** that explains it 15:53 < ws-client1> **** BUT WTF 15:54 < ws-client1> **** i cant keep my mouse cursor in ddnet without going to second screen 15:54 < bridge_> lmao 15:54 < ws-client1> **** i cant tab out of the game without getting a seziure from popups 15:54 < ws-client1> **** i cant take screenshots 15:54 < bridge_> wait until you notice you cannot use clipboard 90% of the time 15:57 < bridge_> @chillerdragon downgrade from sdl3-compat to sdl2 15:57 < ws-client1> **** > GNOME has supported X11 since its first releases—but one that should be mostly invisible to Linux users. 15:57 < ws-client1> **** INSIBLE AM ARSCH 15:57 < ws-client1> **** bro wat i do now 15:57 < bridge_> if you are on arch you can do yay -S aur/sdl2 15:57 < ws-client1> **** no 15:57 < ws-client1> **** it breaks other stuff 15:57 < ws-client1> **** i dont want to uninstall firefox now 15:57 < ws-client1> **** i really need xorg back 15:58 < bridge_> you can download a .so of sdl2 and ld preload it 15:58 < ws-client1> **** im not going to 15:58 < ws-client1> **** I NEED XORG 15:58 < bridge_> dont use gnome 15:58 < bridge_> use dwm! 15:58 < bridge_> https://github.com/sollybunny/dwm 15:58 < ws-client1> **** wayland just does not work 15:59 < bridge_> Chiller, is it possible to make an SQL query in the command? 15:59 < bridge_> :justatest: 15:59 < ws-client1> **** ? 16:00 < ws-client1> **** @Solly (bun bun) i make installed but it does not show up in gdm 16:00 < bridge_> idk hwo to use gdm 16:00 < bridge_> or any login mgr 16:00 < bridge_> ctrl-shift-f2 16:00 < bridge_> startx dwm 16:01 < bridge_> [cat_uwu](https://cdn.discordapp.com/emojis/1230626195649990696.webp?size=48&name=cat_uwu) 16:01 < bridge_> b ased 16:02 < ChillerDragon> how do i do anything in there xd 16:02 < ChillerDragon> how do i open terminal 16:03 < bridge_> err win+t opens kitty 16:03 < bridge_> win+r opens dmenu 16:03 < bridge_> its urmm a bit based 16:03 < bridge_> config is done by editing config.h 16:04 < ChillerDragon> i installed dmenu win+r does notin 16:04 < ChillerDragon> i dont have kitty xd 16:04 < bridge_> su 16:04 < bridge_> echo "#!/bin/sh" > /usr/bin/kitty 16:04 < bridge_> echo "your term" > /usr/bin/kitty 16:05 < bridge_> chmod +x /usr/bin/kitty 16:05 < bridge_> does dmenu_run do anything in tty 16:05 < bridge_> ```cpp 16:05 < bridge_> /* dmenu */ 16:05 < bridge_> static void dmenu_run(const Arg arg) { 16:05 < bridge_> (void)arg; 16:05 < bridge_> static char dmenumon[2] = "0"; 16:05 < bridge_> static char dmenualpha[4] = "255"; 16:05 < bridge_> const char* dmenucmd[] = { 16:05 < bridge_> "dmenu_run", "-m", dmenumon, 16:05 < bridge_> "-i", "-fn", fonts[0], 16:05 < bridge_> "-a", dmenualpha, 16:05 < bridge_> "-nb", colors[SchemeNorm][1], "-nf", colors[SchemeNorm][0], 16:05 < bridge_> "-sb", colors[SchemeSel][1], "-sf", colors[SchemeSel][0], 16:05 < bridge_> "-nhb", colors[SchemeNorm][1], /* "-nhf", colors[SchemeSel][0], */ 16:05 < bridge_> "-shb", colors[SchemeSel][1], /* "-shf", colors[SchemeNorm][0], */ 16:05 < bridge_> NULL 16:05 < bridge_> }; 16:05 < bridge_> dmenumon[0] = '0' + selmon->num; 16:05 < bridge_> snprintf(dmenualpha, sizeof(dmenualpha), "%u", alphas[SchemeNorm][ColBg]); 16:05 < bridge_> 16:05 < bridge_> cmdspawn((Arg){ .v = dmenucmd }); 16:05 < bridge_> } 16:06 < bridge_> ``` 16:06 < bridge_> cuz thats what its doin 16:06 < bridge_> this breaks if u have more than 10 monitors 16:06 < bridge_> lmao 16:07 < bridge_> omfg, i love that lag tool 16:07 < bridge_> and OMFG did i add a stupid bug 16:07 < bridge_> that the lag tool found 16:08 < bridge_> @chillerdragon want to play domino day? 16:09 < bridge_> easiest pr of my life 16:09 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421498990616379534/image.png?ex=68d94199&is=68d7f019&hm=ca972a04630ffb7af1ccb47eeddcf14b84a41331b3a6be715d68b1168fb2f6ee& 16:09 < ChillerDragon> wot assa? 16:09 < ChillerDragon> i installed vanilla dwm 16:09 < ChillerDragon> it werks i got a shell 16:09 < ChillerDragon> but its so dark 16:10 < ChillerDragon> i do not feel comfy here 16:10 < bridge_> yeah vanilla dwm is unusable 16:10 < bridge_> and even more based 16:10 < bridge_> u have to configure it a bit to get it to do anythign 16:10 < ChillerDragon> like nothing works 16:10 < bridge_> so much cursed in that screenshot 16:10 < ChillerDragon> i cant move windows 16:11 < bridge_> Why does it show closed and says open xD 16:11 < ChillerDragon> i have no gui settins to fix screen align 16:11 < bridge_> win+drag normally 16:11 < bridge_> arandr 16:11 < bridge_> win+mouse1 drag normally 16:11 < bridge_> :) 16:11 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421499523540189265/image.png?ex=68d94218&is=68d7f098&hm=09c61a45075e2baa1832bdf20ab9bd7548d8933859831ebb5c915b64996abacf& 16:11 < ws-client1> **** win+mouse1 does notin 16:11 < bridge_> vanilla dwm moment 16:11 < ws-client1> **** arandr is a cli bruv 16:12 < bridge_> xrandr is a cli 16:12 < bridge_> arandr is a gui for it 16:12 < ws-client1> **** a 16:12 < bridge_> obviously it stands for another xrandr gui 16:13 < ws-client1> **** do i need to read fakin docs now on how to move a window xd 16:13 < bridge_> [cat_uwu](https://cdn.discordapp.com/emojis/1230626195649990696.webp?size=48&name=cat_uwu) 16:13 < bridge_> yis 16:13 < bridge_> or configure it 16:13 < ws-client1> **** i cba i want my old working setup back wtf is this 16:13 < bridge_> modkey is mod1mask i forgot which key that is 16:14 < ws-client1> **** i cant even switch firefox tabs anymore xd 16:14 < bridge_> i think mod1mask is alt 16:14 < bridge_> which is a stupid default 16:14 < ws-client1> **** i was fast with gnome 16:14 < bridge_> well ur used to gnome 16:14 < bridge_> im fast with dwm :D 16:15 < bridge_> > wot assa 16:15 < bridge_> if you merge #10755 you can close soo many issues 16:15 < bridge_> https://github.com/ddnet/ddnet/pull/10755 16:15 < bridge_> why is my http request always queued? 16:15 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421500476175941692/image.png?ex=68d942fb&is=68d7f17b&hm=ae7c2068994f84e3de4dda7b61aea9dbcada0ead0c9410f99c0fd2809171ac5c& 16:15 < bridge_> ` log_info("a", "%d %d", m_pCustomCommunitiesDDNetInfoTask->State(), EHttpState::DONE);` 16:15 < ws-client1> **** i wont merge now 16:15 < ws-client1> **** its 16:00 16:15 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421500544840765450/image.png?ex=68d9430c&is=68d7f18c&hm=7f8ab6300f10798093abd6d7d277ffa0b4f4c8d2b06272559428ee629ac537b8& 16:15 < ws-client1> **** i need to fix my pc not working before i merge anything 16:15 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421500598754218105/image.png?ex=68d94318&is=68d7f198&hm=f7f61518f3fb4d12805da8ebc6dc53fa67efdab7dcf5376cfa25bb838da42827& 16:15 < bridge_> !!! 16:16 < ws-client1> **** nah i cant 16:16 < ws-client1> **** dwm 16:16 < ws-client1> **** i go back to gnome 16:16 < ws-client1> **** and suffer 16:16 < bridge_> there are more friendly xorg window managers 16:16 < bridge_> it's like we live in time zones 16:16 < bridge_> kde probably ... still works in x 16:16 < bridge_> can't we all just switch to UTC? 16:17 < bridge_> or the star trek calendar 16:18 < bridge_> no 16:18 < ws-client1> **** @Solly (bun bun) none of them are gnome 16:18 < bridge_> I like to say that Solly and muricans live in the past 16:18 < ws-client1> **** the only good window manager out there 16:19 < bridge_> gnome is a de 16:19 < bridge_> no? 16:19 < bridge_> ``` 16:19 < bridge_> #0 0x00007ffff349f042 in ?? () from /usr/lib/libc.so.6 16:19 < bridge_> #1 0x00007ffff34931ac in ?? () from /usr/lib/libc.so.6 16:19 < bridge_> #2 0x00007ffff349381c in ?? () from /usr/lib/libc.so.6 16:19 < bridge_> #3 0x00007ffff3495ede in pthread_cond_wait () from /usr/lib/libc.so.6 16:19 < bridge_> #4 0x00007ffff38daea1 in __gthread_cond_wait (__cond=0x7fffe317dd90, __mutex=) 16:19 < bridge_> at /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:911 16:19 < bridge_> #5 std::__condvar::wait (this=0x7fffe317dd90, __m=...) at /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/std_mutex.h:173 16:19 < bridge_> #6 std::condition_variable::wait (this=this@entry=0x7fffe317dd90, __lock=...) at /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/condition_variable.cc:41 16:19 < bridge_> #7 0x00005555555e6a3d in std::condition_variable::wait):: > (this=, __lock=..., __p=...) at /usr/include/c++/15.2.1/condition_variable:107 16:19 < bridge_> #8 CHttp::Run (this=0x7fffe317dd50, pRequest=...) at /home/solly/Code/ddnet/src/engine/shared/http.cpp:807 16:19 < bridge_> #9 0x00005555557cd4eb in CCustomCommunities::DownloadCustomCommunitiesDDNetInfo (this=0x7fffe1f42d58) at /home/solly/Code/ddnet/src/game/client/components/tclient/custom_communities.cpp:32 16:19 < bridge_> #10 0x000055555580e8fe in CGameClient::OnConsoleInit (this=0x7fffe19c1010) at /home/solly/Code/ddnet/src/game/client/gameclient.cpp:217 16:19 < bridge_> #11 0x00005555555b0903 in main (argc=, argv=) at /home/solly/Code/ddnet/src/engine/client/client.cpp:4924 16:19 < bridge_> ``` 16:19 < bridge_> how have i got myself into a race condition 16:19 < bridge_> but time isn't constant and depends on the observer 16:19 < bridge_> im constant and im going to observe you 16:20 < bridge_> youre neither constant in space or time 16:21 < bridge_> bite my transcendental arse 16:21 < bridge_> bite me transcendental arse 16:21 < bridge_> bite my transcendental arse 16:21 < bridge_> bites into a raspberry Pi 16:21 < bridge_> err 16:21 < bridge_> i sure hope i am not a rabserry Pi 16:21 < bridge_> because Pi is trancendental :justatest: 16:22 < bridge_> right 16:22 < bridge_> different usages of the word 16:22 < bridge_> thats a funny 16:22 < bridge_> then slow my time down 16:23 < bridge_> aint he cute 16:23 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421502479174209748/image.png?ex=68d944d9&is=68d7f359&hm=498d52ca372ed454f5edc6b86bda340ee0bf479d617dc2dadb8880e2e99c1225& 16:25 < bridge_> ```cpp 16:25 < bridge_> Data.m_InfoGrayscale = Data.m_Info.DeepCopy(); 16:25 < bridge_> ConvertToGrayscale(Data.m_InfoGrayscale); 16:25 < bridge_> 16:25 < bridge_> int aFreq[256] = {0}; 16:25 < bridge_> uint8_t OrgWeight = 1; 16:25 < bridge_> uint8_t NewWeight = 192; 16:25 < bridge_> 16:25 < bridge_> // find most common non-zero frequency 16:25 < bridge_> for(size_t y = 0; y < BodyHeight; y++) 16:25 < bridge_> { 16:25 < bridge_> for(size_t x = 0; x < BodyWidth; x++) 16:25 < bridge_> { 16:25 < bridge_> const size_t Offset = y * Pitch + x * PixelStep; 16:25 < bridge_> if(Data.m_InfoGrayscale.m_pData[Offset + 3] > 128) 16:25 < bridge_> { 16:25 < bridge_> aFreq[Data.m_InfoGrayscale.m_pData[Offset]]++; 16:25 < bridge_> } 16:25 < bridge_> } 16:25 < bridge_> } 16:25 < bridge_> 16:25 < bridge_> for(int i = 1; i < 256; i++) 16:26 < bridge_> { 16:26 < bridge_> if(aFreq[OrgWeight] < aFreq[i]) 16:26 < bridge_> { 16:26 < bridge_> OrgWeight = i; 16:26 < bridge_> } 16:26 < bridge_> } 16:26 < bridge_> 16:26 < bridge_> // reorder 16:26 < bridge_> for(size_t y = 0; y < BodyHeight; y++) 16:26 < bridge_> is there any docs on what the frequency things do? 16:26 < bridge_> are there any docs on what the frequency things do? 16:26 < bridge_> freuqnecy looks like its the alpha channel 16:27 < bridge_> @teero777 👀 16:28 < bridge_> i would change the commend to most common alpha frequency above 128 16:28 < bridge_> i would change the comment to most common alpha frequency above 128 16:29 < bridge_> that is wrong. 16:29 < bridge_> ```cpp 16:29 < bridge_> // find most common non-zero frequency 16:29 < bridge_> for(size_t y = 0; y < BodyHeight; y++) 16:29 < bridge_> { 16:29 < bridge_> for(size_t x = 0; x < BodyWidth; x++) 16:29 < bridge_> { 16:29 < bridge_> const size_t Offset = y * Pitch + x * PixelStep; 16:29 < bridge_> if(Data.m_InfoGrayscale.m_pData[Offset + 3] > 128) 16:29 < bridge_> { 16:29 < bridge_> aFreq[Data.m_InfoGrayscale.m_pData[Offset]]++; 16:29 < bridge_> } 16:29 < bridge_> } 16:29 < bridge_> } 16:29 < bridge_> ``` 16:29 < bridge_> its for normalizing the grayscale 16:29 < bridge_> oh wait infograyscale? 16:29 < bridge_> whats the +3 then 16:29 < bridge_> is it ahsl or something 16:30 < bridge_> and hwy iusnt there +3 on the set bit 16:33 < ws-client1> **** @Assa fak heino doesnt merge cuz me and bounced the ball to me 16:33 < ws-client1> **** i feel pressured 16:34 < bridge_> I know how to relief your pressure :greenthing: 16:34 < ws-client1> **** > i sure hope i am not a rabserry Pi 16:34 < ws-client1> **** https://www.youtube.com/watch?v=IHQr0HCIN2w 16:34 < ws-client1> **** rj is back they say 16:36 < bridge_> @chillerdragon since we esablished, that the removal doesn't change anything from the last 8 years, what about merging, closing all that pesky issues, and I can finally continue to work on this and build features on it, update the 8 years old code and stuff 16:36 < ws-client1> **** well if this breaks something the state gets even worse 16:36 < ws-client1> **** and you are the only one who is sure it doesnt break anything 16:37 < bridge_> yes, but I am sure I am the one who invested the most amount of time into it 16:40 < bridge_> like I already have multiple features in mind we can build on it, as I said we play domino day, giving this domino a puch will cause a bunch of issues to be closed and future stuff to be viable 16:40 < bridge_> like I already have multiple features in mind we can build on it, as I said we play domino day, giving this domino a push will cause a bunch of issues to be closed and future stuff to be viable 16:43 < bridge_> @teero777 does your 1 trillion tee gameplay run smooth?= 16:44 < bridge_> @essigautomat can you stop merging into me please? 16:44 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421507677749645342/image.png?ex=68d949b0&is=68d7f830&hm=124df379a935476763a4fa0b5afb91408f5fb266296c2a76817fa007ecd4f681& 16:44 < bridge_> peak javascript moments 16:45 < bridge_> wdym? 16:46 < bridge_> dunno saw a screenshot somewhere with many tees 16:46 < bridge_> just increase your Z value :greenthing: 16:46 < bridge_> well yes ofc it runs at aleast real time 16:46 < bridge_> but not with 1 trillion 16:46 < bridge_> well yes ofc it runs at at least real time 16:46 < ws-client1> **** how does one start obs recordings on xorg???? 16:46 < bridge_> can you stream for me, or unstable rn? 16:46 < ws-client1> **** wayland* 16:47 < ws-client1> **** wayland removed the keylogger feature 16:47 < bridge_> open obs 16:47 < bridge_> you don't 16:47 < ws-client1> **** i cant use keybindings from other apps wtf is this shit 16:47 < bridge_> you have to make your config export those specific keybindings to the applications 16:47 < bridge_> wait 16:49 < bridge_> idk i dont have my config anymore 16:49 < bridge_> just google 16:53 < ws-client1> **** me? 16:53 < ws-client1> **** for obs? 16:53 < bridge_> Thank you ChillerDragon :deen_star: :deen_star: :deen_star: 16:53 < ws-client1> **** ez 3 stars 16:53 < bridge_> this was a 3 deen star worth bounty 16:54 < bridge_> now we can close 1 PR and ~5 issues 16:54 < ws-client1> **** well its a easy review but hard decision 16:54 < bridge_> yes I know xD 16:54 < bridge_> and if you take a first look at it, you're like "this guy wants to remove a feature" 16:54 < bridge_> when in reality, feature was removed 8 years ago 16:55 < ws-client1> **** `2025-09-27 16:47:46 E png: failed to open file for reading. filename='assets/entities/chiller/ddnet.png'` 16:55 < ws-client1> **** wat rossbit shenanigans is this now 16:55 < bridge_> what am I btw? An Assbit? 16:56 < bridge_> sounds unhealthy 16:56 < ws-client1> **** you are assa 16:56 < ws-client1> **** unless you want to be called assi xd 16:56 < bridge_> assi xD 16:57 < ws-client1> **** @Teero i still wait btw xd 16:57 < ws-client1> **** google wat 16:57 < bridge_> i told you to google it 16:57 < bridge_> or ask chatgpt 16:57 < ws-client1> **** wat 16:57 < ws-client1> **** how to obs? 16:57 < bridge_> how to configure keybinds for programs using wayland 16:57 < ws-client1> **** a oke 16:57 < bridge_> or forward or allow 16:57 < bridge_> idk 16:57 < ws-client1> **** https://github.com/PolyCatDev/obs-waykey 16:57 < ws-client1> **** xd 16:58 < ws-client1> **** 3* 16:58 < ws-client1> **** ez sketchy pyson script 16:58 < bridge_> you have to tell it to explicitly forward keybinds for every application you need keybinds in xd 16:58 < bridge_> its annoying 17:00 < ws-client1> **** lel there is a aur package for it 17:00 < ws-client1> **** made by leia uwu 17:00 < ws-client1> **** will install blindly 17:01 < bridge_> ddnet has such shokingly good 0.1% low fps.. insane that ppl have lags on this game 17:01 < bridge_> peak 17:06 < ws-client1> **** uhm.. 17:06 < ws-client1> **** i broke my super key 17:06 < ws-client1> **** i cant access my gnome settings anymore xd 17:06 < ws-client1> **** never mind top right ez 17:06 < bridge_> Hello 17:06 < ws-client1> **** what a day 17:06 < bridge_> Why does heinrich approve compat breaking changes 17:07 < bridge_> In rendering code 17:07 < ws-client1> **** its heinrich 2.0 17:07 < ws-client1> **** this will be the age of compat breaking 17:07 < bridge_> He should remove them in network code 17:07 < ws-client1> **** huge things to come for ddnet 17:07 < bridge_> @chillerdragon can you give @jupeyy_keks a TLDR why we remove envelope sync? Or should I? 17:08 < bridge_> I am strongly against removing this feature, wtf is your motivation 17:08 < bridge_> feature is broken since 8 years 17:08 < bridge_> it's not broken at all 17:08 < bridge_> what is your motiviation in removing this feature? 17:08 < bridge_> okay tell me what's the difference between synced and unsynced envelopes 17:09 < bridge_> synced depend on tick unsynced on local client time 17:09 < bridge_> what is your motiviation in keeping this feature which doesn nothing? 17:09 < bridge_> wrong, all depend on server time 17:10 < bridge_> no 17:10 < bridge_> yes 17:10 < bridge_> No 17:10 < bridge_> yes 17:10 < bridge_> Bro no 17:10 < bridge_> because it's bugged since 8 years 17:10 < bridge_> BRO YES 17:10 < bridge_> Almost all reports of lag I see are actually bad network connection 17:11 < bridge_> @jupeyy_keks see #879 and #10678. 17:11 < bridge_> I already told you before, it's about mixing and that can be cleanly fixed 17:11 < bridge_> No need to remove it 17:12 < bridge_> they are syncing because they're running over the same static value 17:12 < bridge_> yes need to remove it, I provided an alternative which nobody wants and breaks other stuff 17:14 < bridge_> they're syncing for 8 years now all to server time. If you "fix" that and make some envelopes run on client time again, you will break stuff. 17:14 < ws-client1> **** POMG @Teero thanks for the hitn buiauaid 17:14 < ws-client1> **** but 17:14 < ws-client1> **** FUCK 17:14 < ws-client1> **** i can only use a key once 17:14 < ws-client1> **** i had f9 in obs to start AND stop 17:15 < ws-client1> **** it doesnt let me do it 17:15 < ws-client1> **** dis madafakin wayland 17:15 < bridge_> lmao 17:15 < bridge_> hi tater 17:24 < bridge_> STILL A NO 17:25 < bridge_> ??? 17:25 < bridge_> Bro, I tested it 17:25 < bridge_> If you have a map with ONLY non-synced animations it's client time 17:25 < bridge_> as soon as you mix them it's reset as you say 17:25 < bridge_> yes, what speaks against syncing all to servertime then? 17:26 < bridge_> it simply is a change in logic that is not justified. e.g. that one map with the ugly more getting dark background which i dunno by name rn will break 17:26 < bridge_> well or get fixed 😬 17:26 < bridge_> well no 17:26 < bridge_> kinda none of both 17:26 < bridge_> this was addressed and was a different bug 17:27 < bridge_> btw, server time and client time are essentially random for the player 17:27 < bridge_> if you join a server, the timer can be days old 17:27 < bridge_> if you join late into a map, the client timer won't reset too 17:28 < bridge_> the map you adress **was broken 8 years ago, because it doesn't reset on the start line anymore** 17:28 < bridge_> and none of them do that, synced or unsynced. 17:29 < bridge_> a client restart fixes it tho 17:29 < bridge_> a server restart or map reload as well 17:29 < bridge_> but that is not as likely 17:29 < bridge_> your lack of communication also annoys me tbh.. you CAPSLOCK no, even tho i said the exact right thing 17:30 < bridge_> because I am discussing a lot about this issue already, now we finally have a decision, and you NOW block it 17:30 < bridge_> Ofc I block it 17:30 < bridge_> it sounds like the maintainers that approved it are not aware 17:35 < bridge_> what do you want from me now, how would you resolve this issue? 17:35 < bridge_> i guess the best would be to introduce a second timer 17:35 < bridge_> so the unsynced animations are not dependend on server time 17:36 < bridge_> but then maps break, where envelopes are not marked as synced but which sync to the server time currently 17:36 < bridge_> If I introduced that 8 years ago then it's simply a bug since 8 years 17:36 < bridge_> then these maps are buggy 17:36 < bridge_> as well 17:37 < bridge_> Then we just have more buggy maps yay 17:37 < bridge_> No, these maps are buggy anyway 17:37 < bridge_> I can almost guarantee you, that the number of maps with both synced and unsynced envelopes is high 17:38 < bridge_> Ok tell me what are you even talking about 17:38 < bridge_> This fix? 17:38 < bridge_> https://github.com/ddnet/ddnet/pull/10679 17:38 < bridge_> making everything sync from now on wouldn't break anything, because an envelope running on client time can also run on server time without issues 17:39 < bridge_> yes, this would have fixed old maps as well, like 8 years ago, but was breaking mods like kog and infection and was thereby undesired 17:39 < bridge_> Yes that is not what i'd do 17:39 < bridge_> Or I say it differently. 17:39 < bridge_> That is a bug in the network code 17:39 < ws-client1> **** can you guys please post a tldr on github when you are done. We shouldnt hide such info in the discord logs @Jupstar ✪ the gh pr is what will be revisted in 10 years again 17:40 < bridge_> We'd need to have a animation tick, instead of racing ticks & server ticks 17:40 < bridge_> then the mod can decide 17:40 < bridge_> But the other fix is to simply not overwrite s_Time 17:40 < bridge_> But use a local variable 17:41 < bridge_> If maps really relied on synced time without marking the env synced, then it's a map bug anyway 17:41 < bridge_> But has nothing todo with startline 17:41 < bridge_> Why are we against putting compat data in map file, if you just use 1 timer for old maps and 2 timer for new maps everything works and it seems very simple 17:41 < bridge_> To be clear 17:42 < bridge_> which map breaks on kog? 17:42 < bridge_> 17:42 < bridge_> like some moving or all moving? 17:42 < bridge_> all maps with the q-move feature 17:42 < bridge_> they have like quads that move around, and if you hit them they freeze you 17:42 < bridge_> yes yes 17:43 < bridge_> He meant to type all moving 17:45 < bridge_> and infection, apparently, uses a generator changing envelopes based on the current server time 17:45 < bridge_> in order to make the start buy menu 17:45 < bridge_> but they use synced env or not 17:46 < bridge_> yo 17:46 < bridge_> cho cho 17:46 < bridge_> both kog and infection break, because they use unsynced envelopes, when they should use synced ones 17:47 < bridge_> hmm give me sec, maybe I am wrong 17:47 < bridge_> But they MUST use at least one sync env 17:48 < bridge_> I was wrong, both use synced envelopes synced to server time. The issue was with the start line reset breaking that 17:49 < bridge_> Ok 17:49 < bridge_> Fine, but we don't need the startline patch 17:49 < bridge_> yes I am also fine with that 17:49 < bridge_> Startline patch IMO is a network limitation of teeworlds 17:49 < bridge_> the other is about using a local var instead of resetting s_Time 17:50 < bridge_> The fix, which was now about to get merged, just uses server time for everything. Because, as I said, syncing a client time envelope to server time doesn't hurt, and the fix you have in mind, mind break maps 17:51 < bridge_> The fix, which was now about to get merged, just uses server time for everything. Because, as I said, syncing a client time envelope to server time doesn't hurt, and the fix you have in mind, breaks maps 17:51 < bridge_> But I dislike that 17:51 < bridge_> Which map does it break 17:51 < bridge_> and the PR now has two static variables, I want to add a local variable as a followup (I agree it shouldn't be a static variable) 17:51 < bridge_> kog not 17:52 < bridge_> hard to tell, can be any map with synced and unsynced envelopes 18:00 < bridge_> did you test this ingame D: 18:00 < bridge_> ^^ 18:01 < bridge_> the ingame menu should break I can already tell 18:01 < bridge_> - I mean the background map to be clear 18:02 < bridge_> does this even compile? You still have s_Time references 18:03 < bridge_> hmm I need more time to think about this 18:06 < bridge_> This would, at least, decouple server and client time as you suggest. I'll create a list of maps that'll break 18:06 < bridge_> This would, at least, decouple server and client time as you suggest. I'll create a list of maps that'll potentially break 18:10 < bridge_> :Pepega: 18:10 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421529372015202534/image.png?ex=68d95de5&is=68d80c65&hm=1afab0492ba49546e3c9d1e905f4562c00c076ec758d055f483fc5aac3adf589& 18:11 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421529775268433920/image.png?ex=68d95e45&is=68d80cc5&hm=9c7221c5ec0306f55b70819e5b80fb6f94a2db5845e3eba3670372bac4a7e32c& 18:12 < bridge_> god help me 18:20 < bridge_> welp 18:20 < bridge_> glad thats over 18:21 < bridge_> ``` 18:21 < bridge_> 2025.map 18:21 < bridge_> Traceback (most recent call last): 18:21 < bridge_> File ".\twmap_searcher_envelopes.py", line 13, in 18:21 < bridge_> ddnetmap = twmap.Map(path) 18:21 < bridge_> module.MapError: Map from Datafile - Layer error at index 125: Quads data provides a different amount of quads than announced 18:21 < bridge_> ``` 18:21 < bridge_> hmm 18:21 < bridge_> 😮 18:21 < bridge_> We should fix such maps 18:21 < bridge_> I found two 18:21 < bridge_> ddnet maps should be warningless 18:22 < bridge_> > Error on C:\Users\Assi\Desktop\workspace\ddnet-maps\types\oldschool\maps\Exfishion.map 18:22 < bridge_> This one also breaks 18:23 < bridge_> Interesting that ddnet client loads them 18:23 < bridge_> @robyt3 do we have validation in that direction? 18:23 < bridge_> ``` 18:23 < bridge_> Maps with synced and unsynced envelopes: 109 18:23 < bridge_> Maps errored: 1 18:23 < bridge_> Maps: 18:23 < bridge_> Agile.map 18:23 < bridge_> ... 18:23 < bridge_> ``` 18:23 < bridge_> 18:23 < bridge_> 109 offenders 18:23 < bridge_> ``` 18:23 < bridge_> Maps with synced and unsynced envelopes: 109 18:23 < bridge_> Maps errored: 1 18:23 < bridge_> Maps: 18:23 < bridge_> Agile.map 18:23 < bridge_> ... 18:23 < bridge_> ``` 18:24 < bridge_> 18:24 < bridge_> 109 offenders (and 2 errors) 18:24 < bridge_> huh the second map didn't error on a rerun 🤔 18:26 < bridge_> E.g. Agile has sync envs but doesnt use them 18:26 < bridge_> So your tool would need to check if they also in use 18:26 < bridge_> (btw i dislike that we have maps with unused envs) 18:26 < bridge_> Only the datafile structures themselves should be fully validated yet in the client/server. Maybe we should add twmap to the CI of ddnet-maps. 18:26 < bridge_> hmm I probably also need to check for envelope type 18:26 < bridge_> ~~hmm I probably also need to check for envelope type~~ 18:26 < bridge_> no scrap that, if colors break then colors also break 18:35 < bridge_> this is hard to tell, I need to check each quad against the list of envelopes for each map and then need to know if it's synced or unsynced. Also quads can contain references to deleted/not existing envelopes due to an editor history bug in previous verions 18:35 < bridge_> it doesnt matter for ddnet maps anyway 18:36 < bridge_> which maps except kog & kaffeine want network code to be able to change animations xD 18:36 < bridge_> one lag and your animation stucks or what 18:36 < bridge_> i want my flowers in my map to be smooth af 18:36 < bridge_> I want to introduce recorder-like tiles, to start and stop envelopes 18:36 < bridge_> like you don't want to sync each tick obviously 18:36 < bridge_> believe me i want so much 18:37 < bridge_> that's why I need envelope sync to be fixed in the first place 18:37 < bridge_> like I am not doing it because I want to annoy you 18:37 < bridge_> i want to be rich as chillerdragon, smart as patiga, hobyless as teero, tryhard as robyte 18:37 < bridge_> and assi as assa 18:37 < bridge_> 😛 18:37 < bridge_> you dont annoy me 18:38 < bridge_> you just expect me to be motivated to be a good maintainer, which i am not 18:38 < bridge_> i just want to code random shit and then rq 18:41 < bridge_> chillerdragon 18:41 < bridge_> hello 18:42 < bridge_> I have a protocol question. 18:42 < bridge_> 18:42 < bridge_> I reduced the map download window from 50 -> 10 and now it works. 18:42 < bridge_> 18:42 < bridge_> Does 50 map chunks bloat the network queue too much on server or client maybe? 18:42 < bridge_> So that packets are dropped even tho they are vital? 18:42 < bridge_> That is the only explaination I have for why the map download keeps breaking 18:42 < bridge_> Especially on high ping server 18:47 < bridge_> Could be too much depending on how much you pack into each packet. The network connection resend buffer is 32 KiB. But the server seems to allow setting `sv_map_window` up to 100. 18:48 < bridge_> Ok, alternatively, does the server even set map chunks as vital 18:48 < bridge_> let me see 18:49 < bridge_> yeah 18:49 < bridge_> vital and flush 18:49 < bridge_> ok 19:12 < bridge_> i swear literally nothing was happening, this mustve been me 19:13 < bridge_> not a single frame above 4ms frame after 10min of playing, while having youtube open, discord open. playing in windowed mode, having codium open, having a second instance of ddnet open. 19:13 < bridge_> 19:13 < bridge_> i really think ddnet has no fps issues lol 19:13 < bridge_> not a single frame above 4ms frametime after 10min of playing, while having youtube open, discord open. playing in windowed mode, having codium open, having a second instance of ddnet open. 19:13 < bridge_> 19:13 < bridge_> i really think ddnet has no fps issues lol 19:13 < bridge_> youre on good hardware 19:13 < bridge_> there are people still on old integrated 19:13 < bridge_> sure 19:13 < bridge_> but i'd claim their drivers then simply suck 19:14 < bridge_> no way it's a code issue if it runs that smooth. 19:14 < bridge_> not like we perma use 100 threads 19:14 < bridge_> I like this idea of a deployment ticket 19:14 < bridge_> its not bad... to optimize more 19:15 < bridge_> Last time we tried to declare compatibility with Windows 10+11, it broke some version checks in old drivers I think :pepeW: 19:15 < bridge_> ddnet is a very light game, but people also have light computers 19:15 < bridge_> old hardware and new windows dont play nice with eachother unfortunatley 19:15 < bridge_> I still get this weird microstuttering. But I think it's probably just my aging hardware slowly dying 19:16 < bridge_> i wish it would be easier to debug 19:16 < bridge_> I'd love them to run like a bench suite that triggers their laggs and we see exactly if it's in high level code or backend code 19:16 < bridge_> i mean it's easy to do smth stupid that causes stutters 19:17 < bridge_> just did so in ddnet-rs, and was very hard to debug 19:17 < bridge_> It's so hard to debug that, you'd need very fine grained instrumentation which would itself have significant performance penalty 19:17 < bridge_> guys is this okay that I can write here? 19:17 < bridge_> https://dontasktoask.com/ 19:17 < bridge_> the funny thing is 19:17 < bridge_> (yes) 19:17 < bridge_> not even 19:17 < bridge_> calling time is so fast 19:17 < bridge_> the above 4ms was with constant profiling active 19:17 < bridge_> i dunno how many spans it opens, but must be around 100 19:17 < bridge_> External profiler? 19:17 < bridge_> no 19:18 < bridge_> i use tracing crate 19:18 < bridge_> and some custom logic 19:18 < bridge_> Ah 19:18 < bridge_> good crate 19:18 < bridge_> well mangohud can show 0.01% lows 19:18 < bridge_> well mangohud can show 0.1% lows 19:18 < bridge_> But that's not really accurate enough 19:18 < bridge_> for 1000+ frames 19:19 < bridge_> How granular are you? Do you have per function tracing? 19:19 < bridge_> It can't however record what actually happened with that one outlier frame 19:19 < bridge_> every function that is annotated with instrument opens a span that tracks the start time and the end time 19:19 < bridge_> in a tree-like fashion 19:20 < bridge_> And how fine grained are you with annotations? 19:20 < bridge_> I added more and more to the code base, to debug my problem, it's already pretty fine grained 19:20 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421547136713101526/image.png?ex=68d96e70&is=68d81cf0&hm=03fb84373af6271268ea2f9b286e2800d54887d73d002d4005666778fd0ba9c7& 19:21 < bridge_> I don't annotate external functions ofc, but many if not most of my rendering and update code 19:21 < bridge_> Like if every function were annotated it should degrade to callgrind 19:21 < bridge_> This is pretty fine actually. Much more than expected 19:22 < bridge_> I wonder if there is something similar to tracing in C++ 19:29 < bridge_> @sollybunny why dont u ask here 19:29 < bridge_> i dunno but i always disliked github being a place for questions 19:29 < bridge_> that pings all ppl that watch ddnet repo 19:32 < bridge_> its not really a question 19:32 < bridge_> you have to draw quads 19:32 < bridge_> i know how to add things to draw triangles 19:32 < bridge_> but adding it would be a pr without an issue 19:33 < bridge_> ❓ 19:33 < bridge_> xD 19:33 < bridge_> yes we can! next question? 19:33 < bridge_> I am like super confused 19:34 < bridge_> look at all instances of `DRAWING_TRIANGLES` 19:34 < bridge_> I think he wants to map Triangles like quads 19:34 < bridge_> you never actually get to put triangles into code 19:34 < bridge_> no 19:34 < bridge_> you always have to draw quads 19:34 < bridge_> which is ineffecient 19:34 < bridge_> cuz a quad makes 2 triangles 19:34 < bridge_> so to draw a triangle you have to draw 2 triangles 19:35 < bridge_> ah I get it, true 19:35 < bridge_> wait then how does alpha work.. 19:35 < bridge_> there might be detection for this 19:35 < bridge_> (which is still ineffecient but better) 19:35 < bridge_> i cant find said detection though 19:35 < bridge_> oh ok 19:36 < bridge_> waiiit 19:36 < bridge_> the only thing would be checking if the 4th corner equals another in position 19:37 < bridge_> there is actually some code 19:37 < bridge_> specific to DRAWING_TRIANGLES 19:37 < bridge_> ```cpp 19:37 < bridge_> if(m_Drawing == DRAWING_QUADS) 19:37 < bridge_> { 19:37 < bridge_> if(g_Config.m_GfxQuadAsTriangle && !m_GLUseTrianglesAsQuad) 19:37 < bridge_> { 19:37 < bridge_> PrimType = CCommandBuffer::PRIMTYPE_TRIANGLES; 19:37 < bridge_> PrimCount = NumVerts / 3; 19:37 < bridge_> } 19:37 < bridge_> else 19:37 < bridge_> { 19:37 < bridge_> PrimType = CCommandBuffer::PRIMTYPE_QUADS; 19:37 < bridge_> PrimCount = NumVerts / 4; 19:37 < bridge_> } 19:37 < bridge_> } 19:37 < bridge_> else if(m_Drawing == DRAWING_LINES) 19:37 < bridge_> { 19:37 < bridge_> PrimType = CCommandBuffer::PRIMTYPE_LINES; 19:37 < bridge_> PrimCount = NumVerts / 2; 19:37 < bridge_> } 19:37 < bridge_> else if(m_Drawing == DRAWING_TRIANGLES) 19:37 < bridge_> { 19:37 < bridge_> PrimType = CCommandBuffer::PRIMTYPE_TRIANGLES; 19:37 < bridge_> PrimCount = NumVerts / 3; 19:37 < bridge_> } 19:37 < bridge_> ``` 19:37 < bridge_> no clue how it works 19:37 < bridge_> how do i draw a triangle then 19:37 < bridge_> if you are always passing 4 verts but skipping one thats jank 19:38 < bridge_> no that doesnt actually do anything 19:38 < bridge_> look at QuadsDrawFreeform 19:38 < bridge_> the triangle bit just adds 2 triangles 19:38 < bridge_> your question is about odd number of triangles 19:38 < bridge_> not about triangles or not 19:39 < bridge_> or generally triangles unconnected to each others 19:39 < bridge_> `TrianglesBegin` only allows the caller to manually draw a quad as triangles, it doesn't change that we only allow drawing quads 19:39 < bridge_> my questions are now also 19:39 < bridge_> * how do quads with a repeated point not cause incorrect alpha and 19:40 < bridge_> * why do we have BeginTriangles if the only thing it does is force triangles 19:40 < bridge_> the opriginal "qeustion" is i wana draw triangles pleas 19:40 < bridge_> the original "qeustion" is i wana draw triangles pleas 19:40 < bridge_> the original "question" is i wana draw triangles pleas 19:41 < bridge_> You can do that by modifying the code. No need to add it to ddnet code unless there's a use case in ddnet code 19:41 < bridge_> wait 19:42 < bridge_> i have code somewhere 19:42 < bridge_> corners are currently drawn as quads 19:42 < bridge_> which isnt great 19:42 < bridge_> but not that bad either 19:42 < bridge_> Makes no difference if you use quads or triangles, does it? 19:43 < bridge_> ok cant find xDD 19:44 < bridge_> i think i once added that for me somewhere 19:44 < bridge_> you draw an extra triangle per segment 19:44 < bridge_> `TrianglesBegin` is only used for `CRenderMap::ForceRenderQuads` and for the color selector bars in the skin settings 19:44 < bridge_> or feels like you should 19:44 < bridge_> Then just draw half the segments so you have the same total 19:44 < bridge_> but in both here and tclient trails it doesnt seem to have overdraw 19:44 < bridge_> which is very messy 19:45 < bridge_> Not really 19:46 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421553706188673104/image.png?ex=68d9748e&is=68d8230e&hm=51d3e8aa9cde1f999e76ebfb6600f97d3aa8c3f358f62d0aadb801d70488021d& 19:47 < bridge_> and you still draw an extra triangle if its odd 19:47 < bridge_> but in both here and tclient trails it doesnt seem to have overdraw (they used triangles by accident) 19:47 < bridge_> Don't make it odd 19:47 < bridge_> well true.. 19:59 < bridge_> @sollybunny #10984 has conflicts 19:59 < bridge_> https://github.com/ddnet/ddnet/pull/10984 20:01 < bridge_> oop 20:48 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421569259401773187/image.png?ex=68d9830a&is=68d8318a&hm=fac5cb6b0585dacd9f9bbfaf5fd68625ee34488e401b88df0cb9783dd51676c1& 21:45 < bridge_> <12944qwerty> random question, has there been tas libraries made 21:50 < bridge_> [eyes_anger](https://cdn.discordapp.com/emojis/606564021335752766.webp?size=48&name=eyes_anger) 21:51 < bridge_> https://tenor.com/view/dexter-james-doakes-erik-king-stare-staring-gif-1343162792415382650 21:51 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421585054408118394/image.png?ex=68d991c0&is=68d84040&hm=872ca09efb4635ce5a6b0d477b0d84ec05aea16c3e28adcdb9dfd178cc717564& 22:07 < bridge_> Definitely, i am not sure if they're public tho 22:07 < bridge_> Because the community is very afraid of TASes i guess 22:19 < ws-client1> **** @tater 22:19 < ws-client1> **** @totar 22:19 < bridge_> what 22:19 < ws-client1> **** can i dm u pls 22:19 < ws-client1> **** can we meet in fng? 22:19 < bridge_> ok 22:19 < ws-client1> **** ty 22:20 < bridge_> which fng 22:21 < ws-client1> **** the one where i am 22:21 < ws-client1> **** ChillerDragon 22:21 < ws-client1> **** 88.198.96.203:8308 22:23 < bridge_> <12944qwerty> probably not, i couldn't find any 22:24 < bridge_> optimized render a bit 22:24 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421593348216721508/image.png?ex=68d9997a&is=68d847fa&hm=3cb298931565d34d3e91388fbf6433cc910e2a4f4944f82ba039dfb43c0ed2b7& 22:27 < bridge_> <12944qwerty> probably not, i couldn't find any good ones 22:43 < bridge_> the problem is, that you won't get a good answer here, since our leaderboards get sometimes flooded with TASes and we are not encouraging writing them 22:47 < bridge_> <12944qwerty> I want to make a volleyball ai lol 22:47 < bridge_> <12944qwerty> im not trying to beat any records 22:47 < bridge_> <12944qwerty> im not trying to beat any records or anything 22:47 < bridge_> <12944qwerty> limited only to fun maps rn 22:48 < bridge_> <12944qwerty> i did find one thing but it's still in progress 22:49 < bridge_> <12944qwerty> i did find one thing but it's still incomplete and not well maintained 22:54 < bridge_> theres an open source volleyball ai 22:54 < bridge_> Someone trained some rl bot 22:55 < bridge_> that's different from TAS though 22:55 < bridge_> <12944qwerty> aww 22:56 < bridge_> https://discord.com/channels/252358080522747904/295908390956433410/1393538647164456970 22:56 < bridge_> <12944qwerty> nooo that video was released around the same time i started looking into doing this 22:56 < bridge_> oh looks like they also beat aip gores with rl 22:56 < bridge_> PPO op i guess 22:57 < bridge_> u could try training a dm1 bot that u can play against 22:57 < bridge_> <12944qwerty> whats dm1 22:57 < ws-client1> **** a map 22:57 < ws-client1> **** a standard map 22:57 < bridge_> a map for deathmatch mode, one of the original gamemodes in teeworlds 22:58 < bridge_> <12944qwerty> eh 22:58 < bridge_> <12944qwerty> i don't play anything except for ddrace type lol 22:58 < bridge_> soon 22:59 < bridge_> i made a volleyball bot too xd 22:59 < bridge_> but it's op 23:00 < bridge_> <12944qwerty> https://cdn.discordapp.com/emojis/888791516607303743.gif?size=48 23:01 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1421602681671385220/image.png?ex=68d9a22b&is=68d850ab&hm=1247babaca6f93aa64848d88f9496a02247bc2f9460537ff096b3eb3fb2be0c1& 23:01 < bridge_> damn the difference with KVM enabled on qemu 23:02 < bridge_> <12944qwerty> i found twnet_parser python library 23:03 < ws-client1> **** i built that uwu 23:03 < ws-client1> **** if you have any questions let me know but its not fully done yet -.- 23:06 < bridge_> <12944qwerty> oh yeah youd id 23:07 < bridge_> <12944qwerty> oh yeah you did 23:07 < bridge_> <12944qwerty> yeah i know it's not done which is why i didn'jt do the ai two months ago lol 23:07 < bridge_> <12944qwerty> couldn't really understand the snap single stuff and those packets 23:08 < ws-client1> **** ai and datascience with python libs is one of the reasons i built it actually 23:14 < bridge_> :brownbear: got a proper mutex that doesnt spin and parks wakes relevant threads 23:18 < bridge_> <12944qwerty> where is this ws-client1 connected to 23:18 < ws-client1> **** https://chat.zillyhuhn.com/ 23:22 < bridge_> <12944qwerty> wait so is ddnet on 0.6 but custom? 23:24 < bridge_> Yes @12944qwerty 23:24 < bridge_> <12944qwerty> .. 23:24 < bridge_> But both ddnet server and client can also speak 0.7 plus ddnet extensions 23:25 < bridge_> It’s just not the default 23:26 < bridge_> <12944qwerty> why gitlab 23:27 < bridge_> Only repo I have there actually 23:27 < bridge_> To try it out and not have everything on GitHub 23:27 < bridge_> Because GitHub does randomly ban accounts 23:27 < bridge_> And is owned by Microsoft 23:27 < bridge_> I don’t like how dependent I am on this proprietary piece of random bans 23:30 < bridge_> <12944qwerty> never heard of a random ban there before 23:31 < bridge_> <12944qwerty> imm try this twnetparsing stuff again, see why i stopped i forgot lol 23:32 < bridge_> a huge problem is that snaps are not done yet 23:32 < ws-client1> **** what are you working on @12944qwerty ? 23:33 < bridge_> <12944qwerty> imma continue on the volleyball ai still 23:33 < ws-client1> **** i got like 3 gh accounts banned 23:33 < ws-client1> **** and swarfey too! 23:33 < bridge_> <12944qwerty> yeah, that's where i stopped yeah 23:33 < ws-client1> **** !ping 23:33 < chillerbot> pong 23:33 < ws-client1> **** !remind add snaps to twnet_parser 23:33 < chillerbot> Helo ChillerDragon I will remind you at Sun Sep 28 2025 23:33:42 GMT+0200 (Central European Summer Time) about your matter again. 23:34 < ws-client1> **** wait i wanna do it first thing in the morning 23:34 < ws-client1> **** !remind 500 add snaps to twnet_parser 23:34 < chillerbot> Helo ChillerDragon I will remind you at Sun Sep 28 2025 07:54:32 GMT+0200 (Central European Summer Time) about your matter again. 23:36 < bridge_> <12944qwerty> lmao 23:50 < ws-client1> **** @Teero omg i got it to work cute leia-uwu coded toggle record button for me xd 23:50 < ws-client1> **** https://github.com/leia-uwu/obs-wayland-hotkeys/commit/28a2410d73b2e4f813af8777f88764a383a7fa53 23:50 < ws-client1> **** i love open source 23:50 < ws-client1> **** she seems to be the coding socks kinda gal 23:56 < ws-client1> **** obs, vlc and wireshark all seems to have such great plugin support for loading .so files 23:56 < ws-client1> **** i need that for ddnet so bad