00:00 < bridge> Non argument 00:00 < bridge> Whole game's meaningless with an admin team that halfass cares about it :greenthing: 00:00 < bridge> real 00:00 < bridge> only roby keeping it alive 00:00 < bridge> i.. dont even really agree 00:01 < bridge> people are burnt out or busy with other stuff, im almost certain. i don't think i would equate that to not caring 00:01 < bridge> Sure, in the end it's the same thing 00:01 < bridge> end result yeah 00:01 < bridge> but framing the issue correctly is important 00:02 < bridge> its not like tas ranks exist permanently, they're reversible as in you can remove them from the db 00:02 < bridge> I'm gonna read the entire QUIC spec today 00:02 < bridge> wish me luck 00:03 < bridge> goddamnitsfuckinlong 00:03 < bridge> they have nobody to please but kids who came to ddnet because it was free and bcs their potato PCs can run it 00:04 < bridge> there’s no novelty in the OSS nature anymore 00:04 < bridge> I'll be honest the audience is a huge deal of it 00:04 < bridge> from my end as well 00:05 < bridge> if I know I'm banning some grade schoolers friend who's honestly just going to block other people after I disconnect, it's not exactly something I get much gratification from 00:06 < bridge> The older community has stalled out or diffused into duos or otherwise private spaces it seems 00:06 < bridge> the "groups" now are mostly children 00:06 < bridge> Tons of devs is a vast overstatement. Only like 3 are working on any level of activity that's beyond fixing things that are emergencies 00:07 < bridge> just on changelog alone ive seen at least a handful of ppl I didnt even know in 2022 00:07 < bridge> i get that they're not all active or whatever 00:07 < bridge> but they're here, they exist, and if maybe we all organized and talked about it, they would be more active :P 00:08 < bridge> They are all new and interested in shiny new things that are shiny and new 00:09 < bridge> maybe! but we should ask :3 00:10 < bridge> No one new is interested in (or capable of) working on finishing up a PoC by a senior dev changing vast pieces of networking code to unblock another PoC that is about to bring a version of accounts that are not very intuitive and don't really do anything 00:11 < bridge> All the pieces of my statement above can be argued about, but just the fact that it needs discussing is enough to put off most the new people. They want to change text colors. add new ui, add new packets 00:12 < bridge> i will make sure the conversation happens and prove learath-kun wrong 00:12 < bridge> even with fixing and 1 line prs its like 10 devs max 00:13 < bridge> hai @alw5 @sollybunny ya wanna talk about accounts together 00:13 < bridge> I know an almost surefire way to get QUIC completed ASAP 00:13 < bridge> Implement in a very dirty way DTLS over UDP instead. Open the PR and heinrich is sure to show back up to stop the madness 00:13 < bridge> xD 00:14 < bridge> drop back compat 00:14 < bridge> DROP 0.7 00:15 < bridge> u gotta find rce in old vers to get admins to drop backwards compatibility 00:16 < bridge> who wants to add new feature: 00:16 < bridge> who wants to maintain features: 00:16 < bridge> You can technically create a secure channel over an insecure one (with some drawbacks). My veery first attempt at accounts used something akin to STARTTLS 00:16 < bridge> YES 00:16 < bridge> you're not- 00:16 < bridge> revert back to monke 00:16 < bridge> supposed to agree 00:16 < bridge> The ddnet.tw domain being lost almost got all the old versions killed 00:17 < bridge> we need zombietoad now 00:17 < bridge> yes i was almost happy 00:18 < bridge> domain lost, discord links lost 00:18 < bridge> 😂 00:18 < bridge> discord.gg/ddnet 00:19 < bridge> discord.gg/ddracenetwork 00:19 < bridge> yooooooooooooooooooooo 00:19 < bridge> time to join up 00:19 < bridge> Tbf I don't even see all that much of an issue leaving all non-critical communication unencrypted. But this was litigated in the past and past heinrich somehow convinced past me it wasn't a great idea. So it probably isn't a great idea 00:19 < bridge> wrong link still in #welcome 00:19 < bridge> not even first time this is brought up 00:20 < bridge> @murpi can you remove that link? 00:20 < bridge> Discord for some reason refuses to let us be a partner. So everytime our nitro boost runs out someone yoinks our invite link 00:22 < bridge> hi i like accounts 00:24 < bridge> cool one second 00:26 < bridge> Chat should I quickly rush through and make a very centralized very traditional account system? 00:26 < bridge> it would be measurably better than nothing 00:26 < bridge> which is the track we’re on 00:27 < bridge> like, literally i will fork over cash 00:27 < bridge> 100 USD 00:27 < bridge> we are seeing yet another example of the software developer's desire for output vs the software engineer's desire for perfection 00:28 < bridge> kog has a fuckin chat command man 00:28 < bridge> literally anything would work 00:28 < bridge> do it, I believe in you 00:28 < bridge> that's not even to say the desire for perfection is better all the time, that's how we end up here 00:29 < bridge> Trying to solve zooko's trilemma was our first mistake. Far smarter people have tried, far smarter people have failed 00:29 < bridge> Surely my sweet Learath would never let me down 00:29 < bridge> Quick guys, grab his booze 00:29 < bridge> you need booze money buddy 00:29 < bridge> im bribing you now, deadass 00:30 < bridge> what does the AT protocol miss out of these demands 00:30 < bridge> seemed kinda cool to me the way they did it 00:30 < bridge> AT mentioned 00:30 < bridge> is @whatever considered high entropy 00:32 < bridge> unrelated question: has anyone seen this (using MinGW)? 00:32 < bridge> ``` 00:32 < bridge> libcurl error (77): error setting certificate 00:32 < bridge> file: C:/msys64/home/ewan/TaterClient-DDNet/etc/ssl/certs/ca-bundle.crt 00:32 < bridge> ``` 00:32 < bridge> browser won't load at all, and it's quite annoying 00:33 < bridge> i don't think this is directly caused by anything in ddnet/tclient code, it's probably some stupid (and false) preprocessor assumptions 00:33 < bridge> but it's new 00:35 < bridge> honestly though i have zero idea why it would treat the build folder as the sysroot 00:35 < bridge> honestly though i have zero idea why it would treat the source folder as the sysroot 00:36 < bridge> Well it only pretends to be decentralized. It's freeloading off of DNS which is centralized 00:36 < bridge> it's centralized in that it has authoritative servers, but i'm not sure how you can get better than that 00:37 < bridge> we can't store every hostname on every instance and hope the naive resolution by each is correct 00:37 < bridge> You can check out the wikipedia page for zookos "trilemma" and see some clever actual solutions to it. I also consider those cheating 00:37 < bridge> actual solutions or cheating? xd 00:37 < bridge> i looked at the page for a sec 00:40 < bridge> can someone explain to me like i'm stupid how blockchain even got so prominent for decentralized networking 00:40 < bridge> i understand proof of work as consensus but is that the only way 00:40 < bridge> Well wikipedia considers them actual solutions it seems. I don't really since each has a flaw. 00:40 < bridge> 00:41 < bridge> The blockchain solution is only truly secure if noone controls more than half the network. 00:41 < bridge> 00:41 < bridge> The decentralized ip thing is only "human meaningful" in the sense that you can make out the sounds of the names. 00:41 < bridge> yeah 00:41 < bridge> the ultimate hack 00:41 < bridge> just bind all ipv4 sections to english words 00:41 < bridge> human readable!!! 00:42 < bridge> i hate "memorable" passwords from password managers too 00:42 < bridge> the reason you exist is so i don't have to remember the passwords. stop putting words in there 00:42 < bridge> LoserPotatoCatGravity 00:45 < bridge> Our upcoming account system has human meaningful names, is secure and is a tiny bit decentralized in the sense that it technically allows third parties to piggyback off of our centralized accounts 00:46 < bridge> > LoserPotatoCatGravity 00:46 < bridge> if u think this is meaningful idk what to say 00:46 < bridge> numbers have meaning too. this is no different from a string of those 00:47 < bridge> they also tend to forget that people mainly remember words in grammatically correct scenarios? where if there's any uncertainty on the order of the words, it can be decided thru grammatical rules 00:47 < bridge> putting random shit together isn't that at al 00:47 < bridge> putting random shit together isn't that at all 00:48 < bridge> its still more memorable than $$287be&^bOucuq1 00:48 < bridge> However, the human meaningful names are not assigned by the central server so can't really be used for anything. They are also not really shown anywhere. They just kinda exist 00:48 < bridge> 00:48 < bridge> It's pretty secure unless we all missed something major. So we did pretty well on that part 00:48 < bridge> 00:48 < bridge> And is pretty much not decentralized, if the ddnet account server were to be dead for a while other server wouldn't really be able to issue certificates instead of us 00:49 < bridge> So given 3 options, allowed to pick 2, we picked 1.6 options 00:50 < bridge> You are supposed to weave a story through it to remember it 00:50 < bridge> you're telling me CorrectHorseBatteryStaple has a story? 00:51 < bridge> maybe to the average joe but i have a hard time seeing a scenario where i remember either of these 00:51 < bridge> im definitely gonna remember any 4 words honestly, if i type it more than maybe 3 times 00:51 < bridge> make unmemorable ID, memorable name 00:51 < bridge> its also easy to type them manually in cases where u have to 00:51 < bridge> Imagine a Loser losing a Potato, finding that the Cat ate it, while at the ceiling because the Gravity is upside down. Or something like that 00:52 < bridge> at work i constantly have to have my password reset by the manager because i frequently forget to clock out, and after entering it once i just remember it and use that password they came up with l o l 00:53 < bridge> is imagining that more or less work than taking the effort to memorize a shorter password? in this case the words aren't much more meaningful than individual characters, since it's not a password and ppl aren't really trying to brute force guess them & as such length matters less 00:53 < bridge> or, lookup by name, if there are duplicates you don't have to remember yours *exactly*, just well enough to know which is which 00:53 < bridge> is imagining that more or less work than taking the effort to memorize a shorter UID? in this case the words aren't much more meaningful than individual characters, since it's not a password and ppl aren't really trying to brute force guess them & as such length matters less 00:55 < bridge> Depends on the way your memory works I reckon. A lot of blind rubix cube solvers similarly use stories to memorize a set of moves. Ditto for people memorizing pi and decks of cards 00:56 < bridge> that has merit 00:56 < bridge> for an account identifier tho im just not sure 00:57 < bridge> ID should be human-readable though for /players/id no? 00:57 < bridge> Weren't we talking about passwords? The idea with using words is that you can remember them easier but they result in far longer effective passwords, making the possibility space massive 00:57 < bridge> or at least not super long 00:58 < bridge> The current accounts implementation has human-readable (even meaningful) usernames, albeit they are per server network 00:58 < bridge> name would be fine, as it is you already have 404s on the staff page from name changes 00:59 < bridge> oh, for passwords i think 4 words together is better than 4 characters together purely for security's sake 01:00 < bridge> not really for memorability, but in my opinion, memorability isn't a factor when we're talking about a password manager generating & storing & pulling it up for you when it's time to use it 01:00 < bridge> i wasn't following that closely but i think the conversation drifted a bit 01:00 < bridge> Yes, we are having 3 interleaved convos it seems 😄 01:00 < bridge> yeah 01:01 < bridge> why not 01:01 < bridge> Anyway, I need to sleep. Tldr, accounts when, accounts soon, accounts I am not really sure about 01:01 < bridge> i've never heard that before 01:02 < bridge> sleep well 01:02 < bridge> i started a patchwork team of people that are being dragged against their will 01:02 < bridge> and we dont know what we're doing 01:02 < bridge> in game or in real 01:02 < bridge> but 01:02 < bridge> Tbf perhaps it's just that I'm just particularly dumb. Others seemed fairly confident in the accounts 01:02 < bridge> yeah if you are actually serious thats cool 01:02 < bridge> good night leretha2 01:03 < bridge> or if you want to sit with us Mr. learath you can 01:03 < bridge> good nice prince 01:04 < bridge> AH I remember why I stopped my very first attempt at accounts. It's because people told me not to roll my own crypto 01:04 < bridge> but do it 01:05 < bridge> i did it, once 01:05 < bridge> Then I dug around for hourst trying to find some other audited project that implemented some standard secure channel over plaintext channel. Then I just decided the entire thing was too much of a headache 01:05 < bridge> Then I dug around for hours trying to find some other audited project that implemented some standard secure channel over plaintext channel. Then I just decided the entire thing was too much of a headache 01:05 < bridge> you can have a headache with us for fun, imagine being social and enjoying doing anything with the game though 01:06 < bridge> i imagine instead murpi sitting at his desk alone with an inbox of paperwork that touches the ceiling 01:06 < bridge> Actual sleep time now. Gn everyone 01:21 < bridge> gn 01:37 < bridge> Done 02:58 < bridge> yo is this shit still bugged 02:58 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1376726217352413194/image.png?ex=68365fb4&is=68350e34&hm=e76e90217af9a9a7cc3769984a06d8791e1264b035361535d724dc7d3c1abd47& 07:56 < bridge> morning RAII enjoyers and others 07:57 < bridge> gm 10:31 < bridge> oauth2 go brr? 10:32 < bridge> me go brr ):<<< 10:34 < bridge> yo working as intended 10:34 < bridge> did you place them or did you load a map? 11:32 < bridge> --- 11:32 < bridge> Did we ever find out what's causing the fps drop between ddnet 17 and 18? 12:27 < bridge> https://ctf0.de/posts/realworldctf5-teewars/ 12:28 < bridge> im sure ryo posted it 2 years ago but anyway 13:30 < bridge> That would be amazing. Any plans to actually do it? Maybe there is an issue I can track? I see huge need in this (netobjs flag telling the client not to interpolate positions between ticks) 13:55 < bridge> What do you need this for? It's not about prediction 13:55 < bridge> At least not anti-ping 14:08 < bridge> Honestly a very very niche thing, I can't see it applying to much other than the case of teleporting stuff. What might be cool is a sort of flag to indicate that an netobj shouldn't be predicted at all, sort of an indicator that the object is being used in a non-standard manner 14:11 < bridge> About fixing the teleport interpolation, I wonder if a limit to how far we interpolate for inter-ticks might be enough of a band-aid without requiring network changes 14:12 < bridge> We can get a rough estimate of how far you can move at max speed between 2 ticks, if it's much further than that we just wouldn't interpolate 14:12 < bridge> we also have the velocity inside of the character object 14:13 < bridge> That's even better, if pos + vel isn't enough, don't interpolate 14:13 < bridge> I think a sensible estimate wouldn't be too difficult to get 14:13 < bridge> Sounds brittle, we should focus on correctness 14:13 < bridge> there are small edge cases for why we need a threshold (e.g. ninja literally teleports you) 14:14 < bridge> I'm just wondering if a flag to prevent interpolation from the server-side is the "correct" answer to the question 14:14 < bridge> I'd say a counter is 14:16 < bridge> (The entire inter-tick thing is a completely client-side concept, should the server really know about the specifics of that? I'd think it's the clients responsibility to display the movement the server sent "properly") 14:17 < bridge> ((atleast that's what I'm thinking right now, very open to be convinced otherwise)) 14:17 < bridge> The server does not really know about it. it just counts non_linear_events 14:18 < bridge> This can also be applied to ctf flags resetting, or respawing (the teleport one) 14:18 < bridge> or stuff like that 14:20 < bridge> glorp 14:20 < bridge> gnarp 14:21 < bridge> I don't think it's unreasonable to expect the client to know what death or teleport tiles are 14:21 < bridge> If I were to reframe my thinking in terms of this: 14:21 < bridge> Why are `non_linear_events` special? Wouldn't the velocity of the entity is not being enough to change the position that much be an indicator that the movement was non_linear? 14:22 < bridge> Flags resetting also suffer from the exact same issue, they have 0 velocity, they move an insane amount, obviously shouldn't be interpolated 14:22 < bridge> That's usually correct and I've used it and it has worked fine almost all of the time 14:22 < bridge> in other games of course 14:23 < bridge> It'd also make more sense in the ninja case. It's special that the ninja has this dash looking movement, but no where do we have code for this special behaviour 14:23 < bridge> Now what I am not sure about is whether this looks worse in the edge cases where the connection might lose some snaps and stuff 14:37 < bridge> hello 14:37 < bridge> niga 14:38 < bridge> nigadyai 14:38 < bridge> est russkie 14:38 < bridge> ale??? 14:47 < bridge> Easy antihax 14:47 < bridge> ```cpp 14:47 < bridge> if((str_startswith_nocase(pMsg->m_pMessage, "bro, check out this client..."))) 14:47 < bridge> { 14:47 < bridge> Ban(pPlayer, Time, Reason); 14:47 < bridge> } 14:47 < bridge> ``` 14:48 < bridge> Easy antihax 14:48 < bridge> ```cpp 14:48 < bridge> if((str_comp(pMsg->m_pMessage, "bro, check out this client..."))) 14:48 < bridge> { 14:48 < bridge> Ban(pPlayer, Time, Reason); 14:48 < bridge> } 14:48 < bridge> ``` 15:14 < bridge> Rip @.cammo. 15:23 < bridge> @learath2 even if i get your point, let's stay realistic, the servers know about quite a few things that are more client side. 15:23 < bridge> 15:23 < bridge> e.g. the attack tick time (so animations can play even after the _actual_ attack was instant. 15:23 < bridge> the laser is not despawned before the next eval tick. so the client can render it the whole time (it will have no logic anymore, since there is an early return to destroy it in the tick) 15:24 < bridge> in other games where animations are blocking the server often has to simulate the same animation too 15:28 < bridge> man 15:29 < bridge> completely ruins my plans 15:29 < bridge> str compare nocase 15:30 < bridge> or a score based comparision even better 15:30 < bridge> add exceptions to it 15:38 < bridge> There is one more plus to keeping this fix to the client side, old servers would immediately benefit from it too. Is there an issue for this where we can list these out and other people can chime in too? 16:26 < bridge> No, would be good to open an issue 16:27 < bridge> I have an issue of interpolated `POWERUP_HEALTH` positions, thought it should not be the case, as each powerup has its own `Server()->SnapNewId()`. 16:27 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1376929918641897543/infc_prediction_bug.mp4?ex=68371d6a&is=6835cbea&hm=1815f4fdff22c1cb9bad4af8a67b3e1474e47a014911cab3e52cf9a533cf1f1a& 16:29 < bridge> Oh I see makes sense then ig 16:30 < bridge> Yeah normally you'd use unique ids, but teeworlds is built differently xd 16:31 < bridge> We use hacks rather than proper solutions 🫠 17:09 < ws-client> @zhn nice writeup is that stored in some awesome link list or the wiki? 17:24 < ws-client> i am big magnus fan but i disagree on this naming ``CNetChunk *pPacket`` you can not call a chunk packet if there are also packets 17:33 < bridge> deen is getting hit by 1 euro donation ddos 17:47 < bridge> I have an issue of interpolated `POWERUP_HEALTH` positions, though it should not be the case, as each powerup has its own `Server()->SnapNewId()`. 17:47 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1376929918641897543/infc_prediction_bug.mp4?ex=68371d6a&is=6835cbea&hm=1815f4fdff22c1cb9bad4af8a67b3e1474e47a014911cab3e52cf9a533cf1f1a& 17:48 < bridge> anything counts 17:48 < bridge> if everyone would donate 1 eur we would fill up 2025 goal 19:05 < bridge> I'd say using the heart entity like that is the hack, but you do you 😛 19:07 < bridge> I guess this would benefit from a "do_not_predict_at_all" flag of sorts, but then the movement of the other hearts would be less smooth too, I guess this a whole different issue from both the things we discussed 19:08 < bridge> I guess it can be "hacked around" using the "do_not_interpolate" flag thing and teleporting the heart furthest away 19:19 < bridge> wait a minute, who is this coffee bean guy :poggers: 19:21 < bridge> I'd give the same argument as yesterday actually. If a heart is spawned in ctf then you have a massive packet loss and another heart takes the other heart's id during the gameplay then these two hearts should be different no matter the packet loss. so IMO an id must be unique forever. a `u64` would hold enough possibilities that you could never exhaust it even if you spawn one entity ever nanosecond 19:22 < bridge> I'd give the same argument as yesterday actually. If a heart is spawned in ctf then you have a massive packet loss and another heart takes the other heart's id during the gameplay then these two hearts should be different no matter the packet loss. so IMO an id must be unique forever. a `u64` would hold enough possibilities that you could _almost_ never exhaust it even if you spawn one entity ever nanosecond 19:23 < bridge> Why do they have to be different? (Think in terms of teeworlds/vanilla) The hearts don't move, a heart at a given location before and after it's respawn is no different functionally at all 19:23 < bridge> So I can see why matricks didn't ever bother going any further than what we currently have 19:24 < bridge> i dunno do they hearts stay in memory all the time or do they get call snapnewid after respawn? 19:24 < bridge> Then even two different hearts in vanilla could have the same id 19:24 < bridge> But why do the ids matter at all? 19:24 < bridge> that is what causes the interpolation i assume 19:25 < bridge> But think vanilla, the heart isn't moving anywhere, it won't get interpolated anywhere 19:25 < bridge> looks like he somehow ends up reusing the id of another heart 19:25 < bridge> and then the client thinks the heart simply moved 19:25 < bridge> but they respawn, thus my question 19:25 < bridge> but they respawn at the exact same location, no? 19:26 < bridge> yes but the snapnewid would potentially give a different id 19:26 < bridge> if its called again on respawn 19:26 < bridge> If you manage to somehow drop all snaps between the heart getting picked up and it getting respawned, whether it now has a different or the same id doesn't really matter at all 19:26 < bridge> and honestly i'd not say that was matricks reasiniong since it also applies to characters 19:27 < bridge> if it has the id of another heart it will move for the client 19:27 < bridge> and honestly i'd not say that was matricks reasoning since it also applies to characters 19:31 < bridge> Ah, yeah I guess it just was never tested with snaps getting lost for that long, tbf I don't even know necessarily what is causing the interpolation in that video, I'm guessing the entity gets destroyed, calls snapfreeid, following snapnewid gets the now free old id 19:31 < bridge> Perhaps vanilla hearts don't get destroyed that far? 19:32 < bridge> probs 19:32 < bridge> Yeah, they don't they hold their id 19:33 < bridge> Not? 19:33 < bridge> that's funny 19:33 < bridge> I wonder if you can cause the interpolation bug if you collect a heart exactly in the tick that a new would spawn (or one tick before) 19:34 < bridge> Anyway, you are right that a single forever unique id would be better, but I can see why matricks just didn't bother so much. A single forever unique id will keep getting larger, so you'd need larger snaps, perhaps that's what he optimized around 19:35 < bridge> Maybe, but snap diffs should normally diff these ids away 19:36 < bridge> I assume he simply didnt think about these edge cases 19:36 < bridge> Can it diff the ids away? You need those to know who to apply the diff to 19:36 < bridge> Can it diff the ids away? You need those to know what to apply the diff to 19:36 < bridge> I mean you dont get new ids _that_ often. so between two snapshots these ids are almost always the same 19:37 < bridge> i dont think it's much worse than reusing old ids 19:37 < bridge> which also create a snap diff for a short moment 19:37 < bridge> Well he does seem to have thought about it enough to make sure pickups keep their ids 19:37 < bridge> mh ok 19:37 < bridge> then dunno xd 19:38 < bridge> Though maybe he did that to optimize the diff size too 19:38 < bridge> pickups and hearts are the same for me tbh 19:38 < bridge> Who knows what matricks was thinking 😄 19:38 < bridge> I bet 1 cent he won't know even if he'd answer here xD 19:39 < bridge> I generally wonder how much he just typed in without proper thinking. I mean it's kinda normal you just prototype some stuff and then forget to improve the bad parts 19:39 < bridge> And then it's production code 19:39 < bridge> I bet 20 that even if he thought about it back then he probably doesn't even remember 19:40 < bridge> I forgot a lot of the accounts discourse we had 5 years ago, let alone subtle snap behaviour decisions from 20 years ago 😄 19:40 < bridge> XD 19:40 < bridge> Teeworlds is 20 years in 2 years 19:40 < bridge> Older than 90% of player base 19:40 < bridge> When he was around that one night he mentioned working on many iterations of this "engine" before getting to teeworlds, many more generic/flexible, more engine like projects 19:41 < bridge> He said he wasn't getting anywhere with an actual game trying to abstract stuff away, so he stopped trying to make it so generic 19:41 < bridge> The classic 19:41 < bridge> It's like those guys that say, why dont u make teeworlds in unreal engine 5 19:41 < bridge> with RAYTRACING 19:42 < bridge> :noway: 19:42 < bridge> Jupstar get on that rn, you are the gfx guy, we need the ray tracing asap 19:43 < bridge> don't wanna lie. would be a cool side project. too bad i am not as rich as chiller and can just do whatever i want without at least partially considering my consequences 19:43 < bridge> Raytraced lasers when? 19:43 < bridge> rs version already killed me xd 19:43 < bridge> would be sick 19:43 < bridge> blooom 19:43 < bridge> I gtg find some food that is healthy 19:44 < bridge> i heard vegetables do that 19:57 < bridge> am I allowed to add line from player to ghost? 20:51 < bridge> 50$ gift https://e.vg/chpozYlQf 20:55 < bridge> @Discord Mod 20:56 < bridge> DONT CLICK THIS ITS A SCAM 20:56 < bridge> i love the moderator response time in this server 20:56 < bridge> i swear this happens every week 20:58 < bridge> https://github.com/unicorn-engine/unicorn/tree/next 20:58 < bridge> it’d be fairly easy to make the bot look for embeds with “steam” in it (maybe “gift” too) and delete if it doesn’t come from a real steam url 20:58 < bridge> i got 2 riscv socks 20:58 < bridge> tomorrow i get em 20:58 < bridge> nice 20:58 < bridge> 2 pair or 2 socks 20:58 < bridge> ESP32-C6-WROOM-1-N8 20:58 < bridge> smh 20:58 < bridge> xd 20:59 < bridge> https://tenor.com/view/piecitos-juguetones-sock-gif-8315583 20:59 < bridge> what are u gonna do with them 21:04 < bridge> Sounds like a great project for you 21:05 < bridge> idk i want to make a compiler to riscv 21:06 < bridge> not unless i can get an app of mine in this server 21:06 < bridge> they got wifi too 21:06 < bridge> and not unless you’d be willing to have a closed source app lol 21:06 < bridge> you can contribute to @DDNet 21:06 < bridge> good bot 21:06 < bridge> :heartw: 21:06 < bridge> :greenthing: 21:07 < bridge> i would say otherwise 21:07 < bridge> don't make it sad 21:07 < bridge> it’s a good bot 21:07 < bridge> :3 21:07 < bridge> yea 21:07 < bridge> that’s not what i’m refuting 21:17 < bridge> hey guys. anyone has that game skin where the hammer is a blue fish? i loved that skin but lost it and cant find it anywhere 21:17 < bridge> Hellou :3 21:21 < bridge> #questions 21:21 < bridge> nobody answers.... 21:22 < bridge> then try #general , but here there will more likely be no answer either. 21:22 < bridge> Also your description is really vague 21:23 < bridge> yes 21:23 < bridge> Sec 21:23 < bridge> xddd 21:23 < bridge> well. thats all i remember. for some reasonn it disappeared from the site.... 21:23 < bridge> 🙏 🙏 21:23 < bridge> Ewan here to save the day 21:24 < bridge> also lost my entities pack. why was stuff removed from the site? 21:24 < bridge> whatever site you mean it's not hosted by us 21:25 < bridge> teeskins 21:25 < bridge> https://discord.gg/5W7pKMdx 21:25 < bridge> looked there. nothing 21:25 < bridge> its gone 21:25 < bridge> Well you can ask the owners there 21:25 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1377004850780442644/fishgame_kinmn.png?ex=68376333&is=683611b3&hm=615c04787c24ab6c31d7cf95b142c86f13acee1d85c810ae140a78a045888020& 21:25 < bridge> YES 21:25 < bridge> But I think they ban you for pinging them 😬 21:25 < bridge> anyway yea a little weird to post in developer for this 21:25 < bridge> I LOVE U 21:25 < bridge> hello 21:25 < bridge> general next time 21:27 < bridge> its like this but blocks are light brown. it disappeared 21:27 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1377005262514290818/image.png?ex=68376396&is=68361216&hm=44047042bb2b9996abe5b976b8f58171c635a3e35a9668dd6cc55ba99fd1c2a2& 21:27 < bridge> yeah u dont have it. thx tho 21:27 < bridge> yea sorry not sure, you'd be better off asking for help in that server linked 21:27 < bridge> gl tho 21:27 < bridge> i got the game skin. better than nothing 21:35 < bridge> Just wasted 6 hours because I accidentally zoomed out using opengl 1.4 21:39 < bridge> Hi! 21:40 < bridge> We have a limit zoom config 21:40 < bridge> Good to know... I've been waiting 20min for the next frame 21:41 < bridge> You must have disabled it manually xd 21:43 < bridge> Well on vulkan the issue doesn't exist. 21:43 < bridge> Add a check if its ogl1 and force the limit 21:43 < bridge> Then you wont have this again 21:44 < bridge> I'd also accept this upstream if it helps 21:45 < bridge> It's fine 21:46 < bridge> 🫠 21:46 < bridge> A hard coded zoom limit isn't good. Maybe a zoom reset if the frame takes too long to render 21:46 < bridge> And cancel rendering that frame 21:46 < bridge> well hard limit for ogl1 is ok imo. cpu single thread performance wont be noticable faster in the next 10 years 21:46 < bridge> and tbh ogl1 only targets shit pcs anyway 21:47 < bridge> I'm witnessing a Deenial of Service attack. 21:47 < bridge> No. Depending if you have entities enabled or not you get different fps. Also it depends on how full the map is with blocks 21:48 < bridge> deen getting 1€ donations 21:48 < bridge> :kek: 21:50 < bridge> That is true yeah xd but i bet only u know about this setting and use ogl1 at the same time 21:50 < bridge> well its not hard coded and you can configure it if you want to get rid of it. if it works for 99% of cases, then it makes sense imo 21:52 < bridge> I didn't mean in general please read the messages above 21:53 < bridge> Anyway we'll defs not cancel the frame 21:53 < bridge> That is maximum complexity you want to add xD 21:53 < bridge> real time profiling for ogl1 21:53 < bridge> I'm still waiting for my frame 21:54 < bridge> Bro buy a new pc, why cant u use vulkan again 21:54 < bridge> u loading the 10k map again? 21:54 < bridge> yes 21:54 < bridge> please fix ur implementation xfd 21:54 < bridge> Does zooming out further make any difference once you can already see the whole map? 21:54 < bridge> u can use rs version 21:54 < bridge> then I can use it 21:54 < bridge> it's not a "fix" 21:54 < bridge> It's a rewrite 21:54 < bridge> Yea ogl1.4 renders each block individually including the edges I think 21:55 < bridge> Don't downplay pls 21:55 < bridge> oh ok 21:55 < bridge> ik ik I'm joking 21:55 < bridge> So 3x map size should be a fair zoom limit 21:55 < bridge> :deen_star: 21:55 < bridge> i think in some versions rendering has been O(1) in regards to zooming, and others O(n)? 21:55 < bridge> no idea why 21:55 < bridge> So it basically takes infinite time to render my next frame 21:55 < bridge> but i’d see the same fps at any zoom level sometimes 21:55 < bridge> others, i lag like crazy at low zooms 21:55 < bridge> Vulkan one uses a shader for the edges I think 21:56 < bridge> In the vulkan version the entities rendering is o(n) I think. N is the map height 21:57 < bridge> Correct 21:57 < bridge> In the vulkan version the entities rendering is o(n) I think. N is the height of the blocks visible on the screen 21:58 < bridge> Is the rendering in ddpg way different? @jupeyy_keks 21:58 < bridge> Mhh, kinda yes, kinda no. 21:58 < bridge> 21:59 < bridge> It still uses the O(n) approach (except for the editor which uses smth more similar to twgpu) 21:59 < bridge> If the ogl backend renders each tile individually then we can just set a limit on the number of tiles it should render before giving up? 21:59 < bridge> But since I use features like shader storage buffer I also had to change some minor things to the pipeline and the buffer creation 21:59 < bridge> I would suggest a time limit 21:59 < bridge> same thing almost 21:59 < bridge> Time limit is much harder 21:59 < bridge> You can defs do that in your fork, but pls dont upstream it xD 21:59 < bridge> Invalid rendering sounds buggy 22:00 < bridge> I was suggesting for teero 22:00 < bridge> Yeah all fine 22:00 < bridge> Each tile is issued individually on the cpu so a time limit is like 3 loc no? 22:00 < bridge> lmao, taters approach is defs more sane 22:00 < bridge> CPUs have so many weird factors that could speed or slow things down 22:01 < bridge> I can finally play properly. Thx Ewan, I always feel like I can’t play without that skin 22:01 < bridge> ik measuring time is slow 22:01 < bridge> Actually at some point measuring the time was 20% of my benchmark @jupeyy_keks xdd 22:02 < bridge> iks de 22:03 < bridge> The physics benchmark measured 1 second of time. Now I just do like 100mil ticks and then figure out tps with math 22:03 < bridge> Okay I'm killing my 6hrs of work now. Haven't gotten a new frame 22:03 < bridge> Idk if I can attach gdb to save it maybe 22:04 < bridge> yes you could 22:04 < bridge> I try 22:04 < bridge> gl 22:09 < bridge> yea gg im a retard 22:09 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1377015924372275291/image.png?ex=68376d84&is=68361c04&hm=a5c0b89e6f10be6485f579d3e69c5b008ddca1dab92fe139643c1506112d3364& 22:09 < bridge> why must that crash the game.... 22:10 < bridge> zero purpose 22:10 < bridge> yeah, why does changing random value in gdb crash the game 22:10 < bridge> damn 22:10 < bridge> no 22:11 < bridge> you could have changed the height & width to return early and then change the zoom value 22:11 < bridge> then you'd have dodged this bullet 22:11 < bridge> i just returned but ofc when i return manually it didn't call QuadsEnd(). it makes sense. 22:11 < bridge> but instead of crashing the program it should just give a warning man 22:12 < bridge> no 22:12 < bridge> why? 22:12 < bridge> 1. this whole quad start, quad end shit shouldnt exist in first place 22:12 < bridge> 2. a bug must be visible to the programmer else you might end up with more serious bugs 22:12 < bridge> it's a cascade 22:12 < bridge> downfall 22:13 < bridge> a never ending downhill 22:13 < bridge> a terminal warning would be enough 22:13 < bridge> i disagree 22:13 < bridge> blah 22:13 < bridge> i disagree with blah 22:14 < bridge> why do you need a crash that can possibly make the user to lose progress or cause inconvenience instead of just a simple warning? 22:15 < bridge> Because unreproducable bugs are the worst 22:15 < bridge> Asserting a state is valid is important 22:15 < bridge> okay but no need to crash the thing xd 22:15 < bridge> Especially you as a c deverloper should know 22:15 < bridge> Everytime you refused asan, asan told the truth 22:15 < bridge> yy ik im just mad about losing 6hrs 22:15 < bridge> You'd never read the warning in the terminal of a random player 22:16 < bridge> The bug would be ignored silently 22:16 < bridge> I know, understandable 22:16 < bridge> no it wouldn't? XD 22:16 < bridge> Can you not add auto save to your tool or smth xd 22:16 < bridge> saving costs much time 22:16 < bridge> Show me the terminal output of all ddnet players right now and I agree with you 22:17 < bridge> Once per 2h or smth 22:17 < bridge> on run_antibuguse i had auto-save on and the saving took longer than the save-interval causing an infinite loop 22:17 < bridge> K 22:17 < bridge> Then not 22:17 < bridge> FUJCK,k 22:18 < bridge> Fog 22:18 < bridge> @teero777 i c u 22:18 < bridge> p 22:18 < bridge> my sound driver crashed 22:18 < bridge> i c q 22:18 < bridge> linux moment 22:19 < bridge> at least you can spent 3h research to restart the sound driver without reboot 22:19 < bridge> epyc os moment 22:19 < bridge> i fixed it 22:20 < bridge> @jupeyy_keks join 22:20 < bridge> We don't collect players' logs and almost nobody looks at the console to check for warnings and report them to us 22:36 < bridge> i cant, im sad 22:36 < bridge> heartbroken 22:36 < bridge> okay :( 22:55 < bridge> @learath2 hello can u look dm 2 min 23:44 < bridge> #10250 23:44 < bridge> https://github.com/ddnet/ddnet/pull/10250 23:44 < bridge> merge? 🙂 23:59 < bridge> is ur map?