00:06 < bridge_> [ddnet] bors r+ 04:50 < bridge_> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/836796593033707540/unknown.png 04:50 < bridge_> [ddnet] :nouis: 09:05 < bridge_> [ddnet] what kinda value is the color "vaulue" of player_color_body? 09:05 < bridge_> [ddnet] can i convert that value into hex or decimal? 09:09 < bridge_> [ddnet] what kinda value is the color "value" of player_color_body? 09:26 < bridge_> [ddnet] yes, F1, `player_color_body` gives you the hex value 09:27 < bridge_> [ddnet] it's HSL put into a single integer I think 09:28 < bridge_> [ddnet] its not 09:29 < bridge_> [ddnet] i tried so many different color codes and none of it gave me the right color 09:29 < bridge_> [ddnet] i tried hex, decimal, rgb and hsl into an integer 09:30 < bridge_> [ddnet] i kinda think that the value is an own value 09:30 < bridge_> [ddnet] its brightness is just clamped 09:31 < bridge_> [ddnet] so there is no answer what the color "value" means in teeworlds? 09:32 < bridge_> [ddnet] also for hue you need to convert a 360 degree to a 0-255 range. 09:32 < bridge_> [ddnet] yo somebody help me? how to add member to 'CConfig'? 09:32 < bridge_> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/836867431410040853/unknown.png 09:32 < bridge_> [ddnet] i did that 09:32 < bridge_> [ddnet] value is brightness 09:32 < bridge_> [ddnet] but in teeworlds it is clamped 09:33 < bridge_> [ddnet] so how can i convert hex/decimal into that weird teeworlds value? 09:33 < bridge_> [ddnet] what do you want 09:33 < bridge_> [ddnet] give me an HSV maybe 09:33 < bridge_> [ddnet] to set my body color with the command in the console 09:33 < bridge_> [ddnet] but idk what number the value represents 09:34 < bridge_> [ddnet] 🤔 09:34 < bridge_> [ddnet] then why not just set it in the settings page 09:34 < bridge_> [ddnet] then print the number 09:34 < bridge_> [ddnet] and use that 09:34 < bridge_> [ddnet] i also tried that but the color was not the color i set it to 09:35 < bridge_> [ddnet] and yes i converted the procentage to 0-255 09:35 < bridge_> [ddnet] did you use this? 09:35 < bridge_> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/836868234786766848/unknown.png 09:36 < bridge_> [ddnet] im trying to figure out what that value means the whole time 09:36 < bridge_> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/836868487007043594/unknown.png 09:36 < bridge_> [ddnet] its not decimal 09:37 < bridge_> [ddnet] it is 09:37 < bridge_> [ddnet] then why doesnt it set it to the right color? 09:37 < bridge_> [ddnet] 0x84 = 132, 132 / 255 * 360 = 186 degree 09:38 < bridge_> [ddnet] this is what i get when i use the decimal 14364987 09:38 < bridge_> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/836868880105734164/unknown.png 09:38 < bridge_> [ddnet] it should be red 09:38 < bridge_> [ddnet] it is decimal in the sense of a 32bit integer. you need to convert it into hex then read 8bits at a time 09:40 < bridge_> [ddnet] @Learath2 reply from Hetzner: 09:40 < bridge_> [ddnet] > Dear client, 09:40 < bridge_> [ddnet] > 09:40 < bridge_> [ddnet] > I'm afraid, we do not offer larger Prefixes in our Cloud than /64. 09:40 < bridge_> [ddnet] > 09:40 < bridge_> [ddnet] > If you require any further help, please do not hesitate to contact us. 09:40 < bridge_> [ddnet] and how do i do that? 09:41 < bridge_> [ddnet] like that 09:41 < bridge_> [ddnet] read the hex 09:42 < bridge_> [ddnet] 84 is hue, FF is sat, 00 is brightness 09:42 < bridge_> [ddnet] if you want it in reverse then just starts from hex 09:43 < bridge_> [ddnet] say if you want a 250 degree which should be purple. 09:44 < bridge_> [ddnet] do `250 / 360 * 255` = 177 teeworlds hue value. convert that to hex `B1` then, assuming you want lowest brightness and highest sat, then the hex value should be `B1FF00`, convert that to decimal `11665152` which is the value you want. 09:45 < bridge_> [ddnet] if you starts from teeworlds hue value (shown in the settings), just don't do the `/360` part. 09:45 < bridge_> [ddnet] and, as always, you can always just copy the Value in `player_color_body` 09:46 < bridge_> [ddnet] why can't it just be in normal decimal or hex like every other thing in programs 09:47 < bridge_> [ddnet] it is pretty normal for me. other than the min max value is off 09:47 < bridge_> [ddnet] im assuming i cant just pick a color that i like and convert it into teeworlds language 09:48 < bridge_> [ddnet] in teeworlds or in other programs? 09:49 < bridge_> [ddnet] you can just pick a color in teeworlds and use that 09:49 < bridge_> [ddnet] if you pick color from outside world, the only limitation is brightness which must be above 50% iirc. 09:50 < bridge_> [ddnet] so in teeworlds the color brightness is 50-100%? 09:50 < bridge_> [ddnet] yes 09:50 < bridge_> [ddnet] 0 is 50% and 255 is 100% 09:50 < bridge_> [ddnet] oh i didnt knew that 09:51 < bridge_> [ddnet] for hue 0 is 0degree and 255 is 360 degree 10:49 < bridge_> [ddnet] You have a cloud server, hm I wonder if it's different for my dedicated 11:00 < bridge_> [ddnet] https://streamable.com/ty6wnm 11:00 < bridge_> [ddnet] finally got console working for teams :justatest: 11:01 < bridge_> [ddnet] @TsFreddie you are going so fast 🙂 11:01 < bridge_> [ddnet] 🥳 11:03 < bridge_> [ddnet] probably need to put the commands behind votes. but now i need to make votes for teams. 11:05 < bridge_> [ddnet] Q: Why are you making this? 😛 11:05 < bridge_> [ddnet] 🤔 i actually don't know 11:05 < bridge_> [ddnet] was making a 1v1 server for our fng players. but got side tracked 11:06 < bridge_> [ddnet] I mean it's a very cute idea, but I think it's only interesting to us developer folk seeing that it is actually possible to create new gameworlds and gamecontrollers 😄 11:07 < bridge_> [ddnet] (I wasn't really sure these were (atleast trivially) possible because of all the spaghetti we have lying around) 11:07 < bridge_> [ddnet] i squashed them and made lasagna instead. 11:09 < bridge_> [ddnet] but the end goal is probably just to eliminate pvp players fighting for empty servers. 11:11 < bridge_> [ddnet] and i probably need a mega map that has all standard and fng maps in it which makes me question myself why am I doing this too. 11:14 < bridge_> [ddnet] Hm, you also want to load multiple maps into memory> 11:14 < bridge_> [ddnet] ? 11:14 < bridge_> [ddnet] :justatest: maybe 11:14 < bridge_> [ddnet] Or are you going to shove all of it into one huge map and teleport people? 11:14 < bridge_> [ddnet] teleport should be fine tbh 11:14 < bridge_> [ddnet] showothers would work more nicely 11:14 < bridge_> [ddnet] multiple maps I tried before, it's actually very unpleasant 😄 11:15 < bridge_> [ddnet] if i want multiple maps, i should've just get rid of teams and make a proxy server that connect multiple servers or something 11:21 < bridge_> [ddnet] yes 🙂 11:23 < bridge_> [ddnet] in the end i might just host one map per server. 11:23 < bridge_> [ddnet] mega map is much cooler tho 11:24 < bridge_> [ddnet] do mega map 11:24 < bridge_> [ddnet] does separate gameworlds and gamecontroller allow for easier multithreading? 11:24 < bridge_> [ddnet] 🤔 11:24 < bridge_> [ddnet] Good question, I'd think so 11:25 < bridge_> [ddnet] but only god knows how threadsafe the code is since no one thought about this usecase 11:25 < bridge_> [ddnet] oops, didn't make any thread consideration while coding this. 11:25 < bridge_> [ddnet] if only tw was made in rust :monkalaugh: 11:25 < bridge_> [ddnet] I'm sure it does things like accessing the gamecontext all willy nilly 😄 11:25 < bridge_> [ddnet] "fearless concurrency" :BASED: 11:26 < bridge_> [ddnet] well not really fearless until all variables are atomic 😄 11:26 < bridge_> [ddnet] i dont think its worth anyway 11:26 < bridge_> [ddnet] unless we go further than 64p 11:26 < bridge_> [ddnet] the bottleneck is the network anywasy 11:26 < bridge_> [ddnet] Oh god, I debugged something awful last week 11:27 < bridge_> [ddnet] also our vps only have 2 cores? 11:27 < bridge_> [ddnet] idk 11:27 < bridge_> [ddnet] I had 2 threads accessing a float that I thought was atomic, they kept producing some values that were so far out that I thought it was garbage data 11:27 < bridge_> [ddnet] 👀 if i don't need showothers, i can change to more than 64p pretty easily with my current setup. 11:27 < bridge_> [ddnet] Apparently they were both writing at the same time... 11:27 < bridge_> [ddnet] (i think) 11:27 < bridge_> [ddnet] :BASED: c++ 11:27 < bridge_> [ddnet] or c 11:28 < bridge_> [ddnet] man its so long since u dont touch c++ code 11:28 < bridge_> [ddnet] @TsFreddie sure, you can also just not send tees outside of your team 11:28 < bridge_> [ddnet] @Learath2 do u find ugly the coat and cin stuff too? 11:28 < bridge_> [ddnet] i find it rly ugly idk why 11:28 < bridge_> [ddnet] for printing 11:28 < bridge_> [ddnet] c++ is an abomination :BASED: 11:30 < bridge_> [ddnet] Also I get to remove tons of team related stuff in entities which cleaned up the code pretty significantly i would say. 11:30 < bridge_> [ddnet] Magic 11:30 < bridge_> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/836897142580707358/unknown.png 11:31 < bridge_> [ddnet] @Learath2 11:31 < bridge_> [ddnet] ```c++ 11:31 < bridge_> [ddnet] inline string 11:31 < bridge_> [ddnet] secret_function(int __val) 11:31 < bridge_> [ddnet] { 11:31 < bridge_> [ddnet] const bool __neg = __val < 0; 11:31 < bridge_> [ddnet] const unsigned __uval = __neg ? (unsigned)~__val + 1u : __val; 11:31 < bridge_> [ddnet] const auto __len = __detail::__to_chars_len(__uval); 11:31 < bridge_> [ddnet] string __str(__neg + __len, '-'); 11:31 < bridge_> [ddnet] __detail::__to_chars_10_impl(&__str[__neg], __len, __uval); 11:31 < bridge_> [ddnet] return __str; 11:31 < bridge_> [ddnet] } 11:31 < bridge_> [ddnet] ``` 11:31 < bridge_> [ddnet] peak c++ beutifulness 11:31 < bridge_> [ddnet] I mean remove all the cancer inducing __ and you get something that's much less awful 😛 11:31 < bridge_> [ddnet] wonder who wrote it? 11:31 < bridge_> [ddnet] its in the std 11:31 < bridge_> [ddnet] ah 11:31 < bridge_> [ddnet] I still don't get why they use so many __ 11:32 < bridge_> [ddnet] We have namespaces in C++, this ain't C 11:32 < bridge_> [ddnet] ~~for fun~~ 11:33 < bridge_> [ddnet] @Learath2 they use __ cuz 11:33 < bridge_> [ddnet] ``` 11:33 < bridge_> [ddnet] the reason variables are beginning with __ is macros. If user defines isNegative macro, it will get overwritten in the std, however user is forbidden to define macros starting with __ , as the wise people of reddit comment section suggested. 11:33 < bridge_> [ddnet] ``` 11:33 < bridge_> [ddnet] https://www.reddit.com/r/cpp/comments/h0flxv/why_is_std_implementation_so_damn_ugly/ 11:33 < bridge_> [ddnet] Ah macros, true 11:34 < bridge_> [ddnet] rust macros must be called with a ! at the end 11:34 < bridge_> [ddnet] i guess this is how they avoid this 11:36 < bridge_> [ddnet] The segment of code you sent reminded me of a talk 11:36 < bridge_> [ddnet] https://www.youtube.com/watch?v=4P_kbF0EbZM 11:36 < bridge_> [ddnet] Not really related very closely, just reminded me of it 😛 11:37 < bridge_> [ddnet] it's the `__to_chars_len` that made me think of it. Maybe it indeed is part of `` 11:38 < bridge_> [ddnet] Just realized I haven't gone out for so long I don't remember where is my key. 11:38 < bridge_> [ddnet] https://www.anandtech.com/show/16645/amd-reports-q1-2021-earnings-firing-on-all-cylinders 11:38 < bridge_> [ddnet] proof the actual issue with gpu shortage is that ppl buy way more than expected, due to covid 11:38 < bridge_> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/836899213123125268/unknown.png 11:38 < bridge_> [ddnet] @Ryozuki well it's a demand issue which caused a supply issue which is not really easy to solve at all 11:38 < bridge_> [ddnet] from $162M to $1781M* 11:38 < bridge_> [ddnet] in earnings 11:39 < bridge_> [ddnet] yeah 11:39 < bridge_> [ddnet] but most ppl thought it was a shortage due to covid restricting commerce and stuff 11:39 < bridge_> [ddnet] From what I gather there are like 2 companies that produce chips this thin and they are TSMC and Samsung 11:39 < bridge_> [ddnet] but its actually ppl buying too much 11:40 < bridge_> [ddnet] I also have to wonder if it has sth to do with people using bots to buy all the stock 11:40 < bridge_> [ddnet] there is also a crypto boom 11:40 < bridge_> [ddnet] when it crashes we will be able to buy gpus at rly low price 11:40 < bridge_> [ddnet] :PepeA: 11:40 < bridge_> [ddnet] It used to be that there would be more physical stock at physical retailers where people couldn't just ask for 50 cards, so normal consumers got their cards and the demand levelled out when scalpers had no one to sell to 11:41 < bridge_> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/836899864721489920/unknown.png 11:41 < bridge_> [ddnet] this gpu 11:41 < bridge_> [ddnet] doesnt cost 1750 11:41 < bridge_> [ddnet] its msrp is like 600 iirc 11:41 < bridge_> [ddnet] market is crazy 11:41 < bridge_> [ddnet] I have a gtx1080 lying around doing nothing 11:42 < bridge_> [ddnet] yeah, but a sell is a sell the company profits whoever buys it 11:42 < bridge_> [ddnet] This ps5 doesn't cost 800e 😛 11:42 < bridge_> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/836900141570195496/Screenshot_2021-04-28_at_11.42.00.png 11:42 < bridge_> [ddnet] :monkalaugh: 11:42 < bridge_> [ddnet] Which is why companies actually have no reason to ever fix this 🙂 11:43 < bridge_> [ddnet] they have a reason to upper they supply 11:43 < bridge_> [ddnet] because they will be able to sell more 11:43 < bridge_> [ddnet] They will make more to sell more, but they don't care that people have to pay 2 times the msrp 11:43 < bridge_> [ddnet] they already planning an expansion but it takes lot of time 11:43 < bridge_> [ddnet] Found my key. I'm out. Brb 11:43 < bridge_> [ddnet] the company doesnt sell at 2 times msrp, the company sells at msrp 11:43 < bridge_> [ddnet] its the scalpers 11:43 < bridge_> [ddnet] so they dont profit 2x times 11:44 < bridge_> [ddnet] they just sell all their stock 11:44 < bridge_> [ddnet] https://www.youtube.com/watch?v=J1z4XqEkSEU 11:44 < bridge_> [ddnet] :monkalaugh: 11:45 < bridge_> [ddnet] TSMC is building a new 2.5b$ plant in arizona, Samsung is building a 10b$ plant in texas. Both scheduled to finish around 2024 😄 11:45 < bridge_> [ddnet] i have this gpu, i bought it at 250€ more or less 11:45 < bridge_> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/836900992360120381/unknown.png 11:45 < bridge_> [ddnet] i would sell my gpu if my cpu had an integrated gpu 11:46 < bridge_> [ddnet] I know, I literally meant what I said, they don't care that YOU pay 2x msrp. The only reason they want to make more is to sell more 11:46 < bridge_> [ddnet] (It might be profitable to keep it juuuust at the edge of demand btw, if you don't satisfy all the demand more scalpers will buy and you can get a nice sweet wad of extra cash from all the scalpers holding the bag at the very end) 12:07 < bridge_> [ddnet] I'm back 13:20 < bridge_> [ddnet] Do we still need Novice Perm since I notice that most Perm servers are empty while there are many normal novice servers? Those selected maps in perm servers are not enough, shall we put normal map pools in perms? Those perm servers are wasted. Also, I am stuck in finding empty servers with low ping as they are full of novices (usually 6 out of 8 are novice, but only 1~3players in each). It would be very nice to restrict numbers of novice s 13:21 < bridge_> [ddnet] Wouldn't it make more sense to have perma novice servers in the future? When most players move to harder maps, we still want to keep some novice servers around for the newcomers 13:22 < bridge_> [ddnet] for chn servers I can reduce them to half 13:22 < bridge_> [ddnet] for other locations we have no problem to just run more normal servers when none are empty 13:23 < bridge_> [ddnet] I see. That makes sense, but no longer pertain for now. You can pick randomly in a day and find out perm servers no longer have players 13:23 < bridge_> [ddnet] I suggest we can make novice type as perm type which can not vote to others and others can not vote to novice 13:24 < bridge_> [ddnet] Selected maps seem not enough for them. They are playing in normal novice 13:25 < bridge_> [ddnet] but the normal novice maps are too hard for real newcomers 13:25 < bridge_> [ddnet] that's why we have the special selection of perma novice 13:26 < bridge_> [ddnet] Just right this moment, type "Novice" in searching bar, only normal novice servers have players because even newbies choose servers where there are many players. 13:27 < bridge_> [ddnet] I think this is reasonable. They should be playing toghther to have fun as newcomers can not play on theirselves 13:29 < bridge_> [ddnet] ok, I'll reduce perma novice by half globally 13:29 < bridge_> [ddnet] I have been observing for days to have this suggestion. I just can not find players in perm servers with those limited maps. Newcomers grow quickly as we expect 13:30 < bridge_> [ddnet] but the empty perma novice servers don't hurt, except on CHN 13:30 < bridge_> [ddnet] and if we get another bunch of new players, the perma novice servers are usefl 13:30 < bridge_> [ddnet] I see 🙂 13:31 < bridge_> [ddnet] I agree with both of you, perma is underplayed for sure. Cutting them in half would be a good idea. 13:33 < bridge_> [ddnet] Maybe we should explain better how to vote / what the best maps to play for beginners are. If possible, I don't think having perma servers alone accomplishes that. 13:33 < bridge_> [ddnet] 13:33 < bridge_> [ddnet] Though, to be fair, I don't know how the new player experience is currently, so maybe that's already handled. 13:35 < bridge_> [ddnet] Maybe we should explain better how to vote / what the best maps to play for beginners are. If possible... I don't think having perma servers alone accomplishes that. 13:35 < bridge_> [ddnet] 13:35 < bridge_> [ddnet] Though, to be fair, I don't know how the new player experience is currently, so maybe that's already handled. 13:45 < bridge_> [ddnet] Selected maps should be list in order of stars instead of alphabetics. Also, most of the time, I wish it is globally listed in order of stars.. Is there any advantage of lexicographical order? 13:49 < bridge_> [ddnet] I use search function in vote to achieve that (type 2/5 would selected every 2 stars map which is good). Not a big deal but this can be great if hard coded with tabs. I guess not many people know this 14:14 < bridge_> [ddnet] It's the name of the servers, Perma doesn't really mean anything to anyone 😛 14:14 < bridge_> [ddnet] It's technically something like "Beginner" and it should probably be the initial filter on the client instead of "Novice" 20:35 < bridge_> [ddnet] deen is fearing some locations will be totally empty if we use a different filter on first startup 20:47 < bridge_> [ddnet] better solution is to do something like "Tutorial maps" but don't add that to the filter, just something new players will see 20:47 < bridge_> [ddnet] and they will probably be drawn towards it 20:56 < bridge_> [ddnet] people likes to go to servers with more players 20:57 < bridge_> [ddnet] maybe we stop approving novice maps that are not noob-friendly 🙃 20:57 < bridge_> [ddnet] or make yet another category 20:58 < bridge_> [ddnet] :justatest: 20:58 < bridge_> [ddnet] no one would play it though, so goes against what you're saying 20:58 < bridge_> [ddnet] only noobs would play it 20:59 < bridge_> [ddnet] ~~make category filters into tabs~~ 21:00 < bridge_> [ddnet] more like column 21:00 < bridge_> [ddnet] no 21:00 < bridge_> [ddnet] unless that's what you mean 21:00 < bridge_> [ddnet] ~~put perma in a standalone tab~~ 21:01 < bridge_> [ddnet] a difficulty column that has a custom sort for difficulty 21:01 < bridge_> [ddnet] any non-matched difficulty names are pushed to the bottom, alpha order 21:01 < bridge_> [ddnet] That's actually not a bad idea. 21:01 < bridge_> [ddnet] But we then need to deal with a three way sort 21:01 < bridge_> [ddnet] for servers that implement the difficulty value 21:01 < bridge_> [ddnet] meh, really simple 21:01 < bridge_> [ddnet] check full string match first 21:02 < bridge_> [ddnet] then sort alpha 21:02 < bridge_> [ddnet] The two key sort is already quite confusing for some pkayers 21:02 < bridge_> [ddnet] Visually 21:03 < bridge_> [ddnet] i think there shouldn't be a limit on it, and there should be support for selecting what to sort first 21:03 < bridge_> [ddnet] i understand that's more difficult though 21:04 < bridge_> [ddnet] my web tw browser does two key sort based on the order you clicked the tab. But that's a bit confusing too. 21:04 < bridge_> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/837041664689831996/Screenshot_20210429-030358.jpg 21:06 < bridge_> [ddnet] maybe numbers or labels 21:06 < bridge_> [ddnet] to remove all sort