Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.tw/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories — IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2021-08-05 00:00:00Z and 2021-08-06 00:00:00Z
Avatar
I understand the amount of work that would have to go into this, but here's a (mostly) complete list as a starting point. I didn't include commands for server/envelope settings since you have to use the UI most of the time anyway, and I used the command prefix edt_ for these but ed_ would be more ideal if it wasn't already in use. File menu:
  • edt_file_new
  • edt_file_load
  • edt_file_loadcurrentmap
  • edt_file_append
  • edt_file_save
  • edt_file_saveas
  • edt_file_savecopy
  • edt...
Avatar
that took way longer than im willing to admit (edited)
Avatar
isnt there already keyboard shortcuts for some of those
Avatar
hardcoded, yes
00:08
the idea is to allow them to be bindable/configurable like everything else in the game lol
00:09
i love how user-focused this game is, and i just wanna increase the coverage of that
00:09
you could also do this for demos? but not sure how useful that would be
Avatar
maybe but who would actually rebind the editor controls
00:15
wait oh
00:15
nobody would bind file menu but the other stuff would be nice yeah
Avatar
also consider that i added commands for things that are not already bound to anything
👍 1
00:19
it drives me crazy that there's no command to focus the tele/switch button
00:19
for ctrl-f
Avatar
ed_ is already used for map editor so just use that instead of edt_ (edited)
Avatar
hmm, support for uploading a map to a server in game
00:22
ed_ is for demos i thought
00:22
what is showkeys then
Avatar
show the keys you press when you are in map editor
00:23
oh i see
00:23
nvm then
00:24
updated
00:24
also let me use the consoles in the editor ffs
00:25
:(
Avatar
seriously guys make points clan
04:14
would be great and would be there meaning from use same clan+i guess ppl will stop play with same name
Avatar
would be cool (edited)
Avatar
should be make issue right?tee_thinking
Avatar
Needs accounts
👀 2
Avatar
I watched a live stream where someone struggled with this, not knowing that right click has different functionality from left click, and had to manually click on each entry to remove them all except one.

Checklist

  • [x] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test if it works standalone, system.c especially
  • [ ] Considered possible null pointers...
Avatar
add text and outline color constants, fix reset after loading https://github.com/teeworlds/teeworlds/commit/f81eaa9d09c9c4066c05ccb8b55fbe09861c4e64 Use consistent text transparency https://github.com/teeworlds/teeworlds/commit/d28782d169f0d7831754ec8d7b5f616d658e8c3b One less undefined constant when stealing upstream code :)

Checklist

  • [X] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configu...
Avatar
7dcca97 Revert "Fix client use-after-free reported by mmmds" - def- 1ee4f01 Merge #3992 - bors[bot]
Avatar
Why does the afk emote disappear after getting killed (or changing map) ? Was it simply forgotten or is it not easy to implement that it stays?
Avatar
Avatar
Knuski
Why does the afk emote disappear after getting killed (or changing map) ? Was it simply forgotten or is it not easy to implement that it stays?
changing map is not possible to determine since it's technically a reconnection
19:12
i think the reason getting killed resets afk is because it resets your entire player object and afk must be a part of it, probably better that way
👍 1
19:13
otherwise afk status would have to be decoupled from player and moved to some connection level class with references to your tees (maybe that makes more sense actually?)
Avatar
alright
Avatar
client can send packet on connection that specifies if he will be afk
19:16
or just add argument to netmsg_info packet
Avatar
Avatar
Anime.pdf
client can send packet on connection that specifies if he will be afk
yeah i like this solution
Avatar
A player could disconnect during a lag spike and the server may be recorded as having high ping, making it harder for players to find later with sort and filter settings active. My suggestion is to store a player's ping every 30 seconds and keep the lowest value, or take the average if the differences are not significant.
Avatar
@murpi let me know if i should amend it with anything or if that seems reasonable
21:20
like a maximum number of pings to track
21:20
probably 10
Avatar
looks good
Avatar
idk how long lag spikes can last though
21:21
but it should be resilient to favor previous ping storage over current higher ping
Avatar
mm maybe you can just keep using disconnect ping, and compare against the last disconnect ping. if the new value is higher, take the average and store that. otherwise, store the new value
21:43
dumber system but much easier to reason with + nice automatic behavior
Avatar
Avatar
GitHub
Click to see attachment 🖼️
I dont get it
Avatar
plus if you connected during 999 ping, well your average would be like 500 ping so it doesn't do anything
Avatar
Avatar
Anime.pdf
I dont get it
fixing the issue of storing lag spikes in server browser ping
21:45
for people who use sort/filter by ping
Avatar
But u just see EUR AFR etc
Avatar
not when you connect
Avatar
Well actually im using old version so i see actual ping
21:46
new version still shows ping. it just does it based on last ping (edited)
21:46
if you dont connect to a server it will show the region
Avatar
So what is ur issue
Avatar
let's say someone disconnects because of ddos
21:47
then in the browser, it shows the ddos ping
21:47
if someone has a max ping filter of 200
21:47
they will not see the server anymore
Avatar
this is not ideal
21:47
ping storage should be more resilient
21:47
to discrepancies in ping
21:48
i think taking the average is fine
Avatar
Well, thats the problem of that region ping updatemonkaS
Avatar
maybe it pushes it down the list but not off your filter
21:48
but if you somehow had 999 ping when you disconnect it's still a terrible average
Avatar
Avatar
Anime.pdf
Well, thats the problem of that region ping updatemonkaS
yea i agree, but there must be a workaround
21:49
maybe you do need a more sophisticated system like i mentioned
21:50
eh, actually this problem can be solved by having an option for clients to "trust" servers
21:50
and they always ask for ping even when not connecting
21:50
you can also have an option for auto-trusting servers when you connect once (edited)
Avatar
I dont rly get the point of region pings cuz who will track every server ping and ddos ever ip he sees, like he dont even get nickname or smthpepeH
Avatar
Avatar
Anime.pdf
I dont rly get the point of region pings cuz who will track every server ping and ddos ever ip he sees, like he dont even get nickname or smthpepeH
doesn't matter, anyone in internet tab would get every single ip and that's so easy to ddos with
Avatar
But thats only ip
21:51
U just get thousands of ips every second
21:51
Minute*
Avatar
players are constantly querying the master server
21:52
i dont know the specifics on how the ddos works but i know it's because of how many ips there are + consistent connections
Avatar
Ddos = a lot of packets from a lot of ips at same time
Avatar
player ips
Avatar
Well, smbd can just ddos masterbrowser and nobody would see any server
21:54
Like it was a year ago
21:54
Constantly clear browser (edited)
Avatar
my point was that any registered server could see all player ips, and those ips could be used for ddos
Avatar
registred server sends self info to master server and players parse that info and with old ping system - pings every server directly, someone who have server could look up recent pings and look for ips (edited)
Avatar
wait you just gave me an idea
22:00
maybe it doesnt work though (edited)
22:01
it involves storage of IPs on master so i think it can't be done under privacy law
Avatar
if we have the ability to classify region based on IP the same could be done for players
22:02
and then we could insert approximate ping for servers that have not been connected to
22:02
but maybe the server determination is more secure than player could be, and it wouldn't work as well
Avatar
Actually i know nothing, forget what i said above just open code and see how it works. Good noght i goo sleep😴
Avatar
meh we can just do something like "opt into geolocation for approximate ping values for new servers"
22:04
good night
Avatar
Avatar
Anime.pdf
Well, smbd can just ddos masterbrowser and nobody would see any server
with the new master that is also no longer possible as I understand it, since it is now cached behind cloudflare
Avatar
@Patiga what do you think about the idea of averaging ping for client storage
22:08
bad because it's technically inaccurate? or helpful
22:09
i think it should always store the lowest value
22:09
unless there's a really old ping that is lower, and the new ping is consistently higher
22:10
I have no idea about the code there, but averaging probably comes with its own problems
Avatar
yeah like 999 ping
Avatar
average > lowest ping
Avatar
maybe it should just store high ping if it's consistent in the current session compared to last session
Avatar
some people have jumpy pings so lowest ping would be less accurate
Avatar
Avatar
louis
average > lowest ping
okay but let's say you have 60 ping to a server and you disconnect in a ddos at 999 ping. then you have 500 ping and your filter makes it so you dont see it anymore
Avatar
what do you mean with averaging btw, which data do you use?
Avatar
there needs to be a threshold on when to average
Avatar
do you take it each time you disconnect?
Avatar
Avatar
Patiga
what do you mean with averaging btw, which data do you use?
3 things, last disconnect ping, last average / lowest ping (however we decide), and transient ping
22:12
like whatever is recent
22:12
last disconnect ping should be favored if it is low
22:12
but if the new values are consistent, we have to consider that a player may have moved or changed internet service
Avatar
cant you ignore outliers when calculating average
22:12
but what is a good threshold?
22:13
what is normal deviation for inconsistent ping?
22:13
50? (edited)
Avatar
idk maybe do mode then
Avatar
I mean do we want to see servers that we left with a 999 ping?
Avatar
ping has several nearby values for close fluctuations
22:14
i dont think mode can work
22:14
you have to "lump" pings together for average consideration
Avatar
Avatar
Patiga
I mean do we want to see servers that we left with a 999 ping?
i think most people will not want that, but there may be some that want
22:15
imo 999 ping is never really "accurate"
22:15
it may have been accurate when you left
22:15
but is it really accurate before you start playing again?
22:15
most likely not
Avatar
i mean technically the ddos ping getting into average is accurate monkalaugh
Avatar
yes, but what about when you plan to connect again
22:15
and ddos is done
22:16
it's not accurate anymore (edited)
Avatar
then itll average out later
Avatar
but you cant see the server anymore because ping filter
Avatar
dont use ping filter
Avatar
this is not ideal xd
22:16
it should be resilient to wild fluctuations
Avatar
I think smth like take the ping on disconnect and the ones in the last 5 secs and average them could be fine
Avatar
yeah i have something like that in github
Avatar
recent values, a bit of average
Avatar
in the issue comment
22:17
last 16 pings, recorded every 30 seconds
22:17
then try to come to an average within an outlier threshold
22:17
average that with last disconnect ping
22:17
repeat
Avatar
if u record every 30 seconds then i dont think u need disconnect pings
Avatar
if you disconnect mid-collection just use all those values for the basis of your average
Avatar
Avatar
louis
if u record every 30 seconds then i dont think u need disconnect pings
disconnect ping is important for historic context
22:18
an average of 16 pings in 8 minutes is still inaccurate if the ddos lasts that long
22:18
honestly we might want to up it to 15 seconds
22:18
so 16 pings in 4 minutes
22:18
seems more realistic
Avatar
Avatar
lynn
then try to come to an average within an outlier threshold
imo this approach is too complicated. that doesn't sound intuitive for the user to me
Avatar
i want to avoid using arbitrary things like thresholds
22:19
maybe if your ping was stable in a certain range it changes to the average
22:19
and that's the only criteria
22:20
but ddos ofc still affects this
Avatar
imo if a server gets ddosed the client should see it as 999
22:20
only maybe the master server could detect ddos and send that info to the client
Avatar
just sucks for people using ping filter
22:21
or never try to connect to a server again if it was ddossed and they just connect to top pings
Avatar
Avatar
Patiga
only maybe the master server could detect ddos and send that info to the client
here the master server could tell the client that this specific server isn't ddosed anymore, so reset your ping
Avatar
hmm so like two values on the client
Avatar
no, one
Avatar
historic_ping and incidental_ping
22:22
well, we want to avoid ping queries without having to disconnect right?
22:22
so the client would have to remember the old ping
22:23
instead of it being fed from the master server
Avatar
that would work too, but I think the current way, displaying it as the region, would work as well
22:23
yeah that can work fine
Avatar
both is good
Avatar
i think having historic_ping and then if they are in game while ddos starts, the client is notified and it stores something in incidental
22:24
and master server can reply with "server is ok now" and it will remove incidental and use historic
22:25
having this at server level is way better btw
22:25
because we've completely solved the issue of confusing client connection for ddos
Avatar
👍, historic ping could work really well, although I think it might also be really annoying/hard to get right
22:27
since its a value that you would need to adjust a lot with changing circumstances, you can't just write down one simple number and be happy
Avatar
i mean you always put ping there unless the server tells you it's being ddosed
22:29
and then when you query master, the master server tells you if it's being ddosed a single time (edited)
22:29
and it either throws away incidental or keeps using it
22:30
sorry edited
Avatar
but the 'current' ping is updated constantly, you contact the master server much less frequently
22:31
^ while you are connected to the server
22:31
-> since out of the server you can't update the ping
Avatar
well doesn't the server communicate with master
22:32
and if it's able to tell if it's being ddosed it forwards that to the client
Avatar
you mean the server can tell you it is being ddosed?
Avatar
Avatar
Patiga
only maybe the master server could detect ddos and send that info to the client
can't we do this
22:33
i guess the client would just ask the master server for this info periodically
Avatar
yeah, although by the time you get that info from the master server, you will already be experiencing ddos ping
22:35
I'm not trying to say its impossible, only that this approach will have some complications to get it right
22:50
i think it's better if the game server handles the request for all connected clients, and it does it frequently enough to record your incident ping before historic
22:50
and the server just broadcasts the ddos flag asap to all clients
22:53
im even wondering now if it would be better to keep a running average, and compress similar historic values as a single average value that's multiplied by some amount
22:54
brain working
22:58
ping = (ping * max(days since first connect, 30) + new ping) / (max(days since first connect, 30) + 1)
22:58
maybe 30 days max is too high (edited)
23:02
hmm i think i just thought of a great solution
Exported 209 message(s)