Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.org/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 2024-04-16 00:00:00Z and 2024-04-17 00:00:00Z
Avatar
Thanks @Zwelf and @murpi for all the figuring out on this issue!
heartw 1
01:28
467a318 Simplify and fix HookBase calculation - Zwelf 868e6e0 Disallow /save on teams with practice enabled - Zwelf 17110ac Merge pull request #8171 from Zwelf/pr-simplify-base-hook - def- 88ff820 Merge pull request #8220 from Zwelf/pr-practice-disallow-save - def-
01:32
783f4e3 Record player name in Teehistorian files - Zwelf ece1ec0 Record Player and Team finishes in Teehistorian - Zwelf 5f45e21 Merge pull request #8221 from Zwelf/pr-teehistorian-finish - def-
01:35
3320225 Currently no Persian staff since new server - def-
01:38
68d97e3 improve for loop in execute-all/chn.sh script - murpii d414513 Merge pull request #54 from murpii/improve-execute-all - def-
Avatar
8817a69 Remove unnecessary client component variables and setters - Robyt3 68a64b4 Merge pull request #8219 from Robyt3/Client-Component-Setter-Cleanup - def-
02:27
9c82189 Update settings & commands page - def-
02:29
8a61de5 Revert "Update settings & commands page" - def-
02:32
a7f22c7 Update settings & commands page - def-
02:33
ab162b4 Update settings & commands generation to new reality - def-
Avatar
6c9af4d Revert "Record Player and Team finishes in Teehistorian" - def- d028756 Revert "Record player name in Teehistorian files" - def-
Avatar
Morning 🍡
05:21
i will be sleeping soon
05:27
is it possible that the unusual exploit allowing people to finish any map in absurdly short time is related to the bug where you get the new map's appearance but the old map's collision/behavior?
05:27
i think it's possible that every once in a while the map's game layer is not reset on map change which would be responsible for the latter bug
05:28
but the exploit could just be people vote picking maps (some known very short map) to the map they want finish on and then playing the old map
05:29
as far as the server knows, it's running the new map (since that's the same info used to send the map download to the client, and every time i've seen it the client expects the new map entirely) so fraudulent ranks would be submitted based on that
05:29
i don't know the tech behind it because apparently the people skipping are very secretive
05:29
this is word of mouth
Avatar
It's due to #8221
05:31
the exploit i'm talking about is months old actually
05:34
the bug related to it that i'm talking about AFAICT has not been addressed in this channel in the time that i've been here and has only happened 3 or 4 times in the 18 or so months i've played this game
05:35
it's quite rare
05:37
btw how can i query my ddnet activity?
05:37
maybe make a graph like the one on ddnet.org but that goes further than 1y
05:37
is that data even remembered
05:41
Yes, it's remembered all the way back to 2021
Avatar
this json breaks my pyson xd
Avatar
Really? We generate it with Python
Avatar
seems it uses '
06:11
instead of double quotes
06:11
which require special parsing
Avatar
This is valid json, we don't use ', it's part of some strings, but that is allowed
Avatar
chillerdragon BOT 2024-04-16 06:35:38Z
Which
Replying to @Ryozuki the spam is unreal
Avatar
Avatar
Ewan
is it possible that the unusual exploit allowing people to finish any map in absurdly short time is related to the bug where you get the new map's appearance but the old map's collision/behavior?
That should be a client-side only bug (#2804). I haven't found a way to reproduce it without using dummy yet.
Avatar
Something definitely gone wrong. What I did: In browser I see Tropical Drag map Press connect I see "Tropical Drag" but client is crazy (check recording) Server says that current map is B...
Avatar
Avatar
Robyt3
That should be a client-side only bug (#2804). I haven't found a way to reproduce it without using dummy yet.
i feel like the client wigs out whenever it happens tho? like it's also anticipating the new map
07:10
also PSA the bottom of the rim on a jar of almonds can be sharp
Avatar
Avatar
Ewan
also PSA the bottom of the rim on a jar of almonds can be sharp
Did you Just Cut yourself
Avatar
Lmao, Bad almonds
Avatar
Lol wut magnus worked on starfield
07:22
source
Avatar
Avatar
Ewan
source
Game credits, biography, portraits and other game industry information for Magnus Auvinen - MobyGames
07:29
Gigachad
Avatar
teeworlds mentioned gigachad
07:48
@TsFreddie he game deving
07:48
fr
07:52
Avatar
Avatar
Ryozuki
@TsFreddie he game deving
what
Avatar
u asked where matricks was
08:44
fred when are u gonna make bam good
Avatar
Avatar
ReiTW
Lol wut magnus worked on starfield
Wut
Avatar
Do any of you actually do test driven development?
Avatar
Avatar
Learath2
Do any of you actually do test driven development?
i do gpt4 driven development
Avatar
Avatar
Learath2
Do any of you actually do test driven development?
@Zwelf does, in his physics implementation
Avatar
Today i had my first interview justatest
Avatar
how come u dont respond to my questions in #bugs
Avatar
Avatar
Learath2
Do any of you actually do test driven development?
i dont think so, we mostly use tests to avoid regresions
Avatar
Avatar
Ryozuki
i dont think so, we mostly use tests to avoid regresions
So you write your tests after the fact?
Avatar
most of the time yes
10:50
for example i implement addition on unsigneds
10:51
then i add tests to ensure it works
10:51
edge cases
10:51
etc
10:51
i dont do the test first xd
Avatar
@Ryozuki xx v x cx C ccbc C cbccvc.
11:13
im not gonna decipher
11:13
but rust > C
Avatar
chillerdragon BOT 2024-04-16 11:15:51Z
I occasionally write one specific test before I implement the method. I did that for the teeworlds network lib in python sometimes and sometimes while shell scripting
Replying to @Learath2 Do any of you actually do test driven development?
11:16
It can make try and error brain off development easier
Avatar
ws-client BOT 2024-04-16 11:25:59Z
<ChillerDragon> Remember, Light mode attracts bugs!
Avatar
Ah lol my phone was in my pocket wtf @Ryozuki
Avatar
Avatar
Teero
Ah lol my phone was in my pocket wtf @Ryozuki
how the damn did your phone ping Ryozuki for that
15:35
I have no idea
Avatar
The classic DOOM game over htop, the text-based process viewer - 0x0mer/doom-htop
15:57
implementing vulkan backend in htop
Avatar
Jupstar βœͺ 2024-04-16 17:41:22Z
@Ryozuki did u already add https://github.com/Speykious/cve-rs to your project
Blazingly πŸ”₯ fast πŸš€ memory vulnerabilities, written in 100% safe Rust. πŸ¦€ - Speykious/cve-rs
17:41
old
Avatar
Avatar
Ryozuki
old
Jupstar βœͺ 2024-04-16 17:41:56Z
u just the fastest news person i know xd
17:41
ofc u'd know
17:42
why did i even try πŸ˜‚
17:42
AV1
17:42
Firefox now supports the AV1 codec for Encrypted Media Extensions (EME), enabling higher-quality playback from video streaming providers.
Avatar
Jupstar βœͺ 2024-04-16 17:43:04Z
i really wish AV1 adapts fast
17:43
i want high quality streaming
17:43
@Jupstar βœͺ
Avatar
Avatar
Ryozuki
@Jupstar βœͺ
Jupstar βœͺ 2024-04-16 17:43:58Z
Zen 4 😭 😭 😭 😭 😭 😭 😭 😭 😭 😭 😭 😭
17:44
saddest moment in processor history
Avatar
Avatar
Ryozuki
Firefox now supports the AV1 codec for Encrypted Media Extensions (EME), enabling higher-quality playback from video streaming providers.
Love DRM built in browsers
17:45
NIST P521 private keys are exposed by biased signature generation
Avatar
Avatar
Ryozuki
@Learath2 is it UB to pass size 0 to realloc?
all allocations are safe with a 0 size, it just returns you the heap pointer (at least for malloc)
Avatar
Avatar
Chairn
all allocations are safe with a 0 size, it just returns you the heap pointer (at least for malloc)
in realloc its UB from C23
17:52
Proposal for C2x WG14 n2464 Title: Zero-size Reallocations are Undefined Behavior Author, affiliation: Robert C. Seacord, NCC Group Date: 2019-09-10 Proposal category: Defect Target audience: C programmers using the realloc functions Abstract: Zero-size Reallocations are Undefined Behavior Prior art: C
Avatar
Avatar
Chairn
all allocations are safe with a 0 size, it just returns you the heap pointer (at least for malloc)
and no, its implementation defined
17:53
theorically it returns u a pointer, which u must never dereference anyway
Avatar
Jupstar βœͺ 2024-04-16 17:54:09Z
i always surprised i live in a world where ryo knows so much about c
Avatar
Jupstar βœͺ 2024-04-16 17:54:11Z
😬
Avatar
if new_size is zero, the behavior is implementation defined (null pointer may be returned (in which case the old memory block may or may not be freed), or some non-null pointer may be returned that may not be used to access storage). Such usage is deprecated (via C DR 400).(since C17) (until C23) if new_size is zero, the behavior is undefined. (since C23) realloc is thread-safe: it behaves as though only accessing the memory locations visible through its argument, and not any static storage. A previous call to free or realloc that deallocates a region of memory synchronizes-with a call to any allocation function, including realloc that allocates the same or a part of the same region of memory. This synchronization occurs after any access to the memory by the deallocating function and before any access to the memory by realloc. There is a single total order of all allocation and deallocation functions operating on each particular region of memory.
17:54
text for futur heinrich
17:54
is he ever returns
Avatar
Avatar
Ryozuki
is he ever returns
Jupstar βœͺ 2024-04-16 17:54:44Z
he was active on github few days ago
17:54
insult him and he will spawn
Avatar
based but probably true "if you can't handle tabs as whitespaces, you probably shouldn't be parsing Linux Kconfig"
Avatar
its chairn rewind time
Avatar
Jupstar βœͺ 2024-04-16 17:59:53Z
it's not the same
17:59
xd
Avatar
Avatar
Learath2
Do any of you actually do test driven development?
i do for hw development
Avatar
Avatar
Jupstar βœͺ
@Ryozuki did u already add https://github.com/Speykious/cve-rs to your project
πŸš€
Avatar
Avatar
Ryozuki
its chairn rewind time
done
Avatar
Avatar
Learath2
πŸš€
Avatar
The amount of emoji you have in your readme is a really good measure of how much I'll like your product/library
Avatar
Jupstar βœͺ 2024-04-16 18:03:26Z
depends on the emoji
18:03
brownbear
18:03
pepeW
18:03
^
18:03
the classic learath emoji for example
18:03
works 100%
Avatar
If you have pepeW in your readme I'll 100% love your product
Avatar
Jupstar βœͺ 2024-04-16 18:08:12Z
such bugs always drain from your life time They are 100% obvious, but because they are so obvious you don't directly see them and search somewhere else
Avatar
When adding a featured community in the DDNetRaceNetwork browser tab, there is an issue where the settings do not save correctly upon switching between the "DDNET" tab and the "All Server" tab. Currently, any changes made to settings in one tab automatically apply to both tabs, which is not the intended behavior. The settings are expected to be retained independently for each tab, allowing for customization that is specific to either the "DDNET" servers or the "All Server" list. This problem ...
18:25
There is an issue in the DDNetRaceNetwork where the scoreboard does not accurately display the order of users based on their finish times down to the milliseconds. For example, if User 1 finishes a map in 01:30.60 (minutes:seconds.milliseconds) and User 2 finishes in 01:30.29, the scoreboard incorrectly prioritizes User 1 if their name is alphabetically before User 2. This occurs despite User 2 having a faster finish time by milliseconds. To resolve this, the sorting algorithm of the score...
Avatar
DDNetRaceNetwork frozen
Avatar
Jupstar βœͺ 2024-04-16 18:40:11Z
xd
18:40
also: "01:30.29" real ddnet champs know that that isn't possible
18:40
😏
Avatar
how to spot a multeasy player:
Avatar
who broke my firefox feelsbadman
Avatar
Avatar
MilkeeyCat
who broke my firefox feelsbadman
Jupstar βœͺ 2024-04-16 18:43:33Z
time to use chromium
Avatar
@Ryozuki
18:46
i love old forum posts and seeing these
18:47
Ryo you're old
Avatar
Jupstar βœͺ 2024-04-16 18:49:27Z
18:49
ill be 24 in 1 month
Avatar
Avatar
Ryozuki
ill be 24 in 1 month
Jupstar βœͺ 2024-04-16 18:50:58Z
NO FUCKING WAY DUDE XDDD
18:51
u so young man
Avatar
Jupstar βœͺ 2024-04-16 18:51:04Z
i cannot believe it
Avatar
29 may
Avatar
WE ARE THE SAME AGE, AND?! we have our birthday in MAY ?!
18:51
fuck you're 6 days older
Avatar
Avatar
Ryozuki
29 may
Jupstar βœͺ 2024-04-16 18:51:28Z
may kids are best
owo 1
Avatar
Avatar
meloƞ
fuck you're 6 days older
Jupstar βœͺ 2024-04-16 18:51:35Z
oh wow, we are may harem
18:51
didnt know
Avatar
TiL aswell ye
Avatar
Avatar
meloƞ
fuck you're 6 days older
If has his birthday on the 29 of May how can you be 6 days younger and still be in May?
πŸ€“ 4
18:53
xDD
Avatar
OH fuck
18:53
IM OLDER
18:53
LETSGOO
18:53
also i need sleep
Avatar
Jupstar βœͺ 2024-04-16 18:53:38Z
xDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
Avatar
Dates are hard
18:53
No problem melon
Avatar
Jupstar βœͺ 2024-04-16 18:53:53Z
ngl you got me there melon
18:53
i didnt notice either
Avatar
Avatar
Teero
Dates are hard
No, dates are not hard. Dates are a type of fruit that is typically soft and chewy with a sweet flavor. They can also be dried and used in various recipes or eaten as a snack.
Avatar
Avatar
Jupstar βœͺ
ngl you got me there melon
lmao
Avatar
Avatar
meloƞ
No, dates are not hard. Dates are a type of fruit that is typically soft and chewy with a sweet flavor. They can also be dried and used in various recipes or eaten as a snack.
Avatar
Avatar
Jupstar βœͺ
@Teero is that one guy that implements timezones for the weird nordic country https://www.politico.eu/article/norway-arctic-region-asks-eu-commission-for-26-hour-day/
owo
Avatar
The purpose of this condition is to only update the freeze time every 50 ticks so the freeze bar keeps being refilled after one second when standing in freeze, but it incorrectly prevented freeze from being applied during the first 50 ticks after the map has been loaded. Now, freeze is also applied if not currently frozen, so the behavior directly after changing the map is identical to subsequent respawns.

Checklist

  • [X] Tested the change ingame
  • [ ] Provided screenshots if it is ...
Avatar
RemindMe! 5/29/2024
19:02
damn why bot not working
Avatar
Avatar
GitHub
Click to see attachment πŸ–ΌοΈ
Hahahhaha, I was so close
19:03
I just went upwards looking for the faulty condition. It was downwards
Avatar
Avatar
Learath2
I just went upwards looking for the faulty condition. It was downwards
atleast you were in the right file cries in player.h
Avatar
Avatar
GitHub
Click to see attachment πŸ–ΌοΈ
Jupstar βœͺ 2024-04-16 19:04:11Z
@Zwelf ur game also affected?
19:04
ur condition looks similar, but dunno how the "now" works xd
Avatar
well, some cleaning in ranks is probably required
Avatar
…nd two layer works properly. Laser works. Fix second game layer Re-added logs Readded the rcon commands addvote and scoring system and time Fixed Weapons Signed-off-by: btd &lt;bardadymchik@g...
Avatar
Avatar
Chairn
well, some cleaning in ranks is probably required
Jupstar βœͺ 2024-04-16 19:05:59Z
"some" lmao
19:06
2010
19:06
lmao
19:06
step 1: remove all ranks from n9
19:06
😬
Avatar
It's probably never been really used. It might be too hard without that flush there
Avatar
Avatar
Chairn
can you point to the line & files in there πŸ˜„ ?
if (m_FreezeTick < Server()->Tick() - Server()->TickSpeed()) in CCharacter::Freeze in character.cpp, clicking the link should take you to the location but it doesn't seem to work consistently
19:08
maybe because character.cpp file is collapsed by default
Avatar
interesting how CCharacter::Freeze was modified and tweaked so often with this going unnoticed for 14 years :P (edited)
Avatar
Jupstar βœͺ 2024-04-16 19:10:25Z
@Learath2 quick merge and apply
19:10
and then new bug appears πŸ˜…
Avatar
Avatar
Jupstar βœͺ
@Learath2 quick merge and apply
I'm out buying cream of ice
Avatar
does that mean that m_core is not initialized at this point or that Server->Tick() returns some wrong value ?
Avatar
Avatar
Chairn
does that mean that m_core is not initialized at this point or that Server->Tick() returns some wrong value ?
Jupstar βœͺ 2024-04-16 19:11:09Z
tick is simply 0
Avatar
The condition is false because both are 0
Avatar
Jupstar βœͺ 2024-04-16 19:11:14Z
[0..50]
19:11
so basically 1 second of non freeze
Avatar
why it doesnt work reliably then ?
Avatar
Jupstar βœͺ 2024-04-16 19:12:33Z
why shouldnt it?
Avatar
it works as coded, just not as intended
Avatar
i can't reproduce it on i will be back
Avatar
Jupstar βœͺ 2024-04-16 19:12:48Z
if smth is unreliable then the client input
Avatar
Avatar
Chairn
i can't reproduce it on i will be back
Jupstar βœͺ 2024-04-16 19:12:56Z
ur pc is probs slow
19:12
lol
Avatar
i probably takes more time to connect
Avatar
yeah, if you use an old client where the start info isn't flushed it's probably even harder or impossible to reproduce it
Avatar
other solution is to simply test for Server->Tick() < 50 ?
Avatar
That was my first idea, but it would change behavior and be inconsistent with freeze behavior normally
19:15
Because then freeze would probably end later
19:15
Second idea was just starting the server at 100 ticks, but that somehow makes the client also wait 100 ticks before connecting
Avatar
Avatar
Chairn
other solution is to simply test for Server->Tick() < 50 ?
Jupstar βœͺ 2024-04-16 19:15:59Z
a better solution is to not rely on tick & tick speed for comparisions better do smth like freeze_tick = how_long_freezes and then decrease that every tick
19:16
i rewrote most physics like that in my version at least
19:16
bcs i disliked the exact same problem
Avatar
Hello
Avatar
well, there are probably more corner cases in the actual implementation than in your implementation
19:18
melon writing the entire LOTR books
Avatar
Avatar
Chairn
well, there are probably more corner cases in the actual implementation than in your implementation
Jupstar βœͺ 2024-04-16 19:18:55Z
well many things work like that indeed
19:18
laser
19:19
weapon recoil etc
19:19
i rewrote everything that uses tick as comparision basically
Avatar
Avatar
Jupstar βœͺ
a better solution is to not rely on tick & tick speed for comparisions better do smth like freeze_tick = how_long_freezes and then decrease that every tick
But that's a subtraction every tick, thats yucky too
Avatar
substraction and comparison are identical
Avatar
Avatar
Learath2
But that's a subtraction every tick, thats yucky too
Jupstar βœͺ 2024-04-16 19:19:44Z
well in rust it's Option<TickType>
Avatar
Avatar
Chairn
substraction and comparison are identical
But you will need a comparison after too, so that's two subtractions then
Avatar
not on x86
Avatar
Well I guess if it's a comparison with 0 you dont πŸ˜„
Avatar
because sub will update flag register
19:21
and compiler should be smart enough to use the result of the substract directly for the comparison
Avatar
Jupstar βœͺ 2024-04-16 19:21:08Z
are we currently evaluate the performance difference?
Avatar
that would be like one clock cycle difference anyway
Avatar
Jupstar βœͺ 2024-04-16 19:21:24Z
of smth that runs on a register
19:21
lol
Avatar
not really important
Avatar
In all likelihood it doesn't matter on any real hardware using any production compiler
19:25
@Chairn barça winning
19:25
justatest
Avatar
Avatar
Ryozuki
@Chairn barça winning
1 | 0 - boring monkaStop
Avatar
Avatar
Jupstar βœͺ
of smth that runs on a register
I'm unsure if it would be pulled into a register actually
Avatar
Avatar
Jupstar βœͺ
@Zwelf ur game also affected?
yes
Avatar
Avatar
Jupstar βœͺ
ur condition looks similar, but dunno how the "now" works xd
that is the current tick. Like GameServer->Tick() IIRC
Avatar
Avatar
Robyt3
Second idea was just starting the server at 100 ticks, but that somehow makes the client also wait 100 ticks before connecting
or initialize the m_FreezeTick with -100
Avatar
Avatar
Ryozuki
@Chairn barça winning
Jupstar βœͺ 2024-04-16 20:30:13Z
that didnt age well
20:30
😬
20:30
justatest
Avatar
Avatar
Ryozuki
justatest
Jupstar βœͺ 2024-04-16 20:54:27Z
bvb on the other hand side 😏
20:54
2 spanish teams out xd
Avatar
Are you talking about the issue that you can phase through freeze without freezing when you instantly join after the server start?
Exported 277 message(s)