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-02-18 00:00:00Z and 2023-02-19 00:00:00Z
Avatar
ChillerDragon BOT 2023-02-18 07:13:13Z
freenodes?
Avatar
ChillerDragon BOT 2023-02-18 07:22:41Z
I keep getting crashes in my ddnet server fork no idea how to debug it. It says "Broken pipe" full crash here https://paste.zillyhuhn.com/oD
07:25
The way i understand it is that it timeouts while doing masterserver stuff for whatever reason and then the socket dies and it somehow keeps trying to send there. Does that make sense? But then this is not a official ddnet bug is it? So it means it somewhere got introduced during merges hmm
Avatar
Avatar
ChillerDragon
I keep getting crashes in my ddnet server fork no idea how to debug it. It says "Broken pipe" full crash here https://paste.zillyhuhn.com/oD
Do you run your server with gdb or in debug mode? What version of curl is it used?
Avatar
ChillerDragon BOT 2023-02-18 07:48:53Z
i build in debug mode and then run the server with gdb does it print the curl version? Anyways when running curl --version it says libcurl/7.74.0 so i assume thats what the server uses too
07:49
whatever my debian 11 repos currently offer
Avatar
Is the stderr missing? Maybe look in a debugger where it wants to write to
08:02
It's either file io or network or logging i guess
Avatar
ChillerDragon BOT 2023-02-18 08:06:50Z
Idk how to look that up only thing i see is fd=19 but that file descriptor doesnt help me much does it?
Avatar
Guess no
08:08
Stack trace
Avatar
ChillerDragon BOT 2023-02-18 08:08:31Z
ah i see when i get the backtrace i should see that yea missed the chance ill check again in
08:08
idk a few weeks when it happens again :D
08:09
from a old backtrace i know its here but not sure which line because its outdated trace https://github.com/DDNetPP/DDNetPP/blob/cd8991efa291dd8e74354ce3635426403721d77b/src/engine/shared/http.cpp#L188-L308
DDraceNetwork + city + block! Based on ddnet (www.ddnet.tw) which is based on teeworlds (www.teeworlds.com). - DDNetPP/http.cpp at cd8991efa291dd8e74354ce3635426403721d77b · DDNetPP/DDNetPP
08:09
DDraceNetwork + city + block! Based on ddnet (www.ddnet.tw) which is based on teeworlds (www.teeworlds.com). - DDNetPP/http.cpp at cd8991efa291dd8e74354ce3635426403721d77b · DDNetPP/DDNetPP
08:11
but no idea whats the problem w curl i mean thats basically the same code ddnet uses so the issue has to be somewhere else
Avatar
is there a way to trigger a whole graphical refresh of the game without reinitializing the graphics backend (edited)
09:44
09:44
im doing this cuz i don't like the way ddnet does the rounded corners & it works for the GUI but persistent things like some components of the hud are rendered responsibly & don't update without being notified of a change
Avatar
You are not using ddnet. ui_rounded_corners has never existed for ddnet. And if it did, I would advocate for its immediate removal.
Avatar
i made it
09:53
i'm not trying to pull request or anything
Avatar
Avatar
Ewan
i made it
i don't know how that was not obvious by my statement
Avatar
ChillerDragon BOT 2023-02-18 09:54:44Z
edgy
Avatar
Then you basically answered your own questions: check if the variable was changed and then update the rects
Avatar
ChillerDragon BOT 2023-02-18 09:54:49Z
get it? cuz edges
09:55
rect
Avatar
I can't think of an easy way, you'll just have to pepper some if statements everywhere
Avatar
ChillerDragon BOT 2023-02-18 09:55:30Z
lerato sprinkling italian pepper
Avatar
is there an existing mechanism to fire a callback on a settings change
Avatar
yes, but for this you probably need to remember the old value wherever you render a rect and then check if the old value != the new value
Avatar
I think you can add a conchain. We do it for sv_map e.g.
Avatar
Avatar
Robyt3
yes, but for this you probably need to remember the old value wherever you render a rect and then check if the old value != the new value
why would i need to do that?
Avatar
Avatar
Robyt3
yes, but for this you probably need to remember the old value wherever you render a rect and then check if the old value != the new value
Doesn't the conchain happen before the actual callback?
Avatar
otherwise how to you "push" the updated value to all components that draw a rect? you'd first need a list of all components drawing rects (edited)
Avatar
i wanted to do a graphical refresh for this reason
09:59
because it shouldn't really require a restart. it would just be that
Avatar
It shouldn't but it does :/
Avatar
maybe you could hack it together by calling OnWindowResize, which should invalidate all cached quad and text containers
Avatar
Avatar
Robyt3
maybe you could hack it together by calling OnWindowResize, which should invalidate all cached quad and text containers
I was just about to say that 😄
10:00
Maybe that would work
Avatar
not worth it. i'll just store its first value forever & require a restart (so it's at least consistent)
10:01
im doing this because the way ddnet does rounded rectangles is weird. they're absurdly large and they don't pad the contents to accommodate. you just have to kinda hope it doesn't clip lol
10:01
and they're not antialiased for whatever reason. could be a number of factors but any way i don't like it
Avatar
nothing is antialiased except round corners AFAIK, but you need to enable MSAA
Avatar
yeah this is different from in-game AA & should be handled as such
Avatar
Absurdly large? Hm iirc they fit exactly inside the rect you pass to the function
Avatar
i just mean the radii are too large for my taste
10:03
nothing broken about the size
Avatar
just multi each corner radius by 0.5f before drawing nouis
Avatar
Ah, yep it's an old teeworlds thing, back then it was the cool trend
10:04
I wanted a sharper ui but iirc people said it lost character so we kept it as is
Avatar
Avatar
Learath2
Doesn't the conchain happen before the actual callback?
are there docs for conchain?
Avatar
Nope, but it's not very hard to use, just grep for Chain or ConChain or maybe sv_map
10:09
video docs poggers
Avatar
i agree but it's not for me
10:10
i don't have that kind of attention span lol
10:10
ill grep
Avatar
Check how it's done in the code, e.g. search for ConchainFriendlistUpdate
Avatar
what's the highest level CComponent?
10:16
that i could call OnWindowResize() on & have it trickle down
Avatar
Call it on CGameClient, which should propagate it to all components
10:17
thanks
10:17
is there a global instance or is it static
Avatar
All components have a pointer to it with GameClient()
10:20
void CMenus::ConchainRoundedCorners(IConsole::IResult *, void *, IConsole::FCommandCallback, void *) { GameClient()->OnWindowResize(); } this is weird, i'm getting a can't call member w/o instance error, as if CMenus didn't inherit from CComponent? (edited)
10:21
and sorry if this is bad form & i'm not populating something i need to or whatever. i see some pfnCallback action above but im trying to get it laid out first
Avatar
Did you also add it in menus.h?
Avatar
You need to call pfnCallback so the config value is changed (the original command handler)
Avatar
oh this is my bad
10:23
i copy pasted & the def in the header is static
10:29
got it working. thanks
Avatar
Instead of returning the number of bytes written, which are platform specific, return true on success and false on failure, so no platform specific code is required when checking the result.

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 a...
Avatar
3173aee Simplify io_write_newline error handling - Robyt3 686b265 Merge #6343 - bors[bot]
Avatar
@ChillerDragon I didn't get if you found the issue. The thing is that I had the same ('crash' with exit code 141 after SIGPIPE received). It turned out that DDNet does not handle SIGPIPEs. Maybe what you need is this commit: https://github.com/ddnet/ddnet/commit/199da2410df05ccdce4f98d41628725699c41080#diff-83a6b32fd0c42ef297d20d7ffbca30bd6945a6a78dc48a8df0d1130375477011R76 Also note that some tools catch the signals before the application, thus e.g. if you run gdb ./DDNet-Server you can get a stop on that (or another otherwise suppressed) signal.
15:16
(Thanks to @heinrich5991#9827 for giving me the clue about the signal ignoring, I could spend a lot of time trying to find the "fix" (in quotes because IMO it is not a proper fix). I was running the server via catchsegv and it seems (but I'm not sure) that the tool catches SIGPIPE before the app could ignore it.)
15:40
31 hours of compiling with MSVC
Avatar
sup, how do i convert this into a std::any_of? its a bool array All examples online are vectors and i couldnt get it work here (edited)
Avatar
@deen could you update the twmap-tools for the ddnet discordbot?
Avatar
Avatar
Vy0x2
sup, how do i convert this into a std::any_of? its a bool array All examples online are vectors and i couldnt get it work here (edited)
Avatar
True could have asked this guy thx
Avatar
Move reset command from client to console, so it's also available on the server.

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 wit...
Avatar
ChillerDragon BOT 2023-02-18 16:39:17Z
@Kaffeine interesting thanks. But the fix you sent if from jan 2021 pretty sure my servers were running with that patch already since i merge with upstream more than once a year
16:39
is from*
16:41
@fokkonaut pretty overkill readme for a project where like what 3 people have access and one of them is you :D sorry idk where to dm you these days
Avatar
Maybe it becomes opem source in the future (?) 🤭 :o
Avatar
a readme is supposed to help a new person interested in the project understand what the project is about (edited)
16:43
you could add one more to the project anytime in the future
Avatar
ChillerDragon BOT 2023-02-18 16:43:39Z
wowo leak
Avatar
or as fokkonaut said, open sourcing it
Avatar
ChillerDragon BOT 2023-02-18 16:44:01Z
thats basically what i wanted to hear hehe :)
16:44
poggies fddr open src
16:44
confirmed
Avatar
A small readme/documentation has been planned for years already
Avatar
ChillerDragon BOT 2023-02-18 16:44:41Z
ikr
Avatar
idk never was motivated but started today
Avatar
ChillerDragon BOT 2023-02-18 16:44:47Z
im surprised u actually did it hehe
Avatar
A little
16:44
xd
16:45
Usually I am good at writing, Im just lazy
Avatar
ChillerDragon BOT 2023-02-18 16:45:36Z
okok mr nobel winning author
Avatar
closed source bad
Avatar
ChillerDragon BOT 2023-02-18 16:46:33Z
btw i saw you started typing out cmd docs i highly recommend automating that
16:46
i think ddnet or vanilla even have tools for that
Avatar
Avatar
ChillerDragon
btw i saw you started typing out cmd docs i highly recommend automating that
Yea I know, thats why I didnt start it yet
Avatar
ChillerDragon BOT 2023-02-18 16:47:11Z
🧠
Avatar
just for the look of the table
16:47
But Im not sure whether I want to document it in detail or simply the desc from ingame
Avatar
ChillerDragon BOT 2023-02-18 16:47:39Z
The magic scripts that make DDNet run. Contribute to ddnet/ddnet-scripts development by creating an account on GitHub.
16:47
i think dis
16:48
The magic scripts that make DDNet run. Contribute to ddnet/ddnet-scripts development by creating an account on GitHub.
Avatar
lol cool
Avatar
ChillerDragon BOT 2023-02-18 16:48:49Z
but what do i know i typed out 10k lines html for network docs eventho network code is generated with py scripts that could also spit out html if changed xd
16:50
big pro
Avatar
Avatar
Ryozuki
closed source bad
Anti-bot? Sometimes there are reasons for "closed source". 😕
Avatar
chiller would still argue
16:52
Avatar
Avatar
Kaffeine
Anti-bot? Sometimes there are reasons for "closed source". 😕
nein
16:53
thats just security via obfuscation
Avatar
not even obfuscation
16:54
obfuscation is hiding the information behind cryptography
16:55
antibot can't be deobfuscated (because it isn't obfuscated) (edited)
Avatar
insert villager sound
Avatar
ChillerDragon BOT 2023-02-18 16:55:51Z
is there a difference between open source and closed source onbgy anti bot?
16:55
axaxaxax
Avatar
chillerdragon: cant imagine its been 5 years coding now
Avatar
ChillerDragon BOT 2023-02-18 16:56:04Z
half decade pro haxor
Avatar
Avatar
ChillerDragon
is there a difference between open source and closed source onbgy anti bot?
lul, open sourcing it would lead to obfuscation
16:56
still secure
Avatar
no I think what he meant was
16:56
that if it was good it wouldn't need to be closed source
Avatar
Nono xf
Avatar
ChillerDragon BOT 2023-02-18 16:57:00Z
xd
16:57
ye fddr bad so it closed src
16:57
axaxax
Avatar
ongby src code = hf reading
Avatar
Avatar
ChillerDragon
ye fddr bad so it closed src
hardcoding detection vectors of public clients is bad
Avatar
He is trolling
Avatar
ChillerDragon BOT 2023-02-18 16:57:43Z
nobys c looks like assembly
16:57
f3
Avatar
optimization
Avatar
ChillerDragon BOT 2023-02-18 16:57:50Z
its new language
16:57
its NobyC
Avatar
don't steal my memes
Avatar
Avatar
default
hardcoding detection vectors of public clients is bad
but I understand why you do it
16:59
it's hard to come up with a 100% detection method that doesn't rely on that information
Avatar
ChillerDragon BOT 2023-02-18 17:00:15Z
@ReiTW ok lemme think of susmin new: "obi wan c noby" meh only works in german :D
17:00
well doesnt rly work in eng or ger xd
Avatar
kenoby works in german (edited)
17:00
or broken english
Avatar
ChillerDragon BOT 2023-02-18 17:01:19Z
A B KE
Avatar
He aint using the ABC, he has his own NoByC
Avatar
ChillerDragon BOT 2023-02-18 17:01:41Z
watrfak
Avatar
Thats why no one can read it
17:01
ax
Avatar
obfuscation doesn't imply cryptography
Avatar
Ob-Ewan C noby
Avatar
Avatar
Ewan
obfuscation doesn't imply cryptography
you know what I mean though
17:02
you can't deobfuscate something that isn't obfuscated
Avatar
Chuck Norris can
17:02
LOL
17:03
fokko are you ever going to have a server for the US?
Avatar
donate for one
Avatar
Hmm, probably not in near future
17:03
I would need to re do some things on the serverside to work with MySQL
17:03
otherwise no db con
Avatar
I wished I could just set one up rn
Avatar
ChillerDragon BOT 2023-02-18 17:04:00Z
netfs + txt db > mysql
17:04
change my mind
17:05
Just use mails to send the data and later scan the data and paste it into txt documents and use fifo to tell the server new data arrived
17:05
scan the letter
Avatar
lol (edited)
Avatar
stonks
17:05
80ct porto
Avatar
ChillerDragon BOT 2023-02-18 17:09:46Z
computers were a mistake my db is a unpaid intern that has to remember all data
Avatar
in what units is the m_Vel?
17:16
is it in pixels?
Avatar
ChillerDragon BOT 2023-02-18 17:18:34Z
in what units is pixels?
Avatar
ChillerDragon BOT 2023-02-18 17:18:56Z
xd no i mean what are pixels how long are they?
17:19
i assume m_vel is in the smallest unit of m_pos
17:19
which was like what 32 a tile or something?
17:19
64?
Avatar
32 yeah
Avatar
ChillerDragon BOT 2023-02-18 17:20:15Z
pixel seems screen resolution dependend idk how that would work
Avatar
Not necessary screen pixel
Avatar
ChillerDragon BOT 2023-02-18 17:21:31Z
i do not for a fact but i highly assume vel is measured in the smallest unit a tile has
Avatar
Avatar
ChillerDragon
pixel seems screen resolution dependend idk how that would work
yea but pixels still could get used
17:21
what you see on screen is affected by the zoom factor
Avatar
ChillerDragon BOT 2023-02-18 17:22:16Z
thats just confusing to me :D
Avatar
Avatar
default
yea but pixels still could get used
I at least could list a few games that do that
17:22
i wouldn't use it for velocity though
17:22
velocity in most cases got no unit
Avatar
ChillerDragon BOT 2023-02-18 17:22:49Z
according to ddnet wiki a tile is 64x64
Avatar
but is just representing your position change in a specific time
Avatar
ChillerDragon BOT 2023-02-18 17:22:59Z
so i assume a vel of 32 makes you travel half a tile per tick?
17:23
idk
Avatar
Avatar
default
but is just representing your position change in a specific time
it's a vector that gets affected by gravity too
Avatar
ChillerDragon BOT 2023-02-18 17:23:37Z
isnt velocity measured in distance unit per time unit?
17:23
generally speaking
Avatar
Avatar
ChillerDragon
according to ddnet wiki a tile is 64x64
pixels, yup, but what if m_vel doesn't represent pixels kekw
Avatar
ChillerDragon BOT 2023-02-18 17:24:17Z
oh wait no
17:24
60x60 units xd
17:24
wat
Avatar
ChillerDragon BOT 2023-02-18 17:24:36Z
Solid tiles (unhookable, hookable, hookthrough) have a square hitbox of 60x60 units.
Avatar
is that even true
Avatar
kinda of misinformation?
Avatar
ChillerDragon BOT 2023-02-18 17:25:08Z
internet never lies
17:25
wiki always facts
Avatar
Avatar
ChillerDragon
wiki always facts
X years old wooker
Avatar
Avatar
gerdoe
kinda of misinformation?
I mean that was written by nondevelopers that try to explain collision
17:25
that's why I did my research first before trying to explain why shotgunfly works
Avatar
ChillerDragon BOT 2023-02-18 17:25:51Z
is it non devs?
Avatar
wiki can be edited by anyone
17:26
so likely?
Avatar
ChillerDragon BOT 2023-02-18 17:26:16Z
why are you asking about units anyways?
17:26
whats ur mission?
Avatar
@Mr.Gh0s7
Avatar
My mission is to haunt BOO. BOO. BOO.
17:27
in seriosness though it's because I have problems with the KoGAI
Avatar
if you need help with coding hacks, I can help
17:27
jk
Avatar
no it's not hacks
Avatar
DDraceNetwork, a free cooperative platformer game. Contribute to ddnet/ddnet development by creating an account on GitHub.
17:28
real size of tee is a box of 56x56
17:28
and tile should be 64x64
17:28
can't find any proof
Avatar
what is the cause of the 64 again?
17:30
i only see 32 in the code
Avatar
// We show the speed in Blocks per Second (Bps) and therefore have to divide by the block size float DisplaySpeedX = VelspeedX / 32;
17:31
and where is 64 used?
17:31
or what causes that 32 to turn 64?
17:31
ticks?
Avatar
32 * x = 64 <=> x = 2
17:32
Result 2 is the impostor
17:32
DDraceNetwork, a free cooperative platformer game. Contribute to ddnet/ddnet development by creating an account on GitHub.
17:32
seems tile is 32x32
Avatar
@Mr.Gh0s7 it was originally been 64 per tile but later dropped for performance reasons
Avatar
and tee is 28x28
17:32
where tf did you get 64 from
Avatar
says that in the wiki? we need to add that
17:32
half misinformation = half true
Avatar
source code states that tile is 32x32 and tee is 28x28 xd, did my work to spread misinformation also
Avatar
Avatar
zogtib
half misinformation = half true
that's why everyone should do their research. see this? I did mine.
17:33
i even provided the variable name
Avatar
we must do anything we can for the purpose
17:34
jokes aside, gamecore::GetTile uses / 32
Avatar
i'll edit wiki
Avatar
actually src/game/collision.cpp::GetTile()
Avatar
Avatar
zogtib
actually src/game/collision.cpp::GetTile()
have said it already xd
Avatar
Avatar
gerdoe
have said it already xd
true misinformation can't be consistent lol hahaha
Avatar
tile is 32
17:42
a solid block is 60x60 relative to a tee
Avatar
Avatar
louis
a solid block is 60x60 relative to a tee
what
Avatar
i mean, why this is true
17:43
based on what xd
Avatar
just like how kill tile has more than 32x32, unhookable etc. has larger hitboz
Avatar
Avatar
gerdoe
based on what xd
i tested it ingame before, im pretty sure its correct
Avatar
nope, kill tiles have the same hitbox as any tile have
Avatar
tee changes his hitbox based on tile interaction
Avatar
not relative to a tee
Avatar
DDraceNetwork, a free cooperative platformer game. Contribute to ddnet/ddnet development by creating an account on GitHub.
Avatar
thats why it says relative to the center position of a tee in the wiki
Avatar
ah okey
Avatar
ppl will care about that much more than code specjfics
17:45
i think
17:46
i didnt know that tee technically changes hitbox
17:46
if so then someone can add that in, but it should basically describe it in similar ways
Avatar
tee-kill tile collision in a nutshell
18:16
9.33 is approximately 1/3 of 28
18:17
and there is 0 unit interaction with all ddrace tiles afaik
18:18
you need to have center of your tee in tile to interact
Avatar
not with freeze tiles
18:18
ah
18:18
yes
Avatar
server literally gets tile index by mapping tees position
18:24
@louis so yeah you are right
18:24
like 32 + 9.33 * 2 is kinda 50
Avatar
don't get why do solid tiles have 60x60 hitbox btw
18:33
ah wait
18:33
32 + 14 * 2
18:34
and also server checks if tee's grounded by checking center.y + radius + 5
18:34
so tee's walking in air xd
Avatar
its a feature
Avatar
Set uniform names for the targets to: 1. Avoid long rebuilds on the target executable name changed 2. Provide the same name for different executables and/or different setup (use-cases are cmake --build . --target game-server and various CMake target lookups in IDEs) Those changes are necessary but not enough to allow CI for custom app name on all platforms. Personally this 'll allow me switch to between DDNet and Infclass branches faster and without breaking the targets configurat...
Avatar
Avatar
Vy0x2
It's not removed.
Avatar
@Jupstar ✪
yes 2
22:19
java good
22:19
right
Avatar
d09393e Add reset command to server - Robyt3 08a1214 Merge #6344 - bors[bot]
Exported 316 message(s)