00:00 < bridge> doesn't hurt to have better tooling to playaround with i think 00:00 < bridge> idk I for one enjoy doing things 00:02 < bridge> I see, so he has your trust to lose at least. Do we know when this thing is publicly tested? 00:02 < bridge> Well we can all enjoy doing things but I think there's simply a time limit now. Before I was a little skeptical there was a chance they could never do it, but they've proved now that's its only time. Who knows how much 00:02 < bridge> Like not even by us, just by anyone 00:02 < bridge> ~~can AI generate blender constraints and switch drivers and animations, cuz im still learning that~~ 00:03 < bridge> https://arcprize.org/blog/oai-o3-pub-breakthrough 00:03 < bridge> If I *have* to produce code with transformer assistance to make it in the workplace I might seriously consider switching profession 00:03 < bridge> They tested it on semi private benchmark 00:03 < bridge> Also it won their competition 00:03 < bridge> But that's small news compared to cf2700 00:06 < bridge> idk what that means, im like 99% sure managers and business does not care about how you get things done (in the workplace) and im pretty sure a lot of people can get things done better than an average new grad with copilot. 00:07 < bridge> the main concern is probably whether the workplace still exists if business people is convinced a $500/month devin is better than a $3000/month engineer 00:08 < bridge> no but I mean if these things are seriously good I'd imagine matching the productivity of someone with actual skills using AI without using assistance at all would be really hard 00:08 < bridge> In 5 years you will get 100 Devin's for $500 00:08 < bridge> They won't be convinced for long as their shit breaks down 00:09 < bridge> Devin is bad tho 00:09 < bridge> Its not even worth $0 00:10 < bridge> Its just a scam to trick executives 00:10 < bridge> software engineering is not just coding you know... and i'm like pretty sure a lot of senior roles don't even have time to code cuz they get so much werid tnings to do 00:10 < bridge> Need to make it to senior first for that :) 00:11 < bridge> i mean 00:11 < bridge> i got senior on day 1 00:11 < bridge> fun 00:11 < bridge> :kek: :kek: :kek: 00:11 < bridge> ye, and i bankrupted the first company and lead a failed product in the second 00:11 < bridge> so don't do that i guess 00:12 < bridge> :justatest: 00:12 < bridge> Don't put that on your resume 00:12 < bridge> honestly, probably not my fault but it's hard to tell 00:13 < bridge> Well yeah they wanted something that was probably always going to fail 00:13 < bridge> Common story 00:13 < bridge> but hey, a failed product is still a shipped product, it is hard to get this in games 00:13 < bridge> I feel like I might be a bit safer from the AI scourge as a technical artist? 00:14 < bridge> like for games? 00:14 < bridge> yeah 00:14 < bridge> remind me to hire you if i got money 00:14 < bridge> People said creativity would be hard to copy, now they're saying that logic is hard to copy, and that role is the intersection of those two :P 00:14 < bridge> Probably yes tbh 00:14 < bridge> so it should last at least a few years longer 00:15 < bridge> i wouldn't say software eng does not have any creativity. 00:15 < bridge> you can't exactly run diffusion on your shader code to make it look prettier lol 00:15 < bridge> I am biased because I do tech art but I think depending on which type you do it's safer than regular software development 00:15 < bridge> Only a little tho 00:16 < bridge> o1 can write pretty good shaders 00:16 < bridge> if only game industry is not running down hills 00:16 < bridge> And even when were required to use assisting software there will still be (some) jobs 00:16 < bridge> but it's not very good at making shader soup which looks good like a real tech artist 00:17 < bridge> can't really beat a shader graph wizard in terms of variety and just pure directivity from designers i think 00:17 < bridge> for standard things of course 00:17 < bridge> Ehh 00:17 < bridge> Its pretty good 00:17 < bridge> I wouldn't say it can't do anything specific enough to describe to it 00:18 < bridge> It'll be a long while before an AI can understand an art director well enough to make required changes to your shader code or whatever 00:18 < bridge> sometimes it puts the functions in the wrong order but it usually takes like 4 seconds to fix that and it compiles first try 00:18 < bridge> unless the art director lacks strong vision I guess 00:19 < bridge> honestly, now that i think about it, probably still down to how well it can take directions. like it is really often the shader graph person gets a director just pointing at their screen and say things 00:19 < bridge> unless the art director lacks strong vision I guess and just says okay to whatever the bot produces 00:19 < bridge> Shader Graph is :cammostripes: 00:19 < bridge> kinda agree 00:20 < bridge> but shader graph is artists job 00:20 < bridge> not tech arts 00:20 < bridge> Some artists write raw shader code 00:20 < bridge> nahh I hand write shader code screw the artists they can go through me 00:21 < bridge> Good artists* 😄 00:22 < bridge> try that when you got 3 days to optimize the renderer and 5 artists are pushing new stuff and the game is set to submit for review in 8 days 00:22 < bridge> :justatest: 00:22 < bridge> I like to pretend I won't have to deal with real life 00:22 < bridge> i like to run everything by me 00:23 < bridge> You're optimizing the render because of all the garbage shader graphs 00:23 < bridge> don't know if I'll actually end up doing game dev professionally, it sounds kinda nightmarish 00:23 < bridge> then i get 19hr days like regularly for 6 months 00:24 < bridge> nah. we were cpu bottlenecked 00:24 < bridge> but to be fair i am not tech art but i still do tech art job cuz we don't have one 00:25 < bridge> 4 artists 3 dev 1 designer, 6 of them are intern on their first job 00:25 < bridge> i really tried 00:27 < bridge> and they gave us a "hard" deadline of 6 months to do a full (mobile-adjacent) game with client, server and web components and we do our own SA. 00:27 < bridge> My C++ algorithms have gone very rusty from all the Go use :pepeW: 00:28 < bridge> no way 00:28 < bridge> get it? 00:28 < bridge> how long have it been 00:28 < bridge> I actually forgor how `std::remove` worked completely there for a second 00:28 < bridge> 7 months of nothing but golang 00:28 < bridge> Do you like golang 00:29 < bridge> but i mean... just for a second is not that bad 00:29 < bridge> It's honestly not bad 00:29 < bridge> The GC is a shame though 00:29 < bridge> This feels like the common opinion 00:30 < bridge> How so? 00:30 < bridge> I expected it to be much much worse at the very least from all the talk inside this channel in the past 00:30 < bridge> at least you only works in one lang. 00:30 < bridge> :justatest: 00:30 < bridge> It's a decently modern GC but it's still GC. You need to be careful not to leak things around all the time and you have to accept that your "real time" worries can't really be satisfied by this language very well 00:31 < bridge> Say you have 16ms budget for a frame, gc randomly kicks in, wastes a random amount of it 00:31 < bridge> Now you get a frame skip 00:31 < bridge> You're using it for game or something else realtime? 00:32 < bridge> I'm not, that's why it's been pretty enjoyable, but it's still a weak point of the language and gc in general 00:32 < bridge> ye, if it is not realtime i would worry about gc like that much. 00:32 < bridge> Yeah fair 00:32 < bridge> ye, if it is not realtime i wouldnt worry about gc like that much. 00:32 < bridge> There are other GC algorithms that are more suitable for that kind of stuff too, but go's one isn't customizable iirc 00:33 < bridge> You can have a MarkAndSweep GC that gets a fixed budget of time, so you can make it constant overhead 00:33 < bridge> what lang has customizable gc 00:33 < bridge> nim has multiple options 00:33 < bridge> nim has 7 options to be exact 00:33 < bridge> i've never seen nim oof 00:34 < bridge> Clearly the solution is writing code that never dynamically allocates so you don't need the GC ;) 00:34 < bridge> meanwhile unity's .net GC is still garbage 00:35 < bridge> Which is possible but pretty hard to do in Go, since everything will accidentally leak stuff unless you are extremely careful 00:35 < bridge> It's not like avoiding allocations and deallocations isn't a good idea in general 00:36 < bridge> If Rust was a little easier to use I'd honestly just flat out replace almost all of my languages with Rust 00:36 < bridge> This is really annoying in many languages 00:37 < bridge> Before I knew cpp I was blind to the garbage I was making, now it's like paranoia 00:37 < bridge> I need to stop getting heebie jeebies from Rust so I can enjoy it and stop complaining 00:38 < bridge> C++ is really getting much better recently. I love that we have proper `std::atomic` now 00:38 < bridge> :justatest: maybe i've been working too long, i can cope with terrible langs 00:39 < bridge> Also `std::ranges::contains` 00:39 < bridge> I like esoteric and difficult to use languages but I can't accept JS 00:39 < bridge> Also `std::erase_if` 00:40 < bridge> TS makes it a little more bearable 00:40 < bridge> Also `std::fmt` 00:40 < bridge> Also `std::format` 00:41 < bridge> I just wish JS had real number types 00:41 < bridge> TS gets points for being funny jank workaround but immediately loses them for being related to JS 00:41 < bridge> Now it's your turn to tell your favourite C++20/23/26 feature is 00:42 < bridge> ever since we managed to ship a VR game that runs at 72hz locked on a 5 year old soc in unity, i just stopped worry about terrible gc altogether. cuz no way the intern's code would survive me for the second project if it doesn't just run ok with all the jank we put in it. 00:42 < bridge> People actually know C++ features? :justatest: 00:42 < bridge> string_view/span are cool 00:43 < bridge> not me 00:44 < bridge> i barely know c++ 00:45 < bridge> also modules in theory but lol modules 00:46 < bridge> all those views 00:46 < bridge> C++26 is probably getting `std::linalg` with portable linear algebra. So when it's implemented in 2 decades maybe it'll be great 00:47 < bridge> :justatest: 01:14 < bridge> https://news.ycombinator.com/item?id=42363727 01:15 < bridge> malicious DMCA is so outdated, do malicious fraud report 01:55 < bridge> std::format 👍 02:30 < bridge> <_qey> Aww, I missed a good AI discussion. Bummer. 02:31 < bridge> <_qey> Actually ChatGPT helped me go through DDNet code base. Instead of manually looking for things, I just asked it and then rewrote the parts I need. 02:31 < bridge> <_voxeldoesart> how long did it take you to debug it 02:32 < bridge> <_qey> I’d say many of those worked the first try. 02:32 < bridge> <_qey> There was one issue I couldn’t resolve, then I asked ChatGPT and it couldn’t either, so that’s where is sucks. But overall a great tool. 02:33 < bridge> <_qey> Not certain about replacing us programming folks in the next 6 months entirely, but it definitely will replace some. 02:35 < bridge> <_qey> It’s still too stupid to write a full-fledged app just by receiving a two-sentence prompt, but if you already good with algorithmic thinking, it’s capable of shorten your time spent on the project by 3-4 times. 02:35 < bridge> <_qey> It’s still too stupid to write a full-fledged app just by receiving a two-sentence prompt, but if you are already good with algorithmic thinking, it’s capable of shorten your time spent on the project by 3-4 times. 02:36 < bridge> <_qey> I actually straight up ‘outsource’ half of my work to ChatGPT, worth the $20 a month I spend for the paid plan. 03:29 < bridge> reflection 03:32 < bridge> or did they move it for another release 04:55 < bridge> #include 07:30 < bridge> yikes 07:30 < bridge> im in the ai has a plateau camp so that's not great news 😹 08:05 < bridge> <_voxeldoesart> its all just big number go boom to me 08:05 < bridge> <_voxeldoesart> like, ive seen so much of "AI NEVER SLEEPS" that its becoming very tiring 08:06 < bridge> <_voxeldoesart> like, ok? yea sure a new modle is better than the last one. tell me something thats actually exciting 08:27 < bridge> if you don't think beating 168924 out of 169074 codeforces users is "exciting" then idk what is. 08:51 < bridge> <_voxeldoesart> wtf is a codeforce 08:51 < bridge> https://codeforces.com/ 08:55 < bridge> @totar you should host the next problem xd make them solve aip 08:57 < bridge> <_voxeldoesart> make them write a fifo script for evelyn 09:04 < bridge> ChillerDragon have you ever thought of making an anti-cheat , which when the next user is sent an advertisement for a cheat we all know , then this person just bounced back on the IP 09:06 < bridge> basically leetcode with chess rating. but to be fair the problems hey have are much better than leetcode for sure. 09:09 < bridge> https://github.com/furo321/ddnet-bombtag/blob/3a3cb526fbe0b8ae29e4a091047d01995e8d0258/src/antibot/antibot_bombtag.cpp#L117-L184 09:11 < bridge> found my codeforces account from highschool, 1451. that's like the default rating isn't it:justatest: 09:11 < bridge> should i sign up ? :o 09:12 < bridge> if you enjoy timed ACM, maybe. i honestly don't. 09:12 < bridge> I use ddpp 09:12 < bridge> ~~you have to do it live and catch events, which might not suit most people that has actual jobs~~ 09:13 < bridge> and i sent you exactly what you want - ask chiller nicely to add it if he wants 09:16 < bridge> our school let us do every out of timezone codeforces and make us stay until 10pm just to catch an event. maybe that's the reason i don't like it tho 09:16 < bridge> :justatest: 09:16 < bridge> our school let us do very out of timezone codeforces and make us stay until 10pm just to catch an event. maybe that's the reason i don't like it tho 09:16 < bridge> we often sleep in the classroom after that just cuz it is so late 10:49 < bridge> >< 12:13 < bridge> @blaiszephyr i think you might have mislead someone into making "all" and "me" accepted by all interger args and got merged :kek: 12:22 < bridge> Huuuuuh 12:22 < bridge> https://github.com/ddnet/ddnet/pull/9415#issuecomment-2558084274 12:23 < bridge> i dunno the exact problem 12:23 < bridge> 12:23 < bridge> but IMO it's better to not mix integers and string arguments. 12:23 < bridge> 12:23 < bridge> if we need a `tp me` command it might as well be `tp_me` 12:23 < bridge> even if this creates more commands in total 12:23 < bridge> such extra cases are easily forgotten anyway 12:24 < bridge> i bet most ddnet players don't know that you can type `/team -1` 12:24 < bridge> simply bcs they are no developers 12:24 < bridge> we have victim arg type for exactly all and me. and the original issue really isn't a bug 12:24 < bridge> or `/top5 -5` 12:29 < bridge> @learath2 did you by chance try out to move the best ranks into it's own table to see the performance improvement already? 12:29 < bridge> 12:29 < bridge> We discussed this a while ago. 12:30 < bridge> I sometimes join the linear servers and the commands are just super slower, and ppl request it often enough to create some kind of queue that never clears up xD 12:30 < bridge> The issue was commands could only take 1 victim arg, no more 12:31 < bridge> i know 12:31 < bridge> either way that PR is just bogus 12:31 < bridge> Bad "fix" pr 12:32 < bridge> GG I baited :cat_sad: 12:33 < bridge> ah your comment is actually good 12:33 < bridge> yeah string to int parsing 12:33 < bridge> that is also actually bad imo xD 12:33 < bridge> it should just reject the cmd 12:33 < bridge> instead of falling back to 0 12:34 < bridge> ~~wdym ACTUALLY good~~ 12:34 < bridge> that's the whole point of having a validator, the guy just bypassed it. we did reject string 12:34 < bridge> so where do we use these `me` args in first place? 12:34 < bridge> nowhere? 12:35 < bridge> we have a special victim argument type 12:35 < bridge> that is handled by GetVictim instead of GetInteger 12:35 < bridge> lol and it's not implemented for tele? 12:35 < bridge> which works fine 12:35 < bridge> not 12:35 < bridge> i am surprised tbh 12:36 < bridge> ye no, tele wasn't implemented with victim arg. and one of the reason is https://discord.com/channels/252358080522747904/293493549758939136/1319990497938509855 12:37 < bridge> i'm like pretty sure people thought it was working just because we don't have validators and it happens to do the thing they want before. (you know, just doing client 0) 12:37 < bridge> i think it works in ddnet 17 12:37 < bridge> i connected a dummy and typed `tele me` 12:37 < bridge> ye that's just tele 0 12:37 < bridge> or can you simply type tele 12:38 < bridge> ah it's read like tele to? 12:38 < bridge> it's kinda sad but i rarely use rcon xD 12:38 < bridge> yeah you right 12:38 < bridge> i'm not exactly sure. but i also didn't rollback to ddnet 17 to check if it was handling victim args 12:38 < bridge> but i doubt it was 12:38 < bridge> tele 12:39 < bridge> it's just you were 0 and dummy was 1, when you joins a new server so it checks out 12:39 < bridge> if whom not given, then it uses you 12:39 < bridge> so why can we only take 1 victim arg? 12:39 < bridge> someone implemented poorly 12:39 < bridge> idk 12:39 < bridge> i could make it work with multiple right now 12:39 < bridge> ez 12:40 < bridge> i am still sick tho, so maybe later 12:40 < bridge> it's a good thing the validation is implement so we can catch this 12:40 < bridge> and the guy just implemented a validation bypass 12:40 < bridge> :justatest: 12:40 < bridge> yeah 12:41 < bridge> is still the question if the logic of teleporting _all_ players should be mixed with teleporting _one_ player 12:41 < bridge> it makes sense to me until it doesn't 12:41 < bridge> if i name myself `all` you might accidentially type all, instead of my id 12:41 < bridge> dunno xd 12:41 < bridge> but i think handling a special case inside a con method to reject all where you don't need it but you still need me is pretty trivial anyway 12:41 < bridge> if it says tele_id it's clear 12:41 < bridge> or tele_all 12:42 < bridge> i mean it is a practice command who cares 12:42 < bridge> just telecursor to where you were and learn from the mistake 12:42 < bridge> idk 12:42 < bridge> sure, but the point is about how the console should behave in general 12:43 < bridge> is clear behavior without edge cases better or having such edge cases but loosing inactivity 12:43 < bridge> intuitivity 12:43 < bridge> i don't plan on touching tele anyway. i could just fix the victim handling and someone else can decide what to do with it 12:43 < bridge> is clear behavior without edge cases better or having such edge cases but loosing 12:44 < bridge> but i want your opinion 12:44 < bridge> your a gamedev xd 12:44 < bridge> sure, honestly if it is only loose in practice command i don't really have a problem with cuz people do use them like that clearly. 12:46 < bridge> if somehow a client command got victim arg then i might have a problem with it, since it wasn't really supposed to be used by everyone like that. 12:48 < bridge> practice and tester commands are used by basically everyone. we already have the telecursor teleto tele and tp mess where they do the exact same thing in some cases or version but wildly different things in other cases or version. these commands are always changing due to how people use them incorrectly. 12:49 < bridge> yeah it's really a mess 12:50 < bridge> it's a mess cuz "everyone" jumped in and changing them on their own. kinda like this bogus PR did. 12:50 < bridge> xD 12:50 < bridge> optional parameters are also a problem imo 12:51 < bridge> especially if two optional parameters follow each other 12:51 < bridge> imo it was fine until it behave differently for each position depending on the number of arguments 12:52 < bridge> and if they command auto fills the optionals with a value it is basically non optional anyway 12:52 < bridge> i gotta say i generally like if there is a long version for every command 12:52 < bridge> 12:52 < bridge> 12:52 < bridge> tpme 12:52 < bridge> teleport_me 12:52 < bridge> 12:52 < bridge> pros use the short one, newcomers use the long 12:52 < bridge> but if tele 1 and tele 1 0 does different things then i don't like it 12:53 < bridge> oh funny, bcs it does in many cases 12:53 < bridge> "tele here" (implied me) 12:53 < bridge> "tele this here" 12:53 < bridge> if you don't have client id 0 12:53 < bridge> i'm not a tester tho, i don't know half of these do 12:53 < bridge> i'm not a tester tho, i don't know what half of these do 12:55 < bridge> id rather use chat commands 12:55 < bridge> tele rcon commands for players is really annoying because i don't want to find out a characters id 12:57 < bridge> :greenthing: ~~time to make it GUI and hotkey based, and remove all tester commands~~ 12:58 < bridge> @louis.place btw was the announcement a threat :justatest: 13:04 < bridge> yes, people better show up 13:06 < bridge> Better be a nouis monster 13:07 < bridge> :nouis: 13:12 < bridge> Not really, I was going to but I noticed it was still acceptable so I didn't spend time on it 13:12 < bridge> @blaiszephyr what have you done 13:12 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1320001012878016582/image.png?ex=6768023d&is=6766b0bd&hm=36d48fa155cbeddb2f15a00e64e4394fa54fa4e051469f160e6a1c691dc6230e& 13:12 < bridge> dude is convinced 13:12 < bridge> I'm working on some antibot improvements rn. After that I can give it a go 13:13 < bridge> he is chinese btw 13:13 < bridge> i am too 13:13 < bridge> wow 13:13 < bridge> i mean i saw his in game id 13:14 < bridge> btw what's that has to do with anything tho or it is just a fun fact 13:14 < bridge> yeah i wondered if you know 13:14 < bridge> oh ye 13:14 < bridge> i assume we dont have many chinese devs 13:14 < bridge> i saw it 13:15 < bridge> we have a few 13:15 < bridge> pathos is japnese or smth i assume? 13:15 < bridge> i can count 4 in my head already 13:15 < bridge> 5 13:15 < bridge> forgottencat doesnt count 13:15 < bridge> but if you are talking about people with Dev role here, then idk 13:16 < bridge> if we just talk about code PRs then i can count 5 (like ever) without forgottencat cuz he didn't cross my mind. 13:16 < bridge> active ones maybe 2 13:17 < bridge> there was this chera guy 13:17 < bridge> but dunno the exact name anymore 13:17 < bridge> cherry? 13:17 < bridge> not in my mind either 13:17 < bridge> chera st or smth like that 13:18 < bridge> piooooo, me and the author of this bogus pr are the recent ones 13:18 < bridge> the demo rendering was a chinese guy's pr iirc. and eki added a few dummy commands which i still hate 13:18 < bridge> https://github.com/ST-Chara 13:18 < bridge> lmao 13:19 < bridge> the demo to video? 13:19 < bridge> ye 13:19 < bridge> wasn't that hmh 13:19 < bridge> so maybe not. 13:19 < bridge> ah true prioooo 13:19 < bridge> i remember a chinese dev talking about it so i assumed 13:20 < bridge> ah true pioooo 13:20 < bridge> #1928 nope, our guy for sure 13:20 < bridge> https://github.com/ddnet/ddnet/pull/1928 13:20 < bridge> ah that guy 13:20 < bridge> yeah i remember him 13:20 < bridge> he finished it i guess 13:20 < bridge> not active here but still active in life, we had dinners recently 13:21 < bridge> lol, ez 13:21 < bridge> > still active in life 13:21 < bridge> that means have contact with me i guess. not like.. you know still alive 13:21 < bridge> cuz that's almost everyone 13:22 < bridge> i blocked this guy lol 13:22 < bridge> cancel culture 13:22 < bridge> :nouis: i kinda blocked a lot of dudes 13:22 < bridge> maybe i'm twitter 13:23 < bridge> At least you're not Reddit 13:23 < bridge> i am... 13:23 < bridge> well i was 13:23 < bridge> at least you are not x haha 13:24 < bridge> @tsfreddie leak https://github.com/orgs/TeeworldsCN/people 13:24 < bridge> 13:24 < bridge> then we know all devs 13:24 < bridge> hehe 13:24 < bridge> not even active 13:24 < bridge> most got jobs now and just left 13:25 < bridge> there are new guys trying to join but they just forked our private stuff and bait so i stopped trusting people saying they want to help 13:25 < bridge> there are new guys trying to join but they just forked our private stuff and bailed so i stopped trusting people saying they want to help 13:25 < bridge> epyc 13:25 < bridge> trust level 0 it is 13:25 < bridge> chn is really not good at contribute for some reason 13:25 < bridge> maybe they don't know how? 13:26 < bridge> wait 20 years and most oss devs come from china and india 13:26 < bridge> wait 20 years and most os devs come from china and india 13:27 < bridge> or AI 13:27 < bridge> :lol: 13:27 < bridge> idk 13:28 < bridge> most people asked me whether they can help usually just don't unless it was asking me to add support for their mods 13:28 < bridge> which is not really helping 13:28 < bridge> even though technically they suggested something 13:28 < bridge> 13:29 < bridge> I'm guessing English hard? 13:29 < bridge> you don't need english to contribute to teeworlds**CN** 13:29 < bridge> :justatest: 13:30 < bridge> :justatest: 13:30 < bridge> well maybe you do since i do write a lot of stuff in english, but if they asked i can just translate them in chinese. 13:31 < bridge> but to be fair chinese is really imprecise to the point is really difficult to give instructions or directions in chinese imho 13:31 < bridge> even at work it is extremely hard to explain things in chinese 13:32 < bridge> @tsfreddie have u ever livestreamed in english? 13:32 < bridge> no 13:32 < bridge> i never livestreamed 13:32 < bridge> also i can yap via test. i'm not the best english speaker 13:32 < bridge> now i am interested in hearing your speaking english lol 13:32 < bridge> also i can yap via text. i'm not the best english speaker 13:32 < bridge> @forgottenabscat i still wait for your livestream btw 13:32 < bridge> i think only deen heard me speak before 13:32 < bridge> There's this weird dichotomy I see. East Asian culture is way more collectivist than western culture (or more like western culture is hyper indivualistic) yet somehow it appears that western culture has stronger emphasis on teamwork and East Asian culture focuses on individual performance 13:33 < bridge> @inv41idu53rn4m3 where u from btw 13:33 < bridge> u european? 13:33 < bridge> fin 13:33 < bridge> ah boring xd 13:33 < bridge> There's this weird dichotomy I see. East Asian culture is way more collectivist than western culture (or more like western culture is hyper individualistic) yet somehow it appears that western culture has stronger emphasis on teamwork and East Asian culture focuses on individual performance 13:33 < bridge> they probs speak perfect english 13:33 < bridge> as in shark fin 13:34 < bridge> I have a pretty strong accent but I'd say I'm quite good yeah 13:34 < bridge> all nothern countries are like english elites 13:34 < bridge> Oddly enough I don't sound like I have a Finnish accent 13:34 < bridge> i go to the Netherlands and everyone speaks better than me lmao 13:35 < bridge> maybe because I heard a lot of and spoke a bit of Russian as a kid 13:51 < bridge> but Tele was certainly broken with me and all, which worked before I'm pretty aure 13:52 < bridge> do you want to find the code for it? cuz if the implementation wasn't changed it really have only ever worked because you were client 0 and your dummy were client 1 13:52 < bridge> could really just be a coincidence 13:52 < bridge> all and me will be become 0 for int args 13:53 < bridge> i doubt we had a victim implementation of that and changed it to int somehow 13:53 < bridge> even juppy remember it working but it is pretty easy to see what is happening https://discord.com/channels/252358080522747904/293493549758939136/1319992130466353256 13:58 < bridge> it's like nelson mandela effect, everyone remembers it incorrectly 13:59 < bridge> after one month of work i am finally able to decode the 0.6 connless packet header and the payload 14:00 < bridge> lets go 14:00 < bridge> thats what i call progress 14:00 < bridge> which lang do u use 14:00 < bridge> Hot 14:01 < bridge> yea 14:01 < bridge> couldnt u have used twlib2? 14:01 < bridge> or libtw2 14:01 < bridge> or whatever 14:01 < bridge> xD 14:01 < bridge> i could 14:01 < bridge> but whats the point 14:01 < bridge> i see 14:01 < bridge> you wanted a small challenge 14:01 < bridge> and i dont really like the callback and warn stuff in libtw2 14:02 < bridge> its driving me crazy 14:02 < bridge> probably just a skill issue 14:03 < bridge> i have read about the warn stuff b4, but not sure if it was from u or gerdoe 14:04 < bridge> nah i never talked about it 14:04 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1320014100109201449/image.png?ex=67680e6e&is=6766bcee&hm=1d37b256f2ab466b911a5463ba1f9b4c95fd1418ed41a467c09ce89e81cf29ab& 14:04 < bridge> ^ 14:04 < bridge> this? 14:05 < bridge> well its still there 14:05 < bridge> or is it a fork 14:05 < bridge> ig a small problem of rust is that Result is more meant for _real_ errors and these are warnings that can be ignored 14:05 < bridge> or smth 14:05 < bridge> gerdoe takes a repo and transforms it to a completely different thing 14:05 < bridge> casual gerdoe 14:06 < bridge> that was my plan 14:06 < bridge> but too much work xd 14:07 < bridge> btw the initial code seems like over 9 years old, maybe he'd accept a different solution 14:07 < bridge> but yeah you can ofc also just do your own lmao 14:07 < bridge> if you are interested in ddnet physics, twgame needs contributors 😬 14:07 < bridge> ive seen it 14:07 < bridge> looks promising 14:07 < bridge> not sure how i can help 14:08 < bridge> i dont really know much about the game 14:08 < bridge> copy the c code, paste as rust code 14:08 < bridge> 14:08 < bridge> write infinite amount of tests that your port is correct 14:08 < bridge> ez pz 15:09 < bridge> Can a DDNet server potentially detect if a user is using dual stack (IPv4 and IPv6) and display both IP addresses? (I'm asking if this is generally possible, not whether it's currently supported.) 15:23 < bridge> not without external services i think 15:24 < bridge> maybe u could identify the ip address and make a guess or smth xd 15:25 < bridge> it is generally not possible to tell if two IPs are from the same device i believe 15:25 < bridge> does it need to be a server only feature? 15:30 < bridge> It’d be primarily useful as another way to identify a user 15:30 < bridge> ye i don't think that's possible. even if you can let client self report two ips, i think there might still be ways to fake the other ip if a bad actor coded the self report themselves. 15:31 < bridge> Sadge, alright. CGNATs are currently the bane of my existence :C 15:32 < bridge> implement the account thing already 15:32 < bridge> lol 15:33 < bridge> add secure connection 15:33 < bridge> or contribute to twgame 15:33 < bridge> then you have a first class account support client 15:35 < bridge> 15:43 < bridge> You can prevent faking by making the client do a tcp connection on both. But you can't stop the client from just not making a connection on the other ip 15:45 < bridge> i mean, can you even tell if the two ips are from the same device. idk how tcp matters. 15:45 < bridge> <_qey> Or just ban IPv6? 15:45 < bridge> The full handshake of tcp prevents spoofing 15:45 < bridge> i'm not talking about spoofing tho 15:46 < bridge> Well you can definitely "fake" it for some definition of "faking". But you can't "fake" that you have an ip unless you really have it 15:46 < bridge> ye 15:47 < bridge> i guess for moderating purpose it might be fine 15:47 < bridge> but again, it is definitely possible for a malicious client to just have a pool of ip available to act as a second target 15:48 < bridge> is faking even our problem here? 15:49 < bridge> might be, depends on what murpi really want to do 15:49 < bridge> the ddnet protocol also does a handshake kinda 15:50 < bridge> i thought it was more about hiding than faking 15:51 < bridge> if a malicious client is widely used and someone have remote control to that client, the bad actor can play on a ipv4 and report a second ipv6 that isn't theirs. if that gets banned, they can just switch around and connect with their own ipv6 and report a second ipv4 from the pool. 15:51 < bridge> they can only do it once tho 15:51 < bridge> :nouis: 15:53 < bridge> well if someone have a bot pool already, they can just use the bot pool itself so probably doesn't matter anyway. disregard what i said i guess 15:53 < bridge> :kek: 15:57 < bridge> bro, coding for 2 hours and then the insight that you should git stash your shit, you took the wrong turn 😂 15:57 < bridge> hurts 16:07 < bridge> 16:10 < bridge> There is no way to actually moderate a game like this without accounts 16:10 < bridge> There is no clever technical solution 16:24 < bridge> AI 16:24 < bridge> xd 17:08 < bridge> after another 3 hours i am able to respond to the connless packet 17:08 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1320060291731427349/image.png?ex=67683973&is=6766e7f3&hm=8516481c7c2aed2e62b607d8b95f6526e1357974c038e47e9d2cb4e6b7bc10e5& 17:08 < bridge> hell yeah 17:09 < bridge> weird thing is that i have to convert numbers to strings 17:09 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1320060495830585415/image.png?ex=676839a3&is=6766e823&hm=3a8e3dff7bc12e3e70292e17d1c1f9cdaa709e6b1868883887b776268b52b289& 17:09 < bridge> whats the idea behind this 17:10 < bridge> its only in 0.6 17:10 < bridge> and not in 0.7 17:34 < bridge> nice 17:34 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1320066873462751232/image.png?ex=67683f94&is=6766ee14&hm=6f10eec649862b0a41a9d73e0e25be7164016b2c70c034969e2272a8fd50e2e4& 17:40 < bridge> ban! 17:40 < bridge> no its rust 17:40 < bridge> rust = gud 17:40 < bridge> @jupeyy_keks have you tried livestreaming ddnet from a server with software renderer. do you think it is doable? 17:42 < bridge> on a desktop cpu 100% 17:42 < bridge> on a vps, not so sure 17:42 < bridge> oof 17:42 < bridge> like even if you limit fps to 60 or 30? 17:43 < bridge> ok, depends on if your vps is dedicated hardware ig 17:43 < bridge> i can try running ddnet on a single cpu core 17:43 < bridge> my cpu is old, so modern vps could beat it 17:43 < bridge> or match it 17:44 < bridge> if you can test it that would be appreciated. 17:45 < bridge> ok, full hd is enough ig? 17:46 < bridge> yes 17:48 < bridge> 1 core vs 2 vs 4 17:48 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1320070306592854147/image.png?ex=676842c6&is=6766f146&hm=da2ea406a636d8fba672b3b94d02c82b995c7bb8bda4ae6c0ed21bfef743cef0& 17:48 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1320070307121467492/image.png?ex=676842c6&is=6766f146&hm=1baf6c6bba98ac4e2d6a491b4433df2b4b4046d55d261f216511c500cf484815& 17:48 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1320070307670786079/image.png?ex=676842c7&is=6766f147&hm=b14a409f2a2f4737809508cf6bbef8bd5e2533301345a3b4db82629892931445& 17:48 < bridge> ah 17:48 < bridge> with entities you can get a bit more ofc 17:48 < bridge> too bad then 17:48 < bridge> 4 cores is around 60fps xd 17:48 < bridge> doesn't sound too bad 17:48 < bridge> ye but that's one expensive vps 17:49 < bridge> what is your price limit? 17:49 < bridge> price limit: CHINAH 17:49 < bridge> tbh i havent fully decided yet 17:50 < bridge> i kinda want to do a auto live stream thing where you can just call a vote in the chat to find a player and spectate them 17:51 < bridge> probably need to disable chat and names (or at least heavily censored with a chinese censorlist) since it is china 17:51 < bridge> e.g. ARM cores are quite cheap already: 17:51 < bridge> https://www.netcup.com/de/server/arm-server/vps-2000-arm-g11-mnz 17:51 < bridge> 17:51 < bridge> lol 17:52 < bridge> but i kinda need a pretty ok connection to china to stream it tho 17:52 < bridge> but these shared vps cpus are also often super bad xD 17:52 < bridge> dedicated ones perform much better 17:52 < bridge> also you could stream in hd ready 17:53 < bridge> i could try that i guess 17:53 < bridge> i might just use an actual small box at home instead of a server maybe 17:54 < bridge> with hd ready i hit around 50fps with 2 cores 17:54 < bridge> in entities around 75 fps 17:54 < bridge> what about without chat 17:54 < bridge> yeah local server, so chat is off after 5 seconds 17:54 < bridge> right 17:54 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1320071997841080461/image.png?ex=6768445a&is=6766f2da&hm=9007d57204903be91a6a8380f5d8865dc5e1fd96af5b1ec5cf3c31d2f06428e3& 17:55 < bridge> 50 is doable 17:55 < bridge> the community stream at chn max out at 30fps 17:55 < bridge> you could push 60 but they reencode to 30 anyway 17:55 < bridge> i can also try the opengl software renderer, maybe it's faster 17:56 < bridge> still need to encode tho. so maybe i can only know if i tried it myself 17:56 < bridge> true, but encoding hd ready is not too hard ig 17:56 < bridge> that is true 17:56 < bridge> opengl is slower 17:56 < bridge> right 17:57 < bridge> eitherway 50 without entity seems fine 17:57 < bridge> i can find two cores somewhere i believe 17:57 < bridge> 17:57 < bridge> and we have spec cursor now, so it would look pretty ok i think 17:58 < bridge> xd 17:58 < bridge> thanks for testing 17:58 < bridge> does speccing dyn cam also move your camera? 17:58 < bridge> yes, but not one to one. 17:58 < bridge> smooth dyncam with a hardcoded setting is always on when specing dyncam 17:59 < bridge> i mean there are really spinning dyncam users which would make regular dyncam user sick too. 18:00 < bridge> forcing smooth dyncam for watching stuff is pretty sensible imho 18:21 < bridge> i actually have quite a few android devices 18:21 < bridge> they are probably low power enough and good enough to push streams and just use the new ddnet android 18:22 < bridge> 18:30 < bridge> ez 19:03 < bridge> :justatest: 19:04 < bridge> too laggy 19:20 < bridge> they can go on bilibili just stream there 19:25 < bridge> i guess his tablet is too weak xd 21:15 < bridge> aw man suspend breaks wifi now 21:15 < bridge> and I have no clue since when since it's months since I last used wifi 21:15 < bridge> a couple other things that aren't working perfectly too 21:16 < bridge> don't want to deal with fixing all that right now 21:20 < bridge> check gentoo wiki 21:20 < bridge> maybe its there 21:20 < bridge> <_voxeldoesart> gentuah 21:20 < bridge> I think I'm checking journalctl first 22:17 < bridge> hauk gentuah