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-06-27 00:00:00Z and 2022-06-28 00:00:00Z
Avatar
36069b2 M Mirage, M Maui Wowie 2, M Maui Wowie - ddnet-maps
06:19
@Ryozuki franzj_kek
Avatar
gigachad
06:20
but probs fake
Avatar
@Ryozuki I am tempted to switch to rust for what I do... there's some cool crates https://crates.io/crates/libbpf-sys
09:07
& since I have to do C wrapping in python & ik in python it's pain in ass, I'm thinking about learning rust
09:07
rust always there.. (edited)
Avatar
cool snowflake thingies u got going on
09:10
Did u expect another answer from me? TOOBASED
Avatar
no, just that when I have to mess with smth I always see that rust is a solution
Avatar
See #5221. I expected to get a reminder when the timer expires by the bot posting another comment or something to that effect.
Avatar
Avatar
ReiTW
wot
they like
09:19
made the freeze put snowflakes
09:19
instead of onion rings
09:20
that's good idea
Avatar
@ReiTW
Avatar
@cyberFighter yeah find it cool
09:22
only that bar hope u can disable it
Avatar
i like it too
Avatar
Avatar
ReiTW
only that bar hope u can disable it
i think its straight up impossible
Avatar
ah ig it replaces the stars (edited)
Avatar
i think u can hide for urself with opacity settings but its not working yet
09:24
ah nvm its only when ur in freeze
09:43
[ddnet/ddnet-libs] New branch created: pr-new-libs-20220627
09:44
Should probably wait until after 16.2 release with them.
Avatar
Avatar
cyberFighter
ah nvm its only when ur in freeze
xD I see a request comming for opacity outside of freeze
Avatar
21:9
10:39
@Jupstar βœͺ is there 21:9 in ddnet?
Avatar
Avatar
c0d3d3v
xD I see a request comming for opacity outside of freeze
why not just edit the hud itself then
10:44
like, the hud image
Avatar
451644f Update language files for 16.2-rc4 - def- b6ca853 Merge #5508 - bors[bot]
Avatar
94d0774 curl 7.81.0 -> 7.84.0 - def- 5178636 FFmpeg 5.0 -> 5.0.1 - def- e14a4ff freetype 2.11.1 -> 2.12.1 - def- 0e433f3 SQLite3 3.37.2 -> 3.39.0 - def-
Avatar
6fe1a63 FFmpeg 5.0 -> 5.0.1 - def- 578754c freetype 2.11.1 -> 2.12.1 - def- d31aada SQLite3 3.37.2 -> 3.39.0 - def-
11:36
ea513e5 Update ddnet-lib-update.sh - def-
Avatar
Should probably wait until after 16.2 release with them. Vulkan 1.3.204.1 -> 1.3.216.0 curl 7.81.0 -> 7.84.0 FFmpeg 5.0 -> 5.0.1 freetype 2.11.1 -> 2.12.1 SQLite3 3.37.2 -> 3.39.0

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 and out of bounds ...
Avatar
i want to ask here before i create an issue. there is a bind for joining team with dummy and lock it. how about a shortcut for joining an empty server with low ping, vote for a pre specified dummy map, joining dummy, joining team and lock. cause those steps i do manually every time. or as a quick win: is is possible to put a condition on the "run on join command" to execute the dummy setup bind only when joining dummy servers
14:11
another idea: have an option that you can checkmark (but default is opt out) "automatically connect dummy and join empty team on dummy servers"
14:14
what do you think? im already using the bind and maybe its enough, i mean after all you just press one button and are with dummy in locked team
14:20
is there a workaround for running the "dummy setup" bind only when joining dummy servers? and is there an f1 command for connect dummy as well, so my manual steps would be one less? (one bind for connecting dummy and joining empty team together and lock it) (edited)
Avatar
This allows a larger range of PNGs to be loaded while still maintaining backward compatibility with older clients by annoying the user. This warning can be enabled by the warn-pnglite-incompatible-images key in the https://info2.ddnet.tw/info JSON, if the key is not there or the JSON hasn't been obtained yet, the warning is disabled. Since the JSON is cached across restarts, it'll be effective for initially loaded images from the second start.

Checklist

  • [x] Tested the cha...
Avatar
This allows future versions of the skin DB to contain pnglite-incompatible PNGs. Fixes #5407.

Checklist

  • [ ] 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 and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change w...
Avatar
@heinrich5991 do we need 5520 if we are already getting 5521?
14:58
I can just not serve incompatible pngs on skins1
Avatar
Avatar
cauldron
what do you think? im already using the bind and maybe its enough, i mean after all you just press one button and are with dummy in locked team
I guess using a normal bind is enough. It is not like you would waste a lot of time not having such a bind or not having a game feature for exactly that case
Avatar
@Learath2 I answered in the PR
Avatar
@heinrich5991 should I ask for more reviewers for https://github.com/ddnet/ddnet/pull/5210 ?
Avatar
yea sorry, I will review
Avatar
@c0d3d3v so did we end up sending the input back to the client btw? Is targetx and targety still being sent?
Avatar
Avatar
Learath2
@c0d3d3v so did we end up sending the input back to the client btw? Is targetx and targety still being sent?
targetx and targety is still there
15:28
no other inputs
Avatar
I briefly saw that the PR increases the number of game #includes, we'll probably have to come up with a solution that doesn't do it
15:28
game #includes in engine
Avatar
Avatar
c0d3d3v
targetx and targety is still there
Can you give me a run-down on why this has to be sent back? It’s a fairly large amount of extra data
Avatar
The only real good reason is that it improves the target angle other player can see. So you know that the hookline is not correct of other players... Now it is correct, because the calculation uses the same coordinates the server also uses. It could be used in demos to show the cursor possition the player had used... If there are votes against it we could remove it. These values will change a lot, so the diff will always contain not only 0
Avatar
What extra information does the server use that we don’t have on the client?
Avatar
clients get the angle, server gets targetx targety (edited)
15:33
now also clients get targetx targety
15:33
the angle is rounded
15:33
and so wrong
15:34
but only marginal
Avatar
because we don't use the rounded angle serverside, but the x, y coordinates
15:34
?
15:34
angle is only send to clients
15:34
not used on the server
Avatar
yea, sounds like a bug
Avatar
How about increasing the precision for the angle? Would we require 8 entire extra bytes for that?
Avatar
we could also stop sending the angle and only send the x, y coordinates ^^
Avatar
I will look into it....
Avatar
no, don't
Avatar
Avatar
heinrich5991
we could also stop sending the angle and only send the x, y coordinates ^^
This is probably even better
Avatar
this is just thought experiments so far
Avatar
Avatar
heinrich5991
no, don't
Yeah don’t bother, just thinking out loud here
15:36
I guess the ground truth is indeed the target x and y
15:38
Though dropping angle is probably not very easy, we could always send 0 to new ddnet clients and let delta compression get rid of the extra data
Avatar
the basic calculation is float TmpAngle = atan2f(m_Input.m_TargetY, m_Input.m_TargetX); if(TmpAngle < -(pi / 2.0f)) { m_Angle = (int)((TmpAngle + (2.0f * pi)) * 256.0f); } else { m_Angle = (int)(TmpAngle * 256.0f); } this creates values from ~ -402 < 0 < 1204 so it does not even use the complete 32 bit. If we would shift the calculations from 0 to 360° then we could use a lot more precission
Avatar
The only reason I was concerned is that I think it’s like an extra kilobyte of data per snap for a 64p server
Avatar
Avatar
c0d3d3v
the basic calculation is float TmpAngle = atan2f(m_Input.m_TargetY, m_Input.m_TargetX); if(TmpAngle < -(pi / 2.0f)) { m_Angle = (int)((TmpAngle + (2.0f * pi)) * 256.0f); } else { m_Angle = (int)(TmpAngle * 256.0f); } this creates values from ~ -402 < 0 < 1204 so it does not even use the complete 32 bit. If we would shift the calculations from 0 to 360° then we could use a lot more precission
Huh, I wonder why the weird range
Avatar
vanilla teeworlds 0.6
15:42
0.7 uses -180° to 180°
15:42
I made a beautiful graphics here https://github.com/ddnet/ddnet/pull/4972
fixes #4969 fixes #4138 The problem of #4138 can be seen in the following picture: we have a strange angle circle, it was fixed in 0.7. For 0.7 to interpolate correctly between two network packets...
15:43
they did not really thought about such stuff long, I guess
15:43
Back in the days
15:43
Angle probably compresses better then targetx targety
Avatar
But interesting that matricks didn’t just use all the precision available to him in those 4 bytes. I wonder if it was an attempt to get it to compress better
Avatar
who knows what he thought 15 years ago
Avatar
This rounded Angle does also not change so often as targetx targety. You can also see that in the snap updates
15:52
@Learath2 I guess that is max 64 (players) * 2 (x, y) * 4 Bytes = 512Bytes per snap. With probably a lot of leading 0 Bytes because target X, Y also does not get to big. We probably could also only use 2 bytes for each. or are there monitors with more then 32768*2 = 65536 pixel in each direction (edited)
15:55
If we would only use 2 bytes... we could also use the old angle field for new clients xD
15:55
for target x, y
Avatar
then we'd need to decrease the accuracy of input fields on the server to 16 bit
15:57
I guess this doesn't change anythign in the normal configuration
Avatar
Ah thinking about that, I have to test what happens if you zoom out a lot. maybe target x y is not per pixel but per unit. I will test that.
Avatar
it's not per pixel AFAIK
Avatar
then 16 bit is probably not enough (at least if you reallly zoom very far out, what does not happen often)
15:59
I will test it
Avatar
ah
16:00
no, I mean it doesn't change if you zoom out
16:00
I guess that makes it per pixel
Avatar
Jupstar βœͺ 2022-06-27 16:04:31Z
long long double for most atoms in the universe and u are fine
Avatar
just as an aside. I don't know if you're really interested in the bandwidth @Learath2 (I personally do not think these data will get us in trouble, But I'm a Optimizer too) . But we've been sending targetx and targety on the servers for weeks to the clients. So since the merge of the hud... Maybe you could look in the stats if that has made any difference, if we have any useful stats in this regard ^^. (edited)
Avatar
Jupstar βœͺ 2022-06-27 16:05:43Z
if bandwidth would be a problem, we wouldn't send UUIDs xd
Avatar
they are a one time cost basicly
16:06
except the id and type that needs to be send always
16:06
but uuid is 1 byte
Avatar
Jupstar βœͺ 2022-06-27 16:07:07Z
oh i thought they are literaly strings (edited)
Avatar
16 bytes yes... but compressed in delta snapshot
16:07
to 1 byte
Avatar
no, 0 bytes
Avatar
Avatar
Jupstar βœͺ
if bandwidth would be a problem, we wouldn't send UUIDs xd
One time large chunks isn’t bad. But data being sent all the time could be an issue on servers where bandwidth is tight like china
Avatar
changed objects aren't sent
16:07
na not 0
16:07
mh no
16:07
0 is true
16:08
xD
Avatar
Avatar
Learath2
One time large chunks isn’t bad. But data being sent all the time could be an issue on servers where bandwidth is tight like china
Jupstar βœͺ 2022-06-27 16:08:12Z
but also only if all players are active and moving cursor or whatever u talk about rn
Avatar
I was lost
Avatar
Avatar
Jupstar βœͺ
but also only if all players are active and moving cursor or whatever u talk about rn
Yeah, that’s why I’m unsure, I might take a look at a couple servers, see if there is any significant increase
Avatar
Jupstar βœͺ 2022-06-27 16:09:17Z
but tbh, if thats really an issue, just create another VPS instead?
16:09
i mean u dont need to waste
16:09
but most stuff in tw breaks bcs it wasn't thought well enough in the past
16:09
or not breaks, but sucks
Avatar
"just create another VPS instead" has costs
Avatar
Like in china we host 32p servers at some locations, so it can get fairly tight
Avatar
Jupstar βœͺ 2022-06-27 16:11:16Z
what causes most traffic rn?
Avatar
We could also say we don't want the target.x and target.y data. I find the interpolation between the x,y values is nicer than between the angles and they are very precise. On the other hand, we have been able to do without this precision for the last years.
Avatar
Jupstar βœͺ 2022-06-27 16:12:03Z
could just decrease snapshot rate to every 3/4 ticks if its such a bottleneck
Avatar
I guess x y is good because it's the ground truth, as Learath2 says
16:12
that would make the game less smooth, no?
Avatar
Jupstar βœͺ 2022-06-27 16:12:53Z
does that matter a lot in ddrace? maybe for insane it does
16:13
guess for most stuff it wouldn't too much
Avatar
Yeah I think there is no harm in x,y unless we think it might be a privacy issue. We could look into deopping angle too later. I think it’s okay as is for now
Avatar
Avatar
Jupstar βœͺ
does that matter a lot in ddrace? maybe for insane it does
Mh, it might change how movement feels. Which is a nono for a game this precise
Avatar
Jupstar βœͺ 2022-06-27 16:14:13Z
what do we even do to get 14kb/s, is the debug hud accurate?
16:14
for 1 player
Avatar
Avatar
Learath2
Mh, it might change how movement feels. Which is a nono for a game this precise
Jupstar βœͺ 2022-06-27 16:14:35Z
why should movement feel different?
16:14
only if u get laggs it sucks
Avatar
for single player it'd be fine
Avatar
Jupstar βœͺ 2022-06-27 16:14:56Z
other players teleport on movement tho
Avatar
but you'd get input updates for other players later
16:15
that'd look bad
Avatar
Jupstar βœͺ 2022-06-27 16:15:10Z
yeah its like higher ping
Avatar
Avatar
heinrich5991
for single player it'd be fine
Jupstar βœͺ 2022-06-27 16:15:28Z
yeah but i mean, why is it 14kb/s on my local server when i am standing around
16:15
why is it so huge
Avatar
that's a lot
16:15
hmm
Avatar
Say you are catching someone falling e.g., it might say look different. That’ll change visual timings for the players
Avatar
I guess I should get out wireshark at some point and look at the packets ^^
Avatar
Avatar
Learath2
Say you are catching someone falling e.g., it might say look different. That’ll change visual timings for the players
Jupstar βœͺ 2022-06-27 16:16:28Z
i played insane gores in chile server, i know what sucks
Avatar
Avatar
heinrich5991
I guess I should get out wireshark at some point and look at the packets ^^
Probably a better idea to look at it in the debug hud, see what is getting constantly updated in the snap
Avatar
Dropping the angle by setting it to just 0 is easy, and no problem for backward compatibility. changing the field to 16 byte xy target each. would require us to act soon or we would have compatibility discussion if we remove target xy from ddnet character
Avatar
Jupstar βœͺ 2022-06-27 16:16:37Z
but on russia server i can play almost "normal"
16:16
its not that drastically
Avatar
Avatar
c0d3d3v
Dropping the angle by setting it to just 0 is easy, and no problem for backward compatibility. changing the field to 16 byte xy target each. would require us to act soon or we would have compatibility discussion if we remove target xy from ddnet character
Wait, we need more than 4 bytes for targetx?
Avatar
16 bit, I think
Avatar
bit sorry
Avatar
Eh, 32 each is fine too, we have int compression if we only send 16bit precision and think it’s enough
Avatar
Avatar
Jupstar βœͺ
yeah but i mean, why is it 14kb/s on my local server when i am standing around
I do not know how fast snaps are send, I guess per tick? so 50 ticks per second is 35byte per snap if you get 14kbit per second (edited)
Avatar
25 per second
16:20
is it 14KB or 14Kb?
Avatar
Yes I thought it is every second snap
16:20
I guess it is bits
Avatar
Are our snaps not empty while we stand still?
Avatar
At least the snap sizes are stored in bits
16:21
no because 1 bit is tangling
16:21
2
16:21
x and y
Avatar
I mean truly stand still, no mouse movement either
16:21
velocity is broken
16:21
tangles between 0 and 1
16:22
is a problem of our quantisation
Avatar
Tangle? As in just randomly changes?
Avatar
no they flip every snap
Avatar
What sort of unholy ub is that?
Avatar
at least thats how it was as I looked into it the last time
16:23
it is a rounding problem
16:23
we do not send the float
16:23
but multiply it and convert it to int
Avatar
If nothing is changing why would it round differently tho?
Avatar
then convert it back ot float
16:23
and so on
Avatar
No input = vel 0. 0 * anything is 0, even with inaccurate floats
Avatar
I already explained it here ...
16:23
it is something like 0.494
16:24
  • 250
Avatar
Yeah, I’ll just take a look at it later, that’s just a bizarre behaviour
Avatar
It is actually used I think by the logic for wall jumps xD (not sure about it) Would probably also work if we force cut it to 0 (edited)
Avatar
It gets not 0 because the friction can not lower it to 0
16:27
... but you can investigate in it πŸ˜„ I had give up on it (edited)
Avatar
But it should attain a minimum stable value after a set amount of time or at the very least keep decreasing towards 0, I don’t see how it should ever round back up after a certain time t
Avatar
but if you walk at a wall it is 0
16:28
against a wall and stand still
Avatar
but the state of "in which direction did the tee move last" is saved somehow though, pretty sure. Speeders with max speed behave differently depending on the direction you moved last
Avatar
Yeah walls set your velocity to 0 directly
Avatar
Avatar
Patiga
but the state of "in which direction did the tee move last" is saved somehow though, pretty sure. Speeders with max speed behave differently depending on the direction you moved last
it is basicly the velocity itself.
16:29
and we store in "left" if you just left a wall
Avatar
but I thought you said that the velocity fluctuates, no?
Avatar
only for the client
16:30
the server knows the true state
Avatar
ah, so there should be a prediction error there as well?
Avatar
Avatar
Patiga
but the state of "in which direction did the tee move last" is saved somehow though, pretty sure. Speeders with max speed behave differently depending on the direction you moved last
Mh another thing that can never be fixed right there. If we were to round to 0 after a certain minimal threshold this behaviour would change
Avatar
fix would be to remove max_speed for stoppers, never worked properly ever
16:31
:d
Avatar
Avatar
Patiga
ah, so there should be a prediction error there as well?
He says it’s in the snap, so it can’t be a predicted value, no?
Avatar
Avatar
Patiga
fix would be to remove max_speed for stoppers, never worked properly ever
I bet they all work subtly different with different previous velocities, breaking some precision part made a decade ago :p
Avatar
ah, I don't know much about how prediction works internally
16:33
heh, max_speed needs to be activated though, so it shouldn't break existing maps
Avatar
Avatar
c0d3d3v
I do not know how fast snaps are send, I guess per tick? so 50 ticks per second is 35byte per snap if you get 14kbit per second (edited)
Jupstar βœͺ 2022-06-27 16:34:30Z
but they only send every second tick
Avatar
Avatar
Jupstar βœͺ
but they only send every second tick
yes heinrich corrected me It is also true that uuids are not send a second time πŸ™‚ as long as the previous snap arrived. So they are really a one time cost
16:36
I will just check if it is really 14 kbit/sec or 14 kbyte/sec
Avatar
Jupstar βœͺ 2022-06-27 16:37:18Z
i'd still assume value close to 0 when standing still, but well is it kilo bytes kibi bytes kilo bits kibi bits dunno if our naming is consistent πŸ˜„
16:37
it says kbps
Avatar
yes wait I look into the code πŸ˜„
16:41
(RecvTotal * 8) / 1024
16:42
but RecvTotal = RecvBytes + RecvPackets * 42; do not know what the magix 42 is
Avatar
Oh wow, who commited that? Using the correct format specifiers
Avatar
Jupstar βœͺ 2022-06-27 16:42:52Z
deen changed most i think
Avatar
Jupstar βœͺ 2022-06-27 16:43:41Z
correct would be streamed tho, bcs faster than printf xd
Avatar
C++ std::format is even cuter
Avatar
Jupstar βœͺ 2022-06-27 16:45:44Z
but also slower
16:45
bcs it has to parse text still
Avatar
I wonder the difference actually
Avatar
Jupstar βœͺ 2022-06-27 16:46:20Z
probs not lot, but maybe it is
Avatar
Avatar
c0d3d3v
(RecvTotal * 8) / 1024
so at least we know it it kbit per second
16:47
still do not know what it counts xD
Avatar
Jupstar βœͺ 2022-06-27 16:48:12Z
with variadic templates you can now even use comma seperated type safe arguments print("print 0: ", 0, "whatever", CSomeFormatThatCanBeConstrained(0.0f))
16:48
the best
16:48
c++20 when
Avatar
Hm, this one totally trustworthy benchmark says if printing objects is involved it doesn’t matter much
Avatar
Jupstar βœͺ 2022-06-27 16:48:35Z
note for cout
16:48
u have to disable sync
16:48
sadly c++ standard fucked it up
16:49
but string_streams are fast af, and boost probs has some alternative to std::cout
Avatar
Avatar
Learath2
Hm, this one totally trustworthy benchmark says if printing objects is involved it doesn’t matter much
Jupstar βœͺ 2022-06-27 16:50:18Z
std::ios::sync_with_stdio(false);
16:50
this is the weird call xD
16:51
and dont use std::endl
16:51
that flushes xd
Avatar
These are unsafe define that should be parenthesized due to operator precedency that can change operation order in expression such as: c++ #define ABCD 1 + 2 int foo = 36/ABCD; // foo is actually 38 and not 12 I didn't change engine/client/graphics_threaded/h as it is included in https://github.com/ddnet/ddnet/pull/5520

Checklist

  • [ ] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configu...
Avatar
Avatar
c0d3d3v
(RecvTotal * 8) / 1024
Jupstar βœͺ 2022-06-27 17:09:41Z
so is 1,75 kilo bytes per second now a lot or not πŸ˜„
17:09
for standing around still πŸ˜„
Avatar
1750 / 25 = 70 byte per snap
17:17
I guess it could be optimized
17:17
70 bytes are quite something
17:17
for saying 'nothing changed'
Avatar
Jupstar βœͺ 2022-06-27 17:17:37Z
i wonder if the packet headers count too πŸ˜„
17:20
wireshark tells me 30bytes per packet, so we send 2 packets always?
17:20
or 70bytes with full UDP header etc.
17:20
full frame
Avatar
14kbit per second = 14*1024/8/25 = 72 Bytes per snap 4 Byte Message ID ( 4 Byte Game Tick 4 Byte Delta Tick 4 Bytes Num Parts 4 Bytes Part Number 4 Byte CRC 4 Byte Part Size ) times Num Parts (if you do nothing you would excpect 1 snap) = 28 bytes + Delta Snapshot header 4 Bytes m_NumDeletedItems 4 Bytes m_NumUpdateItems 4 Bytes m_NumTempItems = 12 Bytes + Snapshot header 4 Byte Data Size 4 Byte Num Items = 8 byte in total 48 Header bytes + at least the character that has the flipping velocity 4 Bytes Type + ID 22 integer fields (edited)
Avatar
Jupstar βœͺ 2022-06-27 17:21:01Z
but doubt we care about that xd
Avatar
Avatar
c0d3d3v
14kbit per second = 14*1024/8/25 = 72 Bytes per snap 4 Byte Message ID ( 4 Byte Game Tick 4 Byte Delta Tick 4 Bytes Num Parts 4 Bytes Part Number 4 Byte CRC 4 Byte Part Size ) times Num Parts (if you do nothing you would excpect 1 snap) = 28 bytes + Delta Snapshot header 4 Bytes m_NumDeletedItems 4 Bytes m_NumUpdateItems 4 Bytes m_NumTempItems = 12 Bytes + Snapshot header 4 Byte Data Size 4 Byte Num Items = 8 byte in total 48 Header bytes + at least the character that has the flipping velocity 4 Bytes Type + ID 22 integer fields (edited)
Jupstar βœͺ 2022-06-27 17:21:32Z
arent we using some integer packing?=
Avatar
if you are on a map that has no other entities
Avatar
Jupstar βœͺ 2022-06-27 17:21:34Z
always thought that
17:21
huffman or smth
Avatar
yes that is unpacked size of cause
Avatar
Jupstar βœͺ 2022-06-27 17:21:55Z
ah ok
Avatar
Avatar
Jupstar βœͺ
ah ok
I guess compressed size is counted
Avatar
@c0d3d3v small integers use just one byte
17:22
before huffman compression
Avatar
a9ee57a Fix unsafe defines - Chairn 2603b38 Merge #5522 - bors[bot]
Avatar
b89dcca Include config info in help - def- c231084 Merge #5515 - bors[bot]
Avatar
@heinrich5991 I finally tested it. In normal gameplay m_TargetX and m_TargetY are limited by mouse_max_distance or cl_dyncam_max_distance so normally smaller then 2000 but surely smaller then 32000 But if you go in spectating, it uses an other coordinate system, instead relative to the center of the screen it is world corrdinates I guess But the snap target input is not send to the clients... So it would be possible to use only 16 bit for the target x y each. But I would not recommend to do so, because the target x y we send to server is 4 byte each... and maybe some day we want also to send the spectating coordinates xD rofl I guess the best option is to set the old angle to 0, because ddnet character is the smaller net object so the diff is always smaller. But I do not know. In theory 16 bit x y each would work.
Avatar
@c0d3d3v isn't camera position sent yet? Used to save bandwidth when /showall is 0. Or this is a different thing?
Avatar
Avatar
Wohoo
@c0d3d3v isn't camera position sent yet? Used to save bandwidth when /showall is 0. Or this is a different thing?
what do you mean? Yes the player position + view size in units is send
Avatar
@c0d3d3v it's because you said: maybe some day we want also to send the spectating coordinates xD rofl Didn't understand this
Avatar
to the clients
21:20
the clients do not get this information
21:21
only you self
21:21
I also do not think it makes sense to send this information to the clients xD
21:33
To prevent the color of all layers from being reset to zero when changing just the size. Closes #3734.

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 and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the ...
Avatar
70866d6 Fix names of SCommonPropState member variables - Robyt3 ac40efa Only apply size and color if changed, when editing multiple layers - Robyt3 ecca7b7 Merge #5525 - bors[bot]
Avatar
what license has ddnet?
Avatar
DDraceNetwork, a cooperative racing mod of Teeworlds - ddnet/license.txt at master · ddnet/ddnet
πŸ˜… 2
Exported 292 message(s)