00:05 < bridge> :ping: 00:12 < bridge> 01:35 < bridge> 🚂 01:42 < bridge> https://media.discordapp.net/attachments/1384218127809904712/1384989338609258666/image.png?ex=68546f56&is=68531dd6&hm=aedb56fb38e071f8a182beaacd84c652b3abc7362be5b4f31beba052b1e7b8d7&=&format=webp&quality=lossless 01:42 < bridge> https://media.discordapp.net/attachments/1384218127809904712/1384989338923700255/image.png?ex=68546f56&is=68531dd6&hm=b212ff336bc5968336f2e937539f0d7d0cf44cf5b0b13a65f7efca7b01d59cdb&=&format=webp&quality=lossless 01:42 < bridge> https://cdn.discordapp.com/attachments/1384218127809904712/1384989602661666876/image.png?ex=68546f95&is=68531e15&hm=61e0cb1e7d8cb23384900f87b2e55a8af9cfa66f93be5dfa1f95c1b3d28baa58& 01:42 < bridge> https://media.discordapp.net/attachments/1384218127809904712/1384989339527811223/image.png?ex=68546f56&is=68531dd6&hm=68d86911abfdba55a0e77d79022111fbf2cb05097d9c685cbffef647a1aea447&=&format=webp&quality=lossless&width=642&height=856 01:45 < bridge> https://media.discordapp.net/attachments/1384218127809904712/1384989338609258666/image.png?ex=68546f56&is=68531dd6&hm=aedb56fb38e071f8a182beaacd84c652b3abc7362be5b4f31beba052b1e7b8d7&=&format=webp&quality=lossless 01:45 < bridge> https://media.discordapp.net/attachments/1384218127809904712/1384989338923700255/image.png?ex=68546f56&is=68531dd6&hm=b212ff336bc5968336f2e937539f0d7d0cf44cf5b0b13a65f7efca7b01d59cdb&=&format=webp&quality=lossless 01:45 < bridge> https://cdn.discordapp.com/attachments/1384218127809904712/1384989602661666876/image.png?ex=68546f95&is=68531e15&hm=61e0cb1e7d8cb23384900f87b2e55a8af9cfa66f93be5dfa1f95c1b3d28baa58& 01:45 < bridge> https://media.discordapp.net/attachments/1384218127809904712/1384989339527811223/image.png?ex=68546f56&is=68531dd6&hm=68d86911abfdba55a0e77d79022111fbf2cb05097d9c685cbffef647a1aea447&=&format=webp&quality=lossless&width=642&height=856 02:45 < bridge> is there a command to refresh the players skin 02:45 < bridge> when you change your skin by command it takes a while to refresh the players skin 02:45 < bridge> not currently 02:45 < bridge> :/ 02:45 < bridge> there's not a huge point in having that either because it'd only be for you 02:46 < bridge> you're just waiting for the server to send a new snapshot with that skin 02:46 < bridge> or maybe it's a server message 02:46 < bridge> alright thanks 02:46 < bridge> np 02:47 < bridge> it's particularly slow on some servers i know 02:47 < bridge> i think kog tweaks that stuff for whatever reason 03:46 < bridge> I'm pretty sure there's a config for how fast you can change it 05:33 < bridge> sv_info_change_delay afaik 08:14 < bridge> wowowo 08:18 < bridge> is windows notification handling so complex you need a library for it? 08:20 < bridge> ```cpp 08:20 < bridge> #include 08:20 < bridge> #include 08:20 < bridge> #include 08:20 < bridge> 08:20 < bridge> bool ShowNotification(const std::wstring& imagePath, const std::wstring& title, const std::wstring& message) { 08:20 < bridge> // Load the icon from the file 08:20 < bridge> HICON hIcon = (HICON)LoadImageW(NULL, imagePath.c_str(), IMAGE_ICON, 64, 64, LR_LOADFROMFILE); 08:20 < bridge> if (!hIcon) { 08:20 < bridge> MessageBoxW(NULL, L"Failed to load icon.", L"Error", MB_OK | MB_ICONERROR); 08:20 < bridge> return false; 08:20 < bridge> } 08:21 < bridge> 08:21 < bridge> // Create and fill the NOTIFYICONDATA structure 08:21 < bridge> NOTIFYICONDATA nid = {}; 08:21 < bridge> nid.cbSize = sizeof(nid); 08:21 < bridge> nid.hWnd = NULL; // No window is associated 08:21 < bridge> nid.uID = 1; 08:21 < bridge> nid.uFlags = NIF_INFO | NIF_ICON | NIF_TIP; 08:21 < bridge> nid.dwInfoFlags = NIIF_USER; 08:21 < bridge> nid.hIcon = hIcon; 08:21 < bridge> 08:21 < bridge> // Set the balloon title and text 08:21 < bridge> wcsncpy_s(nid.szInfo, message.c_str(), sizeof(nid.szInfo) / sizeof(WCHAR) - 1); 08:21 < bridge> wcsncpy_s(nid.szInfoTitle, title.c_str(), sizeof(nid.szInfoTitle) / sizeof(WCHAR) - 1); 08:21 < bridge> 08:21 < bridge> // Add the icon to the system tray 08:21 < bridge> Shell_NotifyIcon(NIM_ADD, &nid); 08:21 < bridge> Shell_NotifyIcon(NIM_MODIFY, &nid); 08:21 < bridge> 08:21 < bridge> // Keep the notification visible for a short time 08:21 < bridge> chatgpt code, "works well for win32 applications" 09:10 < bridge> @sollybunny my pr only does multiples of 45 degrees 09:10 < bridge> but ye feel free to merge it, my implementation was pretty odd iirc 09:11 < bridge> it might be a bit too 'non-ddnet' for tc, but it does keep the same behavior (still makes the bind a lot easier / qol though) 09:21 < bridge> using a library just for toast notifications :feelsbadman: 09:34 < bridge> We have come a long way from pre-planned memory allocation layout to library for toast notifications 09:34 < bridge> Truly an evolution 09:38 < bridge> I mean if the lib is called libtoastnotifications, it probably does only that or not? xd 09:49 < bridge> i am aware, i dont feel any point to merge it if it cant do everything else 09:50 < bridge> @learath2 wdym vomit, if it works then thats fine code 09:50 < bridge> would rather it takes const char* 09:56 < bridge> It's AI generated. I hate it on principle 09:57 < bridge> your principle is misfounded 09:59 < bridge> Perhaps, I'm an old man, I'm allowed at least one opinion not founded on anything logical 10:00 < bridge> I firmly believe all this AI will turn its users into mindless drones that water plants with mountain dew 10:01 < bridge> It's my "bill gates puts tracking nanochips into the vaccines" opinion 10:03 < bridge> It's not really a library it's just a handy wrapper around the windows functions 10:03 < bridge> Why would I rewrite it just to not use a library 10:03 < bridge> Same thing 10:11 < bridge> Maybe since we only use some little part of it? 10:19 < bridge> It's fine, bloat away. We've long moved away from pretending we care about binary sizes 10:20 < bridge> as long as it doesnt become an unmaintainable mess :peeposhrug: 10:21 < bridge> so... does anyone know how to solve this problem? 10:21 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1385535110803361852/f878ecefa9020a867e350bac4b85ff46.png?ex=68566ba0&is=68551a20&hm=04368fb8302116489d53c67dbc114afa2853101d813cf0e7b5d03b7a80f1c1d2& 10:21 < bridge> https://media.discordapp.net/attachments/997859408862269502/1096415664341794897/M54IELINHUIU3GYYPSUM.gif 10:23 < bridge> Sadly this happens in china because of the great firewall the master server can't ping the gameserver 10:24 < bridge> If you are hosting a server on an ip that does not change we can whitelist the ip 10:25 < bridge> ye,i need to send ip here? 10:25 < bridge> ddnet can whitelist ips in the china firewall? Nice xd 10:26 < bridge> no, but we can exempt them from the ping check 10:27 < bridge> @sollybunny he can connect to my server via ip+port 10:27 < bridge> here is fine, or you can DM me (it will become public when the server is on the masterlist anyway, so you can't really keep it secret) 10:27 < bridge> ok,my server ip is 36.50.226.195,port is 10240,thanks! 10:27 < bridge> https://media.discordapp.net/attachments/997859408862269502/1129775614711308439/20230715220436.gif 10:29 < bridge> Added, try restarting your server and let me know if it registers fine 10:29 < bridge> Huge ass port 10:29 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1385537058172436592/image.png?ex=68566d70&is=68551bf0&hm=eb62c35588d2b80407e95be03db37819668f957c0ef891f170c8eab690b46209& 10:30 < bridge> Enjoy 10:30 < bridge> ! 10:38 < bridge> I think it's ok to not trust anything it writes in principle, especially stuff like this which is just interacting with some API. It often uses out dates stuff or does something in a sketchy way. If it's just straightforward code code that doesn't interact with any APIs then if it looks good it's usually good. 10:38 < bridge> I think it's ok to not trust anything it writes in principle, especially stuff like this which is just interacting with some API. It often uses out dated stuff or does something in a sketchy way. If it's just straightforward code code that doesn't interact with any APIs then if it looks good it's usually good. 10:58 < bridge> Assuming it works at all, this doesn't show a modern notification from this century but only a balloon tooltip on a tray icon. It also block the main thread for 5 seconds. 10:58 < bridge> Assuming it works at all, this doesn't show a modern notification from this century but only a balloon tooltip on a tray icon. It also blocks the main thread for 5 seconds. 11:06 < bridge> because if mr chatgpt's function works (sadly i cant test, i do not have a windows machine), then i dont see why the rest of it is needed 11:06 < bridge> ^ fair okay 11:07 < bridge> its training my reviewing skills 11:07 < bridge> init 11:11 < bridge> Half of this library looks like an XML document being constructed in memory to configure the notification 11:11 < bridge> i care about compile times for tests 11:11 < bridge> i care about compile times for ci 11:11 < bridge> people use binary sizes to make tclient look bad 11:11 < bridge> its only 7mb more 😭 11:11 < bridge> i'ts 7mb more???? 11:12 < bridge> I thought it was like 10kb bigger 11:12 < bridge> That's more than 50% more than DDNet 11:12 < bridge> ddnet is masive 11:12 < bridge> holdon 11:12 < bridge> do you mean the whole folder 11:12 < bridge> my sshfs is dying 11:12 < bridge> the 40mb folder? 11:12 < bridge> no, only the exe 11:13 < bridge> grrrr 11:13 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1385547991699558481/image.png?ex=6856779f&is=6855261f&hm=c8145c9ee6709ad9c0d844284447cc188ebadfefff9f8b90b534f15a1c12edce& 11:13 < bridge> `77M -rwxr-xr-x 1 solly solly 77M Jun 17 22:05 /home/solly/mnt/icovps/Code/ddnet/build/buildtater/DDNet` 11:13 < bridge> `69M -rwxr-xr-x 1 solly solly 69M Jun 19 10:35 /home/solly/mnt/icovps/Code/ddnet/build/DDNet` 11:13 < bridge> both are with debug info btw 11:14 < bridge> both release+debuginfo 11:14 < bridge> both are release+debuginfo 11:14 < bridge> Then they are rather small, debug info binaries on Windows are 100 MiB 11:15 < bridge> idk where the size difference comes from 11:15 < bridge> debug info makes the different multiplicative 11:15 < bridge> Release is 12 MiB, so if Tater would have added more than 50% to that it would be surprising 11:15 < bridge> wait it is bigger 11:15 < bridge> if release is 12 and debg is 69 then the ratio is 5.75 11:15 < bridge> so 77 for tater should be 13.39 11:15 < bridge> this is recent 11:16 < bridge> when did you last compare the size 11:16 < bridge> it got 2MB bigger between 10.2.0 and 10.3.0 11:16 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1385548963150561350/image.png?ex=68567887&is=68552707&hm=eafe2a3f92ff701193071e21f5643fa8515df63413416eba1c72f9638237c2ae& 11:16 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1385548969462988912/image.png?ex=68567888&is=68552708&hm=a66972dee09f19a911640b7b21c8eba936317e82e94b173c0543717bead640a0& 11:17 < bridge> how 11:17 < bridge> there is 1 extra external 11:17 < bridge> for expression parsing 11:17 < bridge> the cpp file is less than 700 sloc 11:17 < bridge> yeah that shouldn't really matter 11:18 < bridge> this is like, 100k+ loc 11:18 < bridge> hmm 11:18 < bridge> ¯\_(ツ)_/¯ 11:18 < bridge> deen's DDNet build is also only 6 MiB, no idea what's the difference to my regular release build 11:18 < bridge> clang got better at the size to speed tradof? 11:18 < bridge> is upstream also 6mb now? is that the new normal? 11:18 < bridge> its x size on my machiiine 11:19 < bridge> lemme try hold on 11:19 < bridge> yeah, the official builds are around 6 MiB 11:19 < bridge> what happened that made it 25% bigger? 11:19 < bridge> symbols? 11:20 < bridge> no that's release 11:20 < bridge> my steam ddnet is 13M 11:21 < bridge> linux has more static linked libraries so it's bigger anyway 11:21 < bridge> why not have them sepeartley? 11:21 < bridge> like SDL2 11:21 < bridge> what 11:21 < bridge> ``` 11:21 < bridge> config_directory.sh demo_extract_chat map_convert_07 11:21 < bridge> config_retrieve dilate map_diff 11:21 < bridge> config_store discord_game_sdk.so map_extract 11:21 < bridge> data libSDL2-2.0.so.0 storage.cfg 11:21 < bridge> DDNet libsteam_api.so 11:21 < bridge> DDNet-Server license.txt 11:21 < bridge> ``` 11:21 < bridge> I just built upstream and it's still only 4.3Mb 11:22 < bridge> o 11:22 < bridge> What configuration? 11:22 < bridge> "Release" MSVC 11:22 < bridge> Without FFmpeg? 11:22 < bridge> idk 11:22 < bridge> let me see 11:22 < bridge> (why is ffmpeg big) 11:22 < bridge> If you did the default then yes 11:26 < bridge> yeah it has the demo recorder 11:26 < bridge> I'm sure 11:26 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1385551447646539816/image.png?ex=68567ad7&is=68552957&hm=c90054c3b7d4929dbf53ca364c16db5fef039b77dbffc9c67097489d7eaf222c& 11:26 < bridge> it says tclient but it's upstream 11:27 < bridge> minsizerel is 3.9mb 11:27 < bridge> but this is the same size it's been for as long as I've known what the size is 11:28 < bridge> idk where the 6-7Mb numbers are coming from 11:28 < bridge> I look at the win64 releases on https://ddnet.org/downloads/ 11:30 < bridge> does the client not know if the current team is practice? 11:30 < bridge> yeah I give up on improving on this 🙈 I get weird artifacts, while I am just playing with text container indices 11:30 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1385552432729423932/screenshot_2025-06-20_11-28-44.png?ex=68567bc2&is=68552a42&hm=d9523daccac3dc2a3ae703652decb2a4fcf319fafe3c585c774cc7824825c5a7& 11:31 < bridge> Probably not 11:32 < bridge> idk I guess the ddnet released binaries are always bigger than what I get from msvc 11:33 < bridge> darn 11:38 < bridge> https://asterinas.github.io/book/#the-asterinas-book 11:38 < bridge> https://asterinas.github.io/ 11:39 < bridge> https://lwn.net/SubscriberLink/1022920/ad60263cd13c8a13/ 11:39 < bridge> ``` 11:39 < bridge> bool DoRenderGroup = true; 11:39 < bridge> for(auto &&pRenderLayer : m_vRenderLayers) 11:39 < bridge> { 11:39 < bridge> if(pRenderLayer->IsGroup()) 11:39 < bridge> DoRenderGroup = pRenderLayer->DoRender(Params); 11:39 < bridge> 11:39 < bridge> if(!DoRenderGroup) 11:39 < bridge> continue; 11:39 < bridge> 11:39 < bridge> pRenderLayer->Render(Params); 11:39 < bridge> } 11:39 < bridge> ``` 11:39 < bridge> :brownbear: 11:51 < bridge> What happened to the server between 16.0.3 and 16.6? 11:51 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1385557626192007178/sizes.png?ex=68568098&is=68552f18&hm=3f1ad66667ead09ea34aed80f3db9d9c7ff37e23f98bfa13701bbfebb011454e& 11:59 < bridge> Can u run same tool for linux build? 11:59 < bridge> Then we can see if the pattern are similar 11:59 < bridge> I first need to download all releases though :justatest: 12:00 < bridge> that's just wget over a list of versions right? :justatest: 12:00 < bridge> I already had a lot of them stored for Windows for faster bisect 12:03 < bridge> Also, we need a moderator, it seems, like we've been facing abuse over some days, just killed a server of 8 people or so I think 12:03 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1285054495843291148/image.png?ex=68560f42&is=6854bdc2&hm=f523755895f004dc03624eb46f3320366d4d5632028e0718b2aa829007bfe64b& 12:03 < bridge> There is a way to display a menu, infclass mod does it. Don't try this at home, the code is dangerous for your eyes and feeling. 12:03 < bridge> It abuses the map animations: the server bake two dozen animations, and then adjust the current game tick for the client to make it displaying different quads in different states. 12:03 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1142121228505722920/infc_headquarter_2023-08-18_18-40-07.mp4?ex=68562a08&is=6854d888&hm=51144eaba8452fc6ea61da36811362bdb793319e460cbd25cb9739653976e413& 12:03 < bridge> Hey, I started a small discussion on the new speed tile. It would be great if the new tile is not also locked into weird bugs, please have a look https://github.com/ddnet/ddnet/pull/9670 12:04 < bridge> finally! DAP is available in zed :owo: 12:04 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1385560815872114809/image.png?ex=68568390&is=68553210&hm=fa420b5f05ce2284522b52982793244c94492cc482a8d541dffae07184f8c3b8& 12:24 < bridge> btw, do we not do anything against the obvious cheated times on maps like "tutorial"? 13:10 < bridge> is a vector of smart pointers an m_vVector or an m_vpPointer? Technically these are objects 🤔 13:10 < bridge> is a vector of smart pointers a m_vVector or a m_vpPointer? Technically these are objects 🤔 13:10 < bridge> is a vector of smart pointers a m_vVector or a m_vpVector? Technically these are objects 🤔 13:15 < bridge> The later 13:15 < bridge> pointers get p 13:15 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1385578883964731464/image.png?ex=68569464&is=685542e4&hm=3a404706ea564c9e030b4bf32c961a57916da2ad4aa1a826ddadb89b1cfa3706& 13:55 < bridge> CHARACTERFLAG_PRACTICE_MODE 14:05 < bridge> tank u 14:20 < bridge> I'm sure someone added something very important 14:21 < bridge> Then we removed it 14:40 < bridge> accounts? :santatrollet: 14:45 < bridge> is there a ddnet logo in the game files? 14:45 < bridge> the small one with single tee, no text 14:54 < bridge> <0xfaulty> Could maybe someone review #10380 and include to release? It's just one line fix in simple logic 14:54 < bridge> https://github.com/ddnet/ddnet/pull/10380 14:55 < bridge> <0xfaulty> If further clarification is needed I would be happy to answer 15:01 < bridge> lgtm, video would be nice i guess so maintainers know this really fixes it so would be a faster merge 15:02 < bridge> or does anyone have the png so i can add it 15:02 < bridge> They also wrote a blog post on fuzzing the Teeworlds network: https://logicaltrust.net/blog/2020/07/socketfuzzer.html 15:02 < bridge> Fuzzing the map format isn't really worth it unless for learning, you should easily find crashes everywhere because the format is mostly unchecked at the moment 15:11 < bridge> @0xfaulty let me read around the relative code a little and get back to you 15:12 < bridge> <0xfaulty> sure, also I asked my friend to attach video to show how it looks like 15:16 < bridge> `other/icons/DDNet_256x256x32.png`? 15:17 < bridge> <0xfaulty> video added 15:22 < bridge> ah yea 15:22 < bridge> i guess ill copy it over to data/ 15:23 < bridge> Can wintoast use the icon embedded in the binary or it the icon not embedded in highest resolution? 15:24 < bridge> 48x48 is fine, but it cant use .ico 15:28 < ws-client> @pathos3005 classic sp someone 15:33 < bridge> what happened 15:34 < bridge> nvm the higher resolution looks better 15:42 < bridge> ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДНЕТ ХУ2ЙЕТСА 16:02 < bridge> I wonder if we would improve this with a simply heuristic, like check just for the x difference first instead of the distance, p.x - other.x > threshhold -> continue 16:04 < bridge> I wonder if we would improve this with a simple heuristic, like check just for the x difference first instead of the distance, p.x - other.x > threshhold -> continue 16:13 < bridge> linkedin moment 16:13 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1385623529537667283/1742578234705.png?ex=6856bdf9&is=68556c79&hm=bb9caf8e1ea960996cd725bc9e0e2c071190e3714374c54777e37c74590e56ef& 16:17 < bridge> no ):< 16:17 < bridge> chatgpt made me a better programmer 16:17 < bridge> https://tenor.com/view/chuckles-im-in-danger-ralph-wiggum-the-simpsons-gif-14149962 16:18 < bridge> The integration tests with valgrind are failing but it went unnoticed because the script doesn't exit with an error exit code :justatest: 16:19 < bridge> I think I even pointed this out once but never fixed it 😄 16:20 < bridge> Can you merge #10385 ? That should hopefully fix the undefined behavior again. 16:20 < bridge> https://github.com/ddnet/ddnet/pull/10385 16:21 < bridge> All of the valgrind errors look related to NETADDR 16:26 < bridge> > `seed ^= std::hash{}(std::string_view(reinterpret_cast(Addr.ip), sizeof(Addr.ip))) + 0x9e3779b9 + (seed << 6) + (seed >> 2);` 16:26 < bridge> 16:26 < bridge> totally human readable 🙂 16:26 < bridge> is `0x9e3779b9 ` just a random offset for the seed? 16:26 < bridge> is `0x9e3779b9` just a random offset for the seed? 16:27 < bridge> Because C++ committee doesn't add a standard hash combiner, everyone copies stackoverflow who recommend copying boost 16:27 < bridge> on the topic of seed 16:27 < bridge> is anyone working on the seeded teleport 16:27 < bridge> or were just yapping about this few days ago 16:28 < bridge> oh you volunteered? how nice of you! 😄 16:28 < bridge> no :) 16:55 < bridge> @chillerdragon is there any reason why chillerbot-ux considered legit if it has afk freeze avoid 17:51 < bridge> you don't need to download to get the size i think 18:21 < bridge> wasnt the discussion also abt a lot more qol for teleport 18:22 < bridge> not just seeded but consistent orderings or smth 18:22 < bridge> it'd be nice if they were seeded and smartly chosen based on other character proximity 18:23 < bridge> (ingame bug, sorry) 18:23 < bridge> just wanna raise awareness to this if anyone can figure it out..:owo: 18:23 < bridge> * https://discord.com/channels/252358080522747904/757720336274948198/1385388317805383832 18:24 < bridge> ye i saw that but cant figure out how it would ever happen 18:24 < bridge> add it to the physics test suite 18:25 < bridge> gotta ensure the behavior is consistent for every future update or it will be unfair to teero 18:27 < bridge> gotta ensure the behavior is consistent for every future update or it will be unfair to teemo 18:27 < bridge> What's that 😅 18:28 < bridge> there is no physics test suite but if it existed 18:29 < bridge> Could the inputs be copied with the help of demo? // teehistorian? 18:30 < bridge> teehistorian yes, demo no 18:31 < bridge> there’s a funny map called coverage tho 18:51 < bridge> isnt demo technically possible even tho its only half of ticks 18:51 < bridge> just find the two tick inputs that leave u w the next snap 18:53 < bridge> in most cases at least 19:03 < bridge> afaik they are already seeded 19:18 < bridge> oh ok 19:18 < bridge> but there's no way to send it to the client or embed it in the map rn right 19:23 < bridge> I think its not sent to the client, but it would be possible. I don't see a reason for maps to seed the randomness 19:25 < bridge> maybe in case some mapper wants to have more control over the seed or smth 19:26 < bridge> probably not needed at all but how else would the seed be chosen deterministically per map 19:27 < bridge> I don't think it *should* be chosen deterministically 19:30 < bridge> J$ON has joined the chat 19:30 < bridge> hey jason 19:30 < bridge> why is my name animated 19:30 < bridge> so fucking stupid 19:31 < bridge> Zwelf probably knows best about how randomness is used in physics, if you have specific questions. 19:31 < bridge> Rng is used in the server for multiple things, not just teleporters (not 100% certain, there might be multiple rng sources for different things). Also, tees from different teams also use the same source of randomness. Due to these factors, the mapper can't do anything significant by seeding the randomness 19:31 < bridge> discord make a decent product and leave it alone challenge: impossible 19:31 < bridge> Fixed 19:31 < bridge> it feels weird to have different tp seed for the same map + same team at different times though 19:31 < bridge> i recently switched to xmpp and mumble for talking to literally anyone I care about 19:32 < bridge> that means i dont care about you! 🫵 19:32 < bridge> rip 19:32 < bridge> :brownbear: 19:33 < bridge> right as i was preparing a pull request 19:33 < bridge> LMFAO 19:33 < bridge> I was seriously confused why he randomly said fixed 19:33 < bridge> and immediately unconfused 19:34 < bridge> anyway I think the only reason u want control over randomness is for the icp thing json wants which also is a terrible name for it 19:34 < bridge> it is not a checkpoint 19:35 < bridge> i think deterministic seed per map makes kinda sense 19:35 < bridge> for what? speedrunning a map where the expectation is to tele most parts 19:35 < bridge> like rly hard parts 19:35 < bridge> consistency 19:36 < bridge> would you expect the tp seed to only update per tp? 19:36 < bridge> i guess non deterministic makes it harder to tas lmao 19:36 < bridge> in some team 19:36 < bridge> oh i guess wait 19:37 < bridge> i forgor how seeding works 19:37 < bridge> :D congrats on Dev role BTW @mpft 19:38 < bridge> well im sure theres a way to make the seed kinda not update 19:38 < bridge> w/e 19:38 < bridge> ideal teles shouldnt be random anyways 19:40 < bridge> thanks 19:40 < bridge> i've worked long and hard to get this role back 19:40 < bridge> congrats ewan 19:41 < bridge> Do we have a list of all translators somewhere? 19:42 < bridge> only in the translation files 19:42 < bridge> unrelated sorry but when was developer-vc born 😅 19:43 < bridge> i can't remember if this is as json requested, but my ideal implementation would be a tele behavior tile that can be ignored by common entities files (like the background of weapons tiles) and it just has a number associated with it. the lower the number the higher the priority, so if you have a tele priority 1 and two tpto right next to each other, when the map picks a tp destination it chooses the first one available, from left to right first, th 19:44 < bridge> whether or not it "forces" this behavior regardless of tpto occupation and collisions is up for discussion still 19:45 < bridge> but the problem we try to solve is predicting teleports 19:45 < bridge> you would put it in a column above a drag part and set it to priority 2, and put it in a row in the freeze for the drag part with priority 1, assuming the part is mapped from left to right. there may be other usecases but not sure any have been mentioned really 19:45 < bridge> youre just overcomplicating 19:46 < bridge> this is exactly what it solves. what do you mean? 19:47 < bridge> it's position-based prediction 19:47 < bridge> the player and the client will both know with 100% certainty where it will spawn 19:53 < bridge> Which afk freeze avoid? 19:54 < bridge> You mean the camp hack? That tries to stay at the current area walking left and right if you leave a 6 tile area? Thats not an unfair advantage in any scenario as far as I know 19:54 < bridge> But of course it’s automated input so it’s bannable on ddnet 19:55 < bridge> But there is nothing related to freeze. Where did you get that info from @gerdoe ? 19:57 < bridge> surely this isn't my fault 19:57 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1385679979433431223/image.png?ex=6856f28b&is=6855a10b&hm=fd936510357c57203bd9c1323c20c961e36cc992a920961cab1964ce758112b3& 19:57 < bridge> 19:59 < bridge> Remove Ewan’s dev role! His fault! 20:00 < bridge> rip 20:01 < bridge> https://tenor.com/view/pipotam-baby-hippo-hippo-wash-shower-gif-3406421565683572068 20:02 < bridge> \#developer be like when Heinrich is afk 20:02 < bridge> Where is fokkos meme about memes? 20:08 < bridge> im not sure... 20:10 < bridge> сасать мне 20:10 < bridge> #off-topic rus 20:11 < bridge> developers. what would you think about breaking this 3700 line CMakeLists.txt file up into a subdirectory structure 20:11 < bridge> so we can have more executive logic for target/library/test defs in the main cmakelists, and then every other subcomponent will live in its own CMakeLists.txt 20:15 < bridge> ? 20:15 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1385684392374046792/image.png?ex=6856f6a7&is=6855a527&hm=1bab171eede3341e55b6091638486a514efe31389fc80b73e97232527ec53c7f& 20:15 < bridge> it's sad 20:15 < bridge> i think hein confused our distaste for his anal moderation style with distaste for his presence 20:17 < bridge> `anal moderation style` sounds disgusting 20:17 < bridge> i need to stop using natural english expressions :feelsbadman: 20:18 < bridge> pedantic english only 20:18 < bridge> are there more ups other than maintainability? 20:18 < bridge> not really 20:18 < bridge> it'd just change things 20:19 < bridge> which doesn't sound like a big deal, but kind of is for contributor expectations 20:19 < bridge> it'd definitely make it easier to make sense of though, at least in my opinion 20:31 < bridge> splitting it into server/client/tests sounds good if we talk readability/maintainability i think - might want to ask maintainers 20:41 < bridge> NOOO YOU CAN REMOVE MOST OF IT WITH MY CMAKE PR 20:42 < bridge> WHY ITS REJECTED I DO NOT AGREE WITH 20:42 < bridge> WITHOUT THE FILE SPAM ITAKES SENSERRRRE 20:42 < bridge> cmakefiles crashout 20:43 < bridge> i havent seen your pr 20:50 < bridge> Yall think local 2p (main+dummy) with two controllers and multi view type camera would be playable? 20:54 < bridge> i would say no but i'm constantly surprised by just how in tune ppl can get with this game 20:55 < bridge> thing is how do u see enough of the map if you only have 1/2 of the screen 20:55 < bridge> it'd have to split screen if the players get too far away 20:56 < bridge> otherwise if you get far apart your character's gonna be really tiny (usually accentuated by the way you have to sit if you have 2 people looking at the screen) 20:56 < bridge> and you'll have to somehow move them closer together while they are that tiny 21:17 < bridge> would be lots of fun I think :) 21:26 < bridge> maybe a dumb question but we have LTO on for release builds, right? 21:33 < bridge> true tele parts would be rly annoying 21:34 < bridge> i think just bind + or - to camera controls or smth 21:34 < bridge> i want another option for cl_showhud_score 21:34 < bridge> i think it'd be pretty cool on chill modes or easy maps tbh 21:34 < bridge> too bad splitscreen is not easy 21:34 < bridge> ddnet-rs idea ( @jupeyy_keks ) 21:36 < bridge> where u can show only 1 time 21:39 < bridge> I wish OS's would have native support for making any two applications run splitscreen with split input 22:08 < bridge> yeah, would you consider remove it or just let us ban anyone who's using it? 22:08 < bridge> no freeze, my mistake. just automated in put to be on the same x pos 22:08 < bridge> input* 22:09 < bridge> another pr that wants to let cmake recursive file()? 22:10 < bridge> 4p would for sure xd 22:25 < ws-client> @zhn how is that any relevant advantage? 22:26 < ws-client> did you see anyone using it? 22:26 < ws-client> for what? 22:28 < bridge> any automated inputs are disallowed huh 22:29 < ws-client> yes 22:29 < ws-client> one of the many stupid rules xd 22:29 < ws-client> @zhn so you dont have any actual problem other than insisting on the rules? 22:30 < ws-client> then of course feel free to ban players with that client 22:30 < ws-client> if you have a real problem and i can actually fix it let me know 22:30 < ws-client> sadly i can not rewrite the rules 22:36 < bridge> im getting the same talk over and over this year, because people want to make game even easier to play. so exceptions in rules even like chillerbot ux is used for an excuses to add any other automated input because hey chillerdragon is allowed to this, why im not and so on 22:37 < ws-client> fair 22:37 < ws-client> then say its illegal 22:38 < ws-client> i would also be open to appending the input msg with extra flags when the input is automated. Would you be interested in that? 22:39 < bridge> does it make any sense? 22:39 < ws-client> the antibot could drop all automated input 22:39 < ws-client> basically deactivating the camp feature on ddnet servers 22:40 < ws-client> and giving other server owners the option to do so too 22:43 < bridge> https://tenor.com/view/pipotam-baby-hippo-hippo-wash-shower-gif-3406421565683572068 22:43 < bridge> but that means we need to add another packet just to let chillerbot ux have camp hack? i don't think voldemort or any other guy will consider using this packet bit even xd 22:43 < ws-client> no 22:43 < ws-client> no new packet 22:44 < ws-client> append at the end of existsint input 22:44 < bridge> but my statement persists, would anyone besides you even use it 22:44 < ws-client> that can help you argue saying chillerbot-ux identifies it self and can be blocked 22:45 < ws-client> its not about others using it 22:46 < bridge> can't you just check if server belongs to ddnet community instead of tweaking upstream 22:46 < ws-client> no upstream will be touched 22:46 < ws-client> this happens purely in chillerbot-ux 22:46 < ws-client> and optionally in ddnet antibot 22:46 < ws-client> but ideally its only theoritcal 22:46 < bridge> that what upstream means xd 22:46 < ws-client> so it can actually be used 22:46 < bridge> ddnet infra 22:47 < bridge> ddnet servers don't allow automated input. I'd expect most other modes to have similar rules/stances (KoG, fng, ictf, e.g.) 22:47 < ws-client> its only theoretically there 22:47 < ws-client> for the sake of argument 22:47 < ws-client> and only practically in chillerbot-ux 22:47 < ws-client> yes @patiga 22:47 < ws-client> i know 22:47 < bridge> maybe you could instead have a whitelist of mods on the client-side, that allows that 22:47 < ws-client> no 22:47 < bridge> why not? 22:48 < ws-client> i think the rule is bad 22:48 < bridge> problem is real tho, chillerbot ux is bannable but considered legit. people use it as an excuse to use their own automated inputs features 22:48 < ws-client> and the feature is good for ddnet 22:48 < ws-client> i used it on ddnet already 22:48 < bridge> you are breaking rules though. automating a/d inputs seems extreme to me 22:48 < ws-client> i am breaking the rules yes 22:48 < bridge> chillerbreaker 22:49 < ws-client> so you dont want it? 22:49 < ws-client> i would do it 22:49 < bridge> this is one of the things where I'd expect people to find ways to abuse the new input option to make certain parts easier. also, this makes it harder in general to detect automated input, if there is 'okay' automated input 22:50 < ws-client> its not harder to detect if it identifies it self 22:50 < bridge> if I see any kind of automated input from another player, I assume they are cheating. 22:50 < bridge> allowing automated input would make that line much more blurry 22:50 < ws-client> in the unlikely case of someone abusing it it can just be disabled 22:51 < bridge> so the guy in question added the same camp hack with freeze avoid. should that be also considered legit 22:51 < bridge> in your use case of ddnet automated input, you seem to expect the admins to differentiate between "okay" automated input and "bad" automated input, as the flag can ofc also be used by bad actors 22:52 < bridge> we can make it even better and teach him to block any guy who's trying to take us out of our default position, would that be also considered legit? 22:52 < ws-client> @patiga yes 22:52 < ws-client> freeze avoid seems op 22:52 < bridge> @gerdoe you too quick, second time already you wrote exactly what I wanted to write :p 22:53 < bridge> because it is exactly the way people want it 22:53 < bridge> it happened with dummies, now it hapoens with everything 22:53 < bridge> the same talk over and over, im loosing it 22:54 < ws-client> dummies is different isnt it 22:54 < ws-client> you cant ban old ddnet clients 22:54 < bridge> with this "yes", we go back to: 22:54 < bridge> > this is one of the things where I'd expect people to find ways to abuse the new input option to make certain parts easier. also, this makes it harder in general to detect automated input, if there is 'okay' automated input 22:54 < ws-client> but you can ban old chillerbot-ux clients 22:54 < bridge> but you will not come up with new one, will you 22:54 < ws-client> once its a problem ofc isntantly 22:55 < bridge> okey so there's no problem then 22:55 < ws-client> i am not sure if you are being sarcasting or satisfied 22:56 < bridge> second 22:56 < ws-client> oh thats nice and oddly surprising 22:57 < bridge> because allthehaxx has no maintainer around and 1.0.0 is considered banned too 22:57 < ws-client> ye that annoys me too 23:18 < bridge> anyone with perms wanna take me up on this? https://github.com/ddnet/ddnet/pull/10392#issuecomment-2992873360 23:18 < bridge> no no chillerbot-ux is good no hax 23:18 < bridge> anyone with perms wanna take me up on this? 23:19 < bridge> what a player even can do something insane with campbot 23:19 < bridge> and it is not that hard to kill someone who using campbot 23:20 < bridge> Can you squash the commits? That way you rerun the CI and it's also cleaner for formatting changes. 23:21 < bridge> We might have to bump some timeout value in the integration test with valgrind independently 23:23 < bridge> Ewan you seem proficient in cmake, do you know if detecting the correct rust compiler is possible within cmake itself? (gnu or msvc) 23:23 < bridge> or a way to atleast display a proper error message instead of just `cannot find debug/libddnet_engine_shared.a: No such file or directory` 23:26 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1385732570301595688/chillerbot.mp4?ex=68572386&is=6855d206&hm=07194983851ce2b1dff80cd8e21089108d5292fad621dccf269a1ebfd53b3f75& 23:27 < bridge> and it is used in mods like FDDRace etc, to not get afkmoved from a farm tile 23:27 < bridge> i bet most of chillerbot users doesnt even know campbot 23:27 < bridge> ddnet community servers discourage use of any kind of automated inputs 23:28 < bridge> since chillerdragon agreed on removing it for ddnet at least you will be able use ot any other server but not ddnet ones 23:28 < bridge> it* 23:28 < bridge> on** 23:28 < bridge> xd 23:30 < ws-client> @vahemaaa well first of all there are no chillerbot-ux users xd but ye nobody knows the features xd 23:30 < bridge> :feelsbadman: 23:30 < ws-client> the only known features are the ones tater and cactus yoinked xd 23:31 < bridge> some guy was using Tater client on multeasy, and he askedme "whats ur tater client settings" i told him "i use ddnet and chillerbotux", then he said "what is ddnet client" 23:31 < bridge> Chiller talking with chiller about chillers features in chillerbot and his hidden features in chillerbot-ux 23:32 < bridge> :justatest: 23:35 < bridge> :nouis: 23:38 < bridge> @robyt3 im sorry for ping, but: animepdf found out that there are at least 2*151*online_players_amount mallocs happening every tick on server side. ive tried to prealloc all of it and got literally no improvement xd, like percent or something via perf, but since it was preallocated for MAX_CLIENTS now server eats up like 1.4gb of ram from the start since its MAX_CLIENTS*151*(60+CSnapshot::MAX_SIZE). what do you think about it at all? while profiling yo 23:41 < bridge> I doubt there are that many malloc every tick. `malloc` is literally only used 5 times on the server-side at all. 23:44 < bridge> and 3 of them are in snapshot.cpp 23:45 < bridge> online_players_amount*2 per tick* 23:45 < bridge> Try valgrind+massif or gperftools for profiling 23:45 < bridge> online_players_amount*2 per tick\*