Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.org/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-09-27 00:00:00Z and 2023-09-28 00:00:00Z
Avatar
Avatar
Ryozuki
become independent
congratulations
Avatar
Avatar
fokkonaut
(and i only focus on that part right here; that they DO NOT get discussed properly BEFOREHAND)
i think that this is an excellent point and i am also sick of having the same conversation 4 times only for it to end up going a different way than we seem to have agreed on, or something equally irritating
01:41
i think that every new feature with potential to upset existing users should be debated heavily and maybe we should start to make use of the github discussions feature
Avatar
This change allows the client to use the Gamemode feature from macOS 14 by specifying the app category at Info.plist.

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 e...
Avatar
03f3994 Update Info.plist.in - M0REKZ 05efa68 Merge pull request #7260 from M0REKZ/infoplist-gamefix - def-
Avatar

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/ddnet/#using-addresss...
10:03
coffee gang
10:03
🦀
Avatar
Avatar
Ewan
i think that every new feature with potential to upset existing users should be debated heavily and maybe we should start to make use of the github discussions feature
No sane individual would think the order of colors changing would irk people, that's why there wasn't much talk on it. Though as a person very familiar with nostalgic game brainrot, I did have a hunch. Sadly I was too busy at the time to get a debate going
10:06
Other than that we do usually have debates on ui/ux, it just doesn't really need to much of anywhere. There is always some group of individuals that don't like some option and another group that won't like any option. At the end of the day people that don't like it make more noise and thus every UI/UX or gameplay change looks bad in the aftermath no matter how much debate went on before it got in
Avatar
if u go to any forum, the people actively commenting always are people with complains
10:07
happy ppl spend time playing
this 1
10:07
xd
Avatar
If you don't like something, you have much more reason to show up to debates
10:09
I do however have an idea, just hidden options for everything that we provide no support for at all
👍 1
10:09
Makes code maintainance a little more annoying but doesnt have testing burden
Avatar
Otherwise player will show as AFK in the server list until ExpireServerInfo() would be called, e.g. when someone else joins.

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 affec...
Avatar
Avatar
Ryozuki
coffee gang
🍵
Avatar
2347758 Don't show cl_showpred in demos - furo321 5b3738d Merge pull request #7261 from furo321/demo-show-pred - def-
Avatar
4f0552a Expire server info when changing m_Afk - furo321 6a030e1 Merge pull request #7262 from furo321/expire-server-info-afk - def-
Avatar
Avatar
Ewan
i think that every new feature with potential to upset existing users should be debated heavily and maybe we should start to make use of the github discussions feature
what benefit does the github discussion have over issues/PRs? in the little experience I had with it, it mostly had lower visibility resulting in less participation
Avatar
Avatar
Learath2
I do however have an idea, just hidden options for everything that we provide no support for at all
do you have an idea on how we can provide no support though?
11:22
I see someone coming in with a problem. we're going to help them
11:22
where does the "no support" come in?
11:29
sip
Avatar
Avatar
Ryozuki
Click to see attachment 🖼️
Alrwdy finished?
Avatar
Avatar
heinrich5991
where does the "no support" come in?
If they have a non-empty grep ^exp_ ~/.local/share/ddnet we just tell them we can't help
Avatar
Ok, for one last time, I'll fix #5842
poggers 1
Avatar
Supersedes #5092, I am still not very sure about this structure either, but I think it's time someone else takes a look. Remaining concerns: Should errors in the http module just be fatal? I...
Avatar
I still am not very sure about how that pr ended up like :/
13:01
A second job pool feels so wrong
Avatar
Avatar
Learath2
A second job pool feels so wrong
That would have been my poor mans solution for getting rid of the long "Quitting. Please wait..." screen
Avatar
Avatar
Robyt3
That would have been my poor mans solution for getting rid of the long "Quitting. Please wait..." screen
Btw it's much more prominent on the new version, it's very annoying
Avatar
Avatar
Learath2
Btw it's much more prominent on the new version, it's very annoying
Yeah, we started to wait for all jobs to finish before quitting the graphics, because some jobs need the graphics to not crash
13:04
Poors mans solution would have been to split jobs into two categories: those that need graphics and those that don't
Avatar
Hm, what jobs need graphics to still be there?
Avatar
I think skin loading
13:05
But the HTTP jobs are what is taking so long to quit (edited)
Avatar
The slow part of those would be the I/O, couldn't we have a guard right after IO finishes where we check if gfx is still alive?
Avatar
If graphics can be shutdown independently from the jobs then it seems almost impossible to handle in the jobs, if the graphics pointer could become invalid at any point in the execution
Avatar
There is a smaaaall window there, if i/o finishes, the texture starts being loaded and right before it's done the gfx dies
13:09
Yeah, I guess no way to avoid that one completely without having proper job hierarchy
Avatar
Avatar
Learath2
A second job pool feels so wrong
I don't remember, why is it a whole different pool? just virtual descriptions of http jobs, probably?
14:13
because the multi interface should be able to do all of the work in one thread
Avatar
Avatar
heinrich5991
I don't remember, why is it a whole different pool? just virtual descriptions of http jobs, probably?
http jobs need to not be launched on a different thread because of the multi yeah
14:56
multi needs just one thread
14:59
Every time I look at this PR I get dragged into researching how I could generate ids for these runners at compile time 😄
14:59
I definitely have some sort of braindamage
15:15
40 year anniversary
15:18
😃 1
amongusblue 1
15:18
????
Avatar
@Learath2 @Ewan idk who else was into audio
15:28
u know a nice subwoofer in the range <200€ ?
15:29
subwoofer uses the AUX right?
15:29
on my fioo xd
15:29
fiio
Avatar
Avatar
Ryozuki
@Learath2 @Ewan idk who else was into audio
I'm into fixing my 15 year old 20 € headphones by soldering cables, does that count? I sold my FiiO E10k for more than I paid new for it after I did a blind test against my onboard sound and noticed they sound identical. Usually there should be a cinch out for subwoofers
Avatar
cinch an extremely easy task.
15:57
TIL
Avatar
Avatar
deen
I'm into fixing my 15 year old 20 € headphones by soldering cables, does that count? I sold my FiiO E10k for more than I paid new for it after I did a blind test against my onboard sound and noticed they sound identical. Usually there should be a cinch out for subwoofers
well for me anyone into audio is someone who did a bit of research i guess xD
15:57
what do u meann by "Usually there should be a cinch out for subwoofers"
Avatar
Oh, always thought cinch is the english term as well, I meant RCA connector: https://en.wikipedia.org/wiki/RCA_connector
The RCA connector is a type of electrical connector commonly used to carry audio and video signals. The name RCA derives from the company Radio Corporation of America, which introduced the design in the 1930s. The connector’s male plug and female jack are called RCA plug and RCA jack. It is also called RCA phono connector or phono connector. T...
Avatar
oh i see
Avatar
In some European countries (i.e. Germany) the older English name “Cinch” is still used.
15:58
there is a line out in the back
15:58
a coax too
Avatar
Read the manual? Line out sounds like it could work
Avatar
but i use the line out in the back for my bose speakers xd
Avatar
Avatar
Learath2
I do however have an idea, just hidden options for everything that we provide no support for at all
I think this is a good idea
Avatar
Avatar
Ryozuki
but i use the line out in the back for my bose speakers xd
your neighbors will hate you, but you should see if your bose speaker set has a sub addon
16:12
though idk about new options
16:12
gm 🥛 btw
Avatar
Avatar
Ewan
your neighbors will hate you, but you should see if your bose speaker set has a sub addon
true
Avatar
you're on first floor anyway. they will still hate you but not as much
16:19
i got the police called on me twice for using my sub in our old apartment
16:19
we were on the second story and i swear to god the lado downstairs could hear you breathe
16:19
and when she did she'd hit the ceiling with a broomstick or smth
16:20
i wont get it for now
Avatar
Avatar
Ewan
we were on the second story and i swear to god the lado downstairs could hear you breathe
lado? *lady
16:21
wtf is a lado
Avatar
@Ewan are u into aquariums
16:21
i got a 100 liter one
Avatar
naw not really
16:21
100 liters justatest
Avatar
26.4 gallons
16:21
in murica units
Avatar
i think we had a 20 gallon tank for our axolotl
16:21
my mom killed it
16:22
axolotls are cool af
Avatar
but i asked cuz in murica
16:22
there are lot of hobbiists
16:22
whathever the word is
Avatar
hobbyists
Avatar
people in their garage selling stuff
16:22
i found that cool
16:22
here i got store in front of my apartment tho
16:22
which is why i got into this again
Avatar
yea yard sales
16:23
i did a bunch of work just a few months ago for my cousin's/dad's yard sale
16:24
they put all their shit together and sold it and made a few grand
16:24
everything sold but the 'indoor gardening' equipment
16:24
stoners today don't know how to save a dollar
16:25
i think aquariums and the things u put in them are pretty cool
16:26
but not cool enough to want to feed them x times a day and regulate their tank temperature and oxygen content and stuff
16:26
i just go to the denver aquarium every once in a while and am satisfied
Avatar
Avatar
Ewan
but not cool enough to want to feed them x times a day and regulate their tank temperature and oxygen content and stuff
xd
16:32
u just get a heater
16:33
i have a thing for the light to turn on and off on x hours
Avatar
http://paste.pr0.tips/WwY How much do you hate this?
Avatar
It works well but it suffers from horrible errors because of template magic
Avatar
I guess another drawback is compile times as with all template stuff
Avatar
I wonder if it's worth working on, @Robyt3 || @heinrich5991 could I pursue either of you to merge something like this? 😄
Avatar
Avatar
Learath2
I wonder if it's worth working on, @Robyt3 || @heinrich5991 could I pursue either of you to merge something like this? 😄
Do you need the runners to be of different types and defined at compile time? I'd assume you'd only use runners with the interface IRunner. It would probably be more readable without the templates, using a factory function to create runners at runtime.
Avatar
Avatar
Robyt3
Do you need the runners to be of different types and defined at compile time? I'd assume you'd only use runners with the interface IRunner. It would probably be more readable without the templates, using a factory function to create runners at runtime.
Yes, they will behave completely differently
18:46
Http runner is one thread that asynchronously runs the http jobs, jobpool runner is the current runner, it uses a thread pool to run jobs
Avatar
But you don't really need to know their type to use them? You just use the IRunner interface with the correct implementation?
18:47
Or do HTTP jobs access HTTP runner internals?
Avatar
Hm, I don't think http jobs need access to the runner internals
18:48
but engine needs to somehow know what job to dispatch to what runner
Avatar
What if you dispatch the job to the runner directly? Engine only creates the runner and jobs can be dispatched on it. If you want to use it, you need a reference/pointer to it.
Avatar
I had one like that too
18:50
#5092
Avatar
This PR tries to rework the http interface to utilize the curl-multi interface. In the process we lost the IJob interface. I experimented with getting rid of the std::unordered_map using CURLOPT_PR...
Avatar
The drawback is that HTTP jobs are no longer IJobs
18:51
Maybe that was the better idea overall, just not involve the engine at all
Avatar
How would that affect skin download jobs, which are subclasses of the http jobs?
Avatar
Avatar
Robyt3
How would that affect skin download jobs, which are subclasses of the http jobs?
You can look at the changes in skins.cpp in 5092 for that, it requires touching every single place a http job is currently used
18:55
It's not a massive diff though, just need to snake through a CHttp pointer to anywhere that was using the engine to currently dispatch the job
18:56
There is also #5842 , it keeps the IJob interface, but achieves the dispatch without template magic, though that means dynamically assigned ids in that case
Avatar
Supersedes #5092, I am still not very sure about this structure either, but I think it's time someone else takes a look. Remaining concerns: Should errors in the http module just be fatal? I...
Avatar
Avatar
Learath2
#5092
I'd prefer this one. Probably not ideal that we do other expensive work in the http requests though. The skin download http request should rather create a separate skin load job when done instead of doing the loading itself.
Avatar
Avatar
Robyt3
I'd prefer this one. Probably not ideal that we do other expensive work in the http requests though. The skin download http request should rather create a separate skin load job when done instead of doing the loading itself.
With the old job interface it didn't matter since each job gets a thread
19:06
with 5092 it didn't matter because the callbacks happened in the main thread
19:07
I think'
19:10
Well atleast I got to learn some more template magic for later use
Avatar
Avatar
Learath2
http://paste.pr0.tips/WwY How much do you hate this?
its c++ so its already on the hate list
19:33
is the _v meant for virtual
19:35
no, apparently it stands for "value"
Avatar
your skin code talk is scaring me because conflicts
Avatar
@Learath2 what's the suspicious #else doing at the end btw?
Avatar
Avatar
heinrich5991
@Learath2 what's the suspicious #else doing at the end btw?
don't remember
Avatar
@heinrich5991 which one do you like more? 5842, 5092 or the template one I have?
Avatar
hmm
22:28
5842 is the same as the template one, but without templates?
22:29
I'm not sure about the benefits and drawbacks
22:29
gut feeling, not founded in useful thoughts: staying with the job system might be nice, so maybe 5842?
22:31
ah, but that system runs meaningful work on the http thread?
22:31
meh, all annoying
Avatar
Avatar
heinrich5991
5842 is the same as the template one, but without templates?
Yes, instead of templates it dynamically assigns ids to runners
Avatar
Avatar
heinrich5991
ah, but that system runs meaningful work on the http thread?
Yes, it pretty much only keeps the interface of the job system
Avatar
but for the skin download job, does it run the png decoding work on the http thread?
Avatar
Avatar
heinrich5991
but for the skin download job, does it run the png decoding work on the http thread?
Yes that's how it was in that PR
22:44
Maybe not ideal now that I think about it yeah
Avatar
we lack a good job abstraction ^^
Avatar
Avatar
heinrich5991
we lack a good job abstraction ^^
Even if we did have one, with curl-multi we'd still have to have some jobs run differently to others
Avatar
yep
23:08
however, a job abstraction might make it able to run jobs after others
23:09
removing the png loading problem
Avatar
If you don't mind some templates I can try to make something like futures
Avatar
I guess that might be good
Avatar
I will take a look, it might end up being a little beyond my level
Avatar
does C++ bring such an abstraction already?
Avatar
gdb stacktrace: (gdb) where #0 __GI___libc_write (nbytes=24, buf=0x7fffe00159c3, fd=13) at ../sysdeps/unix/sysv/linux/write.c:26 #1 __GI___libc_write (fd=13, buf=0x7fffe00159c3, nbytes=24) at ../sysdeps/unix/sysv/linux/write.c:24 #2 0x00007ffff7c4f663 in ?? () from /lib/x86_64-linux-gnu/libcrypto.so.3 #3 0x00007ffff7c3f2fb in ?? () from /lib/x86_64-linux-gnu/libcrypto.so.3 #4 0x00007ffff7c42c06 in ?? () from /lib/x86_64-linux-gnu/libcrypto.so.3 #5 0x00007ffff7c42d37 in BIO_write () from /lib/x86_64-linux-gnu/libcrypto.so.3 #6 0x00007ffff7288e5e in ?? () from /lib/x86_64-linux-gnu/libssl.so.3 #7 0x00007ffff728b69b in ?? () from /lib/x86_64-linux-gnu/libssl.so.3 #8 0x00007ffff725f32f in ?? () from /lib/x86_64-linux-gnu/libssl.so.3 #9 0x00007ffff7299508 in ?? () from /lib/x86_64-linux-gnu/libssl.so.3 #10 0x00007ffff728c57b in ?? () from /lib/x86_64-linux-gnu/libssl.so.3 #11 0x00007ffff728df19 in ?? () from /lib/x86_64-linux-gnu/libssl.so.3 #12 0x00007ffff72683fc in ?? () from /lib/x86_64-linux-gnu/libssl.so.3 #13 0x00007ffff726ecb7 in SSL_read () from /lib/x86_64-linux-gnu/libssl.so.3 #14 0x00007ffff7b412bf in ?? () from /lib/x86_64-linux-gnu/libcurl.so.4 #15 0x00007ffff7b2ecf6 in ?? () from /lib/x86_64-linux-gnu/libcurl.so.4 #16 0x00007ffff7b24dfa in ?? () from /lib/x86_64-linux-gnu/libcurl.so.4 #17 0x00007ffff7b08e28 in ?? () from /lib/x86_64-linux-gnu/libcurl.so.4 #18 0x00007ffff7b0d6b8 in ?? () from /lib/x86_64-linux-gnu/libcurl.so.4 #19 0x00007ffff7b0f3be in curl_multi_perform () from /lib/x86_64-linux-gnu/libcurl.so.4 #20 0x00007ffff7aebe53 in curl_easy_perform () from /lib/x86_64-linux-gnu/libcurl.so.4 #21 0x0000555555693b15 in CHttpRequest::RunImpl (this=0x555555bd5410, pUser=0x7fffe000b0f0) at /media/server/gameserver/src/engine/shared/http.cpp:270 #22 0x000055555569342b in CHttpRequest::Run (this=0x555555bd5410) at /media/server/gameserver/src/engine/shared/http.cpp:154 #23 0x0000555555697e77 in CJobPool::RunBlocking (pJob=0x555555bd5410) at /media/server/gameserver/src/engine/shared/jobs.cpp:118 #24 0x000055555568fc9d in IEngine::RunJobBlocking (pJob=0x555555bd5410) at /media/server/gameserver/src/engine/shared/engine.cpp:118 #25 0x000055555558437e in CRegister::CProtocol::CJob::Run (this=0x555555bb0300) at /media/server/gameserver/src/engine/server/register.cpp:414 #26 0x0000555555697e77 in CJobPool::RunBlocking (pJob=0x555555bb0300) at /media/server/gameserver/src/engine/shared/jobs.cpp:118 #27 0x0000555555697b78 in CJobPool::WorkerThread (pUser=0x5555558a3dc0) at /media/server/gameserver/src/engine/shared/jobs.cpp:73 #28 0x00005555556be99e in thread_run (user=0x5555558a57d0) at /media/server/gameserver/src/base/system.cpp:725 #29 0x00007ffff7461b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #30 0x00007ffff74f3a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 (gdb) logs: 2023-08-26 07:10:37 I chat: *** 'wail' has left the game 2023-08-26 07:10:37 I game: leave player='0:wail' 2023-08-26 08:38:27 I http: https://master1.ddnet.org/ddnet/15/register failed. libcurl error: The requested URL returned error: 502 2023-08-26 08:38:27 E register/6/ipv4: error response from master 2023-08-26 09:42:44 I server: player has entered the game. ClientID=0 addr=<{[hidden]}> sixup=0 2023-08-26 09:42:44 I chat: *** 'Aesir' entered and joined the game 2023-08-26 09:42:44 I ddnet: cid=0 version=17021 2023-08-26 09:42:44 I sql: load player data done on read database 0 2023-08-26 09:42:44 I sql: get points done on write database 0 2023-08-26 09:45:18 I chat: *** 'Aesir' has left the game 2023-08-26 09:45:18 I game: leave player='0:Aesir' common error?
Exported 180 message(s)