01:48 <+bridge> [ddnet] https://daniel.haxx.se/blog/2021/03/09/half-of-curls-vulnerabilities-are-c-mistakes/ 01:51 <+Edible> how do you change assets? theres a weird map with really dark shit 01:51 <+Edible> cant see anything 01:53 <+bridge> [ddnet] you can try playing in entities 01:54 <+bridge> [ddnet] `cl_overlay_entities 100` 01:54 <+Edible> and theres 2 choices, comfort and default, but clicking on either does nothing 02:00 <+Edible> oh that's so nice, thanks heinrich5991 03:13 <+bridge> [ddnet] does ddnet have fra srv hosted at ovh? 04:45 <+bridge> [ddnet] This kind of statistic is sooo vulnerable to selection bias 08:11 <+bridge> [ddnet] When DDOS - `DDnet Operating System` 08:11 <+bridge> [ddnet] :feelsamazingman: 08:31 <+bridge> [ddnet] Dummy Drag Operating System 08:47 <+bridge> [ddnet] but the vulns are there no matter the statistic 08:47 <+bridge> [ddnet] :greenthing: 08:50 <+bridge> [ddnet] we also have our fair share of problems due to c++ mistakes 08:50 <+bridge> [ddnet] 08:50 <+bridge> [ddnet] :monkalaugh: 08:51 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/819115173305384980/unknown.png 10:19 <+bridge> [ddnet] oh and that blog is published by the author of curl himself 10:20 <+bridge> [ddnet] i remember another post from him, it was about a blackmail due to curl license appearing somewhere 10:20 <+bridge> [ddnet] https://daniel.haxx.se/blog/2021/02/19/i-will-slaughter-you/ 10:20 <+bridge> [ddnet] some ppl are insane 11:38 <+ChillerDragon> konsti ur nuts 141 hours multimap? :D 12:28 <+bridge> [ddnet] I know, I just need to keep an eye out while reading it :P 12:31 <+bridge> [ddnet] We use it in the goofiest way possible half modern half ancient a little bit of transition sprinkled in 12:31 <+bridge> [ddnet] 🥴 12:32 <+bridge> [ddnet] @Learath2 have u ever tried this https://dart.dev/ 12:32 <+bridge> [ddnet] does this uses the java vm? 12:32 <+bridge> [ddnet] is this an alternative to java and kotlin 12:32 <+bridge> [ddnet] i wonder 12:33 <+bridge> [ddnet] I think its googles flavour of react native 12:33 <+bridge> [ddnet] Tho I didnt look into it much 12:34 <+bridge> [ddnet] apparently it compiles to machine code or js 12:35 <+bridge> [ddnet] 2024 :monkalaugh: 12:35 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/819171529383346196/unknown.png 12:35 <+bridge> [ddnet] 12:35 <+bridge> [ddnet] spain by 2022 :monkalaugh: 12:35 <+bridge> [ddnet] Fully? Smells like it either doesnt support ios or it only compiles some parts to native code 12:36 <+bridge> [ddnet] > Dart is a client-optimized language for fast apps on any platform 12:36 <+bridge> [ddnet] **any** 12:36 <+bridge> [ddnet] :monkalaugh: 12:36 <+bridge> [ddnet] i love how they make the web so fancy 12:36 <+bridge> [ddnet] but the language is probs boring 12:36 <+bridge> [ddnet] the power of marketing 12:38 <+bridge> [ddnet] @Learath2 yes u can use it for ios 12:38 <+bridge> [ddnet] dart is used mostly for flutter 12:38 <+bridge> [ddnet] and flutter can be used on ios 12:38 <+bridge> [ddnet] https://flutter.dev/docs/get-started/flutter-for/ios-devs 12:38 <+bridge> [ddnet] Okay read a bit. It's very similar to react native but has much more compiled ahead of time 12:40 <+bridge> [ddnet] Oh apparently even without flutter you can target native. It looks so nice 12:50 <+bridge> [ddnet] React Native provides native look-and-feel, while Flutter uses empty canvas and renders everything at its own, so it looks the same everywhere 12:50 <+bridge> [ddnet] i think that native-and-feel is better, but who knows 12:51 <+bridge> [ddnet] i think that native look-and-feel is better, but who knows 13:00 <+bridge> [ddnet] Hm, I like the native look too. I'll take a look at dart too anyway. I already am fluent with react native anyway 17:38 <+bridge> [ddnet] who maintains the fng servers? @noby? 17:38 <+bridge> [ddnet] fng russia, etc. 17:40 <+bridge> [ddnet] it seems to generate a wrong server info field for the map CRC 17:40 <+bridge> [ddnet] I get stuff like `.0.*./)\'-*` or `//\'/0(0,00` when it should be an integer represented as an ASCII string 17:41 <+bridge> [ddnet] `b"226\x000.6.3\x00fng small\x00fng_snow\x00.0.*./)\'-*\x00438902\x0 0fng2+\x000\x000\x0032\x000\x0032\x00\x00"` 17:42 <+bridge> [ddnet] between the fng_snow (map name) and the 438902 (map size) 17:54 <+bridge> [ddnet] yes 17:56 <+ChillerDragon> seems like the discord answer things seem to get used more often nowerdays. having a hard time to follow :/ @heinrich5991 there is a bridge that supports them btw 17:57 <+ChillerDragon> but i assume ur not interested in chaning the bridge 18:28 <+bridge> [ddnet] lol why it's top6 now? 18:32 <+bridge> [ddnet] so broken feature omg 18:54 <+bridge> [ddnet] still Global and Ger in /rank !:_: 19:09 <+bridge> [ddnet] ChillerDragon: not really. what is the other bridge? 20:11 <+bridge> [ddnet] can I do an EMP with arduino? 20:11 <+bridge> [ddnet] I have no knowledge about arduino and microcontrollers 20:11 <+bridge> [ddnet] just wanted to know 20:16 <+bridge> [ddnet] 20:16 <+bridge> [ddnet] I am trying to make a tune zone cfg that ignores user input for movement (no jumps, no ground control, no air control). This was easy to figure out, and the left/right/jump are now locked out. However, I noticed that when moving around with only hook, if I hold down one of the locked out controls then the physics completely changes (like if I hold down left, it seems that there is no longer any ground friction nor air friction) 20:17 <+bridge> [ddnet] Has anyone else experienced this? Is it a known bug? Is there a tune cfg that will lock out controls but allow friction to not get messed up? 20:18 <+bridge> [ddnet] @Technoo no, you can't 20:19 <+bridge> [ddnet] @ChillerDragon what about using Discord in web browser? i use always and it works just fine 20:19 <+bridge> [ddnet] :( 20:19 <+bridge> [ddnet] the arduino self destroys? 20:20 <+bridge> [ddnet] it's used for something else 😄 20:20 <+bridge> [ddnet] lo 20:20 <+bridge> [ddnet] understood 20:21 <+bridge> [ddnet] anyways, you know how I can modift teeworlds/ddnet client to make my own? 20:21 <+bridge> [ddnet] just got into c++ and wanted to see if I can understand/change any code and make my own client 20:21 <+bridge> [ddnet] i'm a c# man 20:21 <+bridge> [ddnet] i'm a c# peasant 20:21 <+bridge> [ddnet] I was a c# peasant* 20:21 <+bridge> [ddnet] anyways, you know where I can modift teeworlds/ddnet client to make my own? 20:22 <+bridge> [ddnet] just got into c++ and wanted to see if I can understand/change any code and make my "own" client 20:22 <+bridge> [ddnet] try to compile the source code first 20:23 <+bridge> [ddnet] then you can start doing some changes in there 20:23 <+bridge> [ddnet] okay 20:23 <+bridge> [ddnet] is it the teeworlds or ddnet client? 20:23 <+bridge> [ddnet] which one 20:23 <+bridge> [ddnet] ddnet 20:23 <+bridge> [ddnet] ok 20:23 <+bridge> [ddnet] thanks 20:24 <+bridge> [ddnet] So I guess to simplify my question, does ground friction and air friction temporarily get set to zero when you try to move left or right? If so, that means the tune zones can be kinda broken if trying to remove player movement ability 20:41 <+bridge> [ddnet] Here is a simple tune cfg that shows my point: 20:41 <+bridge> [ddnet] ``` 20:41 <+bridge> [ddnet] tune_zone 2 ground_jump_impulse 0 20:41 <+bridge> [ddnet] tune_zone 2 air_jump_impulse 0 20:41 <+bridge> [ddnet] tune_zone 2 ground_friction 0.5 20:41 <+bridge> [ddnet] tune_zone 2 air_friction 0.95 20:41 <+bridge> [ddnet] tune_zone 2 ground_control_speed 0 20:41 <+bridge> [ddnet] tune_zone 2 ground_control_accel 20:41 <+bridge> [ddnet] tune_zone 2 air_control_speed 0 20:41 <+bridge> [ddnet] tune_zone 2 air_control_accel 0 20:41 <+bridge> [ddnet] ``` 20:44 <+bridge> [ddnet] When you get into that tune, you can't move and you can't jump. You can only move yourself by hooking things. That's good. But if you hold down a movement key (like left) while moving by hooking, then it seems to set air_friction and ground_friction to zero (which is actually 1 in this case) and your tee just floats around or glides on the ground without stopping until you release your movement key. This leads me to believe that friction is 20:44 <+bridge> [ddnet] ``` 20:44 <+bridge> [ddnet] tune_zone 2 ground_jump_impulse 0 20:44 <+bridge> [ddnet] tune_zone 2 air_jump_impulse 0 20:44 <+bridge> [ddnet] tune_zone 2 ground_friction 0.5 20:45 <+bridge> [ddnet] tune_zone 2 air_friction 0.95 20:45 <+bridge> [ddnet] tune_zone 2 ground_control_speed 0 20:45 <+bridge> [ddnet] tune_zone 2 ground_control_accel 0 20:45 <+bridge> [ddnet] tune_zone 2 air_control_speed 0 20:45 <+bridge> [ddnet] tune_zone 2 air_control_accel 0 20:45 <+bridge> [ddnet] ``` 20:45 <+bridge> [ddnet] yes, friction is only applied while not pressing a/d 20:55 <+bridge> [ddnet] Ah, yeah I just found it in the source code: 20:55 <+bridge> [ddnet] ``` 20:55 <+bridge> [ddnet] // add the speed modification according to players wanted direction 20:55 <+bridge> [ddnet] if(m_Direction < 0) 20:55 <+bridge> [ddnet] m_Vel.x = SaturatedAdd(-MaxSpeed, MaxSpeed, m_Vel.x, -Accel); 20:55 <+bridge> [ddnet] if(m_Direction > 0) 20:55 <+bridge> [ddnet] m_Vel.x = SaturatedAdd(-MaxSpeed, MaxSpeed, m_Vel.x, Accel); 20:55 <+bridge> [ddnet] if(m_Direction == 0) 20:55 <+bridge> [ddnet] m_Vel.x *= Friction; 20:56 <+bridge> [ddnet] ``` 20:56 <+bridge> [ddnet] I would call it a bug, some would call it a feature. Either way now I can't make the map I was planning to make lol 20:57 <+bridge> [ddnet] I suppose your velocity would continually degrade if you applied it while moving, which is not the wanted behavior, ik 20:57 <+bridge> [ddnet] oh true, didn't think about that 21:08 <+bridge> [ddnet] At first it sounded pretty easy to lock out the player's movement keys with a tune, but apparently it is impossible. One (myself) could easily add logic to check if MaxSpeed and Accel were both set to 0, then apply friction under that condition: 21:08 <+bridge> [ddnet] ``` 21:08 <+bridge> [ddnet] // add the speed modification according to players wanted direction 21:08 <+bridge> [ddnet] if(m_Direction < 0) 21:08 <+bridge> [ddnet] { 21:08 <+bridge> [ddnet] if(MaxSpeed == 0 && Accel == 0) //handle tune to stop movement effects 21:08 <+bridge> [ddnet] m_Vel.x *= Friction; 21:08 <+bridge> [ddnet] else 21:08 <+bridge> [ddnet] m_Vel.x = SaturatedAdd(-MaxSpeed, MaxSpeed, m_Vel.x, -Accel); 21:08 <+bridge> [ddnet] } 21:08 <+bridge> [ddnet] if(m_Direction > 0) 21:08 <+bridge> [ddnet] { 21:08 <+bridge> [ddnet] if(MaxSpeed == 0 && Accel == 0) //handle tune to stop movement effects 21:08 <+bridge> [ddnet] m_Vel.x *= Friction; 21:08 <+bridge> [ddnet] else 21:08 <+bridge> [ddnet] m_Vel.x = SaturatedAdd(-MaxSpeed, MaxSpeed, m_Vel.x, Accel); 21:08 <+bridge> [ddnet] } 21:08 <+bridge> [ddnet] if(m_Direction == 0) 21:08 <+bridge> [ddnet] m_Vel.x *= Friction; 21:09 <+bridge> [ddnet] ``` 21:09 <+bridge> [ddnet] This would allow me to make my map, but I don't imagine anyone else would vote for this change 🙂 21:12 <+bridge> [ddnet] Changing the basic TW physics just to make a map work is silly. Now I suppose your wondering about my super cool map idea. The map is called "Single-Handed" and the theme is that some parts lock out all your mouse controls so you only have movement (left hand), and other parts lock out all your movement controls so you only have hook and weapons (right hand). Certain parts have one left handed tee and one right handed tee, while some parts w 21:14 <+bridge> [ddnet] Imagine a semi-complex gores part where your movement keys don't work, and you can only hook. Makes it very difficult. Imagine you can't move, but you can hook your partner who can move, and that's the only way you can move in that part. How neat would that be? xD 21:21 <+bridge> [ddnet] Since the original teeworlds did not have tuning of movement power, this was never an issue. But I don't think friction should be ignored while a player tries to move when they have no movement power. It's a bug :P 22:57 <+bridge> [ddnet] What are peoples thoughts on adding a caching layer for the SQL database? 23:11 <+bridge> [ddnet] what should the caching layer do? 23:34 <+bridge> [ddnet] The response times are starting to be impacted as the records per maps increase. Most of the queries are relatively static top5 will likely remain the same whether player X or player Y calls it. No need to fetch it twice. 23:35 <+bridge> [ddnet] I suppose it comes down to the current load on the database. If it is still a low threshold then the latency delay isn't much of an issue. 23:49 <+bridge> [ddnet] The database already does that 23:50 <+bridge> [ddnet] and on our production db we have lots of indexes to improve performance 23:50 <+bridge> [ddnet] db server cpu usage is quite low: https://ddnet.tw/stats/server/#db.ddnet.tw (2 CPU cores, usually at 1-2% usage) 23:51 <+bridge> [ddnet] If you add another caching layer, how will you know when the data is out of date? This is tradionally the job of a database