00:06 < bridge> <lsdglsgdflk> pls help
00:06 < bridge> <lsdglsgdflk> https://cdn.discordapp.com/attachments/293493549758939136/1274489637221564476/image.png?ex=66c27078&is=66c11ef8&hm=dc7cf25eea43d7aef78d45fa688ca60c94cabb12627dc081e6ff69bb2a942893&
00:07 < bridge> <lsdglsgdflk> https://cdn.discordapp.com/attachments/293493549758939136/1274489718024966298/image.png?ex=66c2708b&is=66c11f0b&hm=116f2451a293f458dcd209ada17fab8eb59c4af3c78000464cc2729f823ecedc&
00:07 < bridge> <lsdglsgdflk> https://cdn.discordapp.com/attachments/293493549758939136/1274489744839016528/image.png?ex=66c27092&is=66c11f12&hm=a3fbb971b1001b9b7f93324555b0ad3a8bf12f2b8606403ff5203952e84a519d&
00:07 < bridge> <lsdglsgdflk> https://cdn.discordapp.com/attachments/293493549758939136/1274489907162910812/image.png?ex=66c270b8&is=66c11f38&hm=2f5488420b7f1234524f43e556d63680b45946116efed232f594a0839ec2eda1&
00:07 < bridge> <lsdglsgdflk> https://cdn.discordapp.com/attachments/293493549758939136/1274489907364102225/image.png?ex=66c270b8&is=66c11f38&hm=e6f338e4a9ad54d74ed8d177f381b09bdeb308d8745018648800114b84b0aa4d&
00:10 < bridge> <meloƞ> what version of ddnet are you using? steam? steam_nightly? selfbuild / downloaded from website?
00:10 < bridge> <meloƞ> 
00:10 < bridge> <meloƞ> this is a problem that should be fixed by https://github.com/ddnet/ddnet/pull/8725
00:10 < bridge> <lsdglsgdflk> cuctus client
00:10 < bridge> <lsdglsgdflk> i can try in lasted
00:10 < bridge> <meloƞ> try latest please yes
00:10 < bridge> <lsdglsgdflk> ok
00:12 < bridge> <lsdglsgdflk> nothing
00:12 < bridge> <lsdglsgdflk> https://cdn.discordapp.com/attachments/293493549758939136/1274491002748534795/image.png?ex=66c271bd&is=66c1203d&hm=d6b7bee5f531f30eb2996fc80febd07f0c720402c386c7522bddb5b2bf1a00cc&
00:12 < bridge> <lsdglsgdflk> https://ddnet.org/downloads/
02:09 < bridge> <zhn> did u allow connections for tcp too?
02:16 < bridge> <zhn> btw how do old server react on invalid values?
02:16 < bridge> <zhn> btw how do old servers react on invalid values?
04:39 < ws-client> <ChillerDragon> @patiga yea thats the easy solution i also thought about that. But then its one big ass messy file and the script that checks the coverage has to change.
04:40 < ws-client> <ChillerDragon> @robyt3 but why do you need to say has_finishes false then? If kog sends no finishes it would just display no flags anyways right?
04:41 < ws-client> <ChillerDragon> @patiga what do you think of some selfrolled preprocessor? :D keep it multiple files in the source code and merge then all together on release?
06:34 < ws-client> <ChillerDragon> oke @patiga i rewrote the check script to support the single file format https://gitlab.com/Patiga/twmap-py/-/merge_requests/5
08:41 < bridge> <chillerdragon> smol prs get merged so fast. I wonder how to add actual features without making big prs. I tried to make https://github.com/ddnet/ddnet/pull/8618 as small as possible and it still became a stale 400 loc pr .\_.
08:59 < ws-client> <ChillerDragon> omg im thinking about ditching gnome i just cant cope with the alt+tab bug anymore. I have to refresh my entire gnome session every 5minutes
09:58 < bridge> <milkeeycat> TIL rust has such syntax
09:58 < bridge> <milkeeycat> ```rust
09:58 < bridge> <milkeeycat> #[derive(Default)]
09:58 < bridge> <milkeeycat> struct Foo {
09:58 < bridge> <milkeeycat>     bar: usize,
09:58 < bridge> <milkeeycat>     baz: usize,
09:58 < bridge> <milkeeycat> }
09:58 < bridge> <milkeeycat> 
09:58 < bridge> <milkeeycat> let foo = Foo {
09:58 < bridge> <milkeeycat>     bar: 10,
09:58 < bridge> <milkeeycat>     ..Default::default()
09:58 < bridge> <milkeeycat> };
09:58 < bridge> <milkeeycat> ```
10:35 < bridge> <robyt3> You can have no finishes yet but finishes are allowed, i.e. if you are a new player. If `has_finishes` is set to true this also means the button to show finishes will be shown in the server browser, which should also be shown if you have no finishes yet.
11:29 < bridge> <patiga> fixed now with python twmap 0.6.1 :)
11:30 < ws-client> <ChillerDragon> does it work for u?
11:33 < bridge> <patiga> yep!
11:33 < ws-client> <ChillerDragon> works good for me so far @patiga btw we could also add doc comments to the .pyi file https://zillyhuhn.com/cs/.1723973595.png
11:34 < bridge> <patiga> yea, many could be copied over from the rust code 🥲
11:34 < ws-client> <ChillerDragon> i mean the rust code has all the information also for the types
11:35 < ws-client> <ChillerDragon> im sure one day maturin will auto generate it all
11:36 < bridge> <patiga> yea, that might take a while tho
11:36 < ws-client> <ChillerDragon> yep thats why we hacked it in for now
11:36 < ws-client> <ChillerDragon> progressive hackers
11:36 < bridge> <patiga> https://github.com/PyO3/pyo3/issues/2454
11:36 < ws-client> <ChillerDragon> but yea epic that it all works now <:poggers2:1008007455936094328>
11:37 < ws-client> <ChillerDragon> already liked shared and subscribed with 60 of my gh accs https://zillyhuhn.com/cs/.1723973817.png
11:37 < bridge> <patiga> yea its very damn helpful already, thanks to you ^^
11:55 < bridge> <chillerdragon> When turn off vpn bans?
11:55 < bridge> <Jupstar ✪> as soon as 0.7 is unmerged
11:56 < bridge> <chillerdragon> Yikes
11:56 < bridge> <chillerdragon> Then at least hire more admins and actively monitor every ban even the ones that are not reported on discord
11:56 < bridge> <Jupstar ✪> why are you no admin
11:56 < bridge> <chillerdragon> I don’t ban enough
11:56 < bridge> <Jupstar ✪> excuses
11:57 < bridge> <chillerdragon> I got removed as a moderator because I did not ban enough people xd
11:57 < bridge> <chillerdragon> Facts
11:57 < bridge> <Jupstar ✪> how many ppl has robyte banned?
11:57 < bridge> <Jupstar ✪> ingame
11:57 < bridge> <chillerdragon> Robyte ingame xd
11:57 < bridge> <Jupstar ✪> see, only excuses xD
11:58 < bridge> <chillerdragon> Ok make me admin I’ll turn vpn protection off my self axaxax
11:58 < bridge> <Jupstar ✪> ok, you get my vote
11:58 < bridge> <chillerdragon> And delete bans.cfg
11:58 < bridge> <Jupstar ✪> prision break
11:59 < bridge> <chillerdragon> Give rcon to pink rat and sp someone
12:18 < bridge> <heinrich5991> what parts of the code crashed with large numbers of tees?
12:20 < bridge> <Jupstar ✪> ah well crash is a bad word. it couldnt keep up with generating new ticks anymore
12:20 < bridge> <Jupstar ✪> so basically endless loop
12:20 < bridge> <heinrich5991> ah, I see
12:28 < bridge> <fokkonaut> Since when does middle mouse button reset selection windows, like communities, countries or types in ddnet filter
12:28 < bridge> <fokkonaut> just figured this out :o
12:33 < bridge> <vowchik56712> ecnm heccrbt ?
12:34 < bridge> <vowchik56712> есть русские ?
12:35 < bridge> <chillerdragon> da
12:35 < bridge> <vowchik56712> ееееееееееееееее
12:36 < bridge> <heinrich5991> russian → #off-topic
12:38 < bridge> <milkeeycat> will it work if i start a ddnet server with fifo file, and then make a script in rust which will open that file and write data to it
12:38 < bridge> <milkeeycat> will it execute commands?
12:39 < bridge> <chillerdragon> Should work
12:40 < bridge> <milkeeycat> then it's probably my skill issues again :feelsbadman:
12:41 < bridge> <chillerdragon> catto take a coding break and teach the ruski in \#off-topic how to do ddnet gaming
12:46 < bridge> <learath2> https://x.com/da_wamwoowam/status/1824872498363523537 the zoomers have arriven
12:48 < bridge> <heinrich5991> what do I see there?
12:48 < bridge> <heinrich5991> discord opening a lot of powershell/console processes?
12:49 < bridge> <learath2> Look at the rest of the thread, someone figured out wtf discord was doing
12:50 < bridge> <Jupstar ✪> give tl;dr
12:50 < bridge> <Jupstar ✪> i dont have x account
12:51 < bridge> <Jupstar ✪> i was banned without any reason xD
12:51 < bridge> <egyt> That's why we should collectively stop using proprietary software
12:52 < bridge> <heinrich5991> collective action doesn't work. the best option is to make the non-proprietrary software work as well
12:52 < bridge> <heinrich5991> I think you've even tried using matrix for a while. what were the showstoppers?
12:52 < bridge> <egyt> none
12:53 < bridge> <learath2> Discord uses some shit library, which was calling powershell instead of using the windows api, scanning almost a thousand folders looking for `nvidia-smi.exe`
12:54 < bridge> <Jupstar ✪> and i bet in that process it killed ddnet
12:54 < bridge> <Jupstar ✪> and we wonder why ddnet crashes
12:54 < bridge> <Jupstar ✪> xd
12:54 < bridge> <heinrich5991> you seem to be using discord now though, why do you prefer that?
12:55 < bridge> <learath2> For software like that, the main showstopper is that my friends aren’t using it. Network effect really trumps everything
12:56 < bridge> <learath2> I would have gladly stuck to irc and mumble
12:56 < bridge> <egyt> I seem, because I logged into Discord, which I do, like, 3 times a day at max. Before that I had Discord tab always open in the browser, so I was chronically online. Again, now I am not, at least if we are talking only about Discord.
12:56 < bridge> <heinrich5991> ah. makes sense. unfortunately discord isn't a gatekeeper under the DMA, so we probably won't be able to contact them from matrix
12:56 < bridge> <heinrich5991> ah. makes sense. unfortunately discord isn't identified as a gatekeeper under the DMA, so we probably won't be able to contact them from matrix
12:56 < bridge> <learath2> https://youtu.be/ioCSv08RdhU this is a trick I hadn’t seen yet
12:57 < bridge> <learath2> Very long line with a secret payload at the end abusing the fact that python respects semicolons
12:57 < bridge> <egyt> Also, I don't use the Matrix bridge because I don't have to chat here in the first place, because, well, my remake of the translation is already finished, and there is not much I can contribute to anyway
13:00 < bridge> <egyt> I was in LibreGaming Matrix bridge, for less than two days, won't disclose the reasons of me leaving because no one asked
13:00 < bridge> <egyt> https://cdn.discordapp.com/attachments/293493549758939136/1274684379586625656/ToHeroesGlory.png?ex=66c325d6&is=66c1d456&hm=4895cd7a381e0b302171396294cc792dc51270e13a2b6722665136487ac112d9&
13:00 < bridge> <egyt> I was in LibreGaming Matrix bridge, for less than two days, won't disclose the reasons of me leaving because no one asked
13:01 < bridge> <heinrich5991> damn, discord doesn't adhere to my adblocker (obviously), youtube ads are annoying
13:01 < bridge> <Ewan> @egyt i highly encourage you to find a project of any kind
13:01 < bridge> <Ewan> never stop the grind
13:01 < bridge> <learath2> Hmm, I wonder how much of chrome these modern desktop apps embed, could you install ublock on it? 😄
13:02 < bridge> <heinrich5991> I heard chrome tries to make ublock not work
13:02 < bridge> <learath2> Ofc
13:02 < bridge> <egyt> why
13:02 < bridge> <learath2> Manifest v3 is upon us
13:04 < bridge> <egyt> Like, technically I can go and contribute to Cinnamon, because for now this is where I saw the most problems with translations, but that's too big of a project. Same for Kdenlive, and there is not much else that has anything I could really complain about
13:04 < bridge> <milkeeycat> maybe it will but the program blocks on line to open the file
13:05 < bridge> <egyt> Like, technically I can go and contribute to Cinnamon, because for now this is where I saw the most problems with translations, but that's too big of a project (same for Kdenlive, by the way), and there is not much else that has anything I could really complain about
13:06 < bridge> <egyt> oh, almost forgot: I corrected the Ukrainian translation of AAAAXY, now I am waiting for the next release so I can make a toot about it
13:08 < bridge> <heinrich5991> nice video
13:08 < bridge> <chillerdragon> When? Since free speech Elon took over its ez to get unbanned. Just write email saying pls unban and musk him self will send you a hand written sorry letter. Very pog times.
13:09 < bridge> <Jupstar ✪> i dunno, like 2-3 years ago
13:09 < bridge> <egyt> R.I.P. Nitter, btw
13:10 < bridge> <heinrich5991> there are still working instances
13:10 < bridge> <Jupstar ✪> there still are nitter alternatives, but they get raid limited way too often
13:11 < bridge> <Jupstar ✪> my life without x is not worse, so why care xd
13:11 < bridge> <Jupstar ✪> elon did me a favor. a friend stopped using it xD
13:11 < bridge> <heinrich5991> @egyt check out https://github.com/zedeus/nitter/wiki/Instances
13:11 < bridge> <Jupstar ✪> he always posted x stuff all day
13:13 < bridge> <Kaffeine> UX is still terrible. Matrix still does not support images with caption, like it is year 2004.
13:14 < bridge> <egyt> well, I was looking into [this gif](https://giphy.com/embed/v4gkbFg2z2QOANFq45) and it seems like you can't view hashtags on Ex-Twitter without an account
13:15 < bridge> <Kaffeine> Maybe it is not a stopper, as someone still use IRC but (as an IM developer contributed to four different protocol clients) I have to say that Matrix does not meet the modern user expectations.
13:15 < bridge> <Jupstar ✪> do you use element.io?
13:15 < bridge> <egyt> To whom this question is addressed?
13:16 < bridge> <chillerdragon> Yep then you have good chances of getting instant unban no questions asked if you send a mail
13:16 < bridge> <Jupstar ✪> matrix has so many clients, nheko is kinda similar to telegram, but not really discord
13:16 < bridge> <Jupstar ✪> ok elon, i write a mail to you
13:17 < bridge> <Kaffeine> ATM yes. But the spec itself does not support captions, so it does not really matter: https://github.com/matrix-org/matrix-spec/issues/242
13:17 < bridge> <chillerdragon> We apologize for the inconvenience. You will be unbanned by our staff shortly. UwU
13:17 < bridge> <heinrich5991> chillerdragon: I heard you can get banned on twitter for saying the wrong words or annoying elon musk
13:18 < bridge> <heinrich5991> not sure if I'd call that "free speech elon"
13:18 < bridge> <Jupstar ✪> wow is twitter like ddnet discord now?
13:18 < bridge> <Jupstar ✪> xd
13:18 < bridge> <chillerdragon> What are wrong words
13:18 < bridge> <chillerdragon> From what I hear and experienced with my account lots of unbanning happend under king elon
13:18 < bridge> <Jupstar ✪> lord elon, free us from our pain, amen
13:19 < bridge> <chillerdragon> Of course you can’t say anything against dodge coin without risking a life ban. But that seems reasonable.
13:19 < bridge> <heinrich5991> https://x.com/elonmusk/status/1671370284102819841
13:20 < bridge> <heinrich5991> and I think he banned the person tweeting the adsb data of his private jet
13:21 < bridge> <Jupstar ✪> yeah matrix started fast and then slowed down so hard..
13:21 < bridge> <Jupstar ✪> i feel like element io always doesnt get stuff finished anymore.
13:21 < bridge> <Jupstar ✪> 
13:21 < bridge> <Jupstar ✪> voice channels are stuff are beta since like 2 years already
13:21 < bridge> <Jupstar ✪> yeah matrix started fast and then slowed down so hard..
13:21 < bridge> <Jupstar ✪> i feel like element io almost doesnt get stuff finished anymore.
13:21 < bridge> <Jupstar ✪> 
13:21 < bridge> <Jupstar ✪> voice channels are stuff are beta since like 2 years already
13:23 < bridge> <egyt> I tried so hard and got so far
13:23 < bridge> <egyt> https://cdn.discordapp.com/attachments/293493549758939136/1274690120544550964/7ff62de6d05ef4a4.png?ex=66c32b2f&is=66c1d9af&hm=6a8ab629ad9d43e237f2368ff9fa354f49c810a232e690ac1aaf7e89e893d703&
13:24 < bridge> <chillerdragon> Idk what adsb is. But was „his“ Elon or the tweeter? So someone doxed Elon?
13:24 < bridge> <heinrich5991> can you give an example?
13:24 < bridge> <heinrich5991> no, adsb is public data
13:24 < bridge> <heinrich5991> the location of all airplans in air is always known, because that's required by law
13:24 < bridge> <heinrich5991> can you give an example URL I can try?
13:25 < bridge> <chillerdragon> Including the owner?
13:25 < bridge> <heinrich5991> the location of all airplanes in air is always known, because that's required by law
13:25 < bridge> <egyt> so, uh, I guess no "I discovered the origin of <prompt>" videos from me
13:25 < bridge> <heinrich5991> well, if you own a private jet, then it's probably you flying it ^^
13:25 < bridge> <egyt> https://nitter.privacydev.net/search?f=users&q=nam_mac
13:26 < bridge> <chillerdragon> Woah so every person can figure out whos private jet is where in real time???
13:26 < bridge> <chillerdragon> Ultimate dox
13:26 < bridge> <heinrich5991> only while in the air
13:27 < bridge> <chillerdragon> Im against moderation but temporary suspension for targeted harrasment sounds okayish
13:27 < bridge> <heinrich5991> seems like you tried user search. it seems to work on https://xcancel.com/search?f=users&q=nam_mac, but why do you want to search instead of viewing specific people's profiles?
13:27 < bridge> <heinrich5991> what? that's all DDNet does
13:28 < bridge> <chillerdragon> Referring to the The elon cisgender tweet
13:28 < bridge> <heinrich5991> chillerdragon: you're okay with "temporary suspensions" like bans, that ddnet does?
13:28 < bridge> <chillerdragon> ddnet does way worse stuff
13:28 < bridge> <heinrich5991> interesting news
13:28 < bridge> <chillerdragon> It’s non free. I don’t feel safe in ddnet tbh
13:29 < bridge> <heinrich5991> it seems you're not pro free speech but pro your speech ^^
13:29 < bridge> <chillerdragon> -.-
13:29 < bridge> <chillerdragon> Im saying its not too bad for something like twitter.
13:30 < bridge> <egyt> you asked to give me an example URL, I gave you one, now you are complaining!
13:30 < bridge> <egyt> /s
13:30 < bridge> <heinrich5991> I gave you a working alternative ^^
13:30 < bridge> <Jupstar ✪> zillonhuhsk
13:30 < bridge> <chillerdragon> If you ask me there should be no bans also on twitter. But I have the feeling what Elon does is pretty chilled compared to how it was before and is in other places
13:30 < bridge> <heinrich5991> I think it's mostly other bans that are applied
13:31 < bridge> <chillerdragon> Shift from what to what?
13:31 < bridge> <heinrich5991> you seem to be more okay with these bans. but it's weird to call it "free speech" when it's just different opinions that are banned
13:31 < bridge> <egyt> ooh, hashtag search works
13:31 < bridge> <chillerdragon> Wait which opinions are banned now?
13:31 < bridge> <chillerdragon> And which where before?
13:31 < bridge> <chillerdragon> And which were before?
13:32 < bridge> <Jupstar ✪> let's try it out: 0.7 sucks
13:32 < bridge> <chillerdragon> Not here -.-
13:32 < bridge> <chillerdragon> On twitter I mean
13:32 < bridge> <Jupstar ✪> post it there
13:32 < bridge> <Jupstar ✪> under your name
13:32 < bridge> <Jupstar ✪> and take a screenshot for me pls
13:33 < bridge> <heinrich5991> https://en.wikipedia.org/wiki/Twitter_suspensions
13:33 < bridge> <heinrich5991> > In November 2022, Musk stated that accounts that engage in impersonation without a "clear" parody label would be permanently suspended without warning.[28]
13:33 < bridge> <heinrich5991> > 
13:33 < bridge> <heinrich5991> > Many anti-fascist activists were purged from Twitter in November 2022 after Musk outsourced content moderation decisions to the platform's users, notably inviting right-wing journalist Andy Ngo to report anti-fascist accounts directly to him. Among those suspended were a group that provides armed security to LGBT events, accounts parodying Elon Musk, and a Palestinian news outlet known for criticizing the Israeli military.[29][30][31]
13:34 < bridge> <chillerdragon> Okay that I didn’t know
13:34 < bridge> <Jupstar ✪> chiller do you like elon?
13:34 < bridge> <chillerdragon> Yes I think he is fun
13:34 < bridge> <Jupstar ✪> elon even got trump to say electric vehicles are good xD
13:35 < bridge> <heinrich5991> link?
13:35 < bridge> <chillerdragon> Trump is also funny
13:35 < bridge> <chillerdragon> So is the Facebook lizard
13:35 < bridge> <egyt> [citation needed]*
13:35 < bridge> <chillerdragon> I also think Andrew Tate is entertaining
13:36 < bridge> <learath2> That's how everyone is 🙃  There are no real free speech absolutists
13:36 < bridge> <devinci24> He said that, but I don't see where's the issue.
13:36 < bridge> <devinci24> You can think electric vehicles are good and not wanting them because you don't have the infrastructure to accomodate them / prefer gaz ones because of commodity
13:36 < bridge> <learath2> Just like there are no real libertarians
13:36 < bridge> <Jupstar ✪> this isnt about bashing or smth
13:36 < bridge> <devinci24> Imo on twitter nowadays you can say almost everything.
13:36 < bridge> <Jupstar ✪> it's just that trump is the last person to publicly support it without elon xD
13:36 < bridge> <Jupstar ✪> i doubt his voters are big EV fans
13:37 < bridge> <heinrich5991> no, not everyone pretends they like free speech
13:37 < bridge> <devinci24> What would you consider milei then?
13:37 < bridge> <learath2> That's how "every freespeech enjoyer" is, would be more accurate
13:37 < bridge> <Jupstar ✪> chillerdragon: ok zillonhuhsk
13:37 < bridge> <chillerdragon> When I’m asked stuff like „do you like elon“ it makes me feel unsafe. Like there is that common sense that everyone should dislike all the powerful people because they did bad decisions at some point
13:38 < bridge> <Jupstar ✪> well you aint getting rich without others being poor xd
13:38 < bridge> <chillerdragon> Do you like Elon Jupstar ✪ ?
13:38 < bridge> <learath2> Bog standard right wing populist acting libertarian when it suits him, slave to the IMF behind closed doors
13:38 < bridge> <Jupstar ✪> i think it's good that he made EVs public aware in europe and USA.
13:38 < bridge> <Jupstar ✪> 
13:38 < bridge> <Jupstar ✪> But otherwise i think i dislike him
13:39 < bridge> <egyt> also, uh, too bad it is NFT-related
13:39 < bridge> <egyt> also, uh, too bad it is NFT-related
13:39 < bridge> <egyt> spoils it for me
13:39 < bridge> <chillerdragon> I enjoy watching him talking about rockets sometimes
13:39 < bridge> <devinci24> Fr? I think you are completely wrong but oh well.
13:39 < bridge> <chillerdragon> Why dislike
13:41 < bridge> <learath2> Well the 44b$ bailout the IMF approved for Argentina tells me exactly what sort of politician he is, I don't even need to see anything else. The IMF would never fund anything but a neoliberal regime
13:42 < bridge> <chillerdragon> Ay I got trapped there with false accusations. Of course I feel more at ease of I know I won’t be banned while others are. But in general I would say that I actually appreciate decentralized moderation and don’t mind opposite opinions not being censored.
13:43 < bridge> <chillerdragon> I like censoring and admin intervention to remove leaks and doxing information.
13:44 < bridge> <chillerdragon> Ay I got trapped there with false accusations. Of course I feel more at ease if I know I won’t be banned while others are. But in general I would say that I actually appreciate decentralized moderation and don’t mind opposite opinions not being censored.
13:44 < bridge> <Jupstar ✪> mh:
13:44 < bridge> <Jupstar ✪> - I guess from what i know i disagree with many of his philosophical stand points about how society might look like
13:44 < bridge> <Jupstar ✪> - He talks too much shit/lies: Saying a mars mission in 2024 will happen etc.
13:44 < bridge> <Jupstar ✪> - He knows less than he makes it look like. Very noticable when he joined X and acted as if he is some cool hipster developer xD
13:44 < bridge> <Jupstar ✪> 
13:44 < bridge> <Jupstar ✪> 
13:44 < bridge> <Jupstar ✪> yeah dunno the list is long
13:44 < bridge> <devinci24> They are just betting on argentina's monetary growth. I would be really surprised if he becomes a "slave" to them any time soon. He advocates for free market and minimal intervention and that's what he is doing.
13:44 < bridge> <Jupstar ✪> i have many half finished opinions on him, bcs he changes his views every 2nd week
13:44 < bridge> <chillerdragon> Which philosophical standpoints
13:44 < bridge> <learath2> If you are logically and morally consistent, traps shouldn't really work. Either there is a fallacy in the trap or a failing in your thought system
13:45 < bridge> <Jupstar ✪> like when he talks about freedom, or how the earth will look like in a few years etc.
13:45 < bridge> <learath2> Elon's X censors less than the old twitter, but he still censors speech that he doesn't enjoy
13:45 < bridge> <chillerdragon> Yes of course he is a business man. Knows little acts big. Makes promises he can’t hold. That’s common for CEO type people I also don’t like it too much
13:45 < bridge> <meloƞ> AS a vegan i cant like someone laughing at a drowned deer
13:45 < bridge> <devinci24> Like? I'm not his biggest fan but he seems mostly coherent
13:45 < bridge> <meloƞ> https://cdn.discordapp.com/attachments/293493549758939136/1274695791482634301/image0.gif?ex=66c33077&is=66c1def7&hm=fd16bfdbaa3fa1238af2de0b7c3a775dbbf2f855f269a923f60be6311777eee1&
13:46 < bridge> <Jupstar ✪> yeah but it doesnt make it better that other CEOs also do it xd
13:46 < bridge> <chillerdragon> Heinrich just said that without it making sense.
13:46 < bridge> <devinci24> Maduro's account is still alive I think? And that's like his complete opposite
13:46 < bridge> <Jupstar ✪> coherent in what aspect?
13:46 < bridge> <Jupstar ✪> 
13:46 < bridge> <Jupstar ✪> driving cars in tunnels under a city? flying to mars in 2024? having tesla semi 2 years ago?
13:46 < bridge> <chillerdragon> Idk wat u mean xd
13:47 < bridge> <devinci24> In that he doesn't change his opinion. He has been saying stuff like that for AGES
13:47 < bridge> <Jupstar ✪> i dunno when he joined the bitcoin hype he suddenly invented 2000 new crypto currencies xd
13:48 < bridge> <Jupstar ✪> "tesla will accept bitcoins"
13:48 < bridge> <Jupstar ✪> suddenly he likes dodge coins
13:48 < bridge> <Jupstar ✪> attention seeker and ppl give him the attention
13:48 < bridge> <Jupstar ✪> thus he has power to influence such stuff
13:48 < bridge> <Jupstar ✪> in an unhealthy way IMO
13:49 < bridge> <devinci24> Let's just say that doesn't really bother me. He is an opportunist like every business man is.
13:50 < bridge> <devinci24> On new technologies
13:50 < bridge> <Jupstar ✪> he never invented any technology
13:50 < bridge> <Jupstar ✪> so much must be said
13:50 < bridge> <Jupstar ✪> he just sells them better xD
13:50 < bridge> <devinci24> I don't think he tried to scam everyone like logan paul did countless times
13:50 < bridge> <devinci24> Yy, i said business man not engineer
13:51 < bridge> <Jupstar ✪> but anyway, i dont hate him, as said. many half finished opinions
13:51 < bridge> <Jupstar ✪> it's not clear to me what exactly his goals are. it seems he enjoys attention a lot, bcs otherwise he wouldnt post so much random stuff on twitter that gets attention
13:51 < bridge> <Jupstar ✪> similar to donald trumps
13:51 < bridge> <Jupstar ✪> similar to donald trump
13:51 < bridge> <chillerdragon> If he would ask me if I want to sit on his table and ride his jet. Id say yes.
13:51 < bridge> <Jupstar ✪> you also dunno exactly what trump stands for
13:53 < bridge> <learath2> IMF loans are conditional. You need to run your economy a certain way to be approved for them (you may have noticed Milei ram 2 economic reform bills very recently). If you fail to pay them back there is austerity waiting for you. Human Rights Watch classifies some of IMFs austerity measures on the verge of undermining human rights.
13:53 < bridge> <learath2> 
13:53 < bridge> <learath2> How is that economic freedom? How is it a "free market" when you are forced to privatize anything your government owns while you are extremely undervalued? "Attracting foreign investment" by selling off your countries assets is just the "western" world getting stuff for cheap
13:53 < bridge> <devinci24> This is my pov: he has some beliefs, which he thinks are good ones, so he tries to share them as much as he can.
13:53 < bridge> <devinci24> While having some big tech companies because money good idk xd
13:55 < bridge> <learath2> Anyway, we are both young enough to see the results of Milei's actions. Either he is right and this IMF rescue program will go well unlike all the ones that came before, or it'll go the way Greece's went and you'll end up with all your infrastructure owned by foreigners and no more to sell off
13:57 < bridge> <learath2> He is just the wrong kind of nerd that ended up with too much money
13:59 < bridge> <learath2> LOL didn't even notice this was #developer not #off-topic
14:01 < bridge> <devinci24> Selling assets (dollars) is what the previous guy was doing. Milei bought while growing the debt.
14:01 < bridge> <devinci24> 
14:01 < bridge> <devinci24> The whole logic of a libertarian is to privatize as much as possible so the gov has low to no impact on market. (And so no bias over political decision).
14:01 < bridge> <devinci24> 
14:01 < bridge> <devinci24> Having external investment is good, it means more money for the country because people think it will work.
14:01 < bridge> <devinci24> 
14:01 < bridge> <devinci24> Idk, I'm pretty optimistic for them. The previous regime was just awfull. Having prices going up every day is just not the way
14:01 < bridge> <zhn> #developer is always #off-topic :troll:
14:04 < bridge> <milkeeycat> it wasn't working because i was trying to open fifo file when ddnet server didn't make it yet 😬
14:05 < bridge> <meloƞ> Developer is spicy off-topic
14:05 < bridge> <Jupstar ✪> I'd like to live in the time where einstein was the most famous person in the world lmao
14:05 < bridge> <Jupstar ✪> well on the other hand, that time sucked for other reasons
14:05 < bridge> <Jupstar ✪> i wonder how einstein would be if he'd have modern social media
14:06 < bridge> <meloƞ> I Love Einstein, He Sounds so quirky in His english speeches
14:07 < bridge> <meloƞ> **hey Guys how are you Welcome to a NEW YouTube Video Here on my Channel.. today WE meet oppenheimer to create Something **magical****
14:08 < bridge> <Jupstar ✪> Fresh E. in the town b*tches. Back from the underground, back for more xd
14:10 < bridge> <learath2> Privatization is just selling assets. Those assets are going to either people friendly to the government, or rich foreigners. You'll get a bolus of cash, the government will start spending more on the people to make them feel as if things are getting better. Stuff will get cheaper as the government secretly subsidizes stuff by keeping a leash on the exchange rates through monetary policy, while appearing to not be involved in "private business". T
14:10 < bridge> <learath2> 
14:10 < bridge> <learath2> Prices still going up aren't they? Most banks and investment firms are still forecasting 140% inflation year over year.
14:11 < bridge> <learath2> I've just seen this exact situation play out in Turkey over 2 decades. A country that just got out of hyper-inflation, with a charismatic new leader that is very friendly with the IMF, selling off our stuff to foreigners, while lecturing everyone who opposed him about "free market"
14:14 < bridge> <learath2> (I'm sure your previous govt was awful btw, ours was too)
14:17 < bridge> <devinci24> We'll see.
14:17 < bridge> <devinci24> But I don't think "the government will start spending more on the people " nor "the government secretly subsidizes stuff". That sounds like socialism and here we are talking about pure capitalism.
14:17 < bridge> <devinci24> 
14:17 < bridge> <devinci24> Anyways I'm far from an expert, but from what I've seen it looks good.
14:17 < bridge> <devinci24> I'm not argentinian btw, I just find the situation extrenely interesting/pedagogical :p
14:18 < bridge> <Jupstar ✪> 45 t/s for 4096 tees
14:18 < bridge> <Jupstar ✪> i have to double that
14:19 < bridge> <meloƞ> jupsti you have 45 t/s with 80% of our all time high playercount on ONE server?? :kekw:
14:19 < bridge> <meloƞ> what are you training for???
14:20 < bridge> <Jupstar ✪> yeah it wont scale with network anyway, but i just like to have the physics so efficient that you could add so many server side dummies and it wouldn theoretically crash the client
14:20 < bridge> <meloƞ> dude is minmaxxing his client like an RPG character
14:20 < bridge> <meloƞ> gg
14:20 < bridge> <Jupstar ✪> i mean 4000 entities isnt too epyc..
14:21 < bridge> <Jupstar ✪> 
14:21 < bridge> <Jupstar ✪> if we'd not have these weird physics we could probably get lot more 😄
14:21 < bridge> <learath2> I'm not saying they'll go out and hand people money. They'll do it in subtle ways, that don't appear to be direct handouts. Just decreasing the tax rate appears extremely "libertarian" but it's a handout to everyone
14:21 < bridge> <Jupstar ✪> but i think i am not breaking physics (core physics)
14:21 < bridge> <Jupstar ✪> so ddnet could be a lot more efficient without breaking physics
14:22 < bridge> <learath2> Dropping interest rates. Selling of foreign currency for pesos. Printing less money. All stuff that would "secretly subsidize" stuff by inflating the value of the peso
14:23 < bridge> <learath2> Why not only 5 more tps? 😄
14:23 < bridge> <learath2> Is there any benefit to running it any faster than 50 tps as anything higher would break physics?
14:24 < bridge> <Jupstar ✪> it runs at max speed rn xD
14:24 < bridge> <Jupstar ✪> it cant get more than 45 tick/s
14:24 < bridge> <Jupstar ✪> as if there is no time involved
14:24 < bridge> <Jupstar ✪> for comparrision it runs around 1mio ticks for a single tee xD
14:25 < bridge> <learath2> Hm, doesn't that couple your physics to playercount? Do you do some deltatime magic to approximate/replicate teeworlds physics?
14:25 < bridge> <Jupstar ✪> i simply have my physics module modular enough to just run it in a main function without anything else
14:26 < bridge> <Jupstar ✪> you could say i simply benchmark with fake players etc.
14:27 < bridge> <learath2> Ah, you are just benchmarking. So in a real teeworlds server implementation using this you'd be calling it 50 times a sec like normal teeworlds?
14:27 < bridge> <Jupstar ✪> yes, that's the main reason i have to be bigger than 45t/s in the benchmark xD
14:27 < bridge> <Jupstar ✪> else the server will just die
14:27 < bridge> <devinci24> Oh yes sure. But taxes are used to pay for services. And in this case, Milei wants to destroy like 90% of them xd. So it would make sense.
14:27 < bridge> <devinci24> 
14:27 < bridge> <devinci24> But the idea would also be increasing production, jobs etc.
14:27 < bridge> <devinci24> Will they manage? I hope.
14:27 < bridge> <devinci24> And if by the end of the year inflation will have gone up by 140% (which imo wont), that's already very good news compared to what was happening. Hopefully it can go close to 0 :p
14:27 < bridge> <devinci24> 
14:27 < bridge> <devinci24> Anyways was fun talking about this.
14:27 < bridge> <learath2> or IOW it's not fast enough to do 4k entities yet
14:27 < bridge> <Jupstar ✪> it needs more and more time to catch up with ticks
14:27 < bridge> <Jupstar ✪> yep it's not
14:28 < bridge> <Jupstar ✪> well if i disable random input
14:28 < bridge> <Jupstar ✪> it hits 72 ticks/s
14:28 < bridge> <learath2> Are you replicating teeworlds physics completely while optimizing?
14:28 < bridge> <Jupstar ✪> the core physics
14:29 < bridge> <Jupstar ✪> i already removed O(n²)
14:29 < bridge> <Jupstar ✪> 
14:29 < bridge> <Jupstar ✪> and now i rewrite some slow code
14:29 < bridge> <learath2> What did you end up doing? Chunking the map?
14:30 < bridge> <Jupstar ✪> ^
14:30 < bridge> <Jupstar ✪> 
14:30 < bridge> <Jupstar ✪> yes i kinda create a playfield where all characters are in, and if they dont stack you can easily query close characters without querying all of them
14:31 < bridge> <Jupstar ✪> i used to have width * height array before, but that uses lot of RAM, so i switched to a hashmap, which ofc is pretty slow
14:31 < bridge> <Jupstar ✪> so i used FxHashMap, which is ok, but still slow
14:31 < bridge> <Jupstar ✪> but the biggest bottleneck isnt the hashmap, it's still the floating point operations. at least from what i see in the flamegraph
14:32 < bridge> <learath2> Hm, interesting, so with the hashmap you can query just say 9 squares around the tee at O(1) cost to get all tees that might possibly have a collision?
14:33 < bridge> <Jupstar ✪> yeah, i mean these O notations kinda suck
14:33 < bridge> <Jupstar ✪> 
14:33 < bridge> <Jupstar ✪> but theoretically if they dont stack it should be O(1)
14:33 < bridge> <Jupstar ✪> it queries up to 9 entites.. in tick_deferred it might query 16 entities (bcs the p<->p collision check there uses a bigger radius)
14:35 < bridge> <Jupstar ✪> the good thing about this method is, the updates are very cheap.
14:35 < bridge> <Jupstar ✪> 
14:35 < bridge> <Jupstar ✪> updating a quad tree can be pretty costly
14:35 < bridge> <Jupstar ✪> then you might run into a bottleneck there xd
14:35 < bridge> <Jupstar ✪> 
14:35 < bridge> <Jupstar ✪> hard to say without having it tho
14:36 < bridge> <zhn> same happened with russia in early 90s huh
14:37 < bridge> <zhn> like literally same story
14:37 < bridge> <learath2> I wonder if just a large 3x3 grid over the entire map would work better, that's what I've been planning in the olden days
14:37 < bridge> <zhn> gpgpu time :troll:
14:39 < bridge> <learath2> The update is free
14:39 < bridge> <learath2> O(n) to calculate what grid cell every tee is in
14:39 < bridge> <Jupstar ✪> i marked hashmap accesses.
14:39 < bridge> <Jupstar ✪> 
14:39 < bridge> <Jupstar ✪> so must stuff rn is simply physics code that is simply slow
14:39 < bridge> <Jupstar ✪> https://cdn.discordapp.com/attachments/293493549758939136/1274709274311786547/image.png?ex=66c33d05&is=66c1eb85&hm=2c15f7cbb07b927ea814d9d91668c44bc98285a425714ea2653a71f8ec28c305&
14:40 < bridge> <learath2> Eh, that's not bad, many other things to optimize first 😄
14:40 < bridge> <Jupstar ✪> yeah, i also think i'll stay with the hashmap first.
14:40 < bridge> <Jupstar ✪> 
14:40 < bridge> <Jupstar ✪> but not sure what i can still optimize without breaking things
14:40 < bridge> <Jupstar ✪> i kinda already break it if u very pendatic, bcs i use squared distance checks
14:41 < bridge> <Jupstar ✪> to save normalizing in many cases
14:41 < bridge> <learath2> Can I see this `physics_tick_deferred` somewhere?
14:41 < bridge> <Jupstar ✪> mh yeah i guess i can update it, gimme 5 mins
14:45 < bridge> <Jupstar ✪> @learath2 https://github.com/Jupeyy/dd-pg/blob/f60e56a5601b58177437e6f24ad09fa992b6e4c9/game/shared-game/src/entities/character/core.rs#L630
14:46 < bridge> <Jupstar ✪> i dunno if llvm optimizes it, but e.g. just saw the normalize can be moved to a later call
14:46 < bridge> <learath2> Back in the day I attempted parallelizing the problem with splitting the map into islands along lines of grid cells with no entities in them
14:47 < bridge> <learath2> Back in the day I attempted to parallelize the problem with splitting the map into islands along lines of grid cells with no entities in them
14:47 < bridge> <learath2> I was too algorithmically uneducated to do it back then though 😄
14:52 < bridge> <learath2> Yeah, I don't see anything glaring either without changing things fundamentally
14:53 < bridge> <Jupstar ✪> interestingly. i already made a change that differs from ddnet. i split the loop into two. 
14:53 < bridge> <Jupstar ✪> `if(!m_HookHitDisabled && m_HookedPlayer == i && m_Tuning.m_PlayerHooking)`
14:53 < bridge> <Jupstar ✪> 
14:54 < bridge> <Jupstar ✪> can only be true where `m_HookedPlayer == i` anyway.. 
14:54 < bridge> <Jupstar ✪> 
14:54 < bridge> <Jupstar ✪> i assume this already would be a real physics change in ddnet, so i cannot optimize this.
14:54 < bridge> <Jupstar ✪> 
14:54 < bridge> <Jupstar ✪> I guess i could simply add the the hooked player id into the fetched ids from the `in_range` call.. so i doubt this magically would add insane overhead.. it just might make a useless collision check for the hooked char if the char is not in range
14:54 < bridge> <Jupstar ✪> teeworlds physics has a lot of these small weirdnesses
14:54 < bridge> <Jupstar ✪> but overall. i sadly don't see huge optimization potentials, without the game feeling super different :/
14:55 < bridge> <Jupstar ✪> well at least on vanilla accurate physics are not as critical
14:55 < bridge> <learath2> Well you can look into the cache behaviour of your implementation. I'd think it probably doesn't pipeline well
14:56 < bridge> <Jupstar ✪> do you think hyperoptimizations will lead to smth significant?
14:57 < bridge> <learath2> Well when you don't have any more obvious optimizations, that's where you go
14:57 < bridge> <Jupstar ✪> yeah, kinda tru
14:57 < bridge> <learath2> The hashmap there is fairly significant, I would probably experiment with that a bit more. See if a grid works better
14:57 < bridge> <Jupstar ✪> grid defs works better
14:57 < bridge> <learath2> If that doesn't lead anywhere next step is looking at how the data is laid out in memory
14:57 < bridge> <Jupstar ✪> but on a 4096x4096 map, what is a good grid size?
14:58 < bridge> <learath2> Round up and 3x3?
14:58 < bridge> <Jupstar ✪> that still is 8 bytes per 3x3 block i guess?
14:59 < bridge> <Jupstar ✪> I mean sounds okish
14:59 < bridge> <learath2> Hm, what do you want to store?
14:59 < bridge> <Jupstar ✪> if tees are close it however creates worse loops, since more ids to check
14:59 < bridge> <Jupstar ✪> some kind of list (e.g. hashset)
14:59 < bridge> <Jupstar ✪> 
14:59 < bridge> <Jupstar ✪> currently i use btreeset (since sorted for correct physics), that also isn't the fastest 😄
15:00 < bridge> <Jupstar ✪> all for tee stacking ofc
15:00 < bridge> <Jupstar ✪> :c
15:00 < bridge> <Jupstar ✪> well so or so i think tees are smaller than 1 tile
15:00 < bridge> <patiga> do that minecraft thing and kill all tees which stack too much 😎
15:00 < bridge> <learath2> What is the list for? The tees within the gridcell? Why can't you calculate that once at the start? It should be fairly cheap to calculate which grid cell a tee is in
15:01 < bridge> <Jupstar ✪> yes but tee stacking
15:01 < bridge> <Jupstar ✪> 2 tees in same grid
15:01 < bridge> <Jupstar ✪> you need to fetch all player ids from the grids later on
15:01 < bridge> <Jupstar ✪> so they have to maintain a id list
15:02 < bridge> <Jupstar ✪> in a 3x3 u need a list anyway
15:04 < bridge> <learath2> Mh, I was thinking something else but it would perform much worse in the worst case
15:05 < bridge> <learath2> I was thinking of just collecting all tees that can possibly collide with this tee using the grid, then running the old algorithm exactly the same on them
15:06 < bridge> <Jupstar ✪> that is what i am doing
15:07 < bridge> <learath2> But with a grid the worstcase is worse I think. It degrades to the old algorithm atleast with a grid this large
15:08 < bridge> <Jupstar ✪> yeah
15:08 < bridge> <Jupstar ✪> maybe i can use a 1x1 grid for small maps
15:08 < bridge> <Jupstar ✪> to a limit of like 8MB RAM
15:08 < bridge> <Jupstar ✪> or make it optional
15:08 < bridge> <Jupstar ✪> if u have a 20GB RAM VPS, gotta use all the RAM
15:09 < bridge> <Jupstar ✪> 4096x4096 with 8 bytes (ptr) would be 134 MB already xD
15:09 < bridge> <learath2> You can use a bitmask if you are okay with the limit of 64 players 😄
15:10 < bridge> <learath2> You can use a bitmask if you are okay with the limit of 64 entities 😄
15:10 < bridge> <Jupstar ✪> yeah but collecting a bit mask sounds annoying too 😄
15:10 < bridge> <learath2> Well technically you can have more, but yeah all you'd really need to store is a bitmask of what entities are within a cell
15:10 < bridge> <learath2> You have cool vector operations available for them though
15:11 < bridge> <Jupstar ✪> so or so, in my physics mod, all entites have unique ids
15:11 < bridge> <Jupstar ✪> dont want to rewrite that 😄
15:12 < bridge> <learath2> How about a hashmap of grid cells?
15:12 < bridge> <Jupstar ✪> with unique i mean, forever unique
15:12 < bridge> <Jupstar ✪> haha
15:12 < bridge> <learath2> Mh I guess what you have currently constitutes that
15:12 < bridge> <Jupstar ✪> could work maybe
15:12 < bridge> <Jupstar ✪> saves you few hashmap lookups
15:12 < bridge> <learath2> Yeah
15:13 < bridge> <Jupstar ✪> i guess i could first start and abstract away the hashmap i have to also allow grids
15:13 < bridge> <Jupstar ✪> and see how well it performs
15:13 < bridge> <learath2> Anyway, if there is nothing to squeeze out there, sadly the next step seems to be looking for very specific optimizations like cache behaviour, vectorization or maybe even parallelization
15:14 < bridge> <learath2> If you can come up with a cheap way to split the map into islands, you can have a thread calculating collision within that island of tees much cheaper
15:14 < bridge> <learath2> If you can come up with a cheap way to split the map into islands, you can have a thread calculating collision within that island of tees at the same time as all other islands
15:14 < bridge> <Jupstar ✪> yep you are right. sadly parallization won't happen, bcs i want to stay single threaded on WASM.
15:14 < bridge> <Jupstar ✪> 
15:14 < bridge> <Jupstar ✪> but vectorization would be a very interesting one, depends on how well the compiler does it already anyway
15:14 < bridge> <learath2> Also, how often do we use distance between tees?
15:15 < bridge> <Jupstar ✪> i think in the average case we do it 2 times (plus another one for when the tee is hooking)
15:15 < bridge> <Jupstar ✪> and entities like pickups also do it
15:16 < bridge> <Jupstar ✪> but in the flamegraph they are not of interest
15:16 < bridge> <Jupstar ✪> p<->p is what costs the money here
15:16 < bridge> <learath2> Yeah, I guess remembering that isn't very useful then
15:20 < bridge> <learath2> Oh btw, if you ever want to google around this stuff. When I was first looking around I learned that the hashmap/grid thing we were talking about is called the "broad-phase" and the secondary costly check is the "narrow-phase"
15:20 < bridge> <learath2> Makes it much easier to google around for resources
15:20 < bridge> <Jupstar ✪> ty
15:21 < bridge> <learath2> Another thing, I don't know if you do this already somewhere else but are you running collision per team?
15:22 < bridge> <Jupstar ✪> yes
15:23 < bridge> <Jupstar ✪> teams are called stages in ddpg
15:23 < bridge> <Jupstar ✪> 
15:23 < bridge> <Jupstar ✪> a stage has a completely new unrelated world
15:23 < bridge> <Jupstar ✪> so there arent any hacks in the gamecore with team checks
15:23 < bridge> <learath2> Nice
15:23 < bridge> <learath2> My ddnet7 implementation also had this allowing multiple instances of `CGame
15:23 < bridge> <learath2> My ddnet7 implementation also had this allowing multiple instances of `CGameWorld`
15:23 < bridge> <Jupstar ✪> indeed, but that makes it even worse for the grid approach :lol:
15:24 < bridge> <Jupstar ✪> 134MB * 64 teams
15:24 < bridge> <Jupstar ✪> lmao
15:24 < bridge> <Jupstar ✪> ah neat
15:25 < bridge> <learath2> Mh, that is a bad side effect yeah
15:30 < bridge> <zhn> yay
15:30 < bridge> <zhn> 128 lobbies playing ctf
15:31 < bridge> <zhn> on same map
15:31 < bridge> <zhn> :brownbear:
15:35 < bridge> <learath2> How about spatial hashing instead of a uniform grid? I never experimented with it but it should also be O(n)
15:37 < bridge> <fluffysnaff> spatial hashing should work well
15:38 < bridge> <learath2> and it would handle our maps being unbounded properly aswell
15:40 < bridge> <ryozuki> https://cdn.discordapp.com/attachments/293493549758939136/1274724688429322313/GVNfsdnWQAA6meR.png?ex=66c34b60&is=66c1f9e0&hm=d6c10c152de0f9cfad6ef9df7aa405d30e65cb20f594f2ea39fd191ff6052421&
15:57 < bridge> <Jupstar ✪> @learath2 ok finished grid impl.
15:57 < bridge> <Jupstar ✪> 
15:57 < bridge> <Jupstar ✪> results are insane ..... insanely depressing xD
15:57 < bridge> <Jupstar ✪> 
15:57 < bridge> <Jupstar ✪> 76 t/s vs 77 t/s 
15:57 < bridge> <Jupstar ✪> for 2048 tees
15:57 < bridge> <Jupstar ✪> 
15:57 < bridge> <Jupstar ✪> ran it 3 times
15:58 < bridge> <Jupstar ✪> and the 1 tick is in the margin of error
15:58 < bridge> <Jupstar ✪> i ran it few times again now, and saw 77 ticks too
15:59 < bridge> <Jupstar ✪> according to flamegraph it used 0.44% of total time for hashmap and 0.3% with a vec
16:00 < bridge> <Jupstar ✪> so at least on paper there is a minimal improvement xD
16:02 < bridge> <Jupstar ✪> for 64 tees it's more obvious:
16:02 < bridge> <Jupstar ✪> 16800 t/s vs 15400 t/s
16:11 < bridge> <learath2> dam
16:11 < bridge> <learath2> Spatial hashing next
16:12 < bridge> <Jupstar ✪> spatial wont be faster than a vec access
16:14 < bridge> <kebscs> how do i fix this error with wireshark dissector? the dll file is correctly in that folder
16:14 < bridge> <kebscs> https://cdn.discordapp.com/attachments/293493549758939136/1274733177746751489/image.png?ex=66c35348&is=66c201c8&hm=6db721dfdcbd84a0691633d34d09e8c5d1f000aeded8ac7026695eaeb7b6ef64&
16:14 < bridge> <kebscs> wireshark verison 4.2.6 x64
16:14 < bridge> <kebscs> wireshark verison 4.2.6 x64 on windows
16:14 < bridge> <Peakies> downgrade your Wireshark
16:15 < bridge> <kebscs> to which version?
16:15 < bridge> <Jupstar ✪> i think i should simply map a map where they cant stack so heavily.. tried a map where they have space to fall down:
16:15 < bridge> <Jupstar ✪> 
16:15 < bridge> <Jupstar ✪> still stacks so fast
16:15 < bridge> <Jupstar ✪> https://cdn.discordapp.com/attachments/293493549758939136/1274733376804229164/image.png?ex=66c35378&is=66c201f8&hm=368fac0b0d7c01d90b072b2bb04d411aaf448674556e2018a66e0520ed235267&
16:15 < bridge> <Peakies> 4.0 maybe
16:15 < bridge> <Jupstar ✪> and stacking is alwaysy evil 😄
16:15 < bridge> <Peakies> wtf
16:15 < bridge> <Jupstar ✪> that are only 500 tees
16:15 < bridge> <Peakies> is that your rust version of teeworlds ?
16:16 < bridge> <Jupstar ✪> that is dd-rs-pg-next
16:16 < bridge> <learath2> RustRustNet
16:16 < bridge> <Peakies> 😄
16:16 < bridge> <learath2> Well yeah this isn't testing the average case tbf
16:16 < bridge> <Peakies> is it fine with less max clients ?
16:16 < bridge> <Jupstar ✪> it's fine with 500
16:16 < bridge> <Jupstar ✪> but not with 2000 xd
16:17 < bridge> <learath2> Even at 500 tees it's way more than fine, we are just looking whether it can get better so he can have 4 billion tees
16:17 < bridge> <Peakies> oh that's shame
16:17 < bridge> <zhn> mmorpg teeworlds comes
16:17 < bridge> <Peakies> yeah he's always trying change impossible to possible
16:18 < bridge> <Peakies> when it's gonna show up
16:19 < bridge> <kebscs> 4.0.16 doesnt work, also the readme uses 4.2 since its in their folder name
16:20 < bridge> <Jupstar ✪> lmao, they stack so hard, that they fly in the air
16:20 < bridge> <Jupstar ✪> https://cdn.discordapp.com/attachments/293493549758939136/1274734608478507140/image.png?ex=66c3549e&is=66c2031e&hm=50990b15549c7d5b0b244b241b53a9b85ed6e5ab1032093d5da94f204b3940dc&
16:20 < bridge> <Peakies> they stacking like infinity or they find their way to be seprate from each other ?
16:20 < bridge> <theking1130> on what game engine this game was made ??
16:21 < bridge> <zhn> do you need 200x200 map with everything being spawn
16:21 < bridge> <Peakies> I have 4.0.14 and it's fine for me
16:21 < bridge> <Jupstar ✪> yeah i try more spawns now
16:23 < bridge> <zhn> https://cdn.discordapp.com/attachments/293493549758939136/1274735420160213094/jupjop.map?ex=66c3555f&is=66c203df&hm=b1108565527008f6b28987f84adf0da0228fbf17a115a398f1530e357f1984ac&
16:23 < bridge> <zhn> jupjop.jap
16:24 < bridge> <learath2> I wonder if a quick bounding box cull would make it better or worse, maybe just on the x axis like the sort and sweep algorithm
16:24 < bridge> <Jupstar ✪> map extension name decided
16:24 < bridge> <learath2> It would avoid some floating point math calculating the distance between tees
16:24 < bridge> <Jupstar ✪> i dont have spawn clamp xD
16:24 < bridge> <zhn> it's time to add
16:24 < bridge> <Jupstar ✪> the evaluation of the spawn position already takes long i think xD
16:25 < bridge> <zhn> isn't it just random currently
16:25 < bridge> <Jupstar ✪> 50 dummies and it alread feels bad xD
16:25 < bridge> <Jupstar ✪> in vanilla it's furthest away afaik
16:25 < bridge> <Jupstar ✪> that's what i am doing at least
16:25 < bridge> <zhn> nah i mean in ddpg
16:25 < bridge> <Jupstar ✪> not random
16:25 < bridge> <zhn> oh you did implement it
16:25 < bridge> <zhn> wait ill send fixed one
16:26 < bridge> <zhn> https://cdn.discordapp.com/attachments/293493549758939136/1274736224262684763/jupjop.map?ex=66c3561f&is=66c2049f&hm=5805f22dd54ed2fdcd86c9a0affb287feca7ce14173ded24c3ea12fd338bc8ec&
16:26 < bridge> <zhn> why tf it has different size
16:26 < bridge> <zhn> ah compression
16:27 < bridge> <zhn> :nouis:
16:27 < bridge> <Jupstar ✪> i test in few mins, gotta go afk really quick
16:28 < bridge> <kebscs> same thing 4.0.14, idk whats wrong
16:29 < bridge> <Peakies> then no idea sorry
16:30 < bridge> <kebscs> could you upload your dissector .dll?
16:31 < bridge> <Peakies> you want teeworlds dissector right ?
16:31 < bridge> <kebscs> yea
16:31 < bridge> <kebscs> <https://github.com/heinrich5991/libtw2/tree/master/wireshark-dissector>
16:32 < bridge> <Peakies> check DM
16:33 < bridge> <kebscs> works Xd
16:33 < bridge> <kebscs> works XD
16:33 < bridge> <kebscs> idk whats up i did what readme told me
16:33 < bridge> <kebscs> ty
16:33 < bridge> <Peakies> yw
16:50 < bridge> <animepdf> Why miniupnpc not included into ddnet-libs?
16:52 < bridge> <0xdeen> Doesn't seem important
16:52 < bridge> <0xdeen> I'm not a fan of the whole idea of upnp
16:52 < bridge> <Jupstar ✪> falling down is really evil xD
16:52 < bridge> <Jupstar ✪> it then has to run the spawn over 40k tiles again
16:53 < bridge> <animepdf> You make windows users suffer :jokerge:. I like that
16:53 < bridge> <robyt3> Last time I tried the ddnet server upnp support (on Windows) it didn't work, could never find the upnp gateway
16:57 < bridge> <animepdf> I feel bad asking this, but did you enable it in router and windows settings? :heheehee:
16:58 < bridge> <robyt3> yeah, the upnp gateway appears in the windows network device overview, so it should be enabled
16:58 < bridge> <animepdf> Okay, maybe it's broken in its core
16:58 < bridge> <animepdf> Today I first time in my life met guy who mentioned upnp in ddnet
16:59 < bridge> <robyt3> maybe because I have different network adapters because of VM and VPN and the gateway is not on the main one
16:59 < bridge> <Jupstar ✪> i should implement zooming :think_bot: .
16:59 < bridge> <Jupstar ✪> 
16:59 < bridge> <Jupstar ✪> runs quite ok with 2300 dummies.. fps are low, but it can still keep up with tick updates
16:59 < bridge> <Jupstar ✪> https://cdn.discordapp.com/attachments/293493549758939136/1274744500606210212/image.png?ex=66c35dd4&is=66c20c54&hm=9ddedf1b799f5ed8a5260ee17ac082845efb17648dea55d3ffc2e2244bc77717&
16:59 < bridge> <Jupstar ✪> @gerdoe i went with a bowl instead xD
16:59 < bridge> <Jupstar ✪> https://cdn.discordapp.com/attachments/293493549758939136/1274744533204078632/image.png?ex=66c35ddc&is=66c20c5c&hm=75be14c33386795c0f431cd6fd8fa62b2068c8b7d4b5c6f0ca66b4720e6e93f7&
17:01 < bridge> <animepdf> O, I didn't follow developer discussions for some time, what's going on, maybe ddnet would be able to finally display a lot of characters, so mods won't mess up with snapping :poggers2:
17:01 < bridge> <animepdf> Or it's \:justatest\: for fps test
17:02 < bridge> <animepdf> :Zzz_7062057890308424505:
17:02 < bridge> <learath2> The chat was about the collision algorithm. Rendering that many tees hasn't really been an issue
17:02 < bridge> <Jupstar ✪> well it's a different client, not ddnet
17:03 < bridge> <milkeeycat> Make a pr "refactor: rewrote the client in rust"
17:04 < bridge> <Jupstar ✪> yeah
17:04 < bridge> <Jupstar ✪> xd
17:04 < bridge> <animepdf> It was an issue in few mods I've been helping with, developers would program some weird algoths to prioritize some clients rendering(snapping) over others not not hit the limit :okSanya:
17:05 < bridge> <animepdf> ddnet-rs :Clueless:
17:05 < bridge> <Jupstar ✪> 😏
17:05 < bridge> <learath2> Rendering and snapping are different. The snap issue is because we just have a hard limit to the amount of tees that can be snapped
17:06 < bridge> <learath2> If you patch the client and the server to just send 256 tees, it would all work
17:06 < bridge> <sefazi_32276> guys, who knows why I can’t apply to be a moderator? The button to publish an application is simply not available for me, does anyone know what to do?
17:06 < bridge> <learath2> The O(n^2) collision algorithm would start to buckle though as that’s about where it starts getting too slow to be done in time for the tick
17:07 < bridge> <animepdf> Why there should be one particular limit to it, maybe if client could configure what amount he wants to see and send it to server, or just straight up not render them at all...
17:08 < bridge> <teero777> put solo tile xd
17:08 < bridge> <louis> n^2 where n is number of tees?
17:09 < bridge> <louis> hollow purple
17:09 < bridge> <louis> https://tenor.com/view/gojo-gojo-satoru-hollow-purple-sukuna-mahoraga-gif-13503454303453550028
17:09 < bridge> <animepdf> Btw did someone ever copied the minecraft thing where TPS would go lower and take more time to process events, would look goofy I think
17:10 < bridge> <zhn> ppl will abuse it to get 1 tps so they can tas for real
17:11 < bridge> <animepdf> You're late, submissions are over
17:12 < bridge> <animepdf> Sounds fine to me :Clueless:
17:13 < bridge> <Jupstar ✪> yes
17:14 < bridge> <Jupstar ✪> not implemented yet xddd
17:26 < bridge> <matodor> x3
17:26 < bridge> <matodor> https://cdn.discordapp.com/attachments/293493549758939136/1274751232962990121/image.png?ex=66c36419&is=66c21299&hm=9b877279f5564455bb03fd1fd146278de54658e1d474c7c920b68da0790b8ee8&
17:30 < bridge> <animepdf> Stop right there ✋. That action is illegal in DD state 🛑. Please step away from your keyboard and do not try to resist while our officers approach you 🚑👮
17:37 < bridge> <learath2> Automod seems to be misbehaving
17:37 < bridge> <privatekero> 7k now
17:39 < bridge> <matodor> @ e v e r y o n e
17:40 < bridge> <matodor> @0xdeen use @ e v e r y o n e in #announcements for RUS3 or set welcome message (or MOTD) on RUS server for it
17:40 < bridge> <matodor> we need more propaganda for donations)
18:16 < bridge> <zhn> @animepdf join mlife
18:16 < bridge> <0xdeen> Will try announcements once per hour for now
18:17 < bridge> <0xdeen> First response I got so far was "Give me root access for 100 Rubles" 😄
18:32 < bridge> <matodor> in Russian language?)
18:56 < bridge> <learath2> Lol
19:35 < bridge> <0xdeen> yes
20:46 < bridge> <meloƞ> @0xdeen can you only Take rubles because of rus Server hosting shenanigans or could people donate in € ?
20:47 < bridge> <meloƞ> Ah nvm didnt See the First Message
22:13 < bridge> <syrinok> That's kinda pointless and cluttered, no?
22:13 < bridge> <syrinok> https://cdn.discordapp.com/attachments/293493549758939136/1274823464481718444/image.png?ex=66c3a75f&is=66c255df&hm=c4d36b9dc0fa6686876170b28057b027781293353c63dfba9749f78b8f1e35ca&
22:21 < bridge> <totar> has anyone checked if ddos is made much worse by the server incorrectly assuming that all clients are supposed to be in ``CClient::SNAPRATE_RECOVER``. The server never checks if the missing ack tick is caused by the client or the server. I have no way to simulate ddos conditions so idk if it actually happens. But it might be good to have a check if all connected played are in ``CClient::SNAPRATE_RECOVER`` then maybe it's not a good idea to keep them 
22:21 < bridge> <totar> https://cdn.discordapp.com/attachments/293493549758939136/1274825416921710757/image.png?ex=66c3a930&is=66c257b0&hm=ecc97ca8f0af946c0e4c27993d9712cf145053def6e3202a16e25d33f8d66a26&
22:29 < bridge> <louis> need clan tags
22:29 < bridge> <louis> when we get accrs
22:30 < bridge> <louis> [WLY] bumso56
22:55 < bridge> <manikoo> looks bad
23:36 < bridge> <Ewan> anyone who can test?
23:50 < bridge> <jxsl13> keepin' deen busy with cent donations. that's the reals ddos.
23:50 < bridge> <jxsl13> keepin' deen busy with cent donations. that's the real ddos.