00:00 < bridge> add #7848 to the description - like `closes #7848` 00:03 < bridge> the PR is there to check if anything's wrong to it and give feedback/comments etc, feel free to reopen i'd dsay 00:03 < bridge> the PR is there to check if anything's wrong to it and give feedback/comments etc, feel free to reopen i'd say 00:03 < bridge> the PR is there to check if anything's wrong to it and give feedback/comments etc, feel free to reopen i'd say 00:03 < bridge> also add #7848 to the description - like `closes #7848` 00:35 < bridge> yo @jupeyy_keks is there any function in ddnet to convert mouse pos to world pos? 00:35 < bridge> im trying to make a little sketchboard for tactics 00:41 < bridge> `MapScreenToWorld` sounds promising 01:18 < bridge> sounds.... 01:18 < bridge> ima go sleep 01:18 < bridge> good night! 01:31 < bridge> https://kolibrios.org/en/ look at this thing. This is truly art 01:32 < bridge> 1.44MB, insane 01:34 < bridge> thats damn impressive 01:37 < bridge> > Floppy disk image 💾 02:05 < ws-client> lmao @fokkonaut webchat enjoyer 02:06 < ws-client> jopsti i used Shift + Alt + F12 to list method calls again! Its so amazing <:poggers:546812233867329556> 02:09 < ws-client> nvm its broken af xd 02:09 < bridge> xD me tapping Shift + Alt + F12 and changing tty 02:09 < bridge> no, not acceptable 03:01 < ws-client> @Mr.Gh0s7 u gotta hover a method definition in vscode xd 03:01 < ws-client> also for me changing tty is ctrl + alt + f12 not shift + alt + f12 03:01 < bridge> wdym 03:01 < bridge> ah xD 03:02 < bridge> :O true for me too but I read shift as ctrl mb 03:02 < ws-client> nob 03:02 < bridge> It is I. 03:02 < ws-client> i totally did not change tty today my self when doing it earlier 03:39 < bridge> damn - so when teeOS ? 03:43 < bridge> i have work in 1 1/2 hours but lea convinced me to change my nvim config again and i made an oopsie and i want it fixed but i have to work but i also need sleep but i want this do be done and AAAAAAAAAAAA 05:09 < bridge> @learath2 i just realized how confusing that is, what i was talking about was this: 05:09 < bridge> 05:09 < bridge> `cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=TRUE -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -GNinja && ninja` 05:09 < bridge> 05:09 < bridge> this is my alias `ddbuild` that i am using to ensure clangd has no troubles with includes 05:10 < bridge> i just realized how confusing that is, what i was talking about was this: 05:10 < bridge> 05:10 < bridge> `cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=TRUE -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -GNinja && ninja` 05:10 < bridge> 05:10 < bridge> this is my alias `ddbuild` that i am using to ensure clangd has no troubles with includes 05:10 < bridge> i just realized how confusing my wording was, what i was talking about was this: 05:10 < bridge> 05:10 < bridge> `cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=TRUE -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -GNinja && ninja` 05:10 < bridge> 05:10 < bridge> this is my alias `ddbuild` that i am using to ensure clangd has no troubles with includes 09:02 < bridge> @chillerdragon, I think you might want to enable a player per ip limit for the ddnet insta servers 09:02 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1201437193726603314/Screenshot_20240129-085844.png?ex=65c9d094&is=65b75b94&hm=082b2791b7c7d47e1062bbe0f2cd54af217b36c417546f8f69ebf6921cd399fe& 09:11 < bridge> according to ddnet docs it's set to 4 by default. might be that every individual here had a different ip, who knows. lowered mine to 2. 10:42 < bridge> damn didn't know about firefox profiler 10:42 < bridge> linux perf is amazing 10:53 < bridge> you can set the `root_pattern` in the lsp conf to detect files like `build/compile_commands.json` 10:54 < bridge> cc @learath2 10:56 < bridge> I also set mine to read from an env variable `NVIM_PROJECT_ROOT` when it exists 10:56 < bridge> for the case where I have multiple build folders and need a specific one 11:03 < bridge> I have no idea how to use it 11:03 < bridge> Gm btw 11:15 < bridge> Just see how it’s used else where in the code 11:15 < bridge> Copy paste like a pro 11:17 < bridge> Thanks for the heads up. I personally am not scared of tees and like the limit of 4. if lukure is getting nervous he can pullrequest a config change to reduce it :D 11:20 < bridge> Wat it do? Profile your Firefox? Are you browser developer now or what? 11:26 < bridge> i tried :pepeW: 11:26 < bridge> mouse mapping is hard.... 11:32 < bridge> No firefox profiler supports many perf data samples 11:33 < bridge> Like data collected from linux-perf tool 11:35 < bridge> ```cpp 11:35 < bridge> void CRenderTools::MapScreenToGroup(float CenterX, float CenterY, CMapItemGroup *pGroup, float Zoom) 11:35 < bridge> { 11:35 < bridge> float ParallaxZoom = clamp((double)(maximum(pGroup->m_ParallaxX, pGroup->m_ParallaxY)), 0., 100.); 11:35 < bridge> float aPoints[4]; 11:35 < bridge> MapScreenToWorld(CenterX, CenterY, pGroup->m_ParallaxX, pGroup->m_ParallaxY, ParallaxZoom, 11:35 < bridge> pGroup->m_OffsetX, pGroup->m_OffsetY, Graphics()->ScreenAspect(), Zoom, aPoints); 11:35 < bridge> Graphics()->MapScreen(aPoints[0], aPoints[1], aPoints[2], aPoints[3]); 11:35 < bridge> } 11:35 < bridge> 11:35 < bridge> void CRenderTools::MapScreenToInterface(float CenterX, float CenterY) 11:35 < bridge> { 11:35 < bridge> float aPoints[4]; 11:35 < bridge> MapScreenToWorld(CenterX, CenterY, 100.0f, 100.0f, 100.0f, 11:35 < bridge> 0, 0, Graphics()->ScreenAspect(), 1.0f, aPoints); 11:35 < bridge> Graphics()->MapScreen(aPoints[0], aPoints[1], aPoints[2], aPoints[3]); 11:35 < bridge> } 11:35 < bridge> ``` it is used to map the screen to specific coords. but thats not exactly what i want 11:49 < bridge> @chillerdragon The ⁨Firefox Profiler⁩ can also import profiles from other profilers, such as Linux perf, Android SimplePerf, the Chrome performance panel, Android Studio, or any file using the dhat format or Google’s Trace Event Format. 11:51 < bridge> ye 11:51 < bridge> uninstall chrome 13:04 < bridge> okay it works.... 13:07 < bridge> that's bad if there are multiple people in the same household 13:08 < bridge> no ddnet lans on ddnet svs 13:08 < bridge> :justatest: 13:08 < bridge> lan parties 13:16 < bridge> he talks about insta tho, u dont need a dummy there 13:48 < bridge> for gctf servers (where you do not need dummies) 2 is ok 13:49 < bridge> yes, if there are ≤ 2 people in a household 13:51 < bridge> a household with 3 gctf enjoyers would be 1337 13:53 < bridge> niche gctf is highly unlikely to have more than 2 players in a single household 13:54 < bridge> but the problem depicted above might need a completely different solution 13:54 < bridge> had like 12 weird bots on all of "our" gctf servers 14:01 < bridge> https://blog.gtk.org/2024/01/28/new-renderers-for-gtk/ 14:02 < bridge> @jupeyy_keks 14:02 < bridge> vulkan for gtk 14:15 < bridge> nice 15:51 < bridge> ```cpp 15:51 < bridge> const CUIRect *CUI::Screen() 15:52 < bridge> { 15:52 < bridge> m_Screen.h = 600.0f; 15:52 < bridge> m_Screen.w = Graphics()->ScreenAspect() * m_Screen.h; 15:52 < bridge> return &m_Screen; 15:52 < bridge> }``` 15:52 < bridge> tf is this bro 15:52 < bridge> its should be 15:52 < bridge> ```cpp 15:52 < bridge> const CUIRect *CUI::Screen() 15:52 < bridge> { 15:52 < bridge> m_Screen.h = Graphics()->WindowHeight(); 15:52 < bridge> m_Screen.w = Graphics()->ScreenAspect() * m_Screen.h; 15:52 < bridge> return &m_Screen; 15:52 < bridge> } 15:52 < bridge> ``` right? 15:52 < bridge> The virtual render screen 15:52 < bridge> so annoying 15:52 < bridge> No, why? 15:53 < bridge> Then it's height dependent 15:53 < bridge> you have a lot more space then xd 15:53 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1201540652152918067/image.png?ex=65ca30ef&is=65b7bbef&hm=e325d78b5d3f68fa7549f3b8cfe0551f57f6c80a564df01961592557ca48646e& 15:54 < bridge> tbh way better 15:54 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1201540789243760662/image.png?ex=65ca310f&is=65b7bc0f&hm=043da54697fbbc3078e676dbd042c3d2bb6cec9e9139e9926056da73c648253e& 15:54 < bridge> Yes, but our ui is not DPI aware 15:54 < bridge> You'd need to add that too then 15:55 < bridge> i think fng limits you to one ☹️ 16:14 < bridge> @chillerdragon furo stole your skins and put it on https://ddstats.qwik.space/skins/ 16:18 < bridge> (Also why do you have so many questionable skins in there lmao) 16:19 < bridge> Furo is a fellow. We share everything 16:29 < bridge> I thought so ^^ 16:29 < bridge> 16:30 < bridge> Though I am not sure if there are differences between ChillerDragon's skin db and furo's 16:47 < bridge> The skins are scraped from skins.tw, skins.tee.world and Chillerdragon's DB 16:48 < bridge> i have also a scraper 16:49 < bridge> https://assets.ddstats.org 16:49 < bridge> its odd ur site is also called ddstats :d 16:51 < bridge> Sue for plagiarism! 17:38 < ws-client> @Scrumplex wdym questionable :D send links xd 17:38 < ws-client> Ye i got those skins by collecting all the skins i could find at some point in time. Which was like forums/discord/databases like skins.tw and similar. 17:43 < ws-client> Lets break backwards compability and embrace external over embedded images. All custom images will be uploaded on some http webservers and the client downloads them if needed. This way reused custom images are only sent and stored once for multiple maps. 17:44 < bridge> we can still have backcompat with this 17:44 < ws-client> wowo how? 17:44 < bridge> I'd revise the map format though, probably moving to zip 17:44 < bridge> by sending old clients the old maps 17:44 < ws-client> ah only do it for new clients but then the server needs like two maps or sumsin 17:44 < bridge> could be generated on-the-fly 17:44 < ws-client> the advantage would also be smaller map size on the server side 17:45 < ws-client> ou yea okey 17:45 < ws-client> store without 17:45 < ws-client> on the fly download from http xd 17:45 < ws-client> would work. And the file size would be small if all users use modern clients 17:45 < ws-client> Okay speaking of breaking compat... 17:45 < ws-client> some of you say we should break compat to make everything better 17:46 < ws-client> looking at you ddnet 2 people @Jupstar ✪ and @ryozuki 17:46 < ws-client> protocol bad here and breaking protocol would solve world hunger there 17:46 < bridge> Related: #5165 17:46 < bridge> https://github.com/ddnet/ddnet/issues/5165 17:46 < ws-client> if you could break protocol today what would you break? 17:47 < bridge> how about breaking backcompat instead of introducing ugly hacks? 17:47 < bridge> 17:47 < bridge> if the new format is a clean superset 17:47 < ws-client> i was thinking of using ddnet as game engine instead of learning godot or some other bloat if i ever find my self building a game. 17:47 < ws-client> if you would use ddnet as a game engine for a new game from scratch what would you change? 17:47 < bridge> everything 17:47 < ws-client> ah nice @robyt3 17:47 < ws-client> ok trol i see u actually did that xd @Jupstar ✪ 17:47 < ws-client> but why 17:48 < ws-client> whats wrong with the current approached 17:48 < bridge> very simply: 17:48 < bridge> you can build complexity on simplicity 17:48 < bridge> 17:48 < bridge> but you can't build complexity over complexity 17:48 < bridge> and ddnet is too complex 17:48 < ws-client> Is it? 17:48 < bridge> i blame myself too ofc, but it's impossible to make nice mods for it 17:49 < bridge> i'd say yes 17:49 < ws-client> which parts? 17:49 < bridge> working with the network 17:49 < bridge> 17:49 < bridge> working with the classes, the way physics are inserted directly into the character 17:49 < bridge> 17:49 < bridge> tune zones are everywhere 17:49 < ws-client> whats the issue with the network? 17:49 < bridge> teams are array accesses in the core component 17:50 < bridge> lmao, r u trolling rn or serious? 17:50 < ws-client> i am serious 17:50 < ws-client> idk whats bad about it 17:50 < ws-client> thats why i am asking 17:50 < bridge> do you find snapping entityExExExEx intuitive? 17:50 < ws-client> it all seems so obvious to all of you 17:50 < ws-client> i guess i dont know it any better 17:50 < bridge> do you find it intuitive to have many branches that handle special cases so older clients also work? 17:51 < ws-client> but especially the network part i would like to use instead of rewriting something my self 17:51 < bridge> well the network has multiple issues 17:51 < bridge> like the rcon commands one 17:51 < bridge> or generally sending many / huge packets 17:51 < ws-client> that they are being sent slowly? 17:52 < bridge> no 17:52 < bridge> that is logic 17:52 < bridge> but the question is, do you want to handle the logic like that? 17:52 < bridge> if you want to limit traffic, why not in the network logic directly 17:52 < bridge> instead of in higher components 17:52 < ws-client> because you only want to limit certian aspects? 17:52 < ws-client> indepedently 17:53 < bridge> wat? 17:53 < ws-client> gameplay should not be limited 17:53 < bridge> sry my brain tells me since 30min: FOOD 17:53 < bridge> you can give packets different priorities 17:53 < ws-client> and still limit in the network logic 17:53 < ws-client> ye i guess 17:54 < ws-client> i am still not conviced that ddnet is so bad that it would have to be rewritten to be useful :D 17:54 < bridge> anyway chiller. I simply imagine the whole game differently. If I'm alone with that I am fine with that. Maybe in a few months i make create a video for you where i describe what changes i actually want to make, and try to reason them from my perspective 17:54 < bridge> and if u like it or not, u can say then 17:54 < bridge> but realistically before mid of the year this won't happen 17:55 < ws-client> jopsti video o.o? 17:55 < bridge> if 1 dev works on smth for 1 year 17:55 < bridge> 17:55 < bridge> 10 devs work on it for like 1-2 month 17:55 < bridge> 17:55 < bridge> (assuming all are well skilled and share the same goal) 17:55 < bridge> i am simply slow xd 17:55 < ws-client> Yea i was also mostly asking in the sense of using ddnet code to build new games 17:56 < ws-client> like ninslash or stuff 17:56 < bridge> well they can break compat 17:56 < ws-client> yes thats why i ask 17:56 < bridge> that is already huge plus 17:56 < ws-client> what would you break 17:56 < bridge> well the base physics and gameplay defs works out to a certain extend 17:57 < ws-client> its a new game 17:57 < ws-client> so thats a given 17:57 < bridge> so if that's your direct question, i guess i'd say: it's good enough to create small 2d games 17:57 < ws-client> ah poggies 17:57 < ws-client> ye thats what i thought 17:58 < ws-client> i can also do fakin bird eye view gta san andreas and use the tw config system/render/snaps etc 17:58 < ws-client> all just fine 17:58 < bridge> lmao 17:58 < bridge> i mean u can also turn it into a 3d game 17:58 < bridge> nothing is impossible 17:58 < bridge> matter of time 17:58 < ws-client> ok but then i would have to add like 3d logic bloat 17:58 < bridge> kek 17:58 < ws-client> might go with some 3d engine then 17:59 < bridge> yeah 17:59 < ws-client> okay nice 17:59 < ws-client> ill build leage of legends clone now 17:59 < ws-client> see you in a week 17:59 < ws-client> league of legends* i guess 17:59 < ws-client> never played it 18:04 < ws-client> @heinrich5991 zip hm? 18:04 < ws-client> is that still cool in 2024? 18:04 < ws-client> and whats inside of the zip? 18:05 < ws-client> Also what about replacing huffman with brotli or something else? https://brotli.org/ 18:30 < bridge> sounds interseting 18:31 < bridge> and it has a rust version: 18:31 < bridge> https://github.com/dropbox/rust-brotli 18:31 < bridge> 😬 18:45 < bridge> I think the hardest (wooden) part here is animation. I tried to do a map with tiles animations but it fits only frame-based animation (e.g. 4 FPS), which looks OK mostly with pixel-art graphics, which mismatches the tee appearance and the game UI. 18:45 < bridge> 18:45 < bridge> So: I'd say the engine can be good enough for small 2D games until you want to animate the stuff. 18:45 < bridge> What's your opinion on that topic? 18:49 < bridge> @chillerdragon, I looked in my logs, the "flooding" in the morning (chat: 8:-2:(7)Yek-H: ‎free bitcoin -> discord.gg/deeznuts 18:49 < bridge> 2024-01-29 08:49:20 I chat: 9:-2:(8)Yek-H: ⁠free bitcoin -> discord.gg/deeznuts) 18:49 < bridge> oops 18:49 < bridge> @chillerdragon, I looked in my logs, the "flooding" in the morning (chat: 8:-2:(7)Yek-H: ‎free bitcoin -> discord.gg/... 18:49 < bridge> 2024-01-29 08:49:20 I chat: 9:-2:(8)Yek-H: ⁠free bitcoin -> discord.gg)/... 18:49 < bridge> @chillerdragon, I looked in my logs, the "flooding" in the morning (chat: 8:-2:(7)Yek-H: ‎free bitcoin -> discord.gg/... 18:49 < bridge> 2024-01-29 08:49:20 I chat: 9:-2:(8)Yek-H: ⁠free bitcoin -> discord.gg/...) 18:54 < bridge> what exactly do you mean? 18:54 < bridge> 18:54 < bridge> like a video playback? 18:55 < bridge> physics could be simded though 18:57 < bridge> to which extend? 18:57 < bridge> it depends if you want to stay true to teeworlds physics i guess 18:58 < bridge> yeah 18:59 < bridge> i rember my attempt to add 128 players on 0.7 without touching any part of codebase but characters 18:59 < bridge> okey i lost my own thought 18:59 < bridge> :justatest: 19:00 < bridge> you said u want 700 player support 19:00 < bridge> np 19:00 < bridge> 😏 19:00 < bridge> xd 19:00 < bridge> mmotee less goo 19:01 < bridge> my potato pc couldnt process 128^2 for-loops xd 19:01 < bridge> in 1 tick 19:02 < bridge> @gerdoe have u seen the water simulation? 19:04 < bridge> tee-powered matlab fluid model? xd 19:04 < bridge> it's more realistic than real life 19:39 < bridge> :troll: 19:40 < bridge> What about "infinity" count of server bots? 19:40 < bridge> With AI in lua 19:41 < bridge> WASM is state of art 19:42 < bridge> Huhuh 19:42 < bridge> ez 20:23 < bridge> @jupeyy_keks @patiga making this overlay was harder without modifying internal ddnet code was very annoying. but it works now 20:23 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1201608457405616268/2024-01-29_20-19-58.mp4?ex=65ca7015&is=65b7fb15&hm=d93d9f0ab7fa4e61720a38b7975863293517d6497ca3a6b466c1dfa89a269c25& 20:23 < bridge> @jupeyy_keks @patiga making this overlay without modifying internal ddnet code was very annoying. but it works now 20:23 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1201608457405616268/2024-01-29_20-19-58.mp4?ex=65ca7015&is=65b7fb15&hm=d93d9f0ab7fa4e61720a38b7975863293517d6497ca3a6b466c1dfa89a269c25& 20:30 < bridge> ChillerDragon: I'd have guessed zstd was better, but if not, sure, why not brotli 20:58 < bridge> is it a new component or where did u inject your code 20:59 < bridge> @robyt3 what would you think about moving the community assignment from info.json to the masterserver list? 20:59 < bridge> i.e. each server will get an extra field for the community 21:00 < bridge> in the servers.json 21:00 < bridge> instead of a list of IP addresses somewhere else 21:04 < bridge> new component 21:05 < bridge> i c^^ 21:05 < bridge> 21:05 < bridge> i decided against general interfaced components for mine 21:06 < bridge> why? i have my own component list with an own interface. works great. i dont want to have trouble with merge conflicts 21:06 < bridge> why? i have my own component system with an own interface. works great. i dont want to have trouble with merge conflicts 21:06 < bridge> ah that's ok. 21:06 < bridge> 21:06 < bridge> What i wanted to say is, that i generally don't like to have a component system 21:07 < bridge> to me it seems like it bloats the idea of the client. 21:07 < bridge> 21:07 < bridge> E.g. it mixes UI with ingame components 21:07 < bridge> you sound like a C programmer xD 21:07 < bridge> so your interface is a superset of both 21:07 < bridge> why C? 😄 21:08 < bridge> well ok 21:08 < bridge> i indeed try to minimize interfaces/traits indeed 21:08 < bridge> Would be fine for me, but how much work is it server-side? Each server needs to specify an additional json object like this: 21:08 < bridge> ``` 21:08 < bridge> "community": { 21:08 < bridge> "id": "ddnet", 21:08 < bridge> "type": "Tutorial", 21:08 < bridge> "country": "GER" 21:08 < bridge> } 21:08 < bridge> ``` 21:08 < bridge> since smth like virtual doesnt exist in c, i guess u mean that? 21:11 < bridge> ``` 21:11 < bridge> { 21:11 < bridge> ..., 21:11 < bridge> "version": "0.6/0.7 2.3.26-beta", 21:11 < bridge> "community": { 21:11 < bridge> "id": "urn:community:kog", 21:11 < bridge> "icon": "", 21:11 < bridge> "admin": [ 21:11 < bridge> "https://kog.tw/", 21:11 < bridge> "urn:discord:avolicious" 21:11 < bridge> ], 21:11 < bridge> "public_key": "", 21:11 < bridge> "signature": "" 21:11 < bridge> }, 21:11 < bridge> "client_score_kind": "time", 21:11 < bridge> "clients": [] 21:11 < bridge> } 21:11 < bridge> } 21:11 < bridge> ``` 21:11 < bridge> This is what we currently announce to master 21:13 < bridge> interesting question. do you mean on the gameserver or on the masterserver side? 21:13 < bridge> I'd basically let the masterserver know of a couple of token → community mappings 21:14 < bridge> then the gameserver needs to send the token with the registering and automatically gets the community applied 21:14 < bridge> I guess it also needs the type and the country though, I guess those could go into the info 21:14 < bridge> plus we need backcompat for the vanilla/etc. servers we run 21:15 < bridge> I assume the server config would have to specify which community-country/type it sends to the master server with two variables 21:15 < bridge> ``` 21:15 < bridge> { 21:15 < bridge> ..., 21:15 < bridge> "version": "0.6/0.7 2.3.26-beta", 21:15 < bridge> "community": { 21:15 < bridge> "id": "urn:community:kog", # Community id, but can be spoofed so only works in conjunction with signature 21:15 < bridge> "icon": "", # the server icon 21:15 < bridge> "admin": [ 21:15 < bridge> "https://kog.tw/", 21:15 < bridge> "urn:discord:avolicious" 21:15 < bridge> ], # rfc3986 items 21:15 < bridge> "public_key": "", # community public key 21:15 < bridge> "signature": "" # signed ::, can be used in the client to show the icon 21:15 < bridge> }, 21:15 < bridge> "client_score_kind": "time", 21:15 < bridge> "clients": [] 21:15 < bridge> } 21:15 < bridge> } 21:15 < bridge> ``` 21:15 < bridge> smells like mvc 21:15 < bridge> (model view controller) 21:15 < bridge> Why does a community needs a country? 21:16 < bridge> The community doesn't, but each server is associated with one 21:16 < bridge> But why should it be reported in the community field? 21:16 < bridge> here 21:17 < bridge> I wanted to separate it from the other gametype 21:17 < bridge> Community-type can be different from the real gametype 21:17 < bridge> But I guess you are right 21:17 < bridge> The country could just be about the whole server 21:18 < bridge> yeah dunno what all these fancy words mean. 21:18 < bridge> 21:18 < bridge> i simply try to stay modular as possible and try to keep stuff together that logically makes sense to be kept together 😄 21:18 < bridge> 21:18 < bridge> and UI and rendering components are too different to me 21:18 < bridge> Also, we seem to encode country names and their flag IDs separately in the info json, I don't know if there is a reason for it, I assume we could derive flag ID from the country code in the client 21:18 < bridge> Also, we seem to encode country codes and their flag IDs separately in the info json, I don't know if there is a reason for it, I assume we could derive flag ID from the country code in the client 21:19 < bridge> afaik mvc is a pattern that highly used in big enough web projects to separate business logic and view 21:19 < bridge> do you use minix btw xd 21:20 < bridge> https://en.wikipedia.org/wiki/Minix 21:20 < bridge> ? 21:23 < bridge> yeah 21:26 < bridge> i dont like micro kernels, but also no monolithic 21:26 < bridge> but monolithic are usually faster 21:41 < bridge> @heinrich5991 is it possible to have websocket with udp outside http? 21:42 < bridge> there's only webtransports over http/3 and quic that give you access to UDP from a web server 21:42 < bridge> there's only webtransports over http/3 and quic that give you access to UDP from a web browser 21:42 < bridge> (there's also webrtc stuff) 21:42 < bridge> (there's also webrtc stuff, but it's a lot more complicated) 21:43 < bridge> i see ty 21:44 < bridge> quite random but 21:44 < bridge> do you agree one of the most complicated things in software is to keep things simple? code wise 21:47 < bridge> yes 21:47 < bridge> while keeping the necessary functionality, obviously. a stone has 0 loc 21:50 < bridge> same with licenses 😏 21:51 < bridge> step 1: free yourself from everything 21:51 < bridge> step 2: u dead bcs u free'd yourself from everything 21:53 < bridge> sadly we live in a world of copyright 21:55 < bridge> you can design the world 21:55 < bridge> shape the world 22:23 < bridge> ryo is gonna pull up ms paint. 22:31 < bridge> yeah you just said you like to stay modular as possible xd 22:31 < bridge> thats why i asked 22:32 < bridge> yeah but micro vs monolithic IMO is not directly about modularity. 22:32 < bridge> 22:32 < bridge> it simply moves stuff out of the kernel 22:32 < bridge> it's maybe more about security 22:32 < bridge> i could be wrong, but that's how i imagine it 22:33 < bridge> micro kernels especially don't solve the ring "problem". 22:33 < bridge> 22:34 < bridge> which still makes the kernel be a kernel 22:34 < bridge> sometimes i wish i'd have infinite time to test stuff out xd 22:35 < bridge> but yeah compile time wise it's probably some kind of more modular xdd 22:35 < bridge> 22:35 < bridge> bcs the kernel is smaller 22:36 < bridge> @gerdoe what r u even studying/working currently? 22:36 < bridge> you seem interested in so many things 22:47 < bridge> im a student in kai since 2023 xd 22:48 < bridge> im not as interested in thing as ewan though 22:48 < bridge> things* 22:48 < bridge> what is kai? 22:48 < bridge> 22:48 < bridge> i only know dragonball kai 22:49 < bridge> a place in japan? xdd 22:49 < bridge> Kazan National Research Technical University 22:49 < bridge> named after A. N. Tupolev - KAI 22:50 < bridge> i guess u mean that 22:51 < bridge> yup 22:51 < bridge> hot 22:51 < bridge> yeah 22:52 < bridge> 1st course is kinda boring tho 22:52 < bridge> just casually executed same command 10 times and it worked on 11th :gigachad: 22:52 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1201646104161300522/image.png?ex=65ca9324&is=65b81e24&hm=1760a31610b8e5c4ad7ae9286786fd92591a714b397acb959ec0a9d69336b9b6& 22:53 < bridge> docker moment