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 2024-12-07 00:00 and 2024-12-08 00:00
Avatar
@Tater type kill lag in console
00:09
to kill lag
00:09
same with minimize lag
Avatar
yeah but people use kill normally
00:09
in that way
Avatar
most plp have a bind to kill
Avatar
I find it useful to have it available
Avatar
well u can always
00:10
allow_dangerous_commands
Avatar
I thought that doesnt save
00:10
also
Avatar
it doesnt on purpose
Avatar
I don't want to enable unbindall
00:11
unbindall is like an order of magnitude worse than those other ones
00:11
so I'd rather just never enable it
Avatar
thats would be deleting unbindall
00:11
which i dont want
00:11
I just don't want to need to enable it to use those other commands
Avatar
oh oke
Avatar
minimize also does nothing?
00:12
just open it
00:12
you're already in f1
00:12
you weren't playing
Avatar
thats fair
Avatar
holy hell HOW am I this DAFT fmap and (.) are the SAME THING
00:12
new revelations every day
Avatar
Avatar
Solly
@Tater type kill lag in console
the real issue here is allowing this at all
00:13
kill should enforce a single parameter
Avatar
ig so
Avatar
void CGameClient::ConKill(IConsole::IResult *pResult, void *pUserData) { if(pResult->NumArguments() == 0) ((CGameClient *)pUserData)->SendKill(-1); } I think this works
Avatar
shouldnt it be forced at the parser level (edited)
Avatar
that could break some incorrect binds or configs that people use
Avatar
I'm still not really a fan of grouping the slightly harmful commands with unbindall (edited)
00:19
you can always tell them you press alt+f4 to gain points
Avatar
Avatar
Tater
you can always tell them you press alt+f4 to gain points
unbind alt+f4
Avatar
Avatar
Solly
@Tater type kill lag in console
type quit gambling to convert all your luck into skill
00:19
alt f4 is good
00:20
that's the only way I close the client xd
Avatar
uhmm actually i use win+f4
Avatar
Avatar
Tater
you can always tell them you press alt+f4 to gain points
It's the keybind to open the secret dev console where you can get super no matter whose server you're on
Avatar
norming
Avatar
@Jupstar ✪ I updated my graphics drivers and vulkan is slower than opengl now, it runs at 600fps
02:35
I haven't changed anything about my installation
02:37
it also has really noticeable stutters
02:38
(running the current steam build)
Avatar
GitHub BOT 2024-12-07 02:47
PLAYERFLAG_PLAYING did nothing, and it makes sense to use it for the same purpose as PLAYERFLAG_SPEC_CAM, so we don't need PLAYERFLAG_SPEC_CAM. Please do not insta merge this, thank you 🙂

Checklist

  • [X] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [X] 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 ...
Avatar
GitHub BOT 2024-12-07 04:09
DDNet 0.6 is 0.6.4 based. DDNet then added its own TKEN extension for anti spoof tokens which is not understood by Teeworlds servers. Then Teeworlds 0.6.5 introduced its security tokens which is not understood by the ddnet client. ⚠️ teeworlds 0.6.4 teeworlds 0.6.4 ⚠️ teeworlds 0.6.4 teeworlds 0.6.5 🔒 teeworlds 0.6.5 teeworlds 0.6.5 ⚠️ ddnet teeworlds 0.6.5 🔒 ddnet ddnet 🔒 ddnet teeworlds 0.7 This means that if you play ddnet on a teeworlds...
Avatar
godot very cool very stable
04:20
no wait
04:20
windows very cool very stable
Avatar
@TsFreddie the behavior in your video on github doesn't seem to have anything to do with the sequence of things you do before it? If I have a 300ms connection on steam ddnet and do /spec it will cause a pop-in every single time.
Avatar
probably
Avatar
either way I can't really be bothered to figure that out so I'm just going to rename the flag
Avatar
the sequence it's just me doing mental gymnastics trying to find something. but renaming the flag and making sure it represents the input type does bare us from playing mental chess just to figure out what the code does (edited)
05:20
vibe
Avatar
ok I figured it out, it was completely unrelated to anything, apparently the purpose of PLAYERFLAG_PLAYING was actually to clear the playerflags between ticks because it was never doing that anywhere else.
05:33
@TsFreddie can you test it again after the artifact builds
05:35
I can't get it to do the popping anymore
05:35
so I think it's fixed
Avatar
@Tater maybe use a latency faker, it is more reproducable under higher ping
05:55
It's at 900ms
Avatar
the easiest reproducable step is to just press pause bind and enter chat really quickly
Avatar
did you run the server and the client?
Avatar
yes
05:56
i just built your pr here, it's the same server and client version
Avatar
but I did the exact same thing as your video
05:59
here's me checking commit version, building your code and run it
05:59
i'm using clumsy btw
Avatar
the thing you did in the video is patched tho right? (edited)
06:00
I can test this seperately
Avatar
i posted two new videos on github
06:00
those are still do able
Avatar
the first video
06:01
from an hour ago (edited)
06:01
does that still happen
06:01
the one with all the steps
Avatar
probably not
Avatar
justatest but again, tie the flag to input type is probably the best thing to do.
Avatar
I don't really see any reason it can't work tho
06:07
why would there be popping when you're viewing your own tee, isn't that a different issue?
Avatar
no
Avatar
it's the same issue
Avatar
it's the same issue where server can not tell what type of value m_TargetX and Y is holding
06:08
any other conditions beyond just m_pClient->m_Camera.CamType() != CCamera::CAMTYPE_SPEC you are just introducing potential desyncs and confusing the server.
06:08
i'm sure @Learath2 understand this as well, he can back it up.
Avatar
imma be afk for a bit. maybe someone else can confirms where the problem lies. my english is not up to task to explain this right now i think.
Avatar
I wanted to keep it the same as the old meaning to ensure compatibility with mods who may be doing who knows what with the flag. I think that eliminating popping when you press chat and spec at the same time is probably not worth that risk but I've done it anyway (edited)
Avatar
I wanted to keep it the same as the old meaning to ensure compatibility with mods who may be doing who knows what with the flag.
revert my pr and mark the problem won't fix is a better way to achieve that and not having to use another bit of playerflag.
06:53
just finished my walk
06:53
vibe
Avatar
Avatar
TsFreddie
I wanted to keep it the same as the old meaning to ensure compatibility with mods who may be doing who knows what with the flag.
revert my pr and mark the problem won't fix is a better way to achieve that and not having to use another bit of playerflag.
the version that only breaks if you press chat and pause at the same time is still a significant upgrade at very little maintinence cost imo
07:00
I've already exhausted nearly my entire energy budget for this topic so I'm willing to do literally anything. I don't even care about removing the 6th flag anymore
07:01
I'll just have to put a setting in tclient that turns it off for the next 5 months until noby updates his fng servers
Avatar
Avatar
Tater
I'll just have to put a setting in tclient that turns it off for the next 5 months until noby updates his fng servers
null
Avatar
Avatar
DDNet
null
oh ye, that happened
07:05
fng
Avatar
Avatar
TsFreddie
fng
null
Avatar
the version that only breaks if you press chat and pause at the same time
that also breaks whatever mods are doing with the flag when player is spectating in freeview while not having chat or menu opens, therefore breaking both compatibility purpose and the fix purpose. I'll just revert my pr directly, the original issue is such a small issue, marking won't fix is probably better for both compatibility and not introducing new flags. the issue gotta be marked won't fix tho, cuz someone might try to fix it and do what we've tried all over again
Avatar
Avatar
TsFreddie
oh ye, that happened
wasnt it "🍉" (edited)
07:16
fng
Avatar
Avatar
Sans
fng
null
07:16
oop
Avatar
Avatar
TsFreddie
the version that only breaks if you press chat and pause at the same time
that also breaks whatever mods are doing with the flag when player is spectating in freeview while not having chat or menu opens, therefore breaking both compatibility purpose and the fix purpose. I'll just revert my pr directly, the original issue is such a small issue, marking won't fix is probably better for both compatibility and not introducing new flags. the issue gotta be marked won't fix tho, cuz someone might try to fix it and do what we've tried all over again
but you could already arbitrarily overlap spectating with either state of the playing flag so mods would already account for this scenario (edited)
07:23
the chance of a mod ONLY breaking if you do not have playing or menu or chat seems very low to me
Avatar
Avatar
Sans
uh
bot lied to you
Avatar
Avatar
Tater
the chance of a mod ONLY breaking if you do not have playing or menu or chat seems very low to me
this is the only new scenario introduced by the version that doesn't invert the flag
07:26
you still can't have playing + menu or chat
Avatar
if some mod is using PLAYERFLAG_PLAYING to do something i can see someone only checking that bit without knowing what the client does, which would have behave differently if we also mask it with a camtype condition.
Avatar
yes but you're not playing while spectating, and you could always have the menu open at the same time
Avatar
you are playing while spectating other players
07:30
if we are talking about that flag
Avatar
yeah but that's fine because you're not doing inputs
07:32
the server can't assume that the playing flag means anything while you're spectating because you can also have the menu or chat open, so no reasonable person would trigger any logic based on it (edited)
Avatar
at this point we are just speculating what modders think
07:33
ok hold on
Avatar
Avatar
Sans
why
why can we use that command anyway
07:40
pepeW
Avatar
excellent question
07:40
i have no idea
Avatar
ok I checked all the mods on https://github.com/miguilimzero/teeworlds-mods (edited)
07:42
none of them check for it in any way
07:43
if someone complains we add a servercap
Avatar
so replacing it can be considered safe for now?
07:44
0.7 doesn't have any equivalent for this flag either (edited)
07:44
they deleted it
Avatar
sounds good to me
Avatar
so we keep the full replacement version?
Avatar
i don't mind.
Avatar
or the lite version
07:45
ok
Avatar
but i also don't mind reverting it. i just don't like the one that breaks only sometimes
Avatar
I don't mind that version because it self documents the problem but idrc
Avatar
@TsFreddie
08:24
I see you in Contributors in the github repository of TeeWare-mod. Could you tell me if there is a file where all the phrases for the tasks are located and in general all the phrases in general. I want to localize it into Russian
Avatar
Avatar
Evelyn
I see you in Contributors in the github repository of TeeWare-mod. Could you tell me if there is a file where all the phrases for the tasks are located and in general all the phrases in general. I want to localize it into Russian
i added like more math to the math one and apparently non-asians thinks it is way too hard and they reverted it.
08:27
@Headshot is active btw, he can help if he wants to
Avatar
MilkeeyCat 2024-12-07 08:29
i rq aoc
Avatar
Avatar
MilkeeyCat
i rq aoc
I rqed 0 day, no time for that
Avatar
MilkeeyCat 2024-12-07 08:32
I have 4 missing matches, I have no idea what's wrong pepeW
justatest 1
Avatar
GitHub BOT 2024-12-07 09:08
I've used BUG_DDRACE_INPUT to allow mouse inputs while specinfo is enabled. That doesnt work anymore due to the new clientside click to spectate function which had been implemented serverside in F-DDrace to also support flags. (0.7 approach)
Avatar
Aw man if I had started earlier instead of feeling down after yesterday I would've easily done today's problem first ...though it takes multiple seconds to run for the 2nd one because I did the simplest thing I could think of
09:16
6.4 seconds real time on my machine lol
Avatar
@risu
Avatar
sorry I'm optimizing bye
Avatar
How to compile TeeWare on a hosting and if there is bam 0.4
Avatar
Avatar
Tater
@Jupstar ✪ I updated my graphics drivers and vulkan is slower than opengl now, it runs at 600fps
Jupstar ✪ 2024-12-07 09:50
well that sucks, did u try to restart pc xd
Avatar
ugh my life is way too abstract right now I want to write (c -> d -> e) -> (a -> b -> c) -> (a -> b -> d) -> a -> b -> e
10:32
(the function should be pretty obvious from the type)
Avatar
and what irritates me is that I managed to write (c -> c -> d) -> (a -> b -> c) -> (a -> b -> c) -> a -> b -> d
10:47
which is so close yet so far
Avatar
кто сможет помоч
10:50
who will help
Avatar
[24-12-07 10:50:18][tuning]: air_friction in zone 3 changed to 1.00 [24-12-07 10:50:18][tuning]: ground_control_speed in zone 3 changed to 0.00 [24-12-07 10:50:18][tuning]: ground_control_accel in zone 3 changed to 0.00 [24-12-07 10:50:18][tuning]: ground_friction in zone 3 changed to 1.00 [24-12-07 10:50:18][tuning]: air_control_speed in zone 4 changed to 4.00 [24-12-07 10:50:18][tuning]: ground_control_speed in zone 4 changed to 6.00 [24-12-07 10:50:18][console]: failed to open 'maps/WarioWare.map.cfg' [24-12-07 10:50:18][TeeWare::bombrain]: 75 total bomb rain entities [24-12-07 10:50:18][TeeWare::passball]: 12 total ball spawn entities [24-12-07 10:50:18][TeeWare::reachendnade1]: 8 total nade spawn entities [24-12-07 10:50:18][TeeWare::reachendnade2]: 8 total nade spawn entities [24-12-07 10:50:18][game]: team_join player='63:' m_Team=-1 [24-12-07 10:50:18][server]: 'bot' -> 'bot' [24-12-07 10:50:18][server]: version 0.6 626fce9a778df4d4 [24-12-07 10:50:18][engine/mastersrv]: refreshing master server addresses [24-12-07 10:50:18][register]: refreshing ip addresses [24-12-07 10:50:18][host lookup]: host='master1.teeworlds.com' port=0 3 [24-12-07 10:50:18][host lookup]: host='master2.teeworlds.com' port=0 3 [24-12-07 10:50:18][host lookup]: host='master3.teeworlds.com' port=0 3 [24-12-07 10:50:18][host lookup]: host='master4.teeworlds.com' port=0 3 [24-12-07 10:50:19][engine/mastersrv]: saving addresses [24-12-07 10:50:19][register]: fetching server counts [24-12-07 10:50:22][register]: chose 'master4.teeworlds.com' as master, sending heartbeats [24-12-07 10:50:23][register]: no firewall/nat problems detected [24-12-07 10:50:23][register]: no firewall/nat problems detected [24-12-07 10:50:23][register]: server registered
10:53
My server did not appear in the list of servers
Avatar
I mean, it sure seems like it did register...
Avatar
ws-client BOT 2024-12-07 10:54
<ChillerDragon> @Evelyn wget https://zillyhuhn.com/crack/bam4 -O /usr/local/bin/bam4 to get bam 4.0 then go to the source code and run bam4 server_release
Avatar
I've already done it.
10:54
I compiled using bam
10:54
4
Avatar
ws-client BOT 2024-12-07 10:55
<ChillerDragon> a ok
Avatar
No, for some reason my server does not appear in the list of servers
Avatar
ws-client BOT 2024-12-07 10:56
<ChillerDragon> @MilkeeyCat yes stop waste time on aoc and do ddnet_protocol instead :p
Avatar
I'm sure I've convinced you guys that I should ABSOLUTELY be working on DDNet code :P :P :P
Avatar
MilkeeyCat 2024-12-07 10:57
chillerdragon: ill look at the prs when I do the 2nd part of day 6 xd
Avatar
ws-client BOT 2024-12-07 10:57
<ChillerDragon> omg aoc is bad for humanity confirmed
Avatar
Avatar
MilkeeyCat
chillerdragon: ill look at the prs when I do the 2nd part of day 6 xd
I still need to figure out how to make that run in under 15 hours... justatest
Avatar
MilkeeyCat 2024-12-07 10:57
mine is fast
10:58
but has one problem, it gives wrong answer (edited)
Avatar
mine is SLOW AS HELL because all my state is immutable
Avatar
Avatar
MilkeeyCat
but has one problem, it gives wrong answer (edited)
I mean, not like I can be certain that mine gives the correct answer considering it would take FIFTEEN HOURS to complete
Avatar
By the way, I will study C++
Avatar
maybe I'll just cheat and skip the second part of 6 until later, just write the solution in a more human language as a temporary solution
Avatar
MilkeeyCat 2024-12-07 10:59
i wanted once for the problem to complete but then it turned out that it was in an infinite loop 😬
Avatar
I'm sure by the end of this gauntlet I'll be writing point-free code like some FP god (edited)
Avatar
MilkeeyCat 2024-12-07 10:59
i did every possible mistake on this problem
Avatar
ws-client BOT 2024-12-07 11:00
<ChillerDragon> @furo nice https://zillyhuhn.com/cs/.1733569145.png
Avatar
There's me in 2nd place with a single shameful gray star... and I'll be in like 4th place once everyone else catches up on the problems
11:01
yet somehow I feel like I have a very realistic chance of winning if I simply don't quit halfway through :P
11:03
it looked like js so i wrote console.log x-x
Avatar
Avatar
Solly
Click to see attachment 🖼️
if(Stroke) is redundant, as you're always having a stroke
Avatar
i really want to use goto's in my code rn D:
Avatar
Jupstar ✪ 2024-12-07 11:40
your gpu hates you
Avatar
Avatar
Jupstar ✪
your gpu hates you
why
11:44
const CChat::CLine *pLine; if(pName) { for(int i = GameClient()->m_Chat.m_CurrentLine; i >= 0; --i) { if(str_comp(GameClient()->m_Chat.m_aLines[i].m_aName, pName) == 0) { pLine = &GameClient()->m_Chat.m_aLines[i]; goto matched; } } for(int i = GameClient()->m_Chat.m_CurrentLine; i >= 0; --i) { if(str_comp_nocase(GameClient()->m_Chat.m_aLines[i].m_aName, pName) == 0) { pLine = &GameClient()->m_Chat.m_aLines[i]; goto matched; } } GameClient()->m_Chat.Echo("No chat to translate"); return; } else { pLine = &GameClient()->m_Chat.m_aLines[GameClient()->m_Chat.m_CurrentLine]; } matched:
11:44
i feel like this is the cleanest way to do it x-x
Avatar
Avatar
Solly
why
Jupstar ✪ 2024-12-07 11:45
randomly jumping around is hard for gpus xd
Avatar
well as long as ur in the same section it isnt bad?
11:45
well any less than jumping at all
Avatar
Jupstar ✪ 2024-12-07 11:45
just be careful not to create spgethi with goto
Avatar
Avatar
Solly
const CChat::CLine *pLine; if(pName) { for(int i = GameClient()->m_Chat.m_CurrentLine; i >= 0; --i) { if(str_comp(GameClient()->m_Chat.m_aLines[i].m_aName, pName) == 0) { pLine = &GameClient()->m_Chat.m_aLines[i]; goto matched; } } for(int i = GameClient()->m_Chat.m_CurrentLine; i >= 0; --i) { if(str_comp_nocase(GameClient()->m_Chat.m_aLines[i].m_aName, pName) == 0) { pLine = &GameClient()->m_Chat.m_aLines[i]; goto matched; } } GameClient()->m_Chat.Echo("No chat to translate"); return; } else { pLine = &GameClient()->m_Chat.m_aLines[GameClient()->m_Chat.m_CurrentLine]; } matched:
is this spagheti
Avatar
Jupstar ✪ 2024-12-07 11:46
but u have learath in this chat
11:46
he loves u now
Avatar
sorry im alrady taken /:
11:46
also what do production servers follow?
Avatar
Avatar
Solly
const CChat::CLine *pLine; if(pName) { for(int i = GameClient()->m_Chat.m_CurrentLine; i >= 0; --i) { if(str_comp(GameClient()->m_Chat.m_aLines[i].m_aName, pName) == 0) { pLine = &GameClient()->m_Chat.m_aLines[i]; goto matched; } } for(int i = GameClient()->m_Chat.m_CurrentLine; i >= 0; --i) { if(str_comp_nocase(GameClient()->m_Chat.m_aLines[i].m_aName, pName) == 0) { pLine = &GameClient()->m_Chat.m_aLines[i]; goto matched; } } GameClient()->m_Chat.Echo("No chat to translate"); return; } else { pLine = &GameClient()->m_Chat.m_aLines[GameClient()->m_Chat.m_CurrentLine]; } matched:
Jupstar ✪ 2024-12-07 11:46
i generally don't like returns that are not early returns or part of a return chain xd
11:46
so i think it's not the easiest to follow code
11:46
but it's also not a lot of code
11:47
so it also depends on how big your function is
Avatar
well i want to move the no chat to translate to just above the match
11:47
and it is an early return
11:47
cuz if it doesnt return, as the code suggests will translate the message
Avatar
Avatar
Solly
also what do production servers follow?
a commit merged yesterday is already in effect
Avatar
Jupstar ✪ 2024-12-07 11:47
you could for example move everything above the matched: into a closure or extra function
11:47
then you don't need the goto
Avatar
Avatar
Jupstar ✪
you could for example move everything above the matched: into a closure or extra function
but... thats weird...
11:48
i like top to bottom
11:48
(i can also use a flag but then the second no case check would be indented 1 more) (edited)
Avatar
Jupstar ✪ 2024-12-07 11:48
but then you clearly express: You want to return your search for a match as soon as you have one
Avatar
(^ never nester moment)
Avatar
Avatar
Jupstar ✪
you could for example move everything above the matched: into a closure or extra function
oh above!. i read below
11:48
yeah that works
11:49
ima do that
Avatar
Avatar
Solly
well as long as ur in the same section it isnt bad?
Especially on older GPUs code like if (condition) { a(); } else { b(): } would first pause every single thread where condition is false and execute a(); on every single thread where it's true then pause every thread where condition is true and execute b(); on every single thread where it's false and then finally continue execution of all threads like normal
Avatar
Avatar
risu
Especially on older GPUs code like if (condition) { a(); } else { b(): } would first pause every single thread where condition is false and execute a(); on every single thread where it's true then pause every thread where condition is true and execute b(); on every single thread where it's false and then finally continue execution of all threads like normal
thats why i said as bad as jumping at all
11:51
also not the case anymore
11:51
and a function call would be the same (as it would be inlined cuz gpus)
Avatar
Avatar
Solly
also not the case anymore
i only learnt about this in the past week, take that therapist i did learn something from yt!!
11:52
^ thats a joke it was just random computer documentaries i had as background audio
11:52
^ and i heard that and i was like huh.... i didnt know that
Avatar
OMG win10$ Evolution 2024-12-07 12:31
$eflcoders
Avatar
This command was not found.
Avatar
My experience with LSP today: I use an NVim configuration made by someone else because I'm lazy I start writing code in a language that the config has pre-installed LSP for I get annoyed by the LSP I switch to plain Vim to get away from the fancy config
Avatar
What annoyed you the most?
Avatar
Avatar
Solly
Click to see attachment 🖼️
gpu: 🔥
❓ 1
Avatar
Avatar
risu
My experience with LSP today: I use an NVim configuration made by someone else because I'm lazy I start writing code in a language that the config has pre-installed LSP for I get annoyed by the LSP I switch to plain Vim to get away from the fancy config
Jupstar ✪ 2024-12-07 12:48
Having a static analyzer on can make your life easier in many scenarios
Avatar
Solly i replied to another message wait
Avatar
Avatar
Solly
i really want to use goto's in my code rn D:
this
12:49
bc you want to use goto (edited)
Avatar
Jupstar ✪ 2024-12-07 12:49
xDDD
12:49
that is the new best argument
12:49
don't use goto bcs GPU burns
Avatar
i dont know if i didnt make it clear, but this is running purely on the cpu. i get the gpu thing was a joke... but
Avatar
Avatar
Jupstar ✪
don't use goto bcs GPU burns
we need 🧯 and 🧑🏼🚒
12:50
or only 🧯
Avatar
thanks ai
Avatar
Avatar
Learath2
What annoyed you the most?
I was trynna write a script and it's acting as if I'm trying to stick to a strict professional standard like literally it was throwing a fit over me calling a function in my file's main global scope like how is my script supposed to do anything if I'm only allowed to define functions and never call any I'm not writing Haskell here (edited)
12:51
(language in question is Lua)
Avatar
Avatar
Jupstar ✪
Having a static analyzer on can make your life easier in many scenarios
No static analysis for my very much dynamic language :)
Avatar
http: <url> failed. libcurl error (1): Protocol "http" disabled
13:02
ugh
Avatar
GitHub BOT 2024-12-07 13:02
5120e79 fix spectate closest - TsFreddie 51ff510 Update Simplified & Traditional Chinese translations for upcoming 18.8 - ASKLL-STAR ada887c Fix hook collisions preview string not being localizable - Robyt3 7294013 Revert "remove self from spectate selector" - TsFreddie 0f1b253 fully allow clicking on yourself to spectate - TsFreddie 7e79e4e Update Simplified Chinese translations for upcoming 18.8 - ASKLL-STAR 72f3f6a Update Traditional Chinese translations for upcoming 18.8 - ASKLL-STAR ab0aaa1 Unite the word used in traditional_chinese.txt - By622 626c324 Update Turkish translation for 18.8 - GokturkTalha f72297f Update Azerbaijani translation for 18.8 - GokturkTalha 0381d82 don't allow SpectateClosest to select self - TsFreddie 018c64a 100% RO translation (1/2) - Sans3108 aa3087d 100% RO translation (2/2) - Sans3108 cf6309e Update brazilian_portuguese.txt - rffontenelle cc57c1c French translation by Yubel - def- 41a4d5a Update Swedish translations for 18.8 - furo321 8061d82 pr#9329 supplement - ASKLL-STAR a718956 Update Ukrainian l10n (18.8) - EGYT5453 0177660 fix style - def- d0bdc64 Update ddnet-libs to include Android libs - def- 656d179 Fix clipping of last console line, save background noise as RGBA - Robyt3
Avatar
hmm most games would break if my PC would be too good right? In the theoretical case I had 1000000 fps in a game wouldn't the dt be literally 0 causing all games with Delta time to break?
Avatar
Avatar
Teero
hmm most games would break if my PC would be too good right? In the theoretical case I had 1000000 fps in a game wouldn't the dt be literally 0 causing all games with Delta time to break?
Jupstar ✪ 2024-12-07 13:06
if you dont clamp the fps that can happen yes
13:06
ddnet is nano second aware, so it might still work
13:06
😉
Avatar
Avatar
Teero
hmm most games would break if my PC would be too good right? In the theoretical case I had 1000000 fps in a game wouldn't the dt be literally 0 causing all games with Delta time to break?
thats 1000 ns per frame so (modern) games would be fine (edited)
Avatar
Avatar
Jupstar ✪
ddnet is nano second aware, so it might still work
ddnet doesn't use Delta time at all no?
Avatar
Avatar
Solly
thats 1000 ns per frame so (modern) games would be fine (edited)
Okay imagine higher
Avatar
Avatar
Teero
ddnet doesn't use Delta time at all no?
Jupstar ✪ 2024-12-07 13:07
at least for particles it does i think
Avatar
^ and tater rainbow effect
Avatar
Jupstar ✪ 2024-12-07 13:07
lmao
13:07
just never store time in f32
13:07
worst you can do xd
Avatar
Avatar
Solly
^ and tater rainbow effect
did you refactor it to do that? Pretty sure I don't use dt for that
Avatar
Avatar
Teero
did you refactor it to do that? Pretty sure I don't use dt for that
yeah
Avatar
cuz gametick doesnt increase sometimes and i couldnt figure out why... so i just went.... mmm dt
13:08
also gametick only means 50 fps (edited)
13:09
(need more precise rainbow)
Avatar
then go use std::chrono xdd
Avatar
static float Time = 0.0f; Time += Client()->RenderFrameTime() * ((float)g_Config.m_ClRainbowSpeed / 100.0f); float DefTick = std::fmod(Time, 1.0f);
13:09
darn i used a float
13:10
if i did Time %= 1.0f then it works for big fps
Avatar
Avatar
Solly
darn i used a float
u gonna break everything on my new pc
Avatar
(as long as it doesnt go above 1 then precision shouldnt mater)
Avatar
Avatar
Solly
(as long as it doesnt go above 1 then precision shouldnt mater)
Problem is that renderframetime will be returning 0
13:11
Rainbow is not gonna rainbow anymore
Avatar
it returns 0.000001 (for the fps you said) (edited)
13:11
which is easy enuf for f32
13:12
10000000000000 fps
Avatar
It's a continuous computer
13:12
Frames don't even exist for it
Avatar
Avatar
Teero
10000000000000 fps
ohno 1e-8 s (over a second) error!?!?!?! (edited)
13:13
^ that was also calculated in float so that might aslo have an error (f64 B)) (edited)
Avatar
Make it infinite fps
Avatar
if u have a computer that good go simulate a universe with a lower spec computer in it
13:16
^ REFERENCE
Avatar
i cant find it can i nice
13:17
13:17
the first thing i searched wow
13:17
that didnt happen last time
Avatar
Avatar
Teero
10000000000000 fps
Jupstar ✪ 2024-12-07 13:20
if u have so many fps, then we also should switch to smaller time units generally
13:20
128-bit computers will be default
Avatar
Avatar
Solly
static float Time = 0.0f; Time += Client()->RenderFrameTime() * ((float)g_Config.m_ClRainbowSpeed / 100.0f); float DefTick = std::fmod(Time, 1.0f);
Jupstar ✪ 2024-12-07 13:22
the problem with floats is continuous accumulation of small decimals. That is when floats suck
13:22
You basically always end up rounding up or down
Avatar
Avatar
Jupstar ✪
the problem with floats is continuous accumulation of small decimals. That is when floats suck
its such a small error and for a visual effect even at such high fps it doesnt matter
Avatar
Jupstar ✪ 2024-12-07 13:22
Over a time frame of 20 minutes you are at least 1 second off even with only like 60fps
Avatar
Avatar
Solly
its such a small error and for a visual effect even at such high fps it doesnt matter
Jupstar ✪ 2024-12-07 13:22
yes
13:23
just saiyan
13:23
thank u for the knoleg
Avatar
Jupstar ✪ 2024-12-07 13:23
np
Avatar
ok I cheated to get my missing star, wrote the solution in lua kinda gross, it takes 8.5s to execute, and that's after shaving off a couple seconds
13:23
better than 15 hours
Avatar
(estimated i hope)
Avatar
why am I writing high level languages like this
Avatar
Avatar
Solly
(estimated i hope)
yeah I calculated the 15 hours from the time to process a single case and the approximate number of cases, it'd likely be a fair bit faster in reality
13:24
but not by more than a couple hours
Avatar
This i great
Avatar
I am a little confused tho. Before they had built the machine there was only one reality. But the moment they started the simulation they created infinite realities.
13:35
So they are in the original reality
Avatar
well they cant tell that
13:35
everyone else also believes they are the ones who first turned on the machine
Avatar
hmm yea okay I see. But they know that there is a reality that is original
Avatar
and we as the reader cant assume its from the perspective of the first reality
Avatar
hmm true
13:36
Actually yes we can
Avatar
Avatar
Teero
hmm yea okay I see. But they know that there is a reality that is original
the machine simulates all time before they start peering at themselves
13:36
so them making and turning on the machine "exists" for all realities
Avatar
Since the first part of the story was when the simulation wasn't tested yet
13:37
Well Diane maybe tested it herself befor
13:37
Hmm
Avatar
that time still had to be simulated by the machine
Avatar
But how'd she turn it off and on again without disappearing into nothingness
Avatar
they werent simulating the universe
Avatar
And if it is turned off only the original world will remain
Avatar
they get scared turning off the universe when they start simulating it
13:37
because it does mean turning off reality for infinate realities
13:38
that is one way to see if you are the original reality
Avatar
Avatar
Solly
they get scared turning off the universe when they start simulating it
yea by the original reality wouldn't get turned of
Avatar
by turning it off
Avatar
So they would only exist in the original reality once they turn it off
Avatar
the problem ethically isnt with "killing" themselves its with everyone else in it
Avatar
Would the changes they made still be there?
Avatar
well they are in a simulated reality as well
13:39
because the bar of gold appears
Avatar
Avatar
Solly
the problem ethically isnt with "killing" themselves its with everyone else in it
not really since the real humans do survive
Avatar
Avatar
Teero
not really since the real humans do survive
but for the original reality which doesnt have a bar of gold
13:39
there is a difference between the original and the rest of the universes (edited)
13:39
butterfly effect ergo there are 2 different sets of everyone who exist
13:39
maybe not infinate but not only the "true" one
13:39
seeing as all but the original are identical
13:40
there doesnt neccesarily have to be a original reality
13:40
which i assume is something they are also scared of (edited)
Avatar
so in the original one there won't be a gold bar appearing. If I were them I would turn off the machine even if a gold bar appeared.
Avatar
Avatar
Teero
so in the original one there won't be a gold bar appearing. If I were them I would turn off the machine even if a gold bar appeared.
the simulated realities dont have to turn off the machine
13:41
they still die if anyone above them does
Avatar
Avatar
Solly
the simulated realities dont have to turn off the machine
But can they even?
Avatar
I don't think they can really decide
13:41
Since they all come from the original
13:42
I do believe in free will tho
13:42
Just not for the simulated ppl (edited)
Avatar
well they can test whether they are the first copy
13:42
by all turning off the machine
13:42
seeing as they could internally decide to not turn off the machine if they are the original (or just tell themselves not to)
Avatar
Also wouldn't the original world that doesn't have gold bar be completely different than the ones below?
Avatar
Avatar
Solly
there is a difference between the original and the rest of the universes (edited)
that would differentiate the first copy and the rest of the universes, (^) which then again causes an ethical concern (that is a universe where they didnt decided to turn of a machine would be something whcih can cause side effects) (edited)
Avatar
Avatar
Teero
Also wouldn't the original world that doesn't have gold bar be completely different than the ones below?
eventually
13:43
they would diverge
13:43
theoretically
Avatar
yes so the simulations are just simulations they are not real
Avatar
Avatar
Solly
there doesnt neccesarily have to be a original reality
from our perspective there isnt
Avatar
Since the original world is special
Avatar
and what makes something a simulation
13:44
if its perfect to every degree it can be there is (for the sake of argument, from their perspective (and from the male characters one i forgot their name) they cant be sure if they have covered every degree) (edited)
13:44
(which is one of the questions which was probably intended to be asked from this, seeing as the guy questions how to find where they are in the universes) (edited)
Avatar
Avatar
Solly
if its perfect to every degree it can be there is (for the sake of argument, from their perspective (and from the male characters one i forgot their name) they cant be sure if they have covered every degree) (edited)
No since it is not the original world so it will diverge front the real world at some point if there is any intervention
13:45
Idk
13:45
ethics would be weird
Avatar
Avatar
Teero
No since it is not the original world so it will diverge front the real world at some point if there is any intervention
yeah but everything and everyone would fold out the same if the original universe had a gold bar as it does in the first copy (and the rest assuming they dont suiside)
Avatar
Avatar
Solly
yeah but everything and everyone would fold out the same if the original universe had a gold bar as it does in the first copy (and the rest assuming they dont suiside)
But the original world doesn't get the gold bar since it is not simulated by itself
Avatar
also you can check which universe you are in but it would take an infinate amount of time on average (you simply either pass a message to the next universe whether you got a gold bar or not, or the previous message you got)
Avatar
Avatar
Teero
But the original world doesn't get the gold bar since it is not simulated by itself
but if it did, it would fold out the same
13:48
as the simulations are perfect (edited)
13:48
its not any different so how can you make a different judgement
13:48
based on something (the universe they are in "fake", or real) which has no effect
Avatar
Avatar
Solly
also you can check which universe you are in but it would take an infinate amount of time on average (you simply either pass a message to the next universe whether you got a gold bar or not, or the previous message you got)
No it would take exactly 1 second
Avatar
Avatar
Teero
No it would take exactly 1 second
assuming each message pass takes a second it would take n seconds (n being the universe you are in) to determine if you are in that universe
13:49
unless the machine does it then it would be instant (the machine can do it) (edited)
13:49
although conveying an infinate amount of information would be impossible
13:50
unless the universe has infinate precision (it doesnt(?))
Avatar
Tbh the most impressive thing in this short story is the fact that they made the simulation
13:50
Which seems pretty impossible
13:50
they put quantum in the name so ofc it works
13:50
but the machine existing isnt the point
13:51
its the outcome of simulating itself
13:51
which could even be seen as a mistake
13:51
as if you never do it, you would never have this moral dilema
13:51
but ofc its the first thing youd (and i would) try
13:51
after solving mathimatical theorems
Avatar
Avatar
Solly
but ofc its the first thing youd (and i would) try
try is good
13:52
Succeed is hard (edited)
Avatar
once you have the machine
13:52
^ the machine is the real blocker
13:52
^ you can brute force the equation of the universe with a machine as such
Avatar
But it seems to take time to compile programs for the machine
Avatar
Avatar
Teero
But it seems to take time to compile programs for the machine
not that long
Avatar
Avatar
Solly
^ you can brute force the equation of the universe with a machine as such
(you just try every equation possible and ask it to check if the machine exists, if it does, then the equation is accurate enough)
Avatar
Avatar
Solly
(you just try every equation possible and ask it to check if the machine exists, if it does, then the equation is accurate enough)
(and since the machine is able to calculate the last digit of pi, it can also search all equations so it can also find one with no error by checking if everything happens in the same way till t=infinity)
Avatar
Avatar
Solly
(and since the machine is able to calculate the last digit of pi, it can also search all equations so it can also find one with no error by checking if everything happens in the same way till t=infinity)
hmm yea
14:04
Good ide
Avatar
ChillerDragon
14:06
How to remove asking for resend and numbers in the rcon console
14:06
It's so spammy
Avatar
㋡T̆̈ĭ̈k̆̈n̆̈ĭ̈f̆̈㋡ 2024-12-07 14:14
Guys, what do I do? I went out for an hour to walk the dog and I came back and I'm banned feelsbadman
Avatar
#✉-create-a-ticket
Avatar
ws-client BOT 2024-12-07 14:19
<ChillerDragon> @Evelyn turn off debug mode remove debug 1 from your config
14:20
<ChillerDragon> @Evelyn btw you can search any string in the code base using the grep command
Avatar
Avatar
Solly
#✉-create-a-ticket
㋡T̆̈ĭ̈k̆̈n̆̈ĭ̈f̆̈㋡ 2024-12-07 14:20
Thanks
Avatar
void CHttp::Run(std::shared_ptr<IHttpRequest> pRequest) { std::shared_ptr<CHttpRequest> pRequestImpl = std::static_pointer_cast<CHttpRequest>(pRequest); then whats the point of it being an interface then???
16:52
is there no way to have a callback from an http request D:
16:52
i can ovveride oncompletion
16:52
but... that just gets undone
16:52
by the static cast right
16:53
IT DOESNT
16:53
evil laugh
16:53
:D
16:56
2024-12-07 16:55:47 I assert: /home/solly/Games/ddnet/src/engine/shared/http.cpp(423): Request not done if(State == EHttpState::DONE) ):<
16:57
2024-12-07 16:55:47 I http: task done: https://translate.sollybunny.xyz/translate 2024-12-07 16:55:47 I assert: /home/solly/Games/ddnet/src/engine/shared/http.cpp(423): Request not done
16:58
trolling
16:58
// The globally visible state must be updated after OnCompletion has finished, // or other threads may try to access the result of a completed HTTP request, // before the result has been initialized/updated in OnCompletion. OnCompletion(State); { std::unique_lock WaitLock(m_WaitMutex); m_State = State; } m_WaitCondition.notify_all();
16:58
oncompletion doesnt (shouldnt) change state?
Avatar
I love my high level language (this is profiler output for my AoC 6-2 solution) (I cheated to get the missing star by using a normal language) 6 | while bound_checker(guard_x, guard_y, width, height) do 249 | local state = state_hash(guard_x, guard_y, direction, width, height) 1072 | if visited_states[state] then | loops = loops + 1 | break | end | visited_states[state] = true | 6199 | if bound_checker(guard_x + dx, guard_y + dy, width, height) and map[(guard_y + dy - 1) * width + guard_x + dx] then | direction = (direction + 1) % 4 | dx, dy = dir2delta(direction) | else | guard_x = guard_x + dx | guard_y = guard_y + dy | end | end (edited)
17:01
See, I expected visited_states[state] to take the most time, but it appears that's 6x less important than simply reading where the walls are in the play area
Avatar
Avatar
Solly
oncompletion doesnt (shouldnt) change state?
No, if you need to indicate the result of OnCompletion then you should add a different mechanism for that
17:06
And make sure to only access that result when the request is done
Avatar
i just want m_state == done so i can access stuff
17:06
in oncompletion
Avatar
OnCompletion runs on the curl multi thread, you shouldn't perform heavy work there or you block HTTP requests
17:08
We currently poll the request result in other components (edited)
Avatar
oh so i should make some way to tell the mainthread
17:08
should i do that sorta polling in onrender?
Avatar
Ideally, the main thread reads the results from the completed requests
17:09
Then you avoid the need for additional synchronization
17:10
I tried to add completion callbacks for jobs before, but I haven't finished it
Avatar
Avatar
Solly
should i do that sorta polling in onrender?
(?)
Avatar
Avatar
Solly
(?)
yeah, that's how we currently do it for all requests I think
Avatar
thanks :D
Avatar
Avatar
risu
I love my high level language (this is profiler output for my AoC 6-2 solution) (I cheated to get the missing star by using a normal language) 6 | while bound_checker(guard_x, guard_y, width, height) do 249 | local state = state_hash(guard_x, guard_y, direction, width, height) 1072 | if visited_states[state] then | loops = loops + 1 | break | end | visited_states[state] = true | 6199 | if bound_checker(guard_x + dx, guard_y + dy, width, height) and map[(guard_y + dy - 1) * width + guard_x + dx] then | direction = (direction + 1) % 4 | dx, dy = dir2delta(direction) | else | guard_x = guard_x + dx | guard_y = guard_y + dy | end | end (edited)
I can even use a LuaJIT specific feature to specify that the table should be allocated as an array, don't use the hash map part of the table since I'm only going to be accessing this in a very specific range of integer keys and it still takes forever Wait. WAIT NO WAY! Have I been stupid this whole time?
Avatar
and once uve done that u can compile it to c then use -O4
Avatar
Did I trust the profiler too much? The line right before that if is the line where I add a new entry to the big hash table of visited states
17:16
It could totally be that that's actually where the time is spent, as intended, and the profiler is just a little off due to optimization magic
17:16
I wonder what'd happen if I tell LuaJIT to use -O0
17:17
Well, -O0 didn't make it make any more sense
Avatar
@Solly i tried adding a new command to the dont kill on practice section you added to toggle it on and off. i have no idea how to keep a state set after a player dies. pChr->SetKillable(pResult->NumArguments() == 0 ? !pChr->Core()->m_Killable : pResult->GetInteger(0)); this is automatically set to false whenever a player dies, which is generally intended behaviour, but i want to keep it across the entire "practice session" elp, me noob
17:43
ah you know what, i'll just push it for your eyes to see
Avatar
did u add setkillable?
Avatar
void CCharacter::SetKillable(bool Killable) { m_Core.m_Killable = Killable; if(!Killable) Freeze(); } it's a mere copy from the invincible toggle (edited)
Avatar
Avatar
meloƞ
void CCharacter::SetKillable(bool Killable) { m_Core.m_Killable = Killable; if(!Killable) Freeze(); } it's a mere copy from the invincible toggle (edited)
you can have a flag called m_killable(_practice) and u can just use it where i ignore spikes with practice (add && player->m_killable == true)
Avatar
yeah but "killable" is automatically set to false after the player actually dies. meaning you need to set it after each death
Avatar
make a new flag
Avatar
feelsbadman okäse
Avatar
touching what invinsible uses is probably a bad idea
Avatar
Yay new country flagtoptri
Avatar
Avatar
Solly
touching what invinsible uses is probably a bad idea
ah you may have misunderstood, i dont reuse anything from invincible, just the code style used xD
17:48
i'd like to make every single practice command a toggle at some point
17:49
darn these un commands
17:49
is even less likely to be a thing (edited)
17:49
if this gets added
17:49
😢
Avatar
see #8356 (comment) i want to bring this up again since i dont expect any response on a small and soon to be closed PR. we currently have /un{weapon} and /removeweapon {weapon-id}. from my previous...
17:49
NotLikeKogasa I KNOW
Avatar
i agree with thius issue
Avatar
created in may pepeSadJam
Avatar
make it a pr and then push very hard
17:50
just wait till 2AM so deen merges it with roby asleep
17:50
boom
Avatar
i would prefer how its like in console
17:51
/shotgun ?i[enabled]
17:51
0 or 1 for disable and enable
17:51
empty for toggle
Avatar
(and even if you have aliases for 0 and 1 such as remove and add, no argument should be default)
Avatar
I haven't been able to make a fifo script for a week
Avatar
MilkeeyCat 2024-12-07 18:00
try harder
Avatar
GitHub BOT 2024-12-07 18:27
I talked about it with a few people ingame, and while the feature in itself is really great, there are scenarios in testing where you want or expect your player to die. this add's /killable to switch between the behaviour.

Checklist

  • [x] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [x] Tested in combination with possibly related configuration options
  • [ ] Written a unit test (especially base/) or added coverage to integration test
  • [ ] Consi...
Avatar
been a while in ddnet's codebase - gawd dayum
Avatar
why is there freeze on killtiles
20:23
isnt this literally whats super/invincible for? (edited)
Avatar
Avatar
kebs
why is there freeze on killtiles
did that really get merged justatest
Avatar
Avatar
Ewan
did that really get merged justatest
#9295
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
Jupstar ✪ 2024-12-07 20:31
why not simply disable kill
20:31
freeze sounds completely random xD
Avatar
yea this is what super/invincible does
Avatar
Jupstar ✪ 2024-12-07 20:33
but i could understand that disabling is bad too
20:33
then you get no feeling if u touched kill tiles
20:33
maybe just spawn the death tee effect xD (edited)
Avatar
GitHub BOT 2024-12-07 20:54
Add mutex for client/graphics warnings. Return an optional copy of the current warning and remove it from the vector immediately instead of returning a pointer to it and removing it later. Use atomic for m_WarnPngliteIncompatibleImages as this variable is also used in multiple threads. Do not use CLock as the thread-safety annotations would otherwise have to be added to a lot of client/graphics functions. Use client instead of the warning title as the log system, as the warning...
21:36
justatest
Avatar
Avatar
Jupstar ✪
maybe just spawn the death tee effect xD (edited)
it already does I think. so freeze u and do the death effect
Avatar
Avatar
Jupstar ✪
well that sucks, did u try to restart pc xd
it restarted after the instillation but for some reason it asked me to install them again and it works fine now lol
22:08
love software
Avatar
Avatar
Robyt3
Click to see attachment 🖼️
Jupstar ✪ 2024-12-07 22:27
cool
22:50
d9cdd09 Make client/graphics warnings thread-safe, improve log format - Robyt3 e89f029 Merge pull request #9362 from Robyt3/Client-Warning-Thread-Safety - def-
Exported 519 message(s)
Timezone: UTC+0