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 2022-11-17 00:00:00Z and 2022-11-18 00:00:00Z
Avatar
Avatar
Learath2
I have a logitech mouse, I'll try tomorrow
you happen to get a chance to check this one out yet?
Avatar
Avatar
Alexander
It's often false information but it's not made to damage the reputation
Fake news are mostly directed at discrediting someone
01:07
Onion is more a satire as heinrich said, they let you know they're just making fun of Elon's latest moves
Avatar
Ah alright, my bad
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 07:03:26Z
Does upper mean left or right? Is this me being stupid or could this be more obvious with some ttt ttt iii iiii graphic? https://github.com/heinrich5991/libtw2/blob/48a2573af66105fc38f032fe22cfcc60f95f7485/doc/snapshot.md#item-key
Some Teeworlds stuff in Rust. Contribute to heinrich5991/libtw2 development by creating an account on GitHub.
07:03
wow i failed to press a letter 4 times 3 times xd
07:04
sometimes i wish irc had edit message
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 07:20:58Z
@Learath2 is the snap item data size in bytes or in 4 bytes (32 bit integers)
07:21
i assume the latter since you said its ALL ints. Also 1 byte per field might be not enough since the fields are all ints
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 07:23:46Z
if i use 1 byte as size unit my data looks much better tho :c
07:30
ouuu boi that looks promising https://zillyhuhn.com/cs/.1668670193.png
07:30
but thats using size as bytes so its not all 32 bit ints? :D
07:32
@swarfey yo here?
Avatar
When will you implement default member initialization per Attribute
07:42
Really annoying that such simple thing doesn't exists without the default trait
Avatar
the default trait
Avatar
Yeah yeah completely stupid
07:45
When i read the RFC. Everyone wants this
Avatar
@Jupstar ✪ btw in rust its not idiomatic to represent a default value for an integer with e.g 0, you would use Option
07:46
and option implements default
07:46
@Jupstar ✪ where is the rfc
Avatar
I know
07:47
I had to do that and unwrap all shit manually
07:47
Bcs typing .. Default::default on frontend sucks hard
Avatar
Avatar
Ryozuki
@Jupstar ✪ where is the rfc
1594
07:48
It also links to some rust forum and other issues
Avatar
Avatar
Jupstar ✪
I had to do that and unwrap all shit manually
oh rust made you handle unexisting values!
Avatar
I prefer to set a default
Avatar
i dont
Avatar
Like pretty much all languages allow
Avatar
Avatar
Ryozuki
i dont
I hope that you are aware that rust always to implement a default per type
07:50
Since that is allowed there is no reason to not allow it on member variable level too
07:50
E.g #[default] for enumerations
Avatar
they implement the default trait
07:51
just implement default if you want a default
07:51
so you are explicit about choosing to use a default
Avatar
Imo {} is just as explicit
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 08:10:23Z
My client claims to have a gamedata snap item with a starttick of 343449 which is 0x00 0x00 0x86 0x2d or the other way around how ever you wanna endian it. But when looking at the traffic in wireshark I can not find a single snapshot payload that includes 0x2d or 0x86 how can that be? https://zillyhuhn.com/cs/.1668672344.png
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 08:38:59Z
okay got it
08:39
08:39
the 32 bits are packed so you gotta unpack the 4 bytes to get the actual number 343449
Avatar
Oh yeah Default::default is so unwieldy. It needs some sugar
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:09:50Z
leeeraaaaaato im losing my sanity here :c
Avatar
Avatar
Learath2
Oh yeah Default::default is so unwieldy. It needs some sugar
Please move#developer back
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:10:35Z
i feel like solving a sudoku here and i hate sudokus
09:10
wot u mean jopstar?
Avatar
Someone moved discord channel
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:11:01Z
discordo problem os
Avatar
Instant kick
Avatar
Not me, I dont even think you can move them on android :F
Avatar
Xd
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:11:40Z
im sure jopstar did it client side
09:11
2iq
Avatar
Ok you can but it has very weird UX
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:12:20Z
lerato
09:12
send brain
09:12
i can parse the first snap item just fine but there is no way to interpret the remaining bytes as something valid :(
09:13
09:13
look at where the first white bytes start what should that be?
09:14
the first row does make sense its the first snap the client got and the first item is game data
09:14
with id 3 and its type is 6
09:14
wait what why does gamedata even have an id? xd
09:14
anyways game data is 3 ints m_GameStartTick, m_GameStateFlags, m_GameStateEndTick so i read 3 times 4 bytes? ye?
Avatar
Makes sense
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:15:25Z
but then i end up with 91 02 00 80
09:16
and no matter how i jiggle, flip, sniff, repack, 7zip them they wont give me any valid snap type :(
Avatar
Is this a ddnet server?
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:16:32Z
no vanilla 0.7
09:16
the last 2 bytes should be swapped to 0x80 0x00 i think
09:16
that should make up the type
09:17
but thats like 32768
09:17
which seems a bit big for a snap item type :(
09:17
also the id is higher than snoop dog
Avatar
Gamedata is always sent with id 0
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:18:42Z
also how are the bytes 00 0a 00 a9 unpacked to 0 and how are the bytes d8 2e 90 04 ALSO unpacked to 0?!
09:18
ok good lead
09:18
so i parsed game data wron alr
09:18
thanks
09:19
ah ye lel i even printed that in the client and didnt realize https://zillyhuhn.com/cs/.1668676756.png
09:19
ok so?
09:19
aw98dh89awh98dawd
09:19
im about to mental breakdown
Avatar
First of all, are you sure this is the correct snap we are looking at?
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:20:15Z
as in?
09:20
name a sample of incorrect
Avatar
As in is this the correct packet? Is this really supposed to have a gamedata in it
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:20:37Z
a
09:20
somewhat sure xd
09:21
and in on_snapshot i only do the print if it is a snapsingle
09:21
the other switch case branches do work fine and get my client in a very happy state so i assume my msg id unpacker is fine
09:22
i might have unpacked the snap chunk payload wrong. maybe i cut off too little or too much in the beginning to get for the snap header
09:22
but my parsed snap header looks very good too
Avatar
Avatar
[quakenet] ChillerDragon
Click to see attachment 🖼️
Is this the whole packet? Have you handled the header first?
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:22:57Z
09:23
yes
09:23
here the whole packet with header
09:23
i mean it the whole chunk not packet
09:23
i did parse the tw packet header
09:24
and also the chunk header and also the chunk payload snap message header
09:24
maybe heinrich was right after all
09:24
and there is no CHUNK field
09:24
so chunk_num is not in the header but the id of gamedata?
09:25
that would be 0x00
09:25
ah wait no
09:25
would be 0x00 0x03 -> 0x03 0x00 -> 768
09:25
also too high
09:26
i would assume i totally missed some 3rd unpack step if i would parse the start tick so correct 34349
09:27
wouldn't
Avatar
Mh, fwiw what's at the start of that delta isn't exactly sane to me either
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:32:37Z
u dont approve delta_tick=440241 ?
09:34
I it is close to the game tick game_tick=457770 delta_tick=457771 thats also what the vanilla client ususally shows
09:34
Avatar
Are you sure you decompressed this first?
09:39
Nothing about these values make much sense to me
09:40
e.g. have you seen CVariableInt::Decompress
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:41:23Z
i have seen but not understood CVariableInt::Decompress
09:41
i just do a regular unpacker get_int
09:41
imo the header looks very fine doesnt it?
09:42
its the same i get in the vanilla client
09:42
but yea varint::decompress is only applied on the data not the header
Avatar
The packet stuff looks fine. The header of the delta looks insane
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:42:55Z
what exactly looks insane to you?
Avatar
11 ae d8 2e deleted objects??
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:43:20Z
wait where do you see deleted objects xd
Avatar
Or af d8 2e b3 updated ones?
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:43:30Z
wait wot
09:43
the 11 is NETMSG_SNAPSINGLE
Avatar
The first 3 ints of deltashots give you the amount of objects deleted, updates and one other int
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:44:28Z
okay i totally ignored those
Avatar
Oh that is the netmsg header
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:44:43Z
lemme add those and see if it helps xd
09:44
its 3 ints of 4 bytes?
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:45:01Z
of the payload right?
09:45
ok lemme add those bois
09:46
honestly i did not get the whole delta part
09:46
this is the first snap i get against what can it delta?
Avatar
But you cant just add those before doing the decompress
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:47:02Z
isnt the decompress just doing a unpacker get int?
Avatar
The deltashot is an array of integers basically but they are all packed
09:47
Yes, you should be able to just do get int until the end
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:48:03Z
yes i do that
09:48
A retro multiplayer shooter. Contribute to teeworlds/teeworlds development by creating an account on GitHub.
09:48
A retro multiplayer shooter. Contribute to teeworlds/teeworlds development by creating an account on GitHub.
09:48
but for multiple values right?
Avatar
Yes, which is also how I know that everything should align nicely on a 4 byte grid 😄
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:50:43Z
so smort
Avatar
No, just too much time in this one codebase
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:51:07Z
hehe
09:51
so expierenced
09:51
omg when do i learn typing
Avatar
Parsing a single delta against snapempty is honestly the easy part
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:52:03Z
ah delta against empty
09:52
that could be added to the snap doc
09:52
first delta is against empty
Avatar
Add it
Avatar
Chiller, your development methods are quite chaotic if I may say 😄
09:56
Why don't you just open the source and follow the flow?
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 09:57:33Z
imo looking at something i can test against like the actual bytes is more graspable than looking at the c++ code
09:57
09:58
the first 3 ints of the payload are a bit high
09:58
also the unpacker does not read the full 4 bytes because they do not have the extended bits set
10:01
good quote added to my github profile :D
Avatar
chunk_num?
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 10:06:03Z
CHUNK NUM!
10:06
? wdym
Avatar
I’m fairly certain snapsingle doesn’t have part and num_parts at all
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 10:10:37Z
yes it does not
10:10
i display the default in that case
Avatar
Part size should be unpacked after chunk_no, no?
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 10:12:41Z
yo lerato do u get emails when i tag u on github? bcs i rly like to do that xd
Avatar
I do get emails 😛
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 10:13:26Z
opsi xd
10:13
chunk_no is the very last field before data init?
10:13
and part size is not part of the payload
10:13
wait or is it? xd
Avatar
i love how fat the og tee is
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 10:15:49Z
?
Avatar
in the tw github icon
Avatar
That Chunk there is the part size
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 10:16:30Z
send pic or it didnt happen
10:16
i was about to say it xd
10:16
A retro multiplayer shooter. Contribute to teeworlds/teeworlds development by creating an account on GitHub.
10:17
i am totally not doing this: https://zillyhuhn.com/cs/.1668680208.png
10:17
xd
Avatar
I am dying of starvation so I need go go away for a minute
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 10:17:40Z
same
10:17
minus the actually eat part
10:17
xd
Avatar
[quakenet] Qame BOT 2022-11-17 10:55:26Z
I use Arch btw
Avatar
chillerdragon BOT 2022-11-17 10:55:42Z
Still don’t know how decompress ensures 4 byte alignment
10:56
UnpackInt could read 1 to unlimited bytes depending on the extension bit
Avatar
did someone finally came up with a good reason to not add something to get the old UI and stuff back ? or is it still no bad for you get used to it ?
Avatar
Avatar
Sorah
did someone finally came up with a good reason to not add something to get the old UI and stuff back ? or is it still no bad for you get used to it ?
What old ui
11:16
Tw ui is already from stone ages
11:17
If you mean HUD. There is no logical reason. If you mean in game stars. Well
Avatar
Avatar
chillerdragon
UnpackInt could read 1 to unlimited bytes depending on the extension bit
It is only ever passed 4 byte ints. Look at ::Compress. It even uses sizeof(int) there
Avatar
chillerdragon BOT 2022-11-17 11:21:35Z
Hmm how do you pack a number lower than 63 on four bytes?
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:25:16Z
look at thet line from thex hexdump for example 00 0b 00 08 it reads the first byte as 0 and is done
Avatar
Packed it is smaller than 4 bytes
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:25:49Z
if you read another int you read the 0b not the next line
11:26
but the unpacker stops at the first byte that misses the extension bit right?
Avatar
But when you unpack you will always get 4 bytes, if you get less you need to pad with 0
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:26:10Z
and the next unpack continues there
11:26
ou hm wot
11:26
so how would i read that line?
11:26
i read 0 and pad it with 3 bytes to become 00 00 00 00 ?
11:27
and what do i read next?
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:27:05Z
0b?
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:27:33Z
interesting
Avatar
Avatar
Jupstar ✪
If you mean HUD. There is no logical reason. If you mean in game stars. Well
yes there is no logical reason to not give a option to get the old look back
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:28:31Z
so 0b misses the negative and the extension bit
11:28
11:28
so it gets interpreted as 11
11:28
and padded by 3 0 bytes?
Avatar
If you mean the stars I don't mind there being an option to mimic them client side. I just haven't had the time for it
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:29:06Z
then this is read next? 00 0b <00> 08 ?
11:29
0
Avatar
Avatar
[quakenet] ChillerDragon
then this is read next? 00 0b <00> 08 ?
Makes sense to me
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:29:32Z
+ 3 pad bytes
11:29
then 08
11:29
which is 8 + 3 pad bytes
Avatar
well ye the other stuff i can just turn off but yes the stars / sword thing
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:29:46Z
oke
11:29
thanks a lot learto
Avatar
This will get you to the original snapshot that was compressed
Avatar
would be really nice =P
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:30:26Z
so thats why the payload has not to have align with 4
11:30
because you do not unpack 4 bytes at a time
11:30
but to 4 bytes
11:31
that def bamboozeld me
Avatar
ah and from what i have been told there is also no way to turn off the sitting animation ? ( idk if running animation is in yet )
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:31:32Z
yes f3 on removing the new stuff
11:31
while at it can we also remove a bunch of tiles and all tune zones thanks hehe
Avatar
dont even need option like checkbox just in F1 would be enough for people that care about it
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:33:07Z
@Sorah you can try asking @Tater he is big on config options in the tater client ddnet fork
Avatar
Let's remove everything about ddnet. Honestly, I think we perverted teeworlds enough
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:33:15Z
maybe he can make something happen for you :)
Avatar
We should return to vanilla
Avatar
Avatar
[quakenet] ChillerDragon
@Sorah you can try asking @Tater he is big on config options in the tater client ddnet fork
ah good to know :O thanks
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:34:05Z
@Learath2 unpopular opinion but vanilla + freeze is pretty good already. Finish and start line is dope too. Thats about all you need. the rest is bloat. We can argue about hook through thats borderline okay.
Avatar
cant we just remove the spawn tile ?
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:34:54Z
no that good
11:35
for measuring times
Avatar
I agree. Remove all the antiping too. We should only predict what matricks wanted to predict
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:35:21Z
as for commands those are cool /rank /points /mapinfo /cmdlist /info the rest is bloat
11:35
nono antiping good
Avatar
Tees should be able to rubberband in and out of freeze all the time as that's how it was intended
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:35:35Z
i only talked about tiles
11:36
soon ima replace my ddnet++ project by ddnet-- project the ddnet-lite fork xd without bloat
Avatar
Nono, go all out, remove everything that isn't vanilla
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:37:48Z
btw i have been playing with a icecube freeze skin since that came up in some conversation here
11:37
and i did not get used to it yet
11:38
tho you gotta count in that i basically rq tw.
11:38
changing stuff is always tricky
Avatar
Avatar
Sorah
yes there is no logical reason to not give a option to get the old look back
For HUD? Tell me which... The hearts that show ur ddrace life?
Avatar
Avatar
Jupstar ✪
For HUD? Tell me which... The hearts that show ur ddrace life?
ye my bad i meant the stars while in freeze and the sword
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:39:38Z
@Learath2 yo the int padding is basically useless isnt it? if i pad 0x08 with 3 null bytes i still end up with decimal 8 in the end dont i?
Avatar
Avatar
[quakenet] ChillerDragon
@Learath2 yo the int padding is basically useless isnt it? if i pad 0x08 with 3 null bytes i still end up with decimal 8 in the end dont i?
Yes. But that is what the original snapshot had to begin with before compression
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:40:45Z
so i use the padded size to count the amount
11:40
like the snap item payload size
11:40
is the uncompressed?
Avatar
I don't remember and I don't have my tablet with me to check
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:41:19Z
so i can do some getint and everytime i do a getint i increment my red_bytes variable by 4?
11:41
ok ill give some tries
11:41
i really do appreciate helping me!
11:41
its so cute <3
11:41
you*
11:41
omg
Avatar
I think the size of the snapshot is given uncompressed and the crc is also calculated from the uncompressed version
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:42:13Z
i mean the individual snap item sizes
Avatar
Crc is the Data of all items Combined
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:42:24Z
like gamedata obj being size 3
11:42
is that 3 * 4 bytes compressed or uncompressed?
11:42
o helo swarfi
11:43
nodelsuf
Avatar
Avatar
[quakenet] ChillerDragon
is that 3 * 4 bytes compressed or uncompressed?
That is definitely uncompressed
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:46:03Z
interesting
11:46
is that so obvious and im being weird minded or is that something that could be mentioned somewhere?
11:47
so me splitting it in lines of 4 bytes suddenly makes less sense huh? @Learath2
Avatar
It is pretty obvious but as I said I spent way too much time in this codebase, so maybe it's not
Avatar
Avatar
[quakenet] ChillerDragon
so me splitting it in lines of 4 bytes suddenly makes less sense huh? @Learath2
Well I thought you were working with decompressed data, not just raw packets
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:48:17Z
ye
11:48
i like it raw
11:48
raaaaaaaaaaaawr
Avatar
Raw packets you'll have to just split some other way
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:49:08Z
ye
11:49
migh split it in 2 byte rows 🤷
Avatar
Deleted items are 1 byte each
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 11:58:59Z
1 byte? o.O is that only their id then i assume?
11:59
wait but what if you have more than 64 snap items their id should exceed 1 byte?
Avatar
Avatar
GitHub
Click to see attachment 🖼️
This should still be picked up I think
12:35
just w/o accounts
Avatar
Lol why rq deen :/. Can also provide optional accounts
12:42
Without any new features
12:42
No archivements etc
Avatar
No balls feelsbadman
Avatar
Avatar
Jupstar ✪
Lol why rq deen :/. Can also provide optional accounts
As I said, everyone has different imagination for what s2 is supposed to be. I don't have time for even 10% of that and the other half would be unhappy with the result
Avatar
Mh
13:11
10% Sounds good to me
13:12
Die season 3 another 10%
Avatar
Avatar
murpi
This should still be picked up I think
what value is it without accounts? you can just reset someone else's rating then
Avatar
Avatar
[quakenet] ChillerDragon
1 byte? o.O is that only their id then i assume?
1 int*
13:32
The context DISCORD is a voice over IP (technology that allows users to chat via their microphone and/or webcam over the Internet) and instant messaging service, in which users can create servers, text, voice and video rooms. The service is published by DISCORD INC, a company based in the United States.
13:33
Get rekt nsa front
Avatar
I mean why is the whole accounts idea canceled now. Just clarify to people that we only get accounts. That would be a huge change already. Dont throw the whole idea out of the window because of peoples expectations
Avatar
Avatar
deen
what value is it without accounts? you can just reset someone else's rating then
we could start collecting data how people would rate each individual map after finish
13:38
AFAIK the novice map pool is quite unbalanced
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 13:47:33Z
yo @Learath2 do my colors make sense to you? https://zillyhuhn.com/cs/.1668692677.png
13:47
it sadly put the start tick into the flags :(
13:48
i feel like my code parses the bytes as you described and yet the result does not match my expectation
Avatar
Avatar
Stepfunn
I mean why is the whole accounts idea canceled now. Just clarify to people that we only get accounts. That would be a huge change already. Dont throw the whole idea out of the window because of peoples expectations
If we just add accounts and reset all points to 0, many players will be unhappy
13:50
they expect large changes, which we are not able to provide yet
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 13:50:18Z
but that was never your idea deen was it?
Avatar
Avatar
[quakenet] ChillerDragon
yo @Learath2 do my colors make sense to you? https://zillyhuhn.com/cs/.1668692677.png
Hm, you seem to unpack the first item and the headers just fine
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 13:50:30Z
i thought both systems stay
13:50
nono lerato
13:50
look at the payload of the first item
13:50
the very first payload byte is 0x00
13:50
which should be the gamestart tick
13:51
and that should never be 0x00
13:51
but yea up until there it also looks good to me
Avatar
Oh, you do seem 1 byte off, hm
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 13:51:51Z
yes!
13:51
but what is that one nullbyte
Avatar
Let me take a quick thinking session about it
Avatar
[quakenet] Ryozuki BOT 2022-11-17 13:54:51Z
chiller document ur findings
13:55
will be useful for my rust port
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 13:55:36Z
i try :C
Avatar
[quakenet] Ryozuki BOT 2022-11-17 13:57:07Z
i have teeint
13:57
im doing teeman
Avatar
That null right there is the ID
Avatar
[quakenet] Ryozuki BOT 2022-11-17 13:57:12Z
and then teeprot
13:57
my rustyman doesnt work well with tw cuz tw huffman has quirks
13:57
eof symbol etc
13:57
so i made teeman
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 13:58:41Z
@Learath2 so i unpack 2 integers? one for type and one for id?
Avatar
i guess time to major in cs to become a ddnet dev monkaS
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 13:58:54Z
because heinrichs doc say that type and id share one 32 bit int
Avatar
[quakenet] Ryozuki BOT 2022-11-17 13:59:06Z
lower 16 bit and upper 16
13:59
iirc
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 13:59:10Z
yes
Avatar
I honestly don’t know why we do this, but it seems when creating the delta we separate them again
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 13:59:40Z
wat
Avatar
[quakenet] Ryozuki BOT 2022-11-17 13:59:45Z
i also notice a lot of "size" variables reprsented with "int" and not "unsigned int" or "size_t"
Avatar
snapshot.cpp:L322 and L323
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:00:05Z
whcih codebase and tag?
14:00
vanilla master?
Avatar
Avatar
[quakenet] Ryozuki
i also notice a lot of "size" variables reprsented with "int" and not "unsigned int" or "size_t"
This is tw legacy, I prefer uints too but I think heinrich made some argument that I couldn’t argue against 😛
Avatar
Avatar
[quakenet] ChillerDragon
vanilla master?
ddnet master is all I have on this ipad, sorry. That’s the reference
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:00:58Z
if we would rewrite in bash there would not be any confusion about int vs unsigned int
14:01
all good i just gotta know xd
14:01
yea i see
Avatar
[quakenet] Ryozuki BOT 2022-11-17 14:01:37Z
coding on ipad?
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:01:42Z
gigachad
Avatar
Why on earth do we store type and ID together but send it over the network as 2 ints idk
Avatar
[quakenet] Ryozuki BOT 2022-11-17 14:01:57Z
idk
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:02:03Z
so heinrichs docs are trap?
14:02
cuz code is trap?
Avatar
Avatar
[quakenet] Ryozuki
coding on ipad?
At a lecture, so I only took my ipad with me
Avatar
[quakenet] Ryozuki BOT 2022-11-17 14:02:28Z
focus on the lecture
14:02
kek
Avatar
Ddnet master is on here incase sth breaks majorly while I’m on vacation 😄
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:02:35Z
was about to say it
14:03
vacation from your dayjob ddnet? xd
Avatar
Avatar
[quakenet] Ryozuki
focus on the lecture
Doesn’t matter. I already know the material, just here so I don’t end up watching 8 hours of youtube at home instead
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:03:15Z
pro
14:03
go send picture from your university
14:04
i wanna see where u vibe rn
14:04
go dox
Avatar
Maybe after the lecture. I’m too socially inept to take pix during lecture
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:04:42Z
nob
14:04
inept
14:04
thats not even a word
14:05
maybe it is not the id
Avatar
It is probably the id
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:05:23Z
maybe there is some nulltermination
14:05
because look at the end tick
14:05
it shouldnt be 0 either
14:05
even if i shift them
14:05
wait lemme send update
14:06
14:06
i just skip the 0 byte now
14:06
starttick is good now!
14:06
flags i guess too
14:06
but end tick wasnt 0 i think lemme check client
Avatar
End tick 0 sounds fine to me
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:07:07Z
nvm
14:07
yes u rite
Avatar
That 0 is def the id
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:07:11Z
14:07
thats exactly what the client gets
14:07
pog
14:07
lemme try to put these 100 lines of spagehtii code into a loop so i can parse more than 1 snap item xd
14:07
brb in 2hours
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:12:58Z
14:13
at least it did not crash 🤷
14:13
it looks okayish right?
14:14
could almost be real snap data
14:14
i see my aim 0 10 i see my pos 177 272
14:14
HOLY SHIT THIS LOOKS GOOD
14:15
thank you so much @Learath2 drinks are on me when we meet
Avatar
Fix the type and id thing and you are golden
14:16
That 0 is definitely the id 😄
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:16:23Z
but its 0 for all?
14:16
is that correct?
Avatar
You only have 1 character
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:16:37Z
ah ye
14:16
it is
14:16
i somehow thought ids are uniq
14:16
but only unique per type huh?
Avatar
Gamedata and other stuff like that have only one instance so id 0 always
14:17
Yeah ids are unique per type
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:17:18Z
but getting the id of the first 16 bits of the type byte also works :D
14:17
lemme join a player and check
Avatar
Avatar
deen
they expect large changes, which we are not able to provide yet
Create new fork or new repo and start doing smth cool with accounts on free time, when smth will be done, say: "Look what we got, we will reset points BUT you will get cool <feature name>" There were a lot of developers who wanted accounts and left this game because of ddnet's progress procrastination, maybe some new developers or even old ones will hear the news and help with development 🧐
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:17:58Z
14:18
yes you are rite lerato
14:18
mr 0 becomes mr 1
14:18
and the upper 16 bits stay 0
Avatar
Avatar
[quakenet] ChillerDragon
but getting the id of the first 16 bits of the type byte also works :D
It can't work properly, the type will always have 00 00 significant nibble
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:18:20Z
NIBBLE hihi
14:18
so bug in heinrich dox?
Avatar
Idk, show docs?
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:19:15Z
Avatar
Avatar
Anime.pdf
Create new fork or new repo and start doing smth cool with accounts on free time, when smth will be done, say: "Look what we got, we will reset points BUT you will get cool <feature name>" There were a lot of developers who wanted accounts and left this game because of ddnet's progress procrastination, maybe some new developers or even old ones will hear the news and help with development 🧐
every developer has a different interpretation of what accounts should do, mostly not compatible
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:19:21Z
Some Teeworlds stuff in Rust. Contribute to heinrich5991/libtw2 development by creating an account on GitHub.
14:19
or is that deleted ones?
14:19
maybe thats deleted only
Avatar
Avatar
deen
every developer has a different interpretation of what accounts should do, mostly not compatible
Thats what issues and pull requests are for🥸
Avatar
No docs correct, ur reading the wrong part...
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:20:05Z
classic
14:20
xd
14:20
its deleted keys right?
Avatar
Avatar
Anime.pdf
Thats what issues and pull requests are for🥸
Milestones and etc
Avatar
Look at how he describes deltas. There he does tell you it's 2 ints separately for type and id
14:20
Deletions are by key, yes
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:20:32Z
omagawd xd
14:20
docs cant safe me
14:20
yes its so well documented haha
Avatar
Avatar
Anime.pdf
Thats what issues and pull requests are for🥸
I can't even keep up with reading the comments on season 2, let alone start implementing anything, so no chance
Avatar
I just finished reading the backlog
14:22
what Learath2 says, I think you're reading the wrong part of the docs
14:23
but if you do find errors, please PR fixes 🙂
14:23
particularly fancy is this item btw:
14:23
_zero is a padding field which must be zeroed by any snapshot delta writer and ignored by any snapshot delta reader.
14:23
as part of snapshot deltas
Avatar
Ignoring the degenerate content. I spotted a unicode truncation error in the wild \o/. It's not only us
Avatar
Avatar
deen
I can't even keep up with reading the comments on season 2, let alone start implementing anything, so no chance
Just start with the basics, i saw most devs liked matodor's server<->client interactions, after common registration/login are done you can start building more with the basement you already have
Avatar
Youtube community posts truncate unicode wrong
Avatar
Avatar
Anime.pdf
Just start with the basics, i saw most devs liked matodor's server<->client interactions, after common registration/login are done you can start building more with the basement you already have
No need to rush and make everything parallel
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:25:14Z
o helo heinrich
Avatar
Avatar
Anime.pdf
Just start with the basics, i saw most devs liked matodor's server<->client interactions, after common registration/login are done you can start building more with the basement you already have
The technical part we probably can agree on, but it seems we all have different expectations of what even registration entails
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:25:19Z
sori for spammin da baklok
Avatar
Avatar
Anime.pdf
Just start with the basics, i saw most devs liked matodor's server<->client interactions, after common registration/login are done you can start building more with the basement you already have
feels weird having the same conversation again in every channel
justatest 1
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:26:01Z
i do first blame the docs before i blame my self to keep my confidence up thats what keeps me going haha
14:26
@heinrich5991 if you need help on understand the snaps let me know :p
Avatar
Avatar
Learath2
The technical part we probably can agree on, but it seems we all have different expectations of what even registration entails
Well, that sucks😄
Avatar
proper way is to do it at grapheme boundaries
Avatar
Heinrich and deen seem to want something extremely seamless. Mods and I seem to want some sort of verification with it
Avatar
Avatar
Learath2
Youtube community posts truncate unicode wrong
this one
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:27:14Z
wat is grapheme boundaries
Avatar
what a user calls a character
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:27:45Z
is that a discord reply or what do you mean
14:27
i dont get it
Avatar
Avatar
[quakenet] ChillerDragon
wat is grapheme boundaries
It is a discord reply to my broken unicode truncation example in youtube
Avatar
Avatar
Learath2
Ignoring the degenerate content. I spotted a unicode truncation error in the wild \o/. It's not only us
Rust
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:28:09Z
a
14:28
ty
Avatar
I think in rust its ub to have invalid utf8 in a str
Avatar
how many characters is this?
Avatar
So that would be hard in rust
Avatar
users would say 1
Avatar
Probs 2
14:29
Emojis are 2 usually
Avatar
no, usually one
14:29
but the family one is amazingly bloated
Avatar
Ah i mean codepoints
14:29
Or graphemes
14:29
Or jdk
14:29
Idk the words
Avatar
one grapheme, many codepoints
14:29
yo uprobably mean utf-16 code units
Avatar
emojis are the reason why some of the java developers woke up and found out that char isn't actually one full character
14:30
and mysql
14:30
and js
14:30
and dotnet
Avatar
When i copied the chinese flag emoji to vim it ahowed me 2 characters that say C N
Avatar
yes
Avatar
This is why everyone gets unicode stuff wrong. Sticking to the terminology in the unicode specs is really your best bet
Avatar
flags are a special case
14:30
because unicode didn't want to say which flags exist
14:31
so they just did the latin alphabet and said "encode your flag according to this country standard"
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:31:44Z
lmao political encoding
Avatar
[quakenet] Ryozuki BOT 2022-11-17 14:31:47Z
also flags over ssh over tmux over vim break my vim display quite a bit
14:31
i noticed this when putting flags on my next gen web
Avatar
sounds like something is broken
14:32
in between
Avatar
[quakenet] Ryozuki BOT 2022-11-17 14:33:00Z
yeah
Avatar
have you configured utf-8 locales on your server?
Avatar
[quakenet] Ryozuki BOT 2022-11-17 14:33:14Z
im sshing to my home pc
14:33
but yeah
14:33
its my gentoo
Avatar
my commit messages be like: https://whatthecommit.com/
Avatar
[quakenet] Ryozuki BOT 2022-11-17 14:33:39Z
LANG=en_US.utf8
14:33
LC_CTYPE="en_US.utf8"
14:33
LC_NUMERIC="en_US.utf8"
14:33
LC_TIME="en_US.utf8"
14:33
LC_COLLATE="en_US.utf8"
14:33
LC_MONETARY="en_US.utf8"
14:33
LC_MESSAGES="en_US.utf8"
14:33
LC_PAPER="en_US.utf8"
14:33
LC_NAME="en_US.utf8"
14:33
LC_ADDRESS="en_US.utf8"
14:33
LC_TELEPHONE="en_US.utf8"
14:34
LC_MEASUREMENT="en_US.utf8"
Avatar
mfw spam
Avatar
[quakenet] Ryozuki BOT 2022-11-17 14:34:03Z
LC_IDENTIFICATION="en_US.utf8"
14:34
LC_ALL=
14:34
discord bot so slow
14:34
its rly easy to make the bot detect new messages under a ms and group them as a single chat with newlines to discord
14:34
a good feature for the bot
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:37:17Z
git commit -m "$(curl https://whatthecommit.com/ --silent | grep -F '<p>' | cut -d '>' -f2)"
14:37
^ commit with one of those phrases in one command @fokkonaut xd
14:38
requires unix tooling tho :p
Avatar
my everyday routine
Avatar
[quakenet] Ryozuki BOT 2022-11-17 14:39:46Z
i just put "ok" or "progress" or "fix"
14:39
i should alias it
14:40
"ok"
14:40
and commits ok
14:41
Avatar
Ryozuki: is en_US.utf8 correct?
14:41
it's en_US.UTF-8 for me
Avatar
[quakenet] Ryozuki BOT 2022-11-17 14:48:45Z
thats my doubt
14:48
but on gentoo it looks like its like mine
14:48
idk
14:48
@Learath2 ?
Avatar
It’s en_US.utf8 for me too
Avatar
[quakenet] Ryozuki BOT 2022-11-17 14:53:34Z
print("{:08b}", your_byte);
14:53
rust is poggers
14:53
ez binary print
14:54
10110001 00001000 00101010 01101110 00000000
Avatar
I think c++xy or cxy had it as well
Avatar
[quakenet] Ryozuki BOT 2022-11-17 14:54:51Z
what is cxy
Avatar
c20 or sth
14:57
or c++17
14:58
idk
14:58
the version
14:59
ah, maybe not
14:59
can't find it on cppreference.com
Avatar
[quakenet] ChillerDragon BOT 2022-11-17 14:59:20Z
yes i use that
Avatar
I remember reading a proposal for it in C20 but iirc it didnt make it in
Avatar
I like how extensible rust's version of printf is
15:08
makes printf debugging a lot easier 🙂
15:09
but don't tell Learath2 I sometimes don't use debuggers
15:10
btw @Learath2; https://github.com/ddnet/ddnet/issues/5411#issuecomment-1315788190 you don't have time to have an opinion on it or don't want to have an opinion on it?
Avatar
@deen i get that you want to make the majority of players happy but i feel like just starting off with something basic would make a lot of people happy non the less. I had a really nice idea where we could maybe have a little talk about the season 2 plans. Give the community a better insight in how much work the features are that they ask for. Would help people understand and probably value the small features way more
Avatar
Avatar
heinrich5991
btw @Learath2; https://github.com/ddnet/ddnet/issues/5411#issuecomment-1315788190 you don't have time to have an opinion on it or don't want to have an opinion on it?
I didn't have time for it, but I'll try to give one tonight
15:14
I think it'll be along the lines of I'm not sure whether we can realistically replace such a core part of the code with rust, but before saying that I'll need to take a look at how we handled the minimum rust version requirement
Avatar
Avatar
heinrich5991
btw @Learath2; https://github.com/ddnet/ddnet/issues/5411#issuecomment-1315788190 you don't have time to have an opinion on it or don't want to have an opinion on it?
Can you also make sure no sys calls in main thread at the time of implementing. Would be really 👍
Avatar
Avatar
Jupstar ✪
Can you also make sure no sys calls in main thread at the time of implementing. Would be really 👍
Hm, so move the networking to a new thread altogether? Is that really beneficial I wonder with the requirement of an introduction of a new synchronization point
Avatar
A sys call is also kinda sync point xd
15:16
So yes worth it
Avatar
I wanted to see if it actually helped once upon a time but the coupling was too tight for me to untangle for a quick test
Avatar
I tested it already
15:16
And was worth it
15:17
Just listened with select and changed a atomic bool
15:17
On windows
15:17
Tbf
Avatar
can you remind me what "worth it" was?
Avatar
And you got better frametimes? Or what improved?
Avatar
I remember we talked about it before
Avatar
20-30%
Avatar
20-30% of what?
Avatar
If 100%
15:18
Of
Avatar
frame times? input delay?
Avatar
I dunno search the ddnet issue
Avatar
map loading?
Avatar
If the total program execution time
Avatar
I can imagine it improving frametimes
Avatar
All the time
15:19
Yeah ofc also more fps xd
Avatar
I don't understand how we can have 30% run time reduction if the client is open for a user-determined time
15:19
what did you measure?
Avatar
It's a profiler
15:19
Just look inside the issue
Avatar
link?
Avatar
Cmon sucks on mobile
15:20
Search recvfrom
Avatar
So you did select on another thread and signalled the main one to do a recvfrom only if the boolean flag is set?
15:22
I guess that should be easy enough to test out
15:23
Oh I already commented some sane suggestions on that issue 😛
Avatar
[quakenet] Ryozuki BOT 2022-11-17 15:25:03Z
:D
Avatar
Avatar
Learath2
So you did select on another thread and signalled the main one to do a recvfrom only if the boolean flag is set?
Yes
Avatar
Avatar
Jupstar ✪
Can you also make sure no sys calls in main thread at the time of implementing. Would be really 👍
so you still did syscalls on the main thread, but only when it was signalled
15:26
sounds comparatively easy to do
15:27
yea, the rust in a core component sounds annoying indeed
15:28
I'm not sure what to implement with rust. this is something that I wanted to do for a long time, and it seems like a good fit for rust, but I agree that we haven't even had a release with rust yet
Avatar
It is still a tad absurd to me that recvfrom is so slow on windows. I might actually dig into that sometime
15:30
when do you start working at microsoft? ^^
15:30
you could fix this perf issue
15:30
No we release ddnet kernel driver to monkeypatch it
Avatar
oof
Avatar
The ultimate spaghetti
Avatar
[quakenet] Ryozuki BOT 2022-11-17 15:32:08Z
ddnet has linux first class support
15:32
ddnet second class
Avatar
Avatar
heinrich5991
I'm not sure what to implement with rust. this is something that I wanted to do for a long time, and it seems like a good fit for rust, but I agree that we haven't even had a release with rust yet
Maybe the http module? I did fail to finish the curl multi thing again, might aswell
Avatar
[quakenet] Ryozuki BOT 2022-11-17 15:32:12Z
based
15:32
windows
15:32
*
15:32
yeah i also thought about the http module
Avatar
what's missing from the curl multi thing again?
15:33
wasn't it basically finished?
Avatar
I mean I did technicay finish the multi thing but I couldn't get it to compile on windows, then I got dragged into real life busyness
15:33
Technically*
Avatar
ah
15:34
so fixing it on windows is the remaining step
15:34
I'll pretend to take a look at it and forget about it
Avatar
Avatar
heinrich5991
I'll pretend to take a look at it and forget about it
Sounds perfect
Avatar
errors look like straightforward type errors to me
15:37
something like atomic int not supporting = operator for ints
Avatar
Which makes no sense really 😄
Avatar
[quakenet] Ryozuki BOT 2022-11-17 15:37:42Z
emojis look so funny in terminal
Avatar
I think atomic ints only support .store and .load, no?
15:39
ah, apparently not, in C++
Avatar
They have proper overloads
Avatar
hmm
15:39
not in MVSC++? ^^
Avatar
Anyway, I couldn't figure it out by looking and I really didnt want to set up visual studio again so I gave up on it that night
Avatar
wait, I think I have a windows vm
15:40
let me try a minimal example
Avatar
Gtg for a bit. I really need to finish this proof
15:41
@heinrich5991 fwiw I thought the issue was with enum type but as said, didnt debug further
Avatar
alright
15:41
see you 🙂
15:41
good luck
Avatar
[quakenet] Ryozuki BOT 2022-11-17 15:47:37Z
heinrich5991: does the huffman from tw us numbits 0xFFFFFFFF to represent an unset value?
15:47
or are they actual bits
15:47
see, if only they were using options
Avatar
I don't remember the huffman impl from ddnet that well
15:51
let me take a look
Avatar
[quakenet] Ryozuki BOT 2022-11-17 15:51:29Z
code has some if(pNode->m_NumBits)
15:51
so its hard to know if they are to know if num_bits is not 0 or is the unset value 0xfffffff
Avatar
NumBits of 0xffff_ffff seem to mark a "to be set" value
15:52
NumBits of 0 seem to be for non-leaf nodes
Avatar
[quakenet] Ryozuki BOT 2022-11-17 15:53:06Z
isnt it better to check if a node has leafs than using num_bits?
Avatar
shrug
15:54
either is fine, I guess
15:54
they use 0xffff_ffff as a marker value
Avatar
Avatar
Learath2
@heinrich5991 fwiw I thought the issue was with enum type but as said, didnt debug further
maybe ERROR is defined in some WINAPI header somewhere?
15:55
I cannot reproduce in my minimal example
Avatar
Avatar
heinrich5991
maybe ERROR is defined in some WINAPI header somewhere?
this would be supported by the fact that it only complains about lines containing ERROR
15:57
but not for m_State = RUNNING e.g.
Avatar
Avatar
heinrich5991
so you still did syscalls on the main thread, but only when it was signalled
tbh i generally think put as much in threads as possible main thread must be clean
Avatar
Windows.h defines a macro ERROR as 0 (edited)
Avatar
tripple A game ddnet needs it
Avatar
Just #undef ERROR after including Windows.h?
Avatar
Avatar
Jupstar ✪
tbh i generally think put as much in threads as possible main thread must be clean
if this improves performance (and not just for newest computers), sounds good
Avatar
Avatar
Robyt3
Just #undef ERROR after including Windows.h?
I don't think we should mess with windows.h there
Avatar
oh no
15:59
not this again xD
15:59
our main target is new computers
Avatar
no, I also want to run ddnet on my computer
Avatar
its new
16:00
enough
16:00
i bet it has at least 4 threads
16:00
a network thread doesnt run all the time
16:00
so it can easily share resources with other threads like sound
Avatar
it has extra resource cost, but it's probably not that bad
16:01
memory, I mean
Avatar
true
Avatar
spawning threads was slow on windows
Avatar
at least on linux stack is lazy loaded for example
Avatar
but it's only a one-time cost
Avatar
i remove 2 skins then we have traded the perf lost ^^
16:02
of spawning
Avatar
^^
Avatar
Idk if it's the best idea to yield so often to the whims of the kernel scheduler
Avatar
i dunno if u arent using win98
16:03
i guess they designed to be able to
Avatar
It might not be as good for peformance as you imagine. What if we yield on the main thread, the network thread doesnt get scheduled and now we are stuck?
Avatar
why would u even yield on the main thread
Avatar
Avatar
Jupstar ✪
i guess they designed to be able to
Don't be so sure. I read about a chrome performance issue just 3 years ago that had to do with unlucky thread priorities
Avatar
yeah but dunno
16:04
chrome probs spawns 100 threads
Avatar
Avatar
Jupstar ✪
why would u even yield on the main thread
Well to acquire a lock e.g.
Avatar
i wouldnt do that tbh
16:05
not for network
16:05
not on client
16:05
only fetch data if there is data
Avatar
Well the main thread does have to sync stuff at some points. Otherwise everything would be UB
Avatar
have you seen the problem description of your curl-multi PR? @Learath2 windows.h defines ERROR. hence your m_State = ERROR fails because it's m_State = 0
Avatar
Avatar
Learath2
Well the main thread does have to sync stuff at some points. Otherwise everything would be UB
yes thats true, but only if its certain there is data
Avatar
Avatar
heinrich5991
have you seen the problem description of your curl-multi PR? @Learath2 windows.h defines ERROR. hence your m_State = ERROR fails because it's m_State = 0
Aha, that makes sense. I will take a look after I finish this chapter of signal analysis. I'm learning about the discrete fourier transform for the 6th time
Avatar
e.g. on network side i'd never put a select inside the mutex that the client calls m.lock shareddata = gotdata m.unlock same on client
16:07
if it then yields then rip but its still better than whatever the windows kernel is doing
Avatar
Anyway, point is it's not always the best idea to spawn a billion threads. Sometimes it might make sense to hog the cpu selfishly so the kernel doesn't affect our performance
Avatar
i'd try to never go beyond the thread count of your CPU
Avatar
As with all things parallelism related, we probably should guide that decision solely on testing, perhaps on a handful of computers with differing configurations
Avatar
yeah, but idc about dual cores 1990 pcs
16:09
if its works for the rest
Avatar
Because theory really might not align with testing sometimes
Avatar
I have like a 2007 dual core at home
Avatar
where is your window
Avatar
Even for quad cores. What if a background application is hogging some of the cores and windows decides we should execute on only 2 cores?
Avatar
throw it out
Avatar
Avatar
Learath2
Even for quad cores. What if a background application is hogging some of the cores and windows decides we should execute on only 2 cores?
tbh its not really the core count. old pcs werent designed to be so extremly multi threaded so minimizing sync points makes sense indeed
16:10
and ofc all new threads create new sync points (probably, if u use them)
Avatar
Anyway, just saying it needs testing. Spamming threads isn't always a great answer
Avatar
well what i generally mean is basically move out network, sound, gpu calls, loading stuff & if it would not be ddnet then probs also some floating point physics (edited)
16:14
and funnily enough with vulkan i'd move some backend stuff back to the main thread xd
Avatar
[quakenet] Ryozuki BOT 2022-11-17 16:21:14Z
my LUT fails to find stuff
16:21
f
16:21
teeman failed me
16:21
fg
Avatar
everytime u write over quakenet i think its chillerdragon xD
16:21
bcs i see the fat [quakenet] first
Avatar
[quakenet] Ryozuki BOT 2022-11-17 16:22:11Z
xd
16:22
this is why i like explicit things
16:22
if(pNode->m_NumBits) is trolling me
Avatar
Get rekt nobo, learn2read
Avatar
@Learath2 when do you become a kernel dev finally?
Avatar
I should find something to do in the kernel
16:30
Maybe contribute to the ntfs driver? 😛
Avatar
register signals with user pointers xd
Avatar
Avatar
Learath2
Maybe contribute to the ntfs driver? 😛
yes pls
16:31
if the ntfs is in a "cleanup" state its readonly i dunno the term, but its when windows wants to check your disk
16:31
very annoying xD
Avatar
Ngl, I actually am confused at how huge the ntfs implementation is, like wtf is it doing?
Avatar
i did ntfsfix then, and windows didnt work anymore xD
Avatar
It has enough LoC to fit ddnet in it
Avatar
wtf
16:32
why even
16:32
its not firmware is it?
16:32
only the ntfs itself
16:35
rust ate all my disk space shit xD
16:35
ur fault ryo
Avatar
It’s just supposed to be handling ntfs stuff, I honestly don’t know, maybe ntfs is insanely complex
Avatar
[quakenet] Ryozuki BOT 2022-11-17 16:36:25Z
do cargo clean
Avatar
issou discord having issues
Avatar
[quakenet] Ryozuki BOT 2022-11-17 17:03:07Z
my bit_count overflows
17:03
and rust panics
17:03
i wonder if it happens on cpp
17:03
huffman, decompress
17:03
doing the nearly identical code as cpp
Avatar
french authority said that discord has to pay 800k€ cuz they don't respect RGPD
17:03
sue
Avatar
not like it's a lot of money to discord, but it's not reasonable
Avatar
Why ppl care about corpoa
18:28
Corpos
Avatar
jao's hairy kebab 2022-11-17 19:50:40Z
eat the rich
Avatar
Avatar
Ryozuki
Why ppl care about corpoa
Because we use their products and some people work for them
Avatar
Map challenges are a way to replay maps with a handicap for extra points. They would bring some new gameplay depth, breathe some new life into old maps as well as make novice maps more fun for better players. They're also compatible with existing maps and ranks.
  • For completing each challenge, players get points. The amount will depend on the difficulty level of the challenge:
  • easy 1pt
  • medium 3pt
  • hard 7pt
  • If a player has finished a map in every challenge mode tha...
Exported 782 message(s)