00:00 < bridge> @robyt3 about the collapsable serverinfo/communtiies and then my counter-pr of sticking communities at the top of filters 00:00 < bridge> because either solution is a solution to it taking up space, but no solution is not good 00:00 < bridge> obviously i think putting it in filters is better (since i made the counter pr) 00:00 < bridge> but which one is going to be ... merged? (It doesnt actually affect me ill change it in the one i use) 00:00 < bridge> @robyt3 about the collapsable serverinfo/communtiies and then my counter-pr of sticking communities at the top of filters 00:00 < bridge> because either solution is a solution to it taking up space, but no solution is not good 00:00 < bridge> obviously i think putting it in filters is better (since i made the counter pr) 00:00 < bridge> but which one is going to be ... merged? (It doesnt actually affect me ill change it in my fork) 00:01 < bridge> So far, neither of them seem like they would get merged, at least by me 00:02 < bridge> do you not think that its in the way? 00:03 < bridge> No, it's supposed to be highly visible 00:03 < bridge> but it is a filter? 00:03 < bridge> and not ... that importnat 00:03 < bridge> ddnet will be at the top anyway just due to player count 00:03 < bridge> and kog 00:03 < bridge> And it's not visible on the individual community tabs so it doesn't take up space there 00:04 < bridge> i dont use them i generally just filter 00:04 < bridge> (but thats me) 00:04 < bridge> but if u switch back and forth there is layout shift 00:04 < bridge> if u switch back and forth there is layout shift 00:04 < bridge> It's up there instead of on the filter tab because it was previously not clear for players 00:05 < bridge> there was previously a community filter? 00:05 < bridge> i didnt notice evidently 00:05 < bridge> i thought it was added at the same time communities got got their icons 00:05 < bridge> It went through some iterations in nightly or maybe one release version, not sure 00:06 < bridge> i kinda skipped from no communities / verifications to where it is now 00:06 < bridge> i like the icons 00:22 < bridge> the communities definitely feels out of place but i think a better solution involves refactoring the entire filter section (i've never used Server Address, and now we have two selections for Game Types, and i think a lot of these filter boxes can go into a collabsible 'advanced features' tab) 00:22 < bridge> as of now the communities box feels a little small and hard to navigate 00:22 < bridge> i like them all being in one place w/o dropdowns or extra menus 00:22 < bridge> i think the first type selection shgould be removed 00:23 < bridge> ye, but theres a tradeoff between the space for these filters and the space for the community list 00:23 < bridge> as it is rn i dont think things need more space 00:23 < bridge> as of now it only shows 4 communities for me without scrolling. I'd rather it show more communities than have some useless boxes I never check 00:24 < bridge> do u use more than the top 4 communities? 00:24 < bridge> *idea* 00:24 < bridge> i use communities outside of the top 4 and there's no way to sort them 00:25 < bridge> the type search box is to string search the type field right 00:25 < bridge> but then the type list is a preset sort of thing (and also some special behaviour) 00:25 < bridge> why not merge them 00:25 < bridge> such that the type search box searches the types (in server list) and also the preset types (where if you click on one its updated in the search box) 00:25 < bridge> same can be done with communities 00:26 < bridge> oh no doesnt work u can select multiple types 00:26 < bridge> can you type your whole message before you press enter :pepeW: 00:28 < bridge> no 00:28 < bridge> because i dont think my whole sentance at once, it comes to me in parts 00:28 < bridge> if i had done so the whole sentnace wouldve had to be different, since i realised my idea was a bit silly. but i still think that the whole combining string search and presets is a thing to consider 00:28 < bridge> and thats too much effort 00:29 < bridge> also some people like multiple short messages, so.. im not changing 00:29 < bridge> (that concludes my ted talk) 00:29 < bridge> #off-topic 00:30 < bridge> (my fingers go faster than my mind woaaw) 00:30 < bridge> also some people like multiple short messages, so.. im not changing. you should just acept me 4 who i am 😊 00:30 < bridge> when you type a bunch of short messages then go back on what you said it makes it harder to read and it means I'm less likely to understand the point you're trying to make. i probably type faster than you but i still type out my entire message before i hit enter :justatest: 00:31 < bridge> holdon 00:31 < bridge> the game types search box can probably be moved inside the types box at the top anyways (and be scrollable along with the type box) 00:31 < bridge> i have an image of me doing 150wpm which im really proud of 00:32 < bridge> and i did it on a school keyboard 00:32 < bridge> oh no doesnt work u can select multiple types 00:32 < bridge> "oh no doesnt work u can select multiple types" 00:32 < bridge> "oh no doesnt work u can select multiple types" - me 00:32 < bridge> i have an image of me doing 150wpm which im really proud of (i cant reproduce it) 00:33 < bridge> ye, it'd need a button to toggle 00:33 < bridge> might be ugly 00:38 < bridge> any1 know how to fix cmake errors 00:38 < bridge> 😢 00:39 < bridge> or warnings which make tests fail 00:44 < bridge> i figured it out 00:44 < bridge> i justhad to read a bit harder 00:50 < bridge> ```rust 00:50 < bridge> [ 5%] Building CXX object CMakeFiles/rust-bridge-shared.dir/src/rust-bridge/engine/shared/rust_version.cpp.o 00:50 < bridge> : error: macro names must be identifiers 00:50 < bridge> : error: macro names must be identifiers 00:50 < bridge> : error: macro names must be identifiers 00:50 < bridge> : error: macro names must be identifiers 00:50 < bridge> : error: macro names must be identifiers 00:50 < bridge> : error: macro names must be identifiers 00:50 < bridge> ``` 00:50 < bridge> uhhh 00:54 < bridge> google broke firefox everyone responsible deserves capital punishment 00:54 < bridge> google helped firefox stay alive 00:54 < bridge> firefox was mismanaged 00:54 < bridge> was my understanding 00:54 < bridge> or atleast permajail 00:55 < bridge> google services keep breaking on firefox (obviously to push people to chromelikes) 00:55 < bridge> ah yes 00:55 < bridge> they do that 00:57 < bridge> the cmakefile is so poorly formatted jesus 00:57 < bridge> 4 space indent, 2 space indent 1 space indent 8 space indent? 00:57 < bridge> space imbetween Not and If? idk man 00:58 < bridge> turns out my cmake formatter also sucks 00:58 < bridge> and unindenting things breaks stuff 00:58 < bridge> dman i didnt know cmakefiles were indent sensative x-x 01:06 < bridge> Mozilla killed Firefox by being poor, all the original developers are gone. 01:07 < bridge> Idk how much longer I'll be able to keep using it 01:07 < bridge> ungoogled chromium! 01:07 < bridge> because chromium is kinda just the better browser (having used both) 01:07 < bridge> <_voxeldoesart> what does this mean for the browser? 01:07 < bridge> but id prefer is firefox doesnt die... 01:07 < bridge> more than it is already dead 01:08 < bridge> I want a normal browser not something I have to fix every 6 months 01:08 < bridge> theres full 0.7 skin support 01:08 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1308222297194364978/image.png?ex=673d2875&is=673bd6f5&hm=eb6e36512ddc0ceca5eeb929ce4c590d1faa89d0ca939ab4e7e2e4dbbda23f11& 01:08 < bridge> why is this tucked away to only when you are playing 0.7 01:08 < bridge> It's for 0.7 players I guess 01:09 < bridge> yeah but i didnt know there was 0.7 support until i saw the config vars 01:09 < bridge> i had never looked 01:09 < bridge> i think it should be a tab 01:09 < bridge> it's recent 01:09 < bridge> <_voxeldoesart> thanks chiller 01:09 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1308222542321942568/image.png?ex=673d28af&is=673bd72f&hm=747177294c3d0af829418e99b29060fd778583bf8ae5fa2ca45e297d5ff78990& 01:09 < bridge> like this 01:09 < bridge> i love 0.7 skins :) 01:09 < bridge> like this 01:09 < bridge> <_voxeldoesart> like this 01:10 < bridge> are ddnet servers ever going to support 0.7 skins? 01:10 < bridge> If 0.7 gets more popular it will probably get a bigger part of the client 01:10 < bridge> haha no :) 01:10 < bridge> but i like the skins 01:11 < bridge> I don't expect that 0.7 skins are planned or plan to be planned 01:11 < bridge> aw 01:11 < bridge> also theres weird padding in ur settings page 01:11 < bridge> where 01:11 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1308223090567675924/image.png?ex=673d2932&is=673bd7b2&hm=7177fff148f94b0375234b039b8ee47529c05041c511ef903e3c103ac3a0a8e2& 01:11 < bridge> That is weird 01:11 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1308223134633037834/image.png?ex=673d293c&is=673bd7bc&hm=da2365776cfe654ec2ddd7cf038de628dcf52ea06ee59741a180be34c94adeb2& 01:12 < bridge> @totar can i make a pr >< 01:12 < bridge> Yes I'm not stopping you 01:13 < bridge> yipee 01:13 < bridge> Just make sure it works with all the settings 01:13 < bridge> ill try not to break it 01:14 < bridge> would a pr to add 0.7 skin support be added 01:14 < bridge> just be a sv config to turn it off 01:14 < bridge> a cl config to send 0.7 skin instead 01:14 < bridge> and server support to relay skins the same way it does for 0.6 01:14 < bridge> just be a sv config to turn it off 01:14 < bridge> a cl config to send 0.7 skin instead (if supported) 01:14 < bridge> and server support to relay skins the same way it does for 0.6 02:08 < bridge> how do i use hotreloading? 02:13 < bridge> 0.6 skins better 02:13 < bridge> login to rcon on local server 02:14 < bridge> then what? 02:14 < bridge> change the map to the same as in editor 02:14 < bridge> and itll hot reload on save in editor 02:14 < bridge> yeah but i like 0.7 skins, they are already in ur client, but server just doesnt send em 02:14 < bridge> i meant hot reloading code 02:15 < bridge> idk 02:15 < bridge> never used hot reloading in vs 02:15 < bridge> it compiles fast enough for me 02:15 < bridge> yeah but im doing incremental changes 02:15 < bridge> so bit annoying 02:15 < bridge> to compile (takes 5s or so), open, *wait*, navigate to where im looking (takes another 5s) 02:16 < bridge> well its more that im converting alot of code 02:16 < bridge> for values i was adding a test config value 02:16 < bridge> and im doing it in small chunks to make sure i dont mess up 02:31 < ws-client> @fokkonaut i dont think he rq. why? 02:42 < ws-client> @Solly ddnet servers support 0.7 skins if you connect from 0.7 02:49 < bridge> who do i ping to ping you? do i just type @chillerdragon 02:49 < bridge> oh it... pinged the discord one 02:50 < bridge> i didnt do that on purpose 02:50 < bridge> but ive never seen a 0.7 skin? 02:50 < bridge> Just type his name 02:50 < bridge> He is like voldemort 02:50 < bridge> i already used voldermort 02:51 < bridge> for the client that shant be named 02:51 < bridge> the devil is the only other thing which seems to appear when you talk about them (speak of the devil) 02:52 < bridge> and the devil, despite never being caught doing bad things feels more evil than voldermort who has on multiple occasions murdered people and also wants to kill a child for 7 books 02:52 < bridge> and the devil, despite never being caught doing bad things, feels more evil than voldermort who has on multiple occasions murdered people and also wants to kill a child for 7 books 02:53 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1308248640174821436/image.png?ex=673d40fd&is=673bef7d&hm=8a6372864a41122572ffff4a40dfebacd48576b52392a3ce4325563bab57a468& 02:53 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1308248679798538320/image.png?ex=673d4107&is=673bef87&hm=92d2046804a6e3107741e0e0d828ee61c46849c2e56687a1631542c0942e19e7& 02:53 < bridge> i wouldnt call that support 02:54 < bridge> can other 0.7 clients see 0.7 skins 02:54 < bridge> im pullling out the 5th desktop for this one jeez 02:54 < bridge> yes 02:54 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1308249026486861824/image.png?ex=673d415a&is=673befda&hm=1d4585afb188ebc6c31fe82dc7b387809632545827817e3d341eef050841964a& 03:59 < ws-client> @Solly you can ping me by writing my name with @ or without https://zillyhuhn.com/cs/.1731985143.png 03:59 < ws-client> @Solly you probably never saw a 0.7 skin because you always play 0.6 04:15 < bridge> the 0.7 skins dont show properly on ddnet 04:16 < bridge> and i dont think it would be that hard to change 04:17 < bridge> @chillerdragon if youre still awake... how do you do scrolling 04:18 < bridge> ``` 04:18 < bridge> static CScrollRegion s_ScrollRegion; 04:18 < bridge> vec2 ScrollOffset(0.0f, 0.0f); 04:18 < bridge> CScrollRegionParams ScrollParams; 04:18 < bridge> ScrollParams.m_ScrollUnit = 120.0f; 04:18 < bridge> ScrollParams.m_SliderMinHeight = 500.0f; 04:18 < bridge> s_ScrollRegion.Begin(&MainView, &ScrollOffset, &ScrollParams); 04:18 < bridge> MainView.y += ScrollOffset.y; 04:18 < bridge> ``` 04:18 < bridge> 04:18 < bridge> then scrollregion.addrect(??) 04:18 < bridge> This is the first time I've seen what a discord looks like from the ChillerDragon side 04:18 < bridge> lmao 04:30 < bridge> i forgo to do .end 04:52 < bridge> TEXTALIGN_ML or TEXTALIGN_LEFT 05:35 < bridge> ``` 05:35 < bridge> // this is kinda slow, but whatever 05:35 < bridge> for(auto &Key : gs_aKeys) 05:35 < bridge> Key.m_KeyId = Key.m_ModifierCombination = 0; 05:35 < bridge> 05:36 < bridge> for(int Mod = 0; Mod < CBinds::MODIFIER_COMBINATION_COUNT; Mod++) 05:36 < bridge> { 05:36 < bridge> for(int KeyId = 0; KeyId < KEY_LAST; KeyId++) 05:36 < bridge> { 05:36 < bridge> const char *pBind = m_pClient->m_Binds.Get(KeyId, Mod); 05:36 < bridge> if(!pBind[0]) 05:36 < bridge> continue; 05:36 < bridge> 05:36 < bridge> for(auto &Key : gs_aKeys) 05:36 < bridge> if(str_comp(pBind, Key.m_pCommand) == 0) 05:36 < bridge> { 05:36 < bridge> Key.m_KeyId = KeyId; 05:36 < bridge> Key.m_ModifierCombination = Mod; 05:36 < bridge> break; 05:36 < bridge> } 05:36 < bridge> } 05:36 < bridge> } 05:36 < bridge> ``` 05:36 < bridge> oh dear 06:52 < bridge> TEXTALIGN_MIDDLE doesnt work 07:52 < bridge> tell me why is my custom client after compiling is crashing when i want to connect any server 07:53 < bridge> u broke something 07:54 < bridge> moreover, I just installed the ddnet master and threw in the library 07:54 < bridge> After that, he complimented 07:54 < bridge> I didn't even touch anything. 08:04 < bridge> i cant help you without any information about crashes 08:15 < bridge> when people say crashing its normally assert failure or seg fault. as you havent provided a dbg msg its probably a segfault 08:15 < bridge> you can catch all segfaults by using asan 08:15 < bridge> the readme in https://github.com/ddnet/ddnet tells u how to enable it 08:15 < bridge> when people say crashing its normally assert failure or seg fault. as you havent provided a dbg msg its probably a segfault 08:15 < bridge> you can catch all segfaults by using asan 08:15 < bridge> the readme in tells u how to enable it 08:17 < bridge> font size in ddnet is varying between 12, 13 and 14, and its not noticeable at all 08:17 < bridge> but really annoying 10:56 < bridge> Always use the constants that specify both vertical and horizontal like `TEXTALIGN_MC`, never use the constants that only specify one (except with good reason) 11:09 < bridge> mmk its just tater had lots of _left 11:09 < bridge> and i got confused 11:17 < bridge> just fixed a compiler issue by updating cmake, i can't believe it 16:04 < bridge> @jupeyy_keks https://jvernay.fr/en/blog/skyline-2d-packer/implementation/ 16:45 < bridge> https://en.wikipedia.org/wiki/Whitening_transformation 16:50 < bridge> Has linear algebra gone too far? 16:51 < bridge> xd 17:25 < bridge> [yes](https://yuxinchen2020.github.io/ele520_math_data/lectures/randomized_linear_algebra.pdf) 17:27 < bridge> Oh yeah I remember hearing about something like this, where through some fancy trick + some randomness you can do matrix multiplication faster 17:33 < bridge> I think it was solving inverses through iterative method were randomness would either speed up convergence or skip local minima 17:33 < bridge> Rtfp (read the fucking paper) 18:05 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1308478278654365726/image.png?ex=673e16db&is=673cc55b&hm=44e7a26c3986c612d8c7d70ea238c023a6cca1048e9e305c99036bb2654c138f& 18:21 < bridge> lolwat 18:22 < bridge> I don't think this is that bad 18:23 < bridge> If you need a local sqlite on the client you can also upload it to postgres to query on your server 18:25 < bridge> I mean maaaybe useful if you can have queries that can reach within the sqlite sub-db, like with jsonb columns 18:34 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1308485543532822578/Screenshot_2024-11-19-22-33-56-009_org.ddnet.client.png?ex=673e1da0&is=673ccc20&hm=c4e8469d0db3ddae5079bde2b190665d33ff4d1070fe18a20f08eca654c0a503& 18:34 < bridge> 256 players... how? 18:35 < bridge> *magic* 18:36 < bridge> i dont even want to imagine how ugly it looks... - it's easy to set it up, but it will just look and probably feel bad 18:57 < bridge> Some just lie about it (which is against the masterserver rules) 18:57 < bridge> Or someone actually did spend the time to extend the 128p patch to a 256p patch 20:06 < bridge> <0xfaulty> @heinrich5991 here is another attempt to request an increase in the size of the JSON accepted by the master server to 32KB. Currently, if I don't send the skin, send an empty clan, and set the score to zero, I can fit about 134 players. Without these tricks, the maximum is around 89 players. The remaining fields are mandatory and cannot be removed; otherwise, the client will drop the server information. I plan to compress the JSON later by removin 20:06 < bridge> <0xfaulty> 20:07 < bridge> <0xfaulty> I made approximate calculations without considering the JSON limitations, focusing more on the size of server data: 20:07 < bridge> <0xfaulty> 20:07 < bridge> <0xfaulty> Approximate maximum size of server information: 410 bytes 20:07 < bridge> <0xfaulty> Approximate maximum size of information per player: 256 bytes 20:07 < bridge> <0xfaulty> 20:07 < bridge> <0xfaulty> Thus, in the maximum case: 20:07 < bridge> <0xfaulty> 20:07 < bridge> <0xfaulty> 64 players: 410 + 256 * 64 = 16,794 bytes 20:07 < bridge> <0xfaulty> 128 players: 33,178 bytes 20:07 < bridge> <0xfaulty> 256 players: 65,949 bytes 20:07 < bridge> <0xfaulty> 20:07 < bridge> <0xfaulty> If compression is applied: 20:07 < bridge> <0xfaulty> 20:07 < bridge> <0xfaulty> 64 players: 13,209 bytes (345 + 201 * 64) 20:07 < bridge> <0xfaulty> 128 players: 26,073 bytes 20:07 < bridge> <0xfaulty> 256 players: 51,801 bytes 20:07 < bridge> <0xfaulty> 20:07 < bridge> <0xfaulty> Since the client sorts players by score, I can optimize this by sorting on the server side and sending, for example, only the top 64 players with skins, while the rest are sent without skins. This could reduce the information for 256 players to 35,162 bytes (410 + 12,864 + 21,888). If only 32 skins are sent, the total would be 32,378 bytes. 20:07 < bridge> <0xfaulty> Samples: 20:07 < bridge> <0xfaulty> ```json 20:07 < bridge> <0xfaulty> { 20:07 < bridge> <0xfaulty> "max_clients": 256, 20:07 < bridge> <0xfaulty> "max_players": 256, 20:07 < bridge> <0xfaulty> "passworded": false, 20:07 < bridge> <0xfaulty> "game_type": "XXXXXXXXXXXXX", 20:07 < bridge> <0xfaulty> "name": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 20:07 < bridge> <0xfaulty> "map": { 20:07 < bridge> <0xfaulty> "name": "XXXXXXXXXXXXXXXX", 20:08 < bridge> <0xfaulty> "sha256": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 20:08 < bridge> <0xfaulty> "size": 1111111 20:08 < bridge> <0xfaulty> }, 20:08 < bridge> <0xfaulty> "version": "XXXXXXXXXXXXX", 20:08 < bridge> <0xfaulty> "client_score_kind": "XXXXXX", 20:08 < bridge> <0xfaulty> "requires_login": false, 20:08 < bridge> <0xfaulty> "clients": [ 20:08 < bridge> <0xfaulty> ] 20:08 < bridge> <0xfaulty> } 20:08 < bridge> <0xfaulty> ``` 20:08 < bridge> <0xfaulty> 20:08 < bridge> <0xfaulty> ```json 20:08 < bridge> <0xfaulty> { 20:08 < bridge> <0xfaulty> "name": "XXXXXXXXXXXXXXX", 20:08 < bridge> <0xfaulty> "clan": "XXXXXXXXXXX", 20:08 < bridge> <0xfaulty> "country": 111, 20:08 < bridge> <0xfaulty> "score": 11111, 20:08 < bridge> <0xfaulty> "is_player": false, 20:08 < bridge> <0xfaulty> "skin": { 20:08 < bridge> <0xfaulty> "name": "XXXXXXXXXXXXXXXXXXXXXXXX", 20:08 < bridge> <0xfaulty> "color_body": 11111111, 20:08 < bridge> <0xfaulty> translation magic 20:30 < bridge> <0xfaulty> I think I'll create issue on github to not lose conversation details 20:53 < bridge> use protocol buffers when :nouis: 20:53 < bridge> (this comment was not sponsored by google)