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 2023-01-08 00:00:00Z and 2023-01-09 00:00:00Z
Avatar
Avatar
Ryozuki
Click to see attachment 🖼️
What is this game? And what is DDNet steam statistics?
Avatar
@python311 those are the stats from steam as a whole
👍 1
02:03
Want to play the hardest cooperative 2D platformer ever? Want to finish no map ever? Want to be in pain for hours and cry, getting nothing in return? Come play DDNet with a large community of other sufferers! DDraceNetwork Steam charts, data, update history.
👍 1
02:03
^ for ddnet
Avatar
@Robyt3 i think i found a bug:
  • go on lan tab -> select a server
  • go on ddnet tab -> select a server
  • go back to lan tab -> double click on the already selected server -> it connects to the ddnet server instead bcs server ip is not updated
09:47
and it must be the same index
09:47
between both tabs
09:54
⚠️ i3-gaps has been merged into i3.
09:54
@Learath2 poggers
Avatar
The selected server browser entry was not being updated anymore when the server address input is changed manually by the user or when selecting an entry in the LAN server list and then switching back to the Internet list. Regression from #6240.

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 (especially base/) or added coverage to integr...
Avatar
a0d4a55 Fix server browser selection not being updated based an address input - Robyt3 367cced Merge #6250 - bors[bot]
Avatar
(connecting) players aren't filtered anymore
Avatar
I think they weren't filtered in the server scoreboard before either
11:01
somehow the flag is also larger for them
Avatar
yeah if they dont have a skin they render like before, looks kinda ugly but usually they are filtered. at least i thought so
11:03
but there is a "filter connecting players" filter
11:03
so its weird they weren't filtered, it should even be default on
Avatar
yeah, makes sense to hide them from the player list as well, since they are not counted for the total player count with "filter connecting players"
11:07
it suddenly happened
11:08
on a kog server
11:08
and it also stopped after that
Avatar
"Count players only" also doesn't affect the server browser scoreboard currently. Not sure it's a good idea to hide the spectators in that list if this setting is enabled.
Avatar
mh ok, questions are:
  • is it useful to know that there is (connecting) player
  • should we always render as if there could potentially be a skin, which makes it not use most space available but simplifies the code
Avatar
- is it useful to know that there is (connecting) player
probably not
- should we always render as if there could potentially be a skin, which makes it not use most space available but simplifies the code
would look better/more consistent IMO
Avatar
so be it
Avatar
…ayer list

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 (especially base/) or added coverage to integration test
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/d...
Avatar
Avatar
Jupstar ✪
Click to see attachment 🖼️
this seems to be related to lags
Avatar
maybe we should use different return values for all returns in CSnapshotDelta::UnpackDelta, so we know which condition caused the unpacking to fail
12:18
right now we group the failures roughly in a few categories, where -3 means that a value in the delta is invalid
Avatar
chillerdragon BOT 2023-01-08 12:32:00Z
Yes please
Avatar
@Robyt3 in the previous version, when no server was selected e.g. by switching tabs, you could still use arrow keys to navigate (in this case it would start navigation) now its not working anymore
Avatar
ed1af6e Always assume there could potentially be a skin in serverbrowser's player list - Jupeyy bda61e5 Merge #6251 - bors[bot]
Avatar
Use a different error code for every return statement, so it's easier to determine why unpacking a delta failed. The codes are grouped by the first digit of the error code:
  • -1xx: not enough data to read
  • -2xx: value is invalid
  • -3xx: could not build snapshot item

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 (esp...
👍 1
Avatar
It was no longer possible to navigate listboxes (e.g. the server browser) by using keyboard hotkeys when no item is currently selected due to a regression from #6240. Additionally, it was not possible even before #6240 to start navigating the server browser with the keyboard afer manually clearing the server address input, which is now possible as well.

Checklist

  • [X] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with p...
Avatar
@Robyt3 can i cancel #6252 so you can use enums?
Avatar
Use a different error code for every return statement, so it's easier to determine why unpacking a delta failed. The codes are grouped by the first digit of the error code: -1xx: not enough da...
Avatar
Not sure an enum would help much. We wouldn't use those numbers internally, they are just for understanding console log messages
14:12
You wouldn't do if(UnpackDelta(...) == -301) anyway
14:14
we could use enum to string in dbg_msg instead of raw numbers as well
Avatar
066768c Use distinct error return codes for CSnapshotDelta::UnpackDelta - Robyt3 7d4fabd Merge #6252 - bors[bot]
Avatar
at that point return a string rather than an enum, I guess
Avatar
nah, we still need integer data
Avatar
the function normally returns the size of the unpacked delta
Avatar
it returns size of data
14:16
and negative for error
Avatar
so any negative value is an error code
Avatar
hmhmm
14:17
what would be the advantage of enums over integers in this case?
Avatar
enums are integers anyway
Avatar
only thing i can think of is easier documentation directly inside the enum
Avatar
yup, that's the point 🙂
Avatar
So bad c++ doesnt have rust style enums
Avatar
you can have the documentation near the return instead, if you want that
14:18
currently, the returns are unique
Avatar
some comment you mean?
Avatar
yea
14:19
or wdym by documentation?
Avatar
the intention is that the existing return values are not changed or reused again, otherwise we couldn't interpret old log files easily
Avatar
Avatar
Ryozuki
So bad c++ doesnt have rust style enums
what are rust enums specificities ?
Avatar
you could have the function return the size OR an error (e.g. a string)
Avatar
Avatar
Ryozuki
So bad c++ doesnt have rust style enums
do tupple enums have an automatic mode for integers? or do you need to do enum { A((1, "Whatever error")), B((2, "...")), } for every entry?
Avatar
Avatar
Chairn
what are rust enums specificities ?
They are sum types, and can hold any type of data within
14:20
Result for example
Avatar
any type or any integer type?
Avatar
Any type
Avatar
ah that's nice
Avatar
Avatar
heinrich5991
you could have the function return the size OR an error (e.g. a string)
or just a boolean pointer as parameter to see if it worked correctly
Avatar
Avatar
Jupstar ✪
do tupple enums have an automatic mode for integers? or do you need to do enum { A((1, "Whatever error")), B((2, "...")), } for every entry?
with automatic i mean like start index = -50000 and then rest goes automatic 😄
Avatar
it all seems like overengineering though
Avatar
enum IpAddr { V4(u8, u8, u8, u8), V6(String), } let home = IpAddr::V4(127, 0, 0, 1); let loopback = IpAddr::V6(String::from("::1")); @Chairn
Avatar
what Robyte did is instantly useful and doesn't change much code
Avatar
Avatar
Ryozuki
enum IpAddr { V4(u8, u8, u8, u8), V6(String), } let home = IpAddr::V4(127, 0, 0, 1); let loopback = IpAddr::V6(String::from("::1")); @Chairn
but that doesnt help if we talk about integers tho, so answer me rust pro
Avatar
return true; // NOLINT(clang-analyzer-unix.Malloc)? ^^
14:23
should we just disable clang-analyzer-unix.Malloc? ^^
Avatar
Avatar
heinrich5991
return true; // NOLINT(clang-analyzer-unix.Malloc)? ^^
otherwise clang-tidy complains about potential leak
Avatar
why did that change?
14:24
probably due to inlining of mem_zero function allowing it to see more things?
Avatar
Avatar
Jupstar ✪
with automatic i mean like start index = -50000 and then rest goes automatic 😄
Ye
14:26
Idk about enums eith values
Avatar
Avatar
Ryozuki
Ye
nice is it a macro or smth? i tried to google this before for tupple enums
14:26
but seems like i suck at googling rust specific stuff
Avatar
But with enums that look like c its just enum { X = -5000 }
Avatar
i need for enums with values ^^
Avatar
I have to check it but im outside so its a hassle
14:27
Mobilr sucks
Avatar
smth like #[auto_add_convert_into_interger_start_at(0)]
14:27
would be really useful for me at some specific places
Avatar
I don't think that exists(?)
Avatar
you can define enums to integer conversion
14:28
enums act like classes
Avatar
too bad, bcs it looks like not too hard to do with a macro
Avatar
Rust by Example (RBE) is a collection of runnable examples that illustrate various Rust concepts and standard libraries.
Avatar
8845a15 Allow navigating listboxes when no item is currently selected - Robyt3 a2737de Merge #6253 - bors[bot]
Avatar
Is #6249 ready, @Jupstar ✪ ? Looks like the run failure is just a macOS fluke
Avatar
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 (especially base/) or add...
Avatar

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 (especially base/) or added coverage to integration test
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-ad...
Avatar
Avatar
Robyt3
Is #6249 ready, @Jupstar ✪ ? Looks like the run failure is just a macOS fluke
i cancelled it bcs there was a bug, but its ready
Avatar
Avatar
Chairn
nobody commented on my pr 😢 https://github.com/ddnet/ddnet/pull/6219
I'm looking into it
Avatar
Avatar
Chairn
nobody commented on my pr 😢 https://github.com/ddnet/ddnet/pull/6219
i didnt even saw you saying this ^ before 5 seconds ago xd
Avatar
im a very discrete man 😄
Avatar
what I find a bit weird is that the new mem_zero doesn't actually zero the mem in some cases
Avatar
because it shouldn't, it has to respect default constructor
14:52
we can rename it to mem_init
Avatar
yes, it shouldn't because it's UB
Avatar
but that's less clear in most cases
Avatar
perhaps these calls could instead be replaced by calls to the constructor?
14:53
for example this ^
14:53
this seems to be very misleading after the PR
Avatar
it does zero it because there's no constructor and no complex type
Avatar
man this hurts my eyes
Avatar
btw, mem_zero in constructor would probably endless loop
Avatar
7815be7 Fix DoLabelStreamed by using offsets, instead of rebuilding when x,y changes - Jupeyy 1347101 Merge #6249 - bors[bot]
Avatar

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 (especially base/) or added coverage to integration test
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssan...
15:35
My preferred alternative to #6219. Thanks to @Chairn for laying the groundwork for making this safer. This PR simply doesn't allow to call mem_zero on nontrivial types. I like that better than calling the destructors/constructors when the function name suggests it only zeros memory.

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 (especia...
Avatar
Avatar
GitHub
Click to see attachment 🖼️
I thiink I like this better too
Avatar
running out of time right now, ill review it tonight. Gotta go see Avatar 2 😛
Avatar
have fun 🙂
Avatar
Tho am on phone, so I'll think about it when im hom
Avatar
TIL Avatar 2 exists
Avatar
ChillerDragon BOT 2023-01-08 16:20:23Z
ye avatar is surprisingly niche
Avatar
ChillerDragon BOT 2023-01-08 16:37:56Z
I do get some clang errors did i miss something?
Avatar
erm... #off-topic ? 🤓
Avatar
ChillerDragon BOT 2023-01-08 16:38:09Z
../src/base/vmath.h:141:38: error: constexpr function never produces a constant expression [clang-diagnostic-invalid-constexpr]
Avatar
Avatar
ChillerDragon
../src/base/vmath.h:141:38: error: constexpr function never produces a constant expression [clang-diagnostic-invalid-constexpr]
Which version of clang? I added constexpr to more functions in #6244. It works for me locally and in the CI.
Avatar
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 (especially base/) or add...
Avatar
Avatar
Voxel
erm... #off-topic ? 🤓
Uhm actually #developer is offtopic for @Devs🤓
Avatar
When was the first time you had to use LaTeX? If you are like most people, it was probably suddenly forced upon you during your first math or CS class where you had to start writing proofs, with minimal guidance on how to get started. Unfortunately, this meant that while many people have good operational knowledge of LaTeX, there are still many ...
Avatar
ChillerDragon BOT 2023-01-08 17:31:04Z
Debian clang version 11.0.1-2
17:31
deb11
Avatar
I guess you can just remove as many constexpr as necessary until it compiles for you and then make a PR
Avatar
ChillerDragon BOT 2023-01-08 17:33:09Z
or maybe its fixed in a later clang version eventho dropping deb11 support sounds bad i think if the github CI passes its okaay
17:33
deb12 has to release soon anyways
Avatar
I like everything in this except that they said to always use \dots. Really, you should be using \dotsc, \dotsb, \dotsm, etc
19:56
abc59c5 Add .well-known files for :ddnet.org matrix server - Zwelf 13e77b6 Merge pull request #235 from Zwelf/pr-ddnet-matrix - def-
Avatar
@Zwelf will we be able to get matrix accounts based on ddnet domain? 😄 (edited)
Avatar
Anyone here got experience with a Docker container not having working DNS lookup? @Miguilim asked me for the Brazil server, but I couldn't find anything weird, and tried removing my iptables rules, but to no effect
Avatar
Mh, I had issues with podman and cni, but migrating to netavark fixed all my issues
Avatar
7437c5c Add new french translations for 16.7 - Chairn fb2ec3f Merge #6255 - bors[bot]
Avatar
Avatar
heinrich5991
have fun 🙂
sorry, i'll do it this week then
Avatar
@Jupstar ✪ do u know what could be the cause of a GPU not used much on windows ?
22:22
have it used 20% only on some big games
Avatar
i mean its the games code fault
22:23
or maybe ur cpu is bottlenecking
Avatar
Avatar
ReiTW
@Jupstar ✪ do u know what could be the cause of a GPU not used much on windows ?
teeworlds or generally
Avatar
well have a pretty good config, but this game is damn not optimized at all lmao
22:24
ig only Escape From Tarkov, they released a map and the average FPS for everyone is around 40-50 (edited)
22:24
22:24
justatest
Avatar
Avatar
ReiTW
Click to see attachment 🖼️
change first graph to logical cores
22:26
see if one core is at 100%
Avatar
Avatar
Jupstar ✪
change first graph to logical cores
u mean for cpu? nothing is at 100
Avatar
Avatar
Jupstar ✪
@Zwelf will we be able to get matrix accounts based on ddnet domain? 😄 (edited)
No for now 😅. And it will probably be never be completely open to registration. For now only as a bridge + moderation tool.
Avatar
Avatar
Jupstar ✪
change first graph to logical cores
mayb it bottlenecks cuz of the gpu mem being full
Avatar
Avatar
ReiTW
mayb it bottlenecks cuz of the gpu mem being full
possible 😄
Avatar
a 3060 how much has
Avatar
trying mip streaming from unity (yes they did a big game using a game engine not good for that, game would run way better using UE) 12G for mine (edited)
Avatar
my 3080 has 10 xd
22:30
i wonder how it using ur full vram tho
22:30
kinda insane kek
Avatar
definetly no clue
Avatar
Avatar
ReiTW
definetly no clue
but still lot of usage
Avatar
yeah well
Avatar
Avatar
deen
Anyone here got experience with a Docker container not having working DNS lookup? @Miguilim asked me for the Brazil server, but I couldn't find anything weird, and tried removing my iptables rules, but to no effect
does it have a reasonable /etc/resolv.conf?
22:50
does dig work? (edited)
Avatar
dig doesn't work, I tried fixing the /etc/resolv.conf to use 8.8.8.8, but still didn't work, pinging 8.8.8.8 worked though
22:52
so a bit weird that ICMP goes through but UDP not
Avatar
Avatar
heinrich5991
does it have a reasonable /etc/resolv.conf?
it seems something related to dnsmasq
22:55
/etc/resolv.conf only has: nameserver 127.0.0.1 (edited)
Avatar
That is our local server which we used for ddnet, but it forwards everything. I didn't see that used in docker though
Avatar
Avatar
deen
That is our local server which we used for ddnet, but it forwards everything. I didn't see that used in docker though
I found this in the official docker documentation https://docs.docker.com/engine/install/troubleshoot/#dns-resolver-issues
23:00
Avatar
Avatar
deen
Anyone here got experience with a Docker container not having working DNS lookup? @Miguilim asked me for the Brazil server, but I couldn't find anything weird, and tried removing my iptables rules, but to no effect
We are running our Server on K3s but with a OCI standard image - so docker compliant
23:08
docker uses its own resolver
23:08
internally
Avatar
why use kubernetes at all
23:11
or docker
23:11
just use nixos
23:11
1 config, replicate everywhere
23:11
the future is here
23:11
its reproducible too!
Avatar
k3s
23:12
much simpler than k8s
Avatar
whather that is
Avatar
its for edge services
Avatar
sry im not up to date with the hip words xD
Avatar
I always thought k3s is people writing k8s wrong 😄
Avatar
r u running ddnet on arm?
23:13
but our servers are not powerful enough to run k8s 😄
23:13
k8s takes a lot of ressources
23:14
k3s is smaller and simpler
Avatar
anyway this looks like uneeded complexity and overhead to me
23:14
specially for a game server
23:14
nixos ftw
Avatar
nah its not
23:14
you can run minecraft next to teeworlds without dependency problems
23:14
you can run different teeworlds versions without dependency problems at all
Avatar
so can u with nix
23:14
and u dont have a container overhead
Avatar
but learning k8s is great for some jobs 🙂
23:15
cloud native and so on
Avatar
i know there is lot of fuzz about this and jobs
23:15
but i dont like it idk
23:15
something in it
23:15
i prefer bare metal
Avatar
Avatar
deen
dig doesn't work, I tried fixing the /etc/resolv.conf to use 8.8.8.8, but still didn't work, pinging 8.8.8.8 worked though
how did you call dig? did you include the resolver IP?
Avatar
solutions
23:15
@Jupstar ✪ do u agree
Avatar
dig ddnet.org @8.8.8.8
Avatar
Avatar
Ryozuki
@Jupstar ✪ do u agree
tl;dr
Avatar
@Jupstar ✪ using nixos over e.g docker containers since they run on the native kernel and they are reproducible, thus, u can deploy like docker
Avatar
docker also runs on the native kernel btw
Avatar
but it has overhead
Avatar
is docker open source'd?
Avatar
what kind of overhead do you envision?
23:17
it's just using linux namespaces
Avatar
"The cost of security"
Avatar
Avatar
Jupstar ✪
is docker open source'd?
Yes
Avatar
>
One of these security mechanisms is seccomp, which Docker uses to constrain what system calls containers can run. Older versions of seccomp have a performance problem that can slow down operations. Docker still hasn’t enabled this performance fix.
Avatar
docker is not using an open source license though
Avatar
that too
Avatar
But talking about docker is different
Avatar
In theory, Docker containers have no performance overhead. In practice, they can actually slow down your code and distort performance measurements.
Avatar
Its built using multiple technologies
23:18
23:18
the alternative to runc is crun
23:18
a docker OCI runtime
Avatar
there is another too
23:18
made in rust
Avatar
there are multiple
23:19
thats why its soo cool
23:19
you can switch them without a hassle
Avatar
well its not cool to me but i get it
23:19
A container runtime written in Rust. Contribute to containers/youki development by creating an account on GitHub.
Avatar
Avatar
heinrich5991
how did you call dig? did you include the resolver IP?
/var/lib/pterodactyl # nslookup ddnet.org 8.8.8.8 ;; connection timed out; no servers could be reached
Avatar
@Ryozuki the article says you can disable that via --privileged
Avatar
Avatar
deen
/var/lib/pterodactyl # nslookup ddnet.org 8.8.8.8 ;; connection timed out; no servers could be reached
can I access that server somewhere to poke it a bit?
Avatar
@heinrich5991 do u know if volumes are slower than normal partitions?
Avatar
Avatar
Avolicious
but learning k8s is great for some jobs 🙂
Yeah, it's a bit crazy to me, the huge costs everyone seems to accept nowadays to be on cloud
Avatar
Avatar
heinrich5991
can I access that server somewhere to poke it a bit?
sure, ssh root@bra.ddnet.org
Avatar
Avatar
deen
Yeah, it's a bit crazy to me, the huge costs everyone seems to accept nowadays to be on cloud
this, big time
23:20
aws costs a fortune
23:20
but companies glad to pay
23:21
i think its "google fever" they all think they are on google-scale so they need to use that
Avatar
I guess I shouldn't complain since it's what's bringing in my salary though
Avatar
but in reality not
Avatar
Avatar
Ryozuki
@heinrich5991 do u know if volumes are slower than normal partitions?
docker uses overlayfs with many layers AFAIK, that might slow things down; but you wouldn't need to do many layers in theory
Avatar
Avatar
heinrich5991
docker uses overlayfs with many layers AFAIK, that might slow things down; but you wouldn't need to do many layers in theory
You can fix that
23:23
Its a bit work ngl, but its worth it
Avatar
it looks like UDP is blocked but TCP isn't
23:35
sorry, no new information from me
23:41
the FORWARD table has a default policy of DROP, this might be one source
23:42
additionally, the DOCKER-ISOLATION-STAGE-2 DROPs everything as well
23:42
only changing the FORWARD table's default policy does not fix the problem
23:45
prepending an ACCEPT rule to the FORWARD table didn't help either
Exported 274 message(s)