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-05-07 00:00:00Z and 2022-05-08 00:00:00Z
Avatar
voodoo
Avatar
I believe we can reduce the size of client, server and mainly tools binary by refactoring the cmake file. Pros : smaller distributed files Cons: might need more manual tweaking when adding or removing files For the client, the following files are included in the link, but actually not used: ```shell CMakeFiles/game-shared.dir/src/game/mapbugs.cpp.o CMakeFiles/engine-shared.dir/src/engine/shared/network_server.cpp.o CMakeFiles/engine-shared.dir/src/engine/shared/masterserver.c...
Avatar
wow, i think we should maybe switch to nanoseconds
08:18
an update takes 4 microseconds times 0.1 = 0 casted to int xd
Avatar
Modern hardware is too fast, updates sometimes take less than a few microseconds. It's easier in the long run if we use a bigger range to avoid calculation problems. possibly f i x e s #5051 (needs testing from bencie for the main bug, but fixes what @sjrc6 found) Also took the moment to use more chrono so we can at some point switch to a typesafe time. Hopefully I didnt miss any value ^^

Checklist

  • [x] Tested the change ingame
  • [ ] Provided screenshots if it is a visual...
Avatar
did anyone ever use DbgHitch?
09:44
@heinrich5991 is the antibot always compiled when ddnet server compiles?
Avatar
I think we just put the .so file there, don't recompile it
Avatar
ok
09:46
too bad, bcs would be easier if system would allow c++ signatures
09:47
@bencie do you have a github account?
09:47
maybe u can try #5075 later i dunno if that fixes the video rendering bug, but at least worth a try
Avatar
Modern hardware is too fast, updates sometimes take less than a few microseconds. It's easier in the long run if we use a bigger range to avoid calculation problems. possibly f i x e s #5051 (n...
Avatar
Yeah the username is bencie.
Avatar
u can download the assets from the github action once its ready https://github.com/ddnet/ddnet/actions/runs/2285982902
DDraceNetwork, a cooperative racing mod of Teeworlds - Switch to nanoseconds · ddnet/ddnet@a37b9d5
Avatar
Avatar
bencie
Yeah the username is bencie.
real bencie???
10:05
cat🍴
Avatar
Avatar
deen
I think we just put the .so file there, don't recompile it
Doesn't noby just provides the so to avoid sharing the code?
10:11
Or ur in his trusted list xd
10:11
(supposing you're using noby's ab)
Avatar
heinrich is in his trusted list
10:13
Afterall noby's ab is written in C
10:13
nobyC*
Avatar
nobys code is more like random hex numbers xd
10:13
that magically work
Avatar
I mean idk how he can fcking work on that, even me when I look at his ab code I give up instantly
10:14
He's not even using any obfuscator
10:14
He's obfuscating by himself, that's why I call that nobyC
justatest 2
Avatar
true 😄
Avatar
one of the few pieces of code that I gave up on reading instantly
Avatar
Lol, noby madman
Avatar
Avatar
Learath2
one of the few pieces of code that I gave up on reading instantly
he's good but too lazy to write properly xD
Avatar
doesnt he use a file based database
11:49
for fng
Avatar
ah u mean simple txt file, not even sqlite?
11:50
probably, that's the easiest for him & fastest thing to do for him (edited)
Avatar
ah yeah i remember the start of his server always took a while but i guess he already changed it
Avatar
The main motivation is to reduce the size of binaries for release build (following #5074). The feature is not enabled by default because it increases the build time and the effect should be valued case-by-case. #### Linux Linux build time changed from 2:01 to 2:56 (with GNU gold) or 3:20 (default ld). | Executable | Before | After | | ------------- | ---------|---- | | config_retrieve | 886K | 43K | | config_store | 890K | 51K | | DDNet | 4.1M | 4.1M | | DDNet-Server | 1.6M | 1....
Avatar
Figured out the performance issue, I was testing out a a cpufreq governor before I left for 2 weeks, I apparently never deleted that kernel I was testing out
Avatar
gg
Avatar
Avatar
Ryozuki
doesnt he use a file based database
lmao wtf
14:44
why
Avatar
cuz he is noby
14:45
isnt gnu gold slower than lld
Avatar
thought the same, but have no benchmarks for lto
14:45
but mold wins tho
Avatar
u mean ld ?
Avatar
bcs it can do lto multi threaded afaik
14:46
lld
14:46
is from clang
14:46
or llvm
Avatar
oh y llvm
14:48
so you guys have change the built in linker ?
Avatar
no why
Avatar
i mean by default i have ld, not lld
Avatar
yes but we dont change anything
14:48
use what u want
14:48
i also doubt that pr goes through
14:48
tho LTO is nice, i also use it for my client 😄
14:49
with ofast
14:49
legendary compile options
Avatar
xd
14:50
ofast is the equivalent of o3 no ?
Avatar
isnt exactly the same thing ?
Avatar
its even more aggressive
Avatar
ofast enables fast math
Avatar
ofast also allows non standard stuff
Avatar
mmh okok
Avatar
"Disregard strict standards compliance. -Ofast enables all -O3 optimizations. It also enables optimizations that are not valid for all standard-compliant programs. It turns on -ffast-math, -fallow-store-data-races and the Fortran-specific -fstack-arrays, unless -fmax-stack-var-size is specified, and -fno-protect-parens. It turns off -fsemantic-interposition."
14:50
here the description from GCC
Avatar
ok there are some additional features
Avatar
its nice to find bugs in your code xd
14:51
bcs UB is often compiled differently with ofast
14:55
lmao i love gifs like these
14:55
they are kinda art
Avatar
Avatar
Jupstar ✪
lmao i love gifs like these
same
14:56
mold looks way faster wtf
14:56
mold is the state of the art linker
Avatar
made by the lld author
Avatar
Avatar
Jupstar ✪
Click to see attachment 🖼️
y i just saw this
Avatar
the bigger ur program the faster it is
14:57
on ddnet it probs make little diff
Avatar
lmao shorter is better (edited)
14:57
imagine you need to read it
Avatar
gnu gold sucks hard xd
Avatar
Avatar
Ryozuki
on ddnet it probs make little diff
might be imagination but feels a bit faster 😄
Avatar
who use gnu gold ?
14:59
before lld existed it was the best i guess
Avatar
GPL enjoyers xd
Avatar
lld and mold are from the same author
14:59
tthat guy is a genius
Avatar
gold was about 3x/4x faster than LD.
Avatar
ah yeah
14:59
ld
Avatar
kinda cringe
Avatar
xd
Avatar
Why does the speed of linking matter?
>
If you are using a compiled language such as C, C++ or Rust, a build consists of two phases. In the first phase, a compiler compiles source files into object files (.o files). In the second phase, a linker takes all object files to combine them into a single executable or a shared library file.
15:00
lmao
15:00
the github repo mentions rust
15:00
based
15:00
mold is written in C++20, so if you build mold yourself, you need a recent version of a C++ compiler and a C++ standard library. GCC 10.2 or Clang 12.0.0 (or later) as well as libstdc++ 10 or libc++ 7 (or later) are recommended.
15:00
more based
Avatar
y the linking step is important too
15:01
i have gcc 11.2.0
15:01
ez
Avatar
i have clang 15
Avatar
@Jupstar ✪ mold is agpl
Avatar
uff
Avatar
thats good
15:03
no reason to use gnu gold
Avatar
he has to be dead for 70 years before copyright lifts
15:04
there is nothing good about copyrights
Avatar
u live in germany
Avatar
but most software today wont be used in 20 years anyway
Avatar
they dislike public domain there
Avatar
so who cares xd
Avatar
so agpl is the next best thing
Avatar
CC0 or nub
Avatar
to contribute to sqlite
15:05
u have to sign things
Avatar
Avatar
Ryozuki
to contribute to sqlite
xD
Avatar
cuz public domain
15:05
countries suck at public domain
Avatar
how the fuck can i know which linker im using ?
Avatar
what compiler do u use?
Avatar
i mean its obvious im using ld but how can i find the version
Avatar
-DCMAKE_EXE_FLAGS="-v"
15:07
should tell you i guess
Avatar
Avatar
Nagi01 {LAN}
who use gnu gold ?
Who use CMake 2.8.12? It is nine years old. Who use 0 instead of nullptr? Even nullptr is 11 years old. Who use virtual instead of override? You know, there are some projects...
Avatar
xd
15:07
who doesnt use c++23
Avatar
dont u have to use virtual with override?
Avatar
Avatar
Ryozuki
dont u have to use virtual with override?
y wtf
Avatar
no
Avatar
Avatar
Kaffeine
Who use CMake 2.8.12? It is nine years old. Who use 0 instead of nullptr? Even nullptr is 11 years old. Who use virtual instead of override? You know, there are some projects...
true story
Avatar
u only need virtual for the base instance
15:08
all others just use override
15:08
no virtual keyword is needed
Avatar
u need
15:08
for the base
15:08
u said it
Avatar
y just for the base
Avatar
y but someone added virtual ... override into our codebase
15:08
i saw that recently xd
Avatar
Steps to reproduce: bind x +toggle cl_dummy_hammer 1 0 cl_dummy_control 1 Press the key you bound the command to above, and you will notice usually the dummy hammers twice. Sometimes it doesn't, and I'll explain why: The delay for hammer is 120 ms (if you don't hit a tee). If you press the dummy hammer button, and release the button before 120 ms passes by, the dummy will only hammer once. If you hold down the button for longer than 120 ms and then release, the dummy will hamme...
Avatar
anyway, from the devs except maybe chrain most use arch i think (except me xd)
Avatar
Avatar
Jupstar ✪
y but someone added virtual ... override into our codebase
It made some sense 10 years ago — when someone still used to place virtual to the overridden methods. Yet, having override allows to catch some bugs (and thus simplify refactoring).
Avatar
just use c++17
15:10
deen also upgraded to debian 10
15:10
😮
Avatar
who uses c++? use rust
15:11
should have added
15:11
at the end
Avatar
Avatar
Ryozuki
who uses c++? use rust
yes pls start
15:11
we need a leader
Avatar
Avatar
Jupstar ✪
deen also upgraded to debian 10
xd
15:12
@Jupstar ✪ replace gameworld with https://github.com/skypjack/entt
Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more - GitHub - skypjack/entt: Gaming meets modern C++ - a fast and reliable entity component system (ECS) and m...
Avatar
Avatar
Kaffeine
It made some sense 10 years ago — when someone still used to place virtual to the overridden methods. Yet, having override allows to catch some bugs (and thus simplify refactoring).
and ddnet is from 2013 xd
15:12
so 9 years
15:12
find the error xddd
Avatar
Avatar
Ryozuki
@Jupstar ✪ replace gameworld with https://github.com/skypjack/entt
yes minecraft components
15:13
lets go
Avatar
not c omponents
15:13
its a ECS
15:13
imagine using all cores
Avatar
sounds cool
15:13
but look at our codebase
15:13
how can u not break everything xD
15:13
even changing 1 line often causes bugs xD
Avatar
ddnet.tw offline, is that intentional?
Avatar
i doubt also just saw it
15:55
@deen u are needed
15:55
deen: ^
15:59
btw @deen @heinrich5991 https://master1.ddnet.tw/ddnet/15/servers.json failed. libcurl error: Operation too slow. Less than 8000 bytes/sec transferred the last 10 seconds in this rare case my browser does not fail to download it (just takes over 10 seconds) while the client does
16:00
maybe it should still keep trying or smth but already act like it failed
Avatar
its possible to change the ping (server side) ?
Avatar
why 0 server?
Avatar
Is it possible to have clipping feature work like a tileset? So that you can cut out round shapes, corners and areas that aren't connected to each other?
Avatar
u can do anything, just need to break compability with old clients and vanilla
Avatar
i know how it sad is to maintain legacy code
Avatar
Avatar
Jupstar ✪
y but someone added virtual ... override into our codebase
i almost made a pr for this 😄
17:35
then i thought that it was kinda useless
Avatar
Avatar
Jupstar ✪
anyway, from the devs except maybe chrain most use arch i think (except me xd)
please don't scorch my name 😢
Avatar
its not ur fault
17:36
its your work place xd
Avatar
werent u forced to use ubuntu 18?
Avatar
ah, i won't upgrade before finishing my manuscript
17:38
too many risks
17:39
but i still compiled gcc12 and clang12 somewhere
Avatar
arch chad
Avatar
xd
Avatar
the problem is that gcc12 links to its own lib and then the binary wont find them if i don't change LD_LIBRARY_PATH
Avatar
imagine not using arch
17:55
in 2022
17:55
bruh
Avatar
Avatar
Im 'corneum
Is it possible to have clipping feature work like a tileset? So that you can cut out round shapes, corners and areas that aren't connected to each other?
u can edjt the tileset
20:19
@Jupstar ✪ xd
Avatar
Avatar
Ryozuki
@Jupstar ✪ xd
u are my beta tester thanks 😉
Exported 217 message(s)