00:16 <+bridge_> prob worst issue closure in last 3 months 00:16 <+bridge_> its toppable probably, prove me wrong 01:08 <+bridge_> we pretend like it's gonna be so much work to change over time, and those tile descriptions havent changed for years xD 01:08 <+bridge_> makes zero sense 01:08 <+bridge_> in some places we still call red tele "evil teleporter" 09:36 <+bridge_> the issue was closed in august 2023. back then we decided to not have translations for the editor. if you want to change that, discuss on that issue, don't drop a huge pull request 09:40 <+bridge_> "worst contributor mentality in the last 3 months. it's toppable probably, prove me wrong" 09:40 <+bridge_> please don't do that, it's being negative without contributing to a better outcome 09:41 <+bridge_> (which is against this discord's rules. try to be constructively negative, so that we can reach better outcomes) 10:11 <+bridge_> ๐Ÿ’€ 10:18 <+bridge_> Gorp saying it's a bad closure and you're putting words in his mouth saying it's "contributor mentality" 10:18 <+bridge_> Telling everyone they're negative when you don't disagree witrh them is sure way to make everyone dislike you 10:19 <+bridge_> Making it personal for no reason when the message was obviously about the issue, not you 10:22 <+bridge_> I suggest going for compromise or explaining it better in the 3 year old issue instead of instantly making it personal and bring discord rules ๐Ÿ’€ 10:31 <+bridge_> i guess heinrich means better discuss in issue rather than here dev chat to be washed awayh 10:34 <+bridge_> Yea I agree, it can be better discussed in an issue for future people looking into it, but dev chat ain't bad for quick chat 10:35 <+bridge_> while i agree its a huge pr, its minimal effort to do it, maybe reviewing it is more effort so i agree there, but yeah 10:36 <+bridge_> i guess the efforti s more getting ppl to translate it 10:36 <+bridge_> but if they dont translate it, they see it in english right? so its same as always 10:37 <+bridge_> just wanted to help a bit but it seems i miss the stuff to do in my prs, so ill go back to hiding before causing trouble 10:37 <+bridge_> just wanted to help a bit but it seems i miss the useful stuff in the prs i do, so ill go back to hiding before causing trouble 10:40 <+bridge_> sorry, that was me mimicking their speech. I was insinuating that they had the "worst contributor mentalitly in the last 3 months, it's toppable probably, prove me wrong" 10:41 <+bridge_> you complaining about that probably just proves that we shouldn't talk like this here 10:41 <+bridge_> nobody commented on the github issue, that's the thing I was complaining about ^^ 10:41 <+bridge_> low effort negativity without trying to improve things 10:44 <+bridge_> (not in general, but in this specific instance) 10:44 <+bridge_> (@gorp_tw has contributed a great lot in the past) 10:47 <+bridge_> I wouldn't want to review 59k LoC in the pr either, but it was handled so poorly, can't expect for everyone to know about 6 year old, closed issue where it's not really explained why 10:48 <+bridge_> you're supposed to open an issue before dropping a large PR, ryo is not a new contributor, if they had looked for an issue, they would have found the old one 11:20 <+bridge_> it's not actually a large PR tho? 11:20 <+bridge_> it just adds ``Localize()`` to editor strings and adds machine translations 11:20 <+bridge_> only the line count number is big 11:21 <+bridge_> also doesn't this even work? I thought translations need to be done through that website now 11:23 <+bridge_> its still the same as before, the translations from the website are just converted to the old format with a script 11:23 <+bridge_> @ryozuki it does have issue tho https://github.com/ddnet/ddnet/pull/11730/changes#r2773388291 11:24 <+bridge_> @ryozuki it does have issue tho 11:24 <+bridge_> uhm the gh link loads but idk if i should see something 11:24 <+bridge_> it's a comment 11:24 <+bridge_> just go to the discussion tab it will load 11:25 <+bridge_> ah yeah 11:25 <+bridge_> well it doesnt matter its closed 11:25 <+bridge_> i would iterate on this and start with tile explainations+buttons 11:25 <+bridge_> most tooltips are useless anyway 11:25 <+bridge_> or maybe not useless but hardly noticeable 11:25 <+bridge_> I don't see anything wrong with the PR otherwise tho. I think it should be merged 11:26 <+bridge_> yes my bad, i forgot about it 11:26 <+bridge_> i wont discuss the issue because im fine either way, if you decide its ok to go i will make it ready then 11:28 <+bridge_> hmm it also failed ASan in the localization code, the translation files might be in the wrong format 11:30 <+bridge_> oh it doesn't actually have machine translation it just adds Localize() 11:31 <+bridge_> in that case idk how it broke ASan 11:32 <+bridge_> ok kinda pointless without the machine translations tbh, this is just a 50k line regex 11:37 <+bridge_> I saw "ai assisted PR' and assumed it was doing something hard 11:38 <+bridge_> I saw "ai assisted PR" and assumed it was doing something hard 11:38 <+bridge_> i could translate it all but it probs wouldnt be that good 11:39 <+bridge_> well it was rejected because it was deemed too much work for translators, so if you fix that issue then it could be merged 11:39 <+bridge_> they also mentioned maintaining it afterwards 11:39 <+bridge_> idk the website kinda fixes that imo 11:40 <+bridge_> not needing to submit a PR is insanely better 11:40 <+bridge_> i think the game has too many terms that dont translate naturally i think 11:44 <+bridge_> you can just not translate those 11:44 <+bridge_> that's fine 11:57 <+bridge_> you should also use the sarcasm sign, because people obviously always understand you. Putting that in quoation marks was apparently not enough ... 12:02 <+bridge_> I was curious about this. it looks like the LLM providers have stopped caring about benchmarking their language translation abilities. all the options seem to suck right now, it's just "test stuff and see what works" which is impossible 12:05 <+bridge_> WMT is the only serious benchmark, but it's always 1 year out of date by design. gemini-2.5 crushes everyone else tho 12:11 <+bridge_> the llm used in the cli is more optimized for coding and not translating ig 12:12 <+bridge_> the issue is that testing machine translation is actually extremely hard 12:13 <+bridge_> WMT has panels of language speakers who compare translated documents and pick which one is better. Which seems like the only viable method 12:13 <+bridge_> but it takes months for them to get the results 12:14 <+bridge_> and it's even harder when you're only translating small fragments at a time without context 12:14 <+bridge_> without context is impossible, but a coding CLI could generate context in english for all the translations 12:15 <+bridge_> without context is impossible, but a coding CLI agent could generate context in english for all the translations 12:17 <+bridge_> I would probably trust google more than the other LLMs to be good at multi language in general, if their WMT2025 performance is anything to go on. They obviously seem to factor it into their training goals 12:17 <+bridge_> they also run google translate for like 15 years so I imagine they know a thing or two 12:34 <+bridge_> good idea 12:45 <+bridge_> It was doing quite a bit of very boring find and replace stuff. So maybe a decent use of AI 12:46 <+bridge_> It seems to have simply wrapped all strings in the target files with Localize(). Thats the whole PR 12:47 <+bridge_> silky smooth spinners @robyt3 12:47 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1469298364322418812/SUnBdeN.png?ex=6987263c&is=6985d4bc&hm=dbc0b0ed33440c7613b518edc8c66eb1a79d680b7a5cdd0764110b3e872593bf& 12:47 <+bridge_> That's kinda how you'd do it tho. Maybe a couple need distinguishing context 12:47 <+bridge_> That looks very pleasing 12:47 <+bridge_> ogl3 and vulkan 12:48 <+bridge_> using shaders 12:48 <+bridge_> https://github.com/ddnet/ddnet/issues/11712 12:48 <+bridge_> I guess but I could certainly do that without AI, it would just take like 15 minutes instead of 2 12:48 <+bridge_> Yeah, it is just a boring thing to do by hand. That's the only sort of stuff I offload to ai 12:50 <+bridge_> Yeah but maybe if you did it by hand you wouldn't end up localizing the comments ๐Ÿ˜„ 12:50 <+bridge_> can ai add dithering for quad gradients 12:56 <+bridge_> Seems to be missing backwards compatibility with OpenGL 1? 12:57 <+bridge_> The shader looks surprisingly fine, the smoothstep AA is correct. It would be shorter if it used atan2, but its fine 12:57 <+bridge_> the spinner worked on ogl1 right? 12:58 <+bridge_> btw is it used somewhere in the code rn? 12:58 <+bridge_> i tried looking at all menus xD 12:59 <+bridge_> Yes, it was used with all backends before 12:59 <+bridge_> ill add back ogl1 12:59 <+bridge_> Its also excessively customizable lol 12:59 <+bridge_> Vote time remaining, skin loading, also the pending PR improving Tutorial-joining 13:02 <+bridge_> Man we kinda want a jupstar review on that one 13:03 <+bridge_> he would say remove ogl1 13:03 <+bridge_> there is a bug in ogl3.3, im fixing it 13:04 <+bridge_> ogl3.3 13:04 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1469302767980908594/YJ5nO0O.png?ex=69872a56&is=6985d8d6&hm=a39fedd3ed7feffeeb6d1d56ce6c5077bf9dd635373246d267f4afb30325f3ac& 13:04 <+bridge_> fixed 13:05 <+bridge_> should i make it non customizable? 13:06 <+bridge_> We probably don't need the variable radii 13:06 <+bridge_> do whatever the old one has 13:07 <+bridge_> Old one might also have been that customizable :justatest: 13:07 <+bridge_> pog 13:07 <+bridge_> ok well idk what you want, do what robyt3 wants 13:08 <+bridge_> tell me robyt-sama ill forward it to the ai overlords 13:11 <+bridge_> If we actually use the customization then theres nothing excessive about it lol 13:17 <+bridge_> I was thinking we'd just keep this on the cpu, just alias the edges ๐Ÿ˜› 13:17 <+bridge_> I guess a shader is fine too 13:17 <+bridge_> I might have over engineered the feature initially, I'll look at the code later 13:19 <+bridge_> I guess the way we render it there is no easy way to make the edges nicer, it's like a bunch of trapezoids 13:21 <+bridge_> Yeah. We could theoretically also use shaders for circles and round corners, but then we probably need to benchmark it 13:21 <+bridge_> BTW idm if we have a choppier spinner in ogl1, it's ancient anyway 13:23 <+bridge_> Yeah, GL1 should just use the same thing we had before, but ideally encapsulated in the backend 13:23 <+bridge_> Also can I say that I just love SDFs? Such a pretty way to describe shapes like this 14:35 <+bridge_> Have we considered using actual AA? 14:36 <+bridge_> what's actual aa? rendering more pixels than the display supports? 14:40 <+bridge_> Turns out I can do what I want, and you've been treated far worse than others that are not me. I said what I said and I am correct. Shutting down a PR that simply improves the quality of life for literally anyone who edits maps and does not speak English because of a 3 year old discussion is not going to get a collaborative "in-issue" comment from me 14:40 <+bridge_> Nothing about what I said was coming from a place of hate, and you put words in my mouth 14:41 <+bridge_> And people have quit the whole server for less lol 14:42 <+bridge_> where did I put words into your mouth? 14:43 <+bridge_> "correct" is not a defense for being annoying 14:43 <+bridge_> The best thing you could do in that scenario (if you still felt like it was a big problem to drop a big PR without an issue) is to ask if they read the context first and ask another contributor if the stance on the 3 year old discussion is the same, instead of just swatting it 14:43 <+bridge_> someone can be the son of a prostitute, but that doesn't mean you can go around calling them that 14:43 <+bridge_> sometimes being a stickler for the repository rules isn't best for other ppl's emotions. esp regular contributors 14:44 <+bridge_> this was an unsolicited PR, with no quality checks. it implemented a feature that was rejected, without even looking that up 14:45 <+bridge_> from someone who I know is able to search issues 14:45 <+bridge_> You told me it must have been some political thing, or maybe I'm meant to assume "mentality" meant you thought I should take your position and think he was in the wrong. in either case it's putting words in my mouth and I don't appreciate it 14:45 <+bridge_> can you quote the message you mean? 14:47 <+bridge_> You say you're mimicking my speech, implying you're controlling the view of what I really meant, even if sarcastic it's bad form 14:48 <+bridge_> no, that's not what I meant. I meant that I could now tell you bad things, if I went with your standard 14:48 <+bridge_> I wanted to demonstrate that this is a bad standard for conversations in this channel 14:50 <+bridge_> My "standard" is that I would like to see PRs live and have a discussion by more than 1 maintainer before closure, especially if there's such a solid consensus that it's a good idea. Otherwise ur gonna get more ppl ragequitting ur community. I don't really care if you take this as "an attack" again but this is a third-party perspective that just doesn't like how many ppl are upset and wishes for less to be upset 14:50 <+bridge_> I'm telling you to be more constructive about your feedback 14:50 <+bridge_> go comment in that issue 14:51 <+bridge_> (if you haven't already) 14:51 <+bridge_> the PR isn't a place for that 14:51 <+bridge_> otherwise we're going to have the discussion split across many different place 14:51 <+bridge_> I can try. But I've also tried in the past. This is the only place that is comfortable at 5am when I do not have anything other than Matrix on my phone. 14:53 <+bridge_> https://www.teeworlds.com/forum/viewtopic.php?pid=73307#p73307 14:53 <+bridge_> 2010 14:53 <+bridge_> > Ddrace is gonna be an official gametype on the new version. 14:53 <+bridge_> xd 14:54 <+bridge_> hai chiller 14:56 <+bridge_> gorp you are lynn right 14:56 <+bridge_> i forgot 14:56 <+bridge_> yes 14:56 <+bridge_> is anyone else keeping track? 14:57 <+bridge_> i think this is the third "ryo forget gorp is lynn" 14:57 <+bridge_> xD 14:58 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1469331318251716729/D6kvZ6c.png?ex=698744ed&is=6985f36d&hm=6f15ff0c23e12230cd02453114a2d4b594a6dc86288e08ef4e5f62cb951e5861& 14:58 <+bridge_> oh rip 14:58 <+bridge_> i missed my ddbirthday 14:58 <+bridge_> would it been 11 years? 14:58 <+bridge_> I feel like a slimeball for learning the teeworlds protocol and even how to read some of the code and still only web contributed + slimeball in issue comments 14:58 <+bridge_> I see 4 cases in the search ^^ 14:58 <+bridge_> ah gg 14:58 <+bridge_> what does slimeball mean 14:58 <+bridge_> and any contribution is valuable ig 14:59 <+bridge_> idk. feels correct though 14:59 <+bridge_> ive been playing minecraft again, and also Ludwig is almost gold rank 14:59 <+bridge_> im lost on that comment 14:59 <+bridge_> xD 15:00 <+bridge_> i mostly play ffxiv, sometimes i lurk in ddnet for some minutes but i leave 15:00 <+bridge_> idk why 15:00 <+bridge_> I'm just here, making my eepy American rounds being annoying on Matrix at 6am now 15:00 <+bridge_> i didnt ask to be awake ok 15:01 <+bridge_> is it some health issue 15:01 <+bridge_> i barely cant stand past 1 15:01 <+bridge_> actually? it might be tbh 15:01 <+bridge_> maybe im old now 15:01 <+bridge_> i have been staying asleep less and I notice I get really congested, to the point where the only fix is to like take a really hot shower then go sleep again 15:02 <+bridge_> i think not sleeping is the worst u can do for ur health overall 15:02 <+bridge_> yeah its cooked 15:06 <+bridge_> I am such a night owl, forcing me to wake up early a lot makes me really pissed off - at work I come the latest, and stay the longest 15:07 <+bridge_> im the other way around lol 15:07 <+bridge_> I don't know how other people do that, but I can't 15:07 <+bridge_> i come earliest and leave early 15:07 <+bridge_> im more productive morning 15:07 <+bridge_> hai assasa 15:07 <+bridge_> shark gorp 15:07 <+bridge_> shark?! 15:07 <+bridge_> can I have blahaj 15:08 <+bridge_> play Deadlock 15:08 <+bridge_> "Hai" is the german word for shark @gorp_tw 15:08 <+bridge_> no way.. 15:08 <+bridge_> hai louis 15:09 <+bridge_> @l._ouis montly status question about the blink eyes 15:09 <+bridge_> hi good morning 15:09 <+bridge_> @essigautomat i havent done anything tw in the past month :'( 15:09 <+bridge_> ๐Ÿ˜ข alright, asking you next month again 15:09 <+bridge_> Its like third on my tw todolist though 15:10 <+bridge_> my tw todolist is the sole source of stress in my life 15:10 <+bridge_> legitimately less stressful than job 15:10 <+bridge_> i havent touched anything in 4 days 15:11 <+bridge_> more\* ? wtf is wrong with brain 15:13 <+bridge_> sure 15:16 <+bridge_> idk how to handle timeouts as a c2c thing. the server just knows there was a timeout but ofc you can also just disconnect ur internet and the server can't tell the diff 15:17 <+bridge_> so even if there was a way to tell if someone timed out, not on purpose, it seems like I must punish players that do get timed out during a competitive match 15:18 <+bridge_> not to mention if you attack the server instead (which is more likely anyway) then you also take the client connection reliability down with it 15:20 <+bridge_> im thinking the best way to negotiate a match is to have time windows for setup, so even if u disconnect ur not punished with a forfeit if u rejoin before the step expires (like selecting a server to play on, joining team, picking side, etc.) 15:23 <+bridge_> are you working on a matching system? ๐Ÿ˜ฎ 15:23 <+bridge_> cool! 15:23 <+bridge_> yeah full matchmaking. beta will be single game, but plans to roll out bo3 15:24 <+bridge_> the full flow is mostly complete but I'm not sure if I want to handle/allow people to teardown + setup again between rounds 15:24 <+bridge_> mostly because its hard to tell if they're coming back in the case that they do more than kill, I guess I can allow 5 minutes again for bathroom break or smt 15:25 <+bridge_> i would rather force the repick system since both are already authed 15:25 <+bridge_> Where is Jupeyy? 15:25 <+bridge_> :cammo: 15:26 <+bridge_> my timeline is end of the month, which also involves getting a bunch of JSON files into sqlite xD 15:26 <+bridge_> at least we have discord bans now :P 15:28 <+bridge_> chillerdragon: do you have any cool idea for tw related project(asking for a friend) 15:28 <+bridge_> oh, one thing we're not sure about how to handle is deletion. if you delete an account in a matchmaking service, in the case that there was no abuse and they simply don't want their account anymore, it seems relatively simple to change relationships stats to others but not adjust rankings. but if someone is causing havoc on other rankings with a fake/dupe account then it's unclear what to do, I kinda wanna make a recursive "rollback" system for ranked 15:30 <+bridge_> we log all game data except like, score timestamps (which is really hard to get when there is snap loss) so it is possible for us to walk backwards in time for each player that would be affected 15:34 <+bridge_> maybe it would be possible to recover score times with resend packets. hm 15:36 <+bridge_> if anyone has materials about how to like, run an entire matchmaking service and avoid virtually all issues ever then i would be happy to read that 15:37 <+bridge_> i already read a fair bit about glicko2 and a case for farming volatility harming outcomes, but i think its not as bad in our system 15:42 <+bridge_> lmao 15:42 <+bridge_> Also 15:42 <+bridge_> > Dune: Where did you get this info? In your dreams? 15:43 <+bridge_> yeah I thought that was funny 15:45 <+bridge_> @robyt3 could i get 10 minutes of your time? :) 15:45 <+bridge_> we would have to meet in game 15:47 <+bridge_> I have time in a few hours 15:48 <+bridge_> @milkeeycat i will not finish my tw project todo list during my lifetime pls take all of them 15:48 <+bridge_> @milkeeycat how about a game server fully written in C? 15:48 <+bridge_> @milkeeycat client or server with lua plugin system 15:49 <+bridge_> @milkeeycat 128 slots 15:49 <+bridge_> do it over 256 slots 15:49 <+bridge_> ๐Ÿ˜„ 15:49 <+bridge_> @milkeeycat minetee 15:50 <+bridge_> @milkeeycat LLM based review bot that enforces contributing.md 15:50 <+bridge_> @milkeeycat automated tests for UI code by diffing screenshots generated in the CI 15:50 <+bridge_> @milkeeycat a server side level mod like the old KOG one 15:51 <+bridge_> @milkeeycat some shader that makes grass doodads windy 15:51 <+bridge_> like the ones for minecraft that look cute 15:52 <+bridge_> @milkeeycat a proper password manager that generates passwords for you for servers with /register and /login commands stores the ip has a UI and then auto logs you in on join and also works for rcon and so on 15:53 <+bridge_> if nothing is interesting for you let me know i can find more ideas but stopping the spam for now 15:55 <+bridge_> oh thats a fun one i still have to mention all the terminal like ones 15:55 <+bridge_> fifo/econ alternative with ssh where the game server spins up ssh server and you can ssh into it to run rcon commands 15:55 <+bridge_> tiling window manager for local and remote console 15:55 <+bridge_> bash/zsh shell integration into ddnet console 15:56 <+bridge_> these are all so cool wtf 15:56 <+bridge_> I was thinking more of projects which could be interesting not only to developers, I had one silly idea about processing teehistorian files and showing which parts are the hardest/easiest on different maps 15:56 <+bridge_> great idea 15:57 <+bridge_> some of the ideas sound like they solve a problem that might better be solved differently. e.g. the tiling window manager one might be solved by making these things actual windows that an outside tiling window manager could use 15:57 <+bridge_> or the password manager thing would work by implementing accounts ๐Ÿ™ ^^ 15:57 <+bridge_> Trouble in Tee Town 15:58 <+bridge_> seems chaiscript can do it, but involves understanding all the places u can auth first 15:58 <+bridge_> tee r/place with live tiles 15:58 <+bridge_> TTT might be possible soon 15:58 <+bridge_> mod not map 15:58 <+bridge_> grrr 15:58 <+bridge_> can a Fun map qualify a PR for merge 15:58 <+bridge_> or does it have to give points 15:59 <+bridge_> I have a silly idea that we should let server to decide everything 15:59 <+bridge_> even client prediction 15:59 <+bridge_> it should be ddr gameplay 16:00 <+bridge_> sounds good, but would need some safe way of running server ocde on the client side. I think jupstar experimented with wasm for this in ddnet_rs 16:00 <+bridge_> rip jupstar 16:01 <+bridge_> whats the status on #11299 16:01 <+bridge_> https://github.com/ddnet/ddnet/pull/11299 16:01 <+bridge_> hm 16:02 <+bridge_> well someone do matchmaking for me so I can focus on maps again 16:02 <+bridge_> i need do too many things 16:03 <+bridge_> At least I think it's shouldn't be a wasm 16:03 <+bridge_> ๐Ÿ™ 16:04 <+bridge_> what do you think it should be? 16:04 <+bridge_> JS? lua? 16:04 <+bridge_> I means that 16:05 <+bridge_> we should design enough protocol messages to do it. 16:05 <+bridge_> that's not really possible. every mod wants to do something new that we can't predict 16:07 <+bridge_> implement wasm thru netmessages :) 16:08 <+bridge_> +1 to lua layer 16:08 <+bridge_> Most of prediction problem is caused by the client predicts it by vanilla way 16:08 <+bridge_> no? 16:09 <+bridge_> prediction problems is that ddrace is a fuckass mode with crazy shizz 16:09 <+bridge_> excuse the language 16:09 <+bridge_> nobody cares about my PRs, I often get an initial review and after that it's dead 16:09 <+bridge_> sad 16:09 <+bridge_> guys pls pay attention to Assas prs 16:10 <+bridge_> like we still don't have full test cases for tune I think 16:10 <+bridge_> or I need to check again 16:10 <+bridge_> did kebs' prediction fix get the automerge or is it still gambling simulator 16:10 <+bridge_> there are maps using envelopes on kog to display game state. have you tested with one of them? @essigautomat 16:11 <+bridge_> lmao 16:11 <+bridge_> antiping broke a lot of things. 16:12 <+bridge_> yes, I even heard it's better with this PR especially, because the animations lag behind with high ping 16:12 <+bridge_> I can ping avolicious in the PR 16:14 <+bridge_> let me double check heinrich ๐Ÿ™‚ 16:15 <+bridge_> let me double check heinrich ๐Ÿ™‚ (because I wrote the PR in november) 16:17 <+bridge_> I must undo this claim a bit- there are some PRs where people cared a lot, like for the millisecond times for example. I am also a PR machine sometimes 16:21 <+bridge_> Here's an example of a PR that has existed for a while. Maintainer straight up said they do not like the idea at all and it remains open and has multiple people discussing ways to implementing it (added benefit of it being a nice place to find forks that do implement) and later down the line they were more open to it https://github.com/swaywm/sway/issues/4882 16:21 <+bridge_> I rly hope DDNet follows in this example. that is all 16:21 <+bridge_> Here's an example of a issue that has existed for a while. Maintainer straight up said they do not like the idea at all and it remains open and has multiple people discussing ways to implementing it (added benefit of it being a nice place to find forks that do implement) and later down the line they were more open to it https://github.com/swaywm/sway/issues/4882 16:22 <+bridge_> ah, they do close it after 2 comments, not as good an example as i originally thought 16:22 <+bridge_> but this is mid-tea sipping first thought 16:23 <+bridge_> they closed it, and reopened it because i3 implemented it 16:23 <+bridge_> I think it's a good idea to quickly show people whether an idea will be accepted or not โ€” that creates less ambiguity 16:24 <+bridge_> right, im comparing the previous discussion of something previously rejected 16:24 <+bridge_> but in the case of uhhh hold on i have to remember the issue 16:24 <+bridge_> it was one of mine 16:24 <+bridge_> right, im comparing the discussion of something previously rejected 16:25 <+bridge_> anyway i made some issue somewhere that was a near-dupe and decided it was best to keep talking there since the sentiment had changed and the history of the issue was not relevant anymore 16:25 <+bridge_> and that could be the case with the editor, im not saying it is, but that it might 16:26 <+bridge_> i think its good that issue wasnt closed?? i thought it would be closed as dupe but was surprised, but it felt good to see discussion on it cus i dont think it would have otherwise 16:37 <+bridge_> ๐Ÿค” @heinrich5991 what are the questions in your mind about the PR? 16:39 <+bridge_> gah i cant find this super old issue i want to CC 16:40 <+bridge_> maybe it's closed, was it about envelope sync? 16:40 <+bridge_> no it's a network-related issue 16:43 <+bridge_> its just an old issue so i wanna bring it up since there was the bad ping on first launch thing 16:43 <+bridge_> https://github.com/ddnet/ddnet/issues/3998 16:43 <+bridge_> i still dont know if this is possible/an issue, it could be closed if we could test it and its not an issue 16:44 <+bridge_> but, if/when the bad ping on first launch thing is fixed, we could investigate a fix that encompasses this 16:44 <+bridge_> in case it is something related to the ping writes to the browser 16:44 <+bridge_> my questions are what the time functions do, and what they represent. so I can understand what you do in the envelope PR. I think I got everything but one thing, the one marked with `??` 16:45 <+bridge_> I added a question to my PR 16:45 <+bridge_> oh nice rosbit added labels to my PR 16:46 <+bridge_> still an issue 16:46 <+bridge_> how i feel rn ๐Ÿฅน 16:46 <+bridge_> why do i keep calling issues PRs 16:46 <+bridge_> i think i cant git 16:46 <+bridge_> i assume ping is recorded either on connection or disconnection 16:47 <+bridge_> without checking code sorry xd 16:47 <+bridge_> i would be surprised if we propped up anything more sophisticated if there is not much discussion already 16:47 <+bridge_> ping is recorded every _SOME INTERVAL_ 16:48 <+bridge_> maybe starting at connection establishment 16:48 <+bridge_> i 16:48 <+bridge_> ic 16:48 <+bridge_> I commented another one that you got wrong - I also got it wrong initially - it also showcases why the current animation is not accurate anyways 16:49 <+bridge_> so yeah it seems we should prefer mean ping (median? idk i didnt take statistics in school) and record some sensible number for *some interval* 16:49 <+bridge_> if it suddenly higher it should probably always ignore it unless the client reconnects 16:49 <+bridge_> sounds like the right direction 16:49 <+bridge_> but then if/when they reconnect and there is still a ddos, that is an issue 16:50 <+bridge_> now needs thought on how many pings to keep, what the interval should be 16:50 <+bridge_> the client can probably figure itself out if the ping should be higher due to moving location, but idk if i really like this responsibility for client 16:50 <+bridge_> post your thoughts into the issue, I guess โ€” then we just need someone to implement it, if we agree on what it should be 16:51 <+bridge_> yea, that's also difficult. what if the client has moved 16:51 <+bridge_> what i mean to say is that i dont think the client should be self-responsible for keeping track of location, because yeah 16:51 <+bridge_> seems nasty in a project like this 16:53 <+bridge_> might be funny if the server tells the client it moved 16:53 <+bridge_> and so you can trust ping changes 16:54 <+bridge_> @essigautomat I still think that the intra stuff behaves like I wrote. not sure how to clear that up 16:56 <+bridge_> ``` 16:56 <+bridge_> prev_game_tick 276 game_tick 278 intratick 1.4 16:56 <+bridge_> prev_game_tick 278 game_tick 280 intratick 0.4 16:56 <+bridge_> ``` 16:56 <+bridge_> the "current tick" would be computed as `prev_game_tick + (game_tick - prev_game_tick) * intratick` 16:56 <+bridge_> which yields the same result, so it's fine? 16:57 <+bridge_> yes it's fine - you just wrote it's between 0 and 1, which it isn't - it's, in this case, always 0.4 in the future 16:58 <+bridge_> I wanted to say it's a linear interpolation with 0 meaning prev_game_tick and 1 meaning game_tick. I guess I could add that it can be outside, but I didn't want to imply that it's constrained to be in the interval [0,1] 16:58 <+bridge_> okay, this was all I wanted to clarify ๐Ÿ™‚ (that it's not constraint) 16:58 <+bridge_> ah, I said "between" 16:58 <+bridge_> fair 16:58 <+bridge_> okay, this was all I wanted to clarify ๐Ÿ™‚ (that it's not constrained) 16:59 <+bridge_> if you lag out, the intratick even goes up and can go over 2, but I believe you don't need to know this for the issue at hand 17:00 <+bridge_> i have a very annoying request 17:01 <+bridge_> um, so you know how switch state is only given if u spectate team? and its still snap? so i cant request resend cus non-vital? yeah lets just slap a vital netmsg for switches. just for me. thanks 17:01 <+bridge_> i can pay 5 morbillion meme coins! 17:01 <+bridge_> they should be in the snapshot because it's game state 17:02 <+bridge_> what are you trying to do? 17:02 <+bridge_> ye but if u lag and you miss like 3 snaps u cannot tell anymore 17:02 <+bridge_> which is why we have to spec to get it 17:02 <+bridge_> but we cant figure out when it happened, only after 17:02 <+bridge_> hm? snapshots should always contain the most recent data 17:02 <+bridge_> we are concerned with the exact tick where switch changed 17:02 <+bridge_> if there is network loss, we spec afterwards to clean it up 17:03 <+bridge_> since we normally check x,y to know if switch changed logically 17:03 <+bridge_> but we cannot spec everything all the time 17:03 <+bridge_> since switch is gated behind team 17:03 <+bridge_> so we have a spec queue (every 0.3s to be safe) 17:03 <+bridge_> unless you can somehow get the server to spit out all switches from all teams all the time? which we thought was not possible 17:05 <+bridge_> it sounds like you're solving a problem that is not meant to be solved this way ^^ 17:05 <+bridge_> you could probably get the data from a server demo 17:06 <+bridge_> we could assume vague times for things, then get specifics later with demo yeah. but then we need a way to get that demo, or open teehistorian 17:06 <+bridge_> which I don't think we would do? 17:07 <+bridge_> Such meta review pr lmao 17:07 <+bridge_> Gonna merge it 17:08 <+bridge_> Is there any document about bam 17:09 <+bridge_> yes, but just use a normal build system ๐Ÿ™ 17:09 <+bridge_> normal?! last i checked i still cannot use spaces in makefile 17:11 <+bridge_> lua > cmakelists 17:11 <+bridge_> bam masterrace 17:12 <+bridge_> im a lua shill until i die i wont use python for anything now except quick oneoffs 17:16 <+bridge_> @essigautomat can you review https://github.com/ddnet/ddnet/pull/11735 ? ๐Ÿ˜› 17:17 <+bridge_> @heinrich5991 17:17 <+bridge_> ``` 17:17 <+bridge_> // The tick we should predict to. Comes from a magic black box called 17:17 <+bridge_> // "smooth time". 17:17 <+bridge_> ``` 17:17 <+bridge_> :kek: 17:17 <+bridge_> 17:17 <+bridge_> here is the blackbox class: https://github.com/ddnet/ddnet/blob/3dc2a746d97d9ce95b7389ca46ee7afa757ec2e8/src/engine/client/smooth_time.h#L11 17:19 <+bridge_> I think calling it "magic" is accurate 17:21 <+bridge_> Jupstar spend days on his smooth timer too if I remember correctly 17:21 <+bridge_> Jupstar spent days on his smooth timer too if I remember correctly 17:21 <+bridge_> Rip jupsit 17:22 <+bridge_> One of the greatest minds of Teeworlds 17:28 <+bridge_> the intratick starting at 0.5 just invents an extra tick ๐Ÿค” time is not real 17:30 <+bridge_> i knew it 17:32 <+bridge_> can we maybe also talk about why asking for someone to make a map based on an unmerged PR is actively harmful to the community? 17:33 <+bridge_> it's not accessible to mappers (we shouldnt require that mappers are technical people) and we should instead just vote on whether a feature WOULD be used if it were merged, based on mapper/tester consensus 17:34 <+bridge_> like the game should just be built forward, with master branch being the only place anyone in the community really needs to download besides maintainers... 17:34 <+bridge_> this has been really pissing me off. to be quite blunt 17:34 <+bridge_> we have like what, 3 pending PRs? 17:34 <+bridge_> all blocked on maps 17:35 <+bridge_> i cant currently donate my time to this 17:35 <+bridge_> i cant even build ddnet on my machine for some reason 17:35 <+bridge_> what's the error message? 17:37 <+bridge_> `2025-12-04 12:04:28 I dbg: GameTick 280, IntraTick 0.713251, Predicted Tick 282, Predicted IntraTick 0.029383` 17:37 <+bridge_> 17:37 <+bridge_> "Real time": 278 + (280 - 278) * 0.713251 = 279,426502 17:37 <+bridge_> "predicted time": 282 + 0.029383 = 282,029383 17:37 <+bridge_> "predicted time -1": 281,029383 17:37 <+bridge_> 17:37 <+bridge_> ๐Ÿค” @heinrich5991 I can't make sense of any of this 17:37 <+bridge_> Its not like players can even play it before a map releases anyways 17:38 <+bridge_> also u can download it from the artifacts i think 17:38 <+bridge_> but itd be good if that were more visible fd 17:38 <+bridge_> but itd be good if that were more visible fs 17:38 <+bridge_> @heinrich5991 if you think about it, if you make the snap time difference 4 ticks, you get times even more in the past compared to before 17:39 <+bridge_> no. check how they're computed in client.cpp 17:40 <+bridge_> e.g. `m_aGameIntraTick[g_Config.m_ClDummy] = (Now - PrevTickStart) / (float)(CurTickStart - PrevTickStart);` 17:40 <+bridge_> Only with a GitHub account. Maybe we could make a separate alpha-release containing the pending map features. 17:41 <+bridge_> https://nightly.link/ can be used as a mirror for github artifacts that doesn't need a github account 17:41 <+bridge_> if you trust it 17:42 <+bridge_> https://discord.com/channels/252358080522747904/1469372469738733579/1469372469738733579 17:43 <+bridge_> the idea is that you don't implement a feature that nobody wants 17:43 <+bridge_> and if there's someone who wants it, they can make a map with it 17:43 <+bridge_> then let me frame this differently: Currently we are syncing envelopes to the server time. You get the latest snap of the server, i.e. snap 30*50 after 30 seconds, but we are calculating time on the previous snap right? But the server is already calculating the next tick afaict. The PR which was closed had a video attached showing, that the animation lags behind a tick 17:44 <+bridge_> 30 seconds + something 17:44 <+bridge_> because of latency 17:44 <+bridge_> or implement a feature that someone kiinda wants but where it later turns out that it'd have been better to implement it in some slightly different way, but now you can no longer change it without breaking compatibility 17:44 <+bridge_> adding features is hard 17:44 <+bridge_> yes but we are calculating from 30*50 - 2, from the previous snap, then + something 17:45 <+bridge_> who is we? 17:45 <+bridge_> we as in ddnet, as the client ๐Ÿค” 17:45 <+bridge_> we as in ddnet, as the client in envelopes ๐Ÿค” 17:46 <+bridge_> Okay, and that starts and stops on GitHub 17:46 <+bridge_> we're interpolating from the intratick, so it's somewhere between 30\*50-2 to 30\*50+something 17:46 <+bridge_> if you want community polling, well, that is an unrelated thing that concerns more than just gameplay features 17:46 <+bridge_> hm? that starts with a mapper that wants a new feature 17:46 <+bridge_> if that mapper doesn't exist, then we shouldn't add that feature 17:47 <+bridge_> if we can't even find a single mapper wanting to use that feature 17:47 <+bridge_> Ofc there is the impetus of a mapper that wants the feature to make a map, that is the reason that the PR even exists. if you need some requirement that someone will probably make a map (the same person requesting it obviously) then that is also easily done 17:48 <+bridge_> great. take that person and let them make a map with that feature 17:48 <+bridge_> problem solved. we should solve the friction in that process though, you're right 17:48 <+bridge_> And you have to have a specialized team testing 17:48 <+bridge_> that is a problem 17:48 <+bridge_> cus you're not going to get random testers 17:48 <+bridge_> just not possible 17:49 <+bridge_> the idea is to integrate a new map with a new feature into the normal testing procedure 17:49 <+bridge_> Yeah the download should be more accessible 17:49 <+bridge_> If you can make it so that the latest PR change is pinned like the map, that would be better 17:49 <+bridge_> I agree, that we should make it easier for testers to have a "special server" and to download the client for it 17:49 <+bridge_> including download link 17:49 <+bridge_> Tbh i think its fine to just implement some command in the testing bot to give instructions in the channels with new features. Idk if hosting servers on the PR is really worth it 17:49 <+bridge_> But as it is, I still cannot do any of this 17:50 <+bridge_> since the binaries are not compiled with libs 17:50 <+bridge_> what do you want to do that we can help you with? 17:50 <+bridge_> and this will be the case for many others :/ 17:50 <+bridge_> make a map? i cant compile ddnet nor use github action binaries 17:50 <+bridge_> and if you would streamline this process for once, i would not be the only annoying son of a bitch asking 17:50 <+bridge_> I guess an option inside the discord map submission channel, to link your map to a PR and have binaries to download embedded 17:50 <+bridge_> no one would be 17:51 <+bridge_> it would be anyone willing to donate their time 17:51 <+bridge_> instead of just me complaining because i happen to care lol 17:51 <+bridge_> plz just add artifacts for embedded 17:51 <+bridge_> that solves like 20% at least 17:52 <+bridge_> ahhh 17:52 <+bridge_> I finally fixed bam compile now : 17:52 <+bridge_> artifacts for embedded? can you explain that? 17:52 <+bridge_> okay why was my town-hall post locked 17:52 <+bridge_> not everyone is going to read this channel 17:52 <+bridge_> nor check github issue number twelve thousand something 17:53 <+bridge_> i want other feedback on it 17:53 <+bridge_> it doesnt run for me. im on 64bit linux 17:53 <+bridge_> what's the error message? 17:54 <+bridge_> https://discord.com/channels/252358080522747904/1469372469738733579/1469373907441156269 17:54 <+bridge_> 17:54 <+bridge_> I didn't even know you already had a mapsubmission: 17:54 <+bridge_> 17:54 <+bridge_> I already suggest one feature: Add another emoji for new features as well 17:54 <+bridge_> what? is this some bot autoreplying to this xD 17:54 <+bridge_> https://discord.com/channels/252358080522747904/1469372469738733579/1469373907441156269 17:54 <+bridge_> 17:54 <+bridge_> I didn't even know you already had a mapsubmission: 17:54 <+bridge_> 17:54 <+bridge_> I already suggest one feature: Add another emoji for new features in maps as well 17:54 <+bridge_> me? no 17:54 <+bridge_> i dont, i dont have a map for something i cant even run 17:54 <+bridge_> damn i guess u just type fast 17:56 <+bridge_> I believe this is a technical problem on your side - I so far never had issues downloading artifacts and running them. 17:56 <+bridge_> 17:56 <+bridge_> I also believe the binaries needed for testing should be embedded into the testing channel somehow 17:59 <+bridge_> @gorp_tw I won't respond to you in the town hall post โ€” I think that's one place too many 17:59 <+bridge_> I think it's not good that you split the discussion in so many places 17:59 <+bridge_> so many? i started talking here, thought it better to make a town hall post, and made a town hall post? 17:59 <+bridge_> why are you being so weird about this 17:59 <+bridge_> and i think a workflow for this stuff wouldnt hurt. 17:59 <+bridge_> 17:59 <+bridge_> Maintainers do a technical vote -> github issue 17:59 <+bridge_> An environment for people to test 17:59 <+bridge_> requires Tester feedback, which doesnt have to be a fully readymade map, but something that properly showcases the idea, (e.g #๐Ÿ’คโšกceramic) 17:59 <+bridge_> 17:59 <+bridge_> did i miss context or a statement towards what i just wrote? sorry i dont really want to backlog everything 17:59 <+bridge_> i would ofc prefer it goes there 17:59 <+bridge_> stop talking about it here if you wish, im not thought police 18:00 <+bridge_> I think a workflow for this stuff wouldnt hurt. 18:00 <+bridge_> 18:00 <+bridge_> Maintainers do a technical vote -> github issue 18:00 <+bridge_> An environment for people to test 18:00 <+bridge_> requires Tester feedback, which doesnt have to be a fully readymade map, but something that properly showcases the idea, (e.g #๐Ÿ’คโšกceramic) 18:00 <+bridge_> 18:00 <+bridge_> did i miss context or a statement towards what i just wrote? sorry i dont really want to backlog everything 18:00 <+bridge_> I think a workflow for this stuff wouldnt hurt. 18:00 <+bridge_> 18:00 <+bridge_> 1. Maintainers do a technical vote -> github issue 18:00 <+bridge_> 2. An environment for people to test 18:00 <+bridge_> 3. requires Tester feedback, which doesnt have to be a fully readymade map, but something that properly showcases the idea, (e.g #๐Ÿ’คโšกceramic) 18:00 <+bridge_> 18:00 <+bridge_> did i miss context or a statement towards what i just wrote? sorry i dont really want to backlog everything 18:00 <+bridge_> I had no part in https://discord.com/channels/252358080522747904/342454474117218334/1469375175156830269 this message 18:00 <+bridge_> assuming this is part of your 3 total 18:01 <+bridge_> I think we could solve this by adding an `experimental` ๐Ÿ”ฌ category for the bot - of course without adding that ingame - instead of the solo category that the ceramic map has now 18:02 <+bridge_> thats actually really easy 18:02 <+bridge_> i always thought ddnet could add shaders like the ones used in terraria, subtle but look cool 18:02 <+bridge_> and the map submission form should add a field for the PR link if you select this type 18:02 <+bridge_> that doesn't pester contributors for non-issues too much 18:02 <+bridge_> its so exhausting to me to try to do things in good faith and just get nitpicks and i started my day talking about more of the same 18:02 <+bridge_> it makes me want to never talk about anything here 18:03 <+bridge_> maybe find a way to skip the screenshot part 18:03 <+bridge_> I think everyone here is trying to work in good faith 18:03 <+bridge_> like i am not perfect 18:03 <+bridge_> i am trying to do the best thing possible in my mind 18:03 <+bridge_> so i made a town hall post 18:03 <+bridge_> i wonder if using vulkan, u can render somewhere offscreen and verify the pixels or smth 18:03 <+bridge_> it's the same for me though โ€” I'm not perfect either โ€” I decided that I can't follow more than the #developer chat of this discord 18:03 <+bridge_> and I can barely follow that 18:04 <+bridge_> right but still my post was extrajudicially locked by *someone* 18:04 <+bridge_> by me 18:04 <+bridge_> I posted a message in that channel 18:04 <+bridge_> agree 18:04 <+bridge_> and you thought you should make a decision on the behalf of everyone else in this whole server when you yourself already know that you didnt want to participate anymore? 18:04 <+bridge_> what?? 18:04 <+bridge_> I wanted to participate in the discussion, it was happening in #developer 18:04 <+bridge_> just make it make sense 18:05 <+bridge_> then a separate discussion place was opened 18:05 <+bridge_> That does not limit your participation, it makes it possible for more people to communicate. 18:05 <+bridge_> i did a heinrich, i replied to chat as i scrolled, not bad 18:05 <+bridge_> but i skipped half, too much text 18:05 <+bridge_> issue with the current workflow (requiring a map with "ready" status) is that we're now not pestering contributors, but mappers 18:05 <+bridge_> we're not solving the problem, we're shifting it onto a different group 18:05 <+bridge_> discord cant even do a chat app 18:05 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1469378513160372326/XvI5JhD.png?ex=698770e1&is=69861f61&hm=b6debc8708574401af6d0a046e9db75ee5a36ee47bbbe90dc6d50c8049d40857& 18:05 <+bridge_> I shouldn't get to lock #developer because someone is having a conversation I want to be a part of and it's not happening in my preferred place 18:05 <+bridge_> wtf 18:05 <+bridge_> nah this is crazy im stepping out 18:06 <+bridge_> my comment was about the LLM stuff, nothing with map testing 18:06 <+bridge_> oh, sorry then 18:06 <+bridge_> to many.. chatlogs in one 18:06 <+bridge_> :kek: 18:06 <+bridge_> @gorp_tw the town hall post isn't locked anymore AFAIK, you can discuss stuff there 18:07 <+bridge_> I unlocked it after you complained about it 18:07 <+bridge_> (even though I thought it'd be better to keep it in one place) 18:07 <+bridge_> for the envelope trigger tiles I am also going to do the map myself - but before I create any map besides the small showcase, I need an okay from other maintainers 18:08 <+bridge_> like I am not doing a full map without confirmation, that this feature is wanted or ready 18:08 <+bridge_> I'm in favor of envelope trigger tiles, if they come with a protocol. I have not looked at the PR recently to see whether the protocol works already 18:08 <+bridge_> protocol works, I tested it and provided the server code to test it yourself. 18:08 <+bridge_> 18:08 <+bridge_> Sound also works, I am finished ๐Ÿ˜„ 18:09 <+bridge_> cool ๐Ÿ™‚ 18:09 <+bridge_> maybe I'll get around to look at it 18:09 <+bridge_> I am mostly worried for my usage of the unordered_map datatype :justatest: 18:10 <+bridge_> but C++ doesn't provide me with a good direct acces hash map type 18:10 <+bridge_> @blaiszephyr do you mind putting your points in the town hall post where they can be read 18:13 <+bridge_> how big is the map? 18:13 <+bridge_> or: can you quickly link the pr pls? 18:17 <+bridge_> the map is usually parse, but up to 65K entries are possible 18:17 <+bridge_> 18:27 <+bridge_> revived it :3 18:27 <+bridge_> direct access hashmap? 18:28 <+bridge_> What do you want to access directly? The buckets? IIRC `unordered_map` does expose that 18:36 <+bridge_> `./DDNet: error while loading shared libraries: libGLEW.so.2.2: cannot open shared object file: No such file or directory` 18:37 <+bridge_> cant even figure out what thing this is pulling from 18:37 <+bridge_> from ddnet-lubs 18:37 <+bridge_> which linux distribution are you on? `cat /etc/os-release` 18:37 <+bridge_> from ddnet-libs 18:38 <+bridge_> arch 18:38 <+bridge_> yes, but I wish I could do that collisionless if I have a fixed indice, like a unique id. I don't want a vector of size 65.000 if we only need 4 entires or something like that 18:38 <+bridge_> is anyone else running arch unable to run the Ubuntu binaries from GitHub Actions? 18:39 <+bridge_> bound to be someone here 18:39 <+bridge_> that library seems not to exist on arch, there's only `/usr/lib/libGLEW.so.2.3` 18:39 <+bridge_> I'll open an issue, thanks for the error message 18:39 <+bridge_> this might actually be a case of "github runners only have 3 OS" ... ๐Ÿ™ I'd love to autobuild against steamOS for example 18:39 <+bridge_> FWIW they haven't worked for me ever, across years 18:39 <+bridge_> and it was a different lib before 18:40 <+bridge_> this is the only time ive really tried and failed to get it to work 18:42 <+bridge_> ah 18:42 <+bridge_> It will 99.9% of the time be collisionless anyway with 4-5 entries 18:42 <+bridge_> we always couldn't run Ubuntu binaries on Arch Linux 18:43 <+bridge_> I'm pretty sure it was not only this lib in the past 18:43 <+bridge_> and with 300 entires? Like there is a reason this supports 65K 18:43 <+bridge_> i just cant remember the name and its long lost now 18:43 <+bridge_> I think that couldn't be fixed unless we set a server to build for Archlinux and link it to github actions. 18:43 <+bridge_> when I set up the CI, I was able to run the binaries no my arch linux, I think 18:43 <+bridge_> unclear, let's investigate 18:44 <+bridge_> did you mean to write 2.2? 18:44 <+bridge_> you said 2.3 not found and put logs for 2.3 18:44 <+bridge_> Well idk the defaults exactly, but as long as the amount of buckets are much larger than the amount of entries you won't have collisions. 18:44 <+bridge_> oh, my system is looking for 2.2 18:45 <+bridge_> i remember i did this some time ago https://edgl.dev/blog/rust-hashmap/ 18:48 <+bridge_> But yeah you can't really have it "perfect" with unordered_map out of the box. You could technically implement your own std::hash and make sure there are no collisions for a given set of entries 18:48 <+bridge_> Does rust use quadratic probing? 18:48 <+bridge_> yes 18:49 <+bridge_> > A hash map implemented with quadratic probing and SIMD lookup 18:49 <+bridge_> https://doc.rust-lang.org/std/collections/struct.HashMap.html 18:49 <+bridge_> > The hash table implementation is a Rust port of Googleโ€™s SwissTable. The original C++ version of SwissTable can be found here, and this CppCon talk gives an overview of how the algorithm works. 18:49 <+bridge_> Is there a hashmap with vector backed linked list buckets in Rust? 18:50 <+bridge_> > linked list 18:50 <+bridge_> sinful! 18:50 <+bridge_> i think u refer to a open addressed hashmap 18:50 <+bridge_> or was it closed 18:50 <+bridge_> I imagine that would perform even better than quadratic probing for small key value types 18:51 <+bridge_> https://en.wikipedia.org/wiki/Open_addressing 18:51 <+bridge_> I refer to a closed addressing one but with a "dense" bucket structure 18:51 <+bridge_> So you can have cache locality still incase of collisions 18:53 <+bridge_> do In have any Control over this? 18:54 <+bridge_> You can rehash to change the amount of buckets 18:54 <+bridge_> std::hash for basic int type? 18:55 <+bridge_> You'd have to first wrap it in a custom key type so you can specialize std hash for just your keys 18:56 <+bridge_> Honeslty, don't bother IMO. The defaults are not that bad and collisions are just a handful of simple dereferences away. The performance penalty isn't horrible 18:57 <+bridge_> You can try bench it and if it's somehow actually bad you can just pull in a better hashmap from somewhere. There are perfect hashing ones out there when you know your set of keys in advance 18:57 <+bridge_> The issue is that this map is checked in rendering, thats why I care 18:58 <+bridge_> but it almost always only reads in rendering 18:58 <+bridge_> Well I can only tell you what I'd try. I'd make a very bad case, intentionally make the load factor very high. Then check if it's having an impact 19:00 <+bridge_> If it is having significant impact, then we can start looking at solutions 19:01 <+bridge_> yeah premature optimization ^^ 19:02 <+bridge_> (Like iirc there is a way to construct a minimal perfect hash table using a bloom filter) 19:03 <+bridge_> Found it, BBHash 19:11 <+bridge_> > Make it work, then make it beautiful, then if you really, really have to, make it fast. 90 percent of the time, if you make it beautiful, it will already be fast. So really, just make it beautiful! 19:11 <+bridge_> top quotes 19:12 <+bridge_> @stormaxd is your client, right? why does firefox flag it as a scam website & why does your site automatically try to open my phantom wallet? 19:13 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1469395472157376794/0OwZvyA.png?ex=698780ac&is=69862f2c&hm=32e44c74370b4c8709f258ffffda40d8ecb58697fd71e2ddf3c9fe0601bded1e& 19:13 <+bridge_> lmao 19:13 <+bridge_> maybe he didnt renew the domain 19:13 <+bridge_> and someone squatted it 19:13 <+bridge_> lmao 19:22 <+bridge_> I think I would like more tags for #town-hall 19:22 <+bridge_> maybe filterable by tiles 19:22 <+bridge_> Whoever said this, very well said 19:24 <+bridge_> making it fast often reverses the beauty in C 20:08 <+bridge_> Can we add this disclaimer to #off-topic and #general ? 20:08 <+bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1469409549558743081/image.png?ex=69878dc8&is=69863c48&hm=8a339931816a16523f5a89714ec43dc27104282073448888f6b6ea8a0de7a8a9& 20:09 <+bridge_> idk who to @ 20:10 <+bridge_> <12944qwerty> ok 20:10 <+bridge_> where qwerty go 20:10 <+bridge_> <12944qwerty> i mesed up was trying to talk on ddnet not discord 20:11 <+bridge_> xD 22:43 <+bridge_> Oh yeah... 22:43 <+bridge_> It probably is squatted 22:44 <+bridge_> Meh that's sucks. I'll fix that once I'll get my electricity back asap 22:50 <+bridge_> Would it be possible to implement auto-completion for /map? 22:50 <+bridge_> (without parsing map votes) 22:50 <+bridge_> or would we need a different system (like an index) to communicate to clients what all available maps are? 22:50 <+bridge_> I think /map uses the db to figure out which maps are available 22:51 <+bridge_> you could use the same system to send the list of all possible maps to the client 22:51 <+bridge_> for /map completion 22:51 <+bridge_> so I guess as long as the db tells you all maps from some endpoint u could do it 22:51 <+bridge_> not sure if that's a good idea โ€” perhaps it'd be better to improve the voting menu. I think it'd be good to think about the general problem a little before implemeting 22:52 <+bridge_> for me the problem is remembering what a map's full name is 22:52 <+bridge_> ofc a full menu would solve this but that's way more work than command completion 22:52 <+bridge_> and we should probably still consider command completion to be important even in the presence of such a menu 22:53 <+bridge_> yes โ€” sometimes the best way forward isn't the one with minimal effort 22:53 <+bridge_> idk why we should block specific command completions because "you can maybe in the future not use commands at all" 22:53 <+bridge_> some people will still prefer the commands (me) 22:54 <+bridge_> because if we implement everything that someone wants, we end in an unmaintainable code base 22:56 <+bridge_> should we not implement skin tooltips in the scoreboard because it already exists in the player menu? 22:56 <+bridge_> we already have completion in chat, just not for /map/ 22:56 <+bridge_> we already have completion in chat, just not for /map. 22:57 <+bridge_> we should implement it there because we decided that the score board is a good replacement for the players tab 22:57 <+bridge_> and the players tab already had that feature 22:57 <+bridge_> we thought about it and determined that we want it 22:57 <+bridge_> I think it's important to think about whether we want features 22:59 <+bridge_> idk, other ppl can tell me if they want this feature i guess :D 23:05 <+bridge_> well if you ask the average user "do you want this feature?" it's unlikely they'll respond with "no" 23:05 <+bridge_> from a user perspective more features are almost always better 23:07 <+bridge_> I'd love the feature 23:08 <+bridge_> ok ill rephrase my point: what complications could come of implementing this feature? 23:09 <+bridge_> if completion code is shared (as i assume the skin tooltip is) then it shouldnt introduce more technical debt other than reliance on a certain map query 23:09 <+bridge_> if completion code is shared (as i assume the skin tooltip would be) then it shouldnt introduce more technical debt other than reliance on a certain map query 23:09 <+bridge_> there's no argument completion code for the chat so far AFAIK 23:10 <+bridge_> so that's going to be a new feature 23:10 <+bridge_> is there a scheme for ddnet mysql database 23:10 <+bridge_> well, i assume its based on a list of strings for names 23:10 <+bridge_> wouldnt it be the same thing 23:11 <+bridge_> and you can ofc use names as arguments, i guess you would have to make sure names are also ignored after "/map" 23:11 <+bridge_> if you mean player names, I'd assume that the code can't be reused 23:12 <+bridge_> can it not be refactored to accept any array of strings and current position? 23:12 <+bridge_> can it not be refactored to accept any array of strings and current position + substring? 23:13 <+bridge_> I didn't sign up to design this feature, sorry 23:13 <+bridge_> I've probably already spent a couple of minutes on a feature where I just said "we should consider whether we want it or not" 23:14 <+bridge_> if I respond to your question, I don't see the discussion stopping ^^ 23:14 <+bridge_> but you said you assume it cant be reused 23:14 <+bridge_> yes 23:14 <+bridge_> yes 23:14 <+bridge_> that is a continuation of the topic to me xd 23:14 <+bridge_> i doubt there's no way to reuse the part that accepts a substring 23:14 <+bridge_> it would apply to a different array, that's all 23:15 <+bridge_> /quit 23:15 <+bridge_> okay 23:15 <+bridge_> also my first question was in response to arch 23:16 <+bridge_> https://discord.com/channels/252358080522747904/293493549758939136/1469454809101893910 ping pong but it do be a public channel not dms 23:39 <+bridge_> The chat auto complete code is some of the worst in the game, really top notch terrible. The tclient chat binds autocomplete took forever to iron out 23:40 <+bridge_> hm okayu 23:40 <+bridge_> hm okay 23:40 <+bridge_> would backporting some better code to the name completion be worth investigating? :D 23:41 <+bridge_> It could definitely be made better 23:42 <+bridge_> The issue right now is that its juggling a bunch of state without any interface 23:42 <+bridge_> So you just have to know how to manipulate all the magic members to make it barely functional 23:42 <+bridge_> a class or something would be good here 23:51 <+bridge_> what does this mean , i use ddnet-insta : [Warning] [MY-013360] [Server] Plugin mysql_native_password reported: ''mysql_native_password' is deprecated... 23:51 <+bridge_> 2026-02-06T21:44:16.084550Z 9 [Warning] [MY-013360] [Server] Plugin mysql_native_password reported: ''mysql_native_password' is deprecated and will be removed in a future release. Please use caching_sha2_password instead' 23:52 <+bridge_> what does this mean , i use ddnet-insta :