00:00 < bridge> in server gamecontroller.cpp 00:00 < bridge> remove from here 00:00 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1357474847328047288/image.png?ex=67f05678&is=67ef04f8&hm=c6f369051e9f0092801d3e6433c835f2c4d00000bfd9072e4b0192cb2a7564cb& 00:02 < bridge> <_qey> Holy fuck, thank you. I wasted like 2 hours trying to figure it out. 00:03 < bridge> np 00:26 < ws-client> I chat/whisper: ← xxxxxx: ok=)I use the voldemort ultimates client but on your servers I don't use any of the features from it. 00:26 < ws-client> gg 00:26 < ws-client> another self report 00:28 < bridge> I made over 5 people actually switch clients on your server by not banning them immediatly 00:28 < bridge> 🤷 00:28 < ws-client> its not much 00:28 < ws-client> but its honest work 00:28 < bridge> 5 more than ddnet 00:28 < bridge> 5 more than on ddnet :justatest: 00:29 < ws-client> I chat/whisper: ← xxxx: I only use the TAS function why I use it, I have lost interest in the game and want a new experience using these functions. 00:29 < ws-client> aaaa yikes 00:29 < bridge> :( 00:34 < ws-client> @melon wanna know easter egg? try writing this in the chat "i am using a cheat client" 00:54 < bridge> @chillerdragon maybe they should try *vanilla* 01:00 < ws-client> good idea 01:04 < bridge> There should be a open tas client with its own community imo 01:05 < bridge> working on an external tool... once I'm done optimizing the physics to not be complete trash 01:05 < bridge> I'm working on an external tool... once I'm done optimizing the physics to not be complete trash 01:06 < bridge> if it cant be ran on ddnet servers it might kill voldemort client i guess 01:06 < bridge> or at least people wont be using it for just tas 01:08 < bridge> whats the point of tassing 01:08 < bridge> you dont gain anything 01:08 < bridge> optimizing as much as u can 01:08 < ws-client> fOr EdUcatiOnaL puRpOseS oNlY 01:08 < bridge> for actual educational purposes only, tassing is epic 01:08 < bridge> but people using it "cuz theyre bored" 01:09 < bridge> that's the whole point of ddrace btw, but they used for whatever but optimizing runs 01:09 < bridge> tassing is extremley obvious, just stop it 01:09 < bridge> used it* 01:09 < bridge> I think it's okay if they're not count as valid runs or interfere with normal runs 01:09 < bridge> but the tools if they are public are... easy to apply to legit servers 01:09 < bridge> Like what the Celeste community has done 01:10 < bridge> the celeste community is filled with the oposite of toxic little children 01:10 < bridge> Maybe turn it into some different protocol then normal player 01:11 < bridge> And openly release it so they don't have to pretend not to be tas 01:11 < bridge> no it's unreal with no id system (accounts) 01:11 < bridge> we need accounts 01:12 < bridge> eeeeeoooo 01:12 < bridge> any real improvements' consequence is about dropping old ddnet or integrating account system (actually both) 01:12 < bridge> I mean it won't make things worse than the current status 01:12 < bridge> you cant tell, its singleplayer 01:12 < bridge> accounts tomorrow 01:12 < bridge> it will mess up protocol for no reason 01:12 < bridge> community 01:13 < bridge> since it will do nothing against tas players 01:13 < bridge> idk i mostly get positive interactions in game 01:13 < bridge> which game 01:13 < bridge> Like tas has their own servers and players idk 01:13 < bridge> Just separately 01:13 < bridge> they did for a while. nothing changed 01:14 < bridge> they actually still have em afaik 01:14 < bridge> ddnet, moderate maps 01:14 < bridge> it's just useless, you can't flex there with your tas ranks xd 01:14 < bridge> good for you, i dont xd 01:14 < bridge> because everyone use tas 01:18 < bridge> I don't get it 01:19 < bridge> i don't get it too. they use tas to advertise themselves and pollute leaderboard rather than optimizing their runs 01:19 < bridge> so you can just assume they're kiddos 01:23 < bridge> @gerdoe: yes 01:23 < bridge> Yeah so I mean after we release something like a official tas that isn't counted as ranks, I would expect things get better 01:24 < bridge> Idk the current tas client tho 01:26 < bridge> The problem is that without accounts the "official" system can just be modified since the game is opensource. So you'd basically be shipping a client which can turn into a cheat client with only a few lines of code changed 01:26 < bridge> Also people will still try to cheat real ranks even if it might get boring quickly the amount of players is ever increasing 01:27 < bridge> Also people will still try to cheat real ranks, even if it might get boring quickly the amount of players is ever increasing 01:27 < bridge> especially children, as gerdoe said 01:28 < bridge> if people will still have access via old client they just will not use newer. also voldemort maintainer will just not support the protocol. it's shrimple as that 01:29 < bridge> it's like adding client anticheat post mortem - there's no sense 01:29 < bridge> They already do that now tho, so I think it's not making things worse 01:31 < bridge> Relieving the bot client makers of writing code is definitely making things worse xd 01:33 < bridge> They already have the thing, I don't think adding another one would help them much... 01:34 < bridge> They do not have well made tas tools 01:34 < bridge> Oh I thought they did 01:34 < bridge> they play slowmo and can reverse/stop. That's all xd 01:35 < bridge> What about yours 01:35 < bridge> it's not public so I'm not saying anything 01:35 < bridge> :think_bot: 01:38 < bridge> its like god compared to the public ones 01:40 < bridge> yeah voldemort maintainer would probably drop the game after teeros being published 01:49 < bridge> <_qey> Never understood that kind of behavior. Does it get you recognition if you fake/cheat your runs? Just… Why? 01:50 < bridge> I suppose it makes them feel a little bit powerful 01:50 < bridge> that's the only way some people on tiktok got their followers btw 01:50 < bridge> <_qey> Knowing you can’t do shit on your own kind of defeats the purpose. 01:50 < bridge> one of projects tried to advertise with tas runs publishing them on tiktok too 01:51 < bridge> yeah but you're also getting a lot of people pissed off anonymously, and you're kinda leaving a mark by putting your name on the top of that leaderboard 01:51 < bridge> making good tas run is hard btw, especially with nothing but replay bot. you have to be skilled in first place, kids use it instead of play the game and polishing their skills since its easier and more enjoyable ig 01:52 < bridge> you don't technically need accounts to fix TAS but the cure is not very appealing 01:52 < bridge> it's like tagging a mcdonalds bathroom stall, very high class behavior 01:52 < bridge> yeah, that's too 01:52 < bridge> but anyway if ddnet would have account system everything would be slightly better from moderation/administration pov 01:53 < bridge> also flexing pov 01:53 < bridge> *Slightly* 01:54 < bridge> the account protocol requires a secure communication channel, which lowers the traffic on the account server but IMO it's not worth it 01:55 < bridge> it would have been really easy to start with inefficent protocol over insecure channel like openid connect and then upgrade later 01:55 < bridge> <_qey> Kids be kids, not much you can do about it. It’s surprising how sparse the age span is on DDNet. 01:57 < bridge> <_qey> Are you the guy making some TaterClient I’m hearing about all the more lately? 01:58 < bridge> <_qey> For some reason players asking me if they will be banned for playing with this particular client, does it have cheat functions? 01:58 < bridge> yes, no 01:59 < bridge> <_qey> For some reason players are asking me if they will be banned for playing with this particular client, does it have cheat functions? 02:37 < bridge> or just copy and paste it into voldemort client 02:40 < bridge> outcame is obviously the same, right 02:40 < bridge> outcome* 08:37 < bridge> gm 08:43 < bridge> No way teero dropped discord officially now??? 08:44 < bridge> Matrix it is boys 08:44 < bridge> Is there a good matrix client for android 08:48 < bridge> element works fine 08:52 < bridge> Oh hi 09:10 < bridge> @ryozuki how to make a signed const in irvm? 09:11 < bridge> a int type has no notion of sign 09:11 < bridge> its the instruction you use 09:11 < bridge> ```rust 09:11 < bridge> Div { 09:11 < bridge> lhs: Operand, 09:11 < bridge> rhs: Operand, 09:11 < bridge> signed: bool, 09:11 < bridge> /// If the exact keyword is present, 09:12 < bridge> /// the result value of the udiv is a poison value if %op1 09:12 < bridge> /// is not a multiple of %op2 (as such, “((a udiv exact b) mul b) == a”). 09:12 < bridge> exact: bool, 09:12 < bridge> }, 09:12 < bridge> ``` 09:12 < bridge> i guess u say that cuz Operand::Constant takes a u64 09:13 < bridge> which i should change 09:13 < bridge> xd 09:13 < bridge> what would you change it to? 09:14 < bridge> Operant::const_int 09:14 < bridge> but i think there was a library 09:14 < bridge> for arbitrarly sized numbers 09:14 < bridge> i forgot the name 09:16 < bridge> https://lib.rs/crates/rug maybe this 10:33 < bridge> I plan to work on NetworkTranslator. Could someone provide any suggestions? 11:53 < bridge> Any review on #9902? It's ready, part 2 of concerns in comments already in another pr 11:53 < bridge> https://github.com/ddnet/ddnet/pull/9902 12:04 < bridge> @ryozuki how cursed is this? 12:04 < bridge> ```rust 12:04 < bridge> pub trait IntoInt { 12:04 < bridge> fn into(self) -> u64; 12:04 < bridge> } 12:04 < bridge> 12:04 < bridge> // probably will be put in a macro to implement for i8/16/32/64 12:04 < bridge> impl IntoInt for i16 { 12:04 < bridge> fn into(self) -> u64 { 12:04 < bridge> use std::mem::size_of; 12:05 < bridge> 12:05 < bridge> let mut bytes = [0; size_of::()]; 12:05 < bridge> bytes[..size_of::()].copy_from_slice(&self.to_ne_bytes()); 12:05 < bridge> 12:05 < bridge> u64::from_ne_bytes(bytes) 12:05 < bridge> } 12:05 < bridge> } 12:05 < bridge> 12:05 < bridge> fn main() { 12:05 < bridge> assert_eq!(IntoInt::into(-1i16), u16::MAX as u64); 12:05 < bridge> } 12:05 < bridge> ``` 12:05 < bridge> I want to use this trait for `Operand::const_int` function, so it would take an argument which implements this trait instead of `u64` 12:44 < bridge> why not use the crate num 12:44 < bridge> it has traits for numbers 12:45 < bridge> btw u kow u can use self as u64? 12:46 < bridge> iirc 12:47 < bridge> i found `num_traits` crate 12:47 < bridge> im gonna build such a monstrosity 12:55 < bridge> ye num traits is like the standard for this 12:59 < bridge> ```cpp 12:59 < bridge> // Each player can also have a spectator char whose name plate is displayed independently 12:59 < bridge> if(GameClient()->m_aClients[i].m_SpecCharPresent) 12:59 < bridge> { 12:59 < bridge> const vec2 RenderPos = GameClient()->m_aClients[i].m_SpecChar; 12:59 < bridge> RenderNamePlateGame(RenderPos, pInfo, 0.4f); 12:59 < bridge> } 12:59 < bridge> // Only render name plates for active characters 12:59 < bridge> if(GameClient()->m_Snap.m_aCharacters[i].m_Active) 12:59 < bridge> { 12:59 < bridge> const vec2 RenderPos = GameClient()->m_aClients[i].m_RenderPos; 12:59 < bridge> RenderNamePlateGame(RenderPos, pInfo, 1.0f); 12:59 < bridge> } 12:59 < bridge> ``` 12:59 < bridge> why is the spectator char indepndent 12:59 < bridge> cant there only be 1 nameplate per player at a time? 13:08 < bridge> Work layer by layer, start by first making a teeworlds connection possible. For that, iirc you need to handle token translation and packet header translation. 13:17 < bridge> according to the words of some random guy these are the "main programming languages" 13:17 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1357675510976610404/image.png?ex=67f1115a&is=67efbfda&hm=682b22bff29295bcb7d4654723a14d5607115d4942d4586bfaa0e2a7476ec4d8& 13:18 < bridge> i mean c++ definatley, java used to be everywhere but now its just sprinkled in places you dont expect, c# ehhh 13:19 < bridge> You can check the index of the most used and the most popular programming languages, this is missing javascript and python. 13:19 < bridge> those definatley more main than c# anda jva 13:19 < bridge> those definatley more main than c# and java 13:19 < bridge> oh java is also big, I know companies build around them 13:20 < bridge> this is like posting the "main car manufacturers" of the world and just listing 3 13:21 < bridge> is bad index, but a rough estimation: https://www.tiobe.com/tiobe-index/ 13:23 < bridge> john, rebecca and zoe 13:23 < bridge> go list the 3 main names of the world 13:23 < bridge> go list the 3 main surnames of the world 13:23 < bridge> go list the 3 main surnames of the world, this moves to OT really fast I must admit 13:24 < bridge> ot? 13:24 < bridge> orange tjuice? 13:24 < bridge> Orange Topic 13:25 < bridge> donald trump? 13:26 < bridge> Lee 13:27 < bridge> Nguyen 13:31 < bridge> ```rust 13:31 < bridge> use num_traits::{FromBytes, ToBytes}; 13:31 < bridge> 13:31 < bridge> pub trait IntoInt> { 13:31 < bridge> fn into(self) -> T; 13:31 < bridge> } 13:31 < bridge> 13:31 < bridge> impl IntoInt for F 13:31 < bridge> where 13:31 < bridge> F: ToBytes, 13:31 < bridge> T: FromBytes, 13:31 < bridge> U: Default + Copy, 13:31 < bridge> { 13:31 < bridge> fn into(self) -> T { 13:31 < bridge> use std::mem::size_of; 13:31 < bridge> assert!(TN >= FN); 13:31 < bridge> 13:31 < bridge> let mut bytes = [U::default(); TN]; 13:31 < bridge> bytes[..size_of::()].copy_from_slice(&self.to_ne_bytes()); 13:31 < bridge> 13:31 < bridge> T::from_ne_bytes(&bytes) 13:31 < bridge> } 13:31 < bridge> } 13:31 < bridge> 13:32 < bridge> fn only_16bit>(value: T) -> u64 { 13:32 < bridge> IntoInt::into(value) 13:32 < bridge> } 13:32 < bridge> 13:32 < bridge> fn main() { 13:32 < bridge> dbg!(only_16bit(-1i16)); // ok 13:32 < bridge> dbg!(only_16bit(10u16)); // ok 13:51 < bridge> Java is secretly running the world 😛 13:51 < bridge> Almost every single smartcard on earth runs java 13:55 < bridge> Yeah like why would Java be there 13:55 < bridge> Cuz java was once what I would call a main language 15:52 < bridge> @soulyvevo @hectavoxel @louis.place I'd like to connect some more feedback for #9959, as this is our chance to change some game visuals! I really liked the claw idea, but they'd go over the Tee and implementing this would be hard. So feel free to mock and suggest and break :owo: 15:52 < bridge> https://github.com/ddnet/ddnet/pull/9959 15:52 < bridge> @soulyvevo @hectavoxel @louis.place I'd like to collect some more feedback for #9959, as this is our chance to change some game visuals! I really liked the claw idea, but they'd go over the Tee and implementing this would be hard. So feel free to mock and suggest and break :owo: 15:59 < bridge> sziasztok 15:59 < bridge> also would be nice to get some feedback on #10016, so I can continue with cooking spaghetti :owo: 15:59 < bridge> https://github.com/ddnet/ddnet/pull/10016 16:09 < bridge> too little maintainers 16:10 < bridge> too few maintainers 16:10 < bridge> if pr is longer than 2 lines its either roby, or noone 16:11 < bridge> if pr is longer than 2 lines its either roby, or noone will review 16:12 < bridge> today is friday and the sun in shining, I am not wondering about this 😄 Also I must admit, that I am extremely active rn and I don't expect anybody to keep up with that. This is already going waay better than I expected, a lot of PRs got merged and my list of things is closing 16:14 < bridge> if the pr is a fix it gets merged fast 16:18 < bridge> Yes but there were a lot of features in between, like new door visuals, customizable grabbers, door editor preview, new speedtiles ^^ So yeah, good work :owo: 16:18 < bridge> Yes but there were a lot of features in between, like new door visuals, customizable grabbers, door editor preview, new speedtiles ^^ So yeah, good work from you :owo: 16:22 < bridge> me? xD 16:23 < bridge> from you all (including you) 17:23 < bridge> Hi I'm @soulyvevo , the balls are great, I don't know about more balls for stronger, I like either the rubber band or the claw but not both. I think I prefer the claw 17:24 < bridge> claw would either be behind the Tee or we would need to change some rendering logic there, in an uneasy way 😦 17:25 < bridge> would you still prefer the claw with half of it behind the Tee? 17:25 < bridge> maybe put a huge fishing-hook at the end which sticks out 🙈 17:26 < bridge> You could have another component just for claws or render them in players.cpp. both solutions but idk how you could do it cleanly 17:27 < bridge> hmm 17:28 < bridge> does the client know, if it's hooked? I have no idea 17:30 < bridge> it does know for prediction i'd say 17:33 < bridge> I think so yes.On ddnet servers it should know the hookedid of all visible players or something like that. Which you can reverse to who hooked you 17:34 < bridge> I found the prediction code for draggers, so we could set a flag and render a hook over it in player.cpp, I don't know if this works 17:34 < bridge> but I can try 😄 17:36 < bridge> WTF is Bro cooking 17:39 < bridge> We were talking about grabbers/draggers/pulleys and not about players hooking each other ^^ 17:40 < bridge> Wait we can make grabbers look like hooks 🤯 17:48 < bridge> For the sake of complexity just do the rubber band thing for now, you can always do grabbers later 17:51 < bridge> What is a NetworkTranslator? 17:51 < bridge> Woaw cooking 17:51 < bridge> But they don't act like hooks 17:51 < bridge> It translates the networks 17:51 < bridge> yeah :/ I don't believe anyone would ever do this if we don't do it now 17:51 < bridge> You can/will 17:51 < bridge> this page looks so overengineered now, I love it xD 17:51 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1357744499488719019/screenshot_2025-04-04_17-50-34.png?ex=67f1519a&is=67f0001a&hm=7b0c13feb2490b69787103b898973f6fdc047d35ea5b42e28140c288e8ad29d4& 17:52 < bridge> German Menu ewww 17:52 < bridge> Schrotflintenlaser 17:53 < bridge> Eww, having a menu in your Muttersprache 17:53 < bridge> Yes! 17:53 < bridge> I have 3baud internet what is this image 17:54 < bridge> You need to have the menu in the Muttersprache of the application, which is english 17:54 < bridge> But who else is debugging german translations then? 17:54 < bridge> someone else 17:55 < bridge> :kek: 17:57 < bridge> fair 17:57 < bridge> if it were to be behind the tee i think it would need to be pretty big so that its clear what that even is 17:57 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1357745895986171925/g13.png?ex=67f152e7&is=67f00167&hm=a0fa9759bb8385f36547dc91b86fb6d4242370a5bc183f452c6d1da9b5b1511d& 17:57 < bridge> xD 17:58 < bridge> the tee looks so annoyed its cute 17:58 < bridge> :owo: 17:58 < bridge> :owo: 17:59 < bridge> OMG 17:59 < bridge> Please PM me Tee, need to draw my idea 18:03 < bridge> @essigautomat this? 18:03 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1357747431353356338/g48.png?ex=67f15455&is=67f002d5&hm=45a1075ffae3d75846a1bf290059701a7bec96d094a9d6441b96ffee3a2380fb& 18:05 < bridge> Why is grabber flipped? 18:05 < bridge> :pepeW: 18:08 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1357748742945509416/pummel.png?ex=67f1558e&is=67f0040e&hm=76dcaa378959fc4270626c5867d924381cbe3ccf5c6ea1739f52399d7979ed1c& 18:09 < bridge> lmfao 18:09 < bridge> I love this 18:09 < bridge> exactly 🤣 18:09 < bridge> what if there was just a magnet on his head 18:12 < bridge> but are tees magnetic? 🤔 🧲 18:12 < bridge> I guess too many shotgun bullets in their body 18:13 < bridge> Tees are just beanbags full of shotgun bullets 18:13 < bridge> oh you mean in the menu, because it's rendered the other way round, I don't know why it's done like this, also this looks a bit better with placing I think 18:13 < bridge> Doesn't matter much /shrug 18:13 < bridge> oh you mean in the menu, because it's rendered the other way round, I don't know why it's done like this, also this looks a bit better with placing I think. The grabber moves taking the Tees place as object of interest 18:13 < bridge> Would be cool if you had like a map part in there 18:14 < bridge> With a tee being grabbed 18:14 < bridge> xd 18:14 < bridge> If you wanted to make it even more overengineered 18:15 < bridge> you mean beeing moved aroun? xD I thought about that, but the Tee sprite would just be moved and it'd be missing feet movement 18:16 < bridge> I meant like a full map 18:17 < bridge> You mean like a grabber, that hooks the tee through the freeze laser, against a door, the laser hitting it for unfreeze and the shotgun shooting it back down to repeat the cycle? 18:17 < bridge> Yeah 18:18 < bridge> I refuse, I want stop you, good luck have fun :justatest: 18:18 < bridge> I refuse, I won't stop you, good luck have fun :justatest: 18:19 < bridge> Haha lmao 18:21 < bridge> I will probably first have to refactor all the rendering fncs to accept data instead of clientid 18:41 < bridge> @sollybunny I thought about this and we should do the pummel and also add the corresponding sounds for attaching and detaching 🪠 18:41 < bridge> Would be funny +1 18:51 < bridge> Any java enjoyers? How can I run https://git.cms.waikato.ac.nz/weka/weka ? 😬 18:59 < bridge> Alle auf Gewehr setzen 19:37 < bridge> Hm, why? It would be rendered as part of the tee, it should be fairly easy to sequence it in wherever you want in there 19:50 < bridge> hi developers 19:51 < bridge> hi developer 19:52 < bridge> uhhh Maven I guess (or maybe Ant?) 19:52 < bridge> Yeah I don't wanna deal with that, I'm not enough of a Java fan to actually know what I'm doing 19:52 < bridge> note that the actual code seems to be in https://git.cms.waikato.ac.nz/weka/weka/-/tree/main/trunk/weka 19:52 < bridge> this repo terrifies me 19:55 < bridge> Use eclipse 19:55 < bridge> javabuilder 19:56 < bridge> i think u should just be a able to load the .project in trunk 19:57 < bridge> i ran some random maven command and it worked xd 19:57 < bridge> winner 19:57 < bridge> but now it crashes in some class :pepeW: 19:57 < bridge> maybe it will work if I checkout stable branch 19:57 < bridge> it looks old 20:03 < bridge> It's not just call `renderLaser` anymore but I am gonna look into it 👍 20:04 < bridge> still doesn't work :\ will try to use zip from download page 20:05 < bridge> good luck 20:05 < bridge> which os are u on btw and what class 20:06 < bridge> wasn’t there a runtime loader thing right in there that said it works only on supported platforms 20:06 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1357778488739889313/image.png?ex=67f17142&is=67f01fc2&hm=aa62c5b04414b5d67fd83d6b6a0847a6c2bd42fdf2d88f10defb709c5a097837& 20:07 < bridge> hmm 20:08 < bridge> it works with code from downloads page 20:08 < bridge> maybe you’re off a bean 20:09 < bridge> beans 20:14 < bridge> Yeah, I guess it does split up the rendering into two components, which is not particularly nice, but it's not too too ugly, just a `isBeingDragged()` inside the tee rendering to render the claw. That is if that is the look you want to go for 20:21 < bridge> https://discord.gg/uJ5kUV8Agt 20:22 < bridge> 😒 20:33 < bridge> now draw them strapped to the back of another tee carrying them 20:40 < bridge> no u 21:23 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1357797654356037833/insane_clip.mp4?ex=67f1831b&is=67f0319b&hm=e34145fe4680e9ff4eccc39e1235d36fdb098f4b3bdfb4f9a9bdad02624823a4&