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-10-18 00:00 and 2024-10-19 00:00
Avatar
Avatar
ws-client1
<ChillerDragon> sv_gametype ctf
Thaaanks, and are you able to see Discord reacts on WS?
Avatar
@Skeith hey can you ban SP Someone from DDNet USA vanilla server again pls?
03:06
Or any mod
Avatar
Avatar
Pathos
@Skeith hey can you ban SP Someone from DDNet USA vanilla server again pls?
could you #✉-create-a-ticket and provide a reason please? :)
Avatar
Dealt with already
justatest 1
👍 1
Avatar
Avatar
meloƞ
could you #✉-create-a-ticket and provide a reason please? :)
I was told to message here, I also couldn't find that channel so easily
Avatar
My game is running out of VRAM whenever I'm trying to add skins, anything I can do to add all of them without crashing my game?
04:24
I am literally adding the same skins that I had before I re-installed my game.
Avatar
Avatar
ryuma
My game is running out of VRAM whenever I'm trying to add skins, anything I can do to add all of them without crashing my game?
don't add all of them justatest, the game has no lazy loading, means it loads all skins at once. Maybe try to reduce the quality of some?
Avatar
Avatar
meloƞ
don't add all of them justatest, the game has no lazy loading, means it loads all skins at once. Maybe try to reduce the quality of some?
Yeah, I figured out to just add a few at a time.
04:45
Kinda weird tho, back when I first added all sorts of skins I was able to just drop them in to the folder and thats it.
Avatar
Avatar
ryuma
Kinda weird tho, back when I first added all sorts of skins I was able to just drop them in to the folder and thats it.
its not only skins. Gameskins, assets, emoticons, etc all count into vram usage (edited)
Avatar
Avatar
meloƞ
its not only skins. Gameskins, assets, emoticons, etc all count into vram usage (edited)
Yeah I know, but I only have 1 of each for gameskins, assets, emoticons. Its basically "just" 1500 skins. 🤣 (edited)
04:52
DDNet skin database + ahl full skin folder
Avatar
Avatar
ryuma
DDNet skin database + ahl full skin folder
Why not use a skinDB url ? scrumplex.net/skins Or ddstats.tw/skins
Avatar
Avatar
meloƞ
Why not use a skinDB url ? scrumplex.net/skins Or ddstats.tw/skins
What is the difference tho?
05:37
I've got 1449 skins rn, my game takes 10 seconds to load already and I can't even go in the assets tab anymore 🤣
Avatar
Avatar
ryuma
What is the difference tho?
You see the skin when someone is using it, and you can use the skin by writing it in the skin name You can use skin favourites to always load them
05:38
But that will prevent issues with having to many skins
Avatar
scrumplex.net/skins doesn't work
05:40
I basically just want the majority of skins that people on KoG use which is basically ddnet database + ahl custom skins
Avatar
Avatar
ryuma
scrumplex.net/skins doesn't work
ddstats.tw/skins has much more anyway iirc
Avatar
everything was working before idk why its not working now
05:44
so much trouble for some skins
Avatar
Avatar
ryuma
everything was working before idk why its not working now
One skin to much ig ^^
Avatar
Avatar
ryuma
so much trouble for some skins
..some??
05:45
1500skins kekw
Avatar
I literally got the same two folders that I had before and now my game is crashing all of a sudden
Avatar
i had ~2000 and then i made a pull request to load them faster and it did not get merged
Avatar
Rename the folder to skins.bak Launch game, drag skins over that you want Try again
Avatar
so i just put my skins on an http server
05:45
and use the ingame mechanism
05:46
that's all u can really do (edited)
Avatar
i believe you
😭 1
05:52
I guess I gotta filter some of the skins out
Avatar
Avatar
ryuma
Click to see attachment 🖼️
You lied
05:53
I see custom entities and gameskins
05:53
thisemoji
05:53
Also I blame t client
Avatar
Yeah I added some of them back after I said that to check wether it causes problems or not (edited)
Avatar
Avatar
meloƞ
Also I blame t client
I tried with latest DDNet already - same problem. (edited)
Avatar
?? it is not a tclient issue
upp 1
Avatar
Ya, the devs added the ability to load skins from a site, rather than requiring them to always be within a folder because of this reason. There's no fix for it
05:55
Just don't have this many skins in your folder
Avatar
60mb how much is that in vram :0
Avatar
morning ocaml devs and others
06:18
doing some codewars to learn it
06:18
let explode s = String.to_seq s |> List.of_seq let rec reverse_chars s = match s with [] -> "" | h :: t -> reverse_chars t ^ Char.escaped h let reverse_string (s : string) : string = explode s |> reverse_chars
06:18
justatest
06:21
let reverse_string2 (s : string) : string = String.to_seq s |> List.of_seq |> List.rev |> List.to_seq |> String.of_seq
06:21
this is a funny one
06:22
just gotta remember that i guess ocaml calls iterators sequences
Avatar
Avatar
MilkeeyCat
Does anyone have ideas for enums syntax which doesn't require pattern matching? feelsbadman
MilkeeyCat 2024-10-18 06:48
struct Bar {} struct Baz {} enum Foo = Bar | Baz; let foo: Foo = Bar {}; switch foo { case Bar bar: // bar contains struct of type Bar case Baz baz: // baz contains struct of type Baz } Here's one of possible syntaxes
Avatar
Avatar
jxsl13
60mb how much is that in vram :0
Jupstar ✪ 2024-10-18 07:44
Depends souly only resolution not disk size
🚀 1
Avatar
Avatar
ryuma
My game is running out of VRAM whenever I'm trying to add skins, anything I can do to add all of them without crashing my game?
Jupstar ✪ 2024-10-18 07:45
Don't use resolutions above 512x256. Then you can add around 2000* skins with like 3gb vram (edited)
07:46
But I bet you have skins with 4k resolution. On your full HD monitor
Avatar
Avatar
Jupstar ✪
Depends souly only resolution not disk size
@Souly moment (It's solely btw) greenthing hi Souly! (edited)
🚀 1
Avatar
Jupstar ✪ 2024-10-18 07:47
Now do some math and you notice that 4k skins are for 32k monitors
Avatar
Avatar
Skeith
@Souly moment (It's solely btw) greenthing hi Souly! (edited)
Jupstar ✪ 2024-10-18 07:47
I was wondering why autocorrect couldn't find it xddd
07:47
I blame too much discord
greenthing 1
Avatar
Avatar
Jupstar ✪
Don't use resolutions above 512x256. Then you can add around 2000* skins with like 3gb vram (edited)
Alright, thanks. Will check through them later.
Avatar
Avatar
Jupstar ✪
Depends souly only resolution not disk size
👍
Avatar
Avatar
Jupstar ✪
Depends souly only resolution not disk size
hi
👋 2
🚀 2
👻 2
Avatar
pattern matching is the future of languages (edited)
11:21
P3477R0 There are exactly 8 bits in a byte
Avatar
Heh, finally someone put it in writing
Avatar
woo! float operations in const functions 🎉
Avatar
Avatar
Patiga
woo! float operations in const functions 🎉
That sounds difficult to get right. Does the compiler have a table of how floats behave on every target or did they settle on a standard common behaviour?
Avatar
With this release, Rust standardizes on a set of rules for how NaN values behave. This set of rules is not fully deterministic, which means that the result of operations like (0.0 / 0.0).is_sign_positive() can differ depending on the hardware architecture, optimization levels, and the surrounding code. Code that aims to be fully portable should avoid using to_bits and should use f.signum() == 1.0 instead of f.is_sign_positive(). However, the rules are carefully chosen to still allow advanced data representation techniques such as NaN boxing to be implemented in Rust code. For more details on what the exact rules are, check out our documentation.
Avatar
I didn't go through it all, but my understanding is that float operations are very standardized, except for NaN behavior
Avatar
With the semantics for NaN values settled, this release also permits the use of floating-point operations in const fn. Due to the reasons described above, operations like (0.0 / 0.0).is_sign_positive() can produce a different result when executed at compile-time vs at run-time. This is not a bug, and code must not rely on a const fn always producing the exact same result.
12:25
important bits
Avatar
and they decided on some rules regarding Nan stuff, which they use for const
Avatar
the &raw mut syntax
12:26
u dont need to use addr of mut now
12:26
macro
Avatar
Avatar
Ryozuki
u dont need to use addr of mut now
Ah that is so nice. Macros were so ugly
Avatar
Avatar
Ryozuki
With the semantics for NaN values settled, this release also permits the use of floating-point operations in const fn. Due to the reasons described above, operations like (0.0 / 0.0).is_sign_positive() can produce a different result when executed at compile-time vs at run-time. This is not a bug, and code must not rely on a const fn always producing the exact same result.
you copied 2 out of the three paragraphs imo the link does a better job here ^^
Avatar
hmm idk
12:29
its better to not click links
12:29
xd
12:29
assume the end user is lazy
12:29
and stupid
Avatar
it can also amplify laziness, also in a #dev channel I think you can have higher expectations, especially as people are interested in the subject here
Avatar
i guess
12:31
its more something i do cuz this way i know ppl actually see something
12:31
with a link u cant be sure they clicked and looked it
12:31
xd
Avatar
yea, I kinda get that. I also know another person who does that, but I much prefer links: less spam, more complete (at least if it links to well-organized information) :)
Avatar
they also added lot of new stable methods, some intrinsics
12:33
not bad
Avatar
heinrich5991 2024-10-18 13:25
Due to the reasons described above, operations like (0.0 / 0.0).is_sign_positive() can produce a different result when executed at compile-time vs at run-time. This is not a bug, and code must not rely on a const fn always producing the exact same result.
13:26
I think it might be better worded as "we don't consider this a bug"
13:26
because usually, one would expect the same behavior independent of whether the compiler chose to evaluate a function at compile time or not
Avatar
chillerdragon BOT 2024-10-18 14:03
I am not. I usually launch matrix to comfirm a reply is to a message of mine. On my mobile matrix client I only see „that“ it was a reply not to „what“. But reading all messages it’s usually not ambiguous.
Replying to @Pathos Thaaanks, and are you able to see Discord reacts on WS?
14:05
Not sure if my image got sent I got a 404 error back from the discord bot -.-
Avatar
Avatar
heinrich5991
Due to the reasons described above, operations like (0.0 / 0.0).is_sign_positive() can produce a different result when executed at compile-time vs at run-time. This is not a bug, and code must not rely on a const fn always producing the exact same result.
Eeeeeeeh, I guess they are kinda ignoring the hard stuff
15:01
I wonder why they don't have a table of all target behaviours so that this can be guaranteed
Avatar
heinrich5991 2024-10-18 15:02
yea, it's a bit subpar IMO
Avatar
I'm done with the GRE so this will probably be the last useless english word of the day, I'll do 3 for this special occasion:
  • hackneyed = lacking creativity
  • rapacious = very greedy
  • scintillating = impressively clever, amusing or witty
Avatar
heinrich5991 2024-10-18 15:05
scintilla is (was?) a code view for windows
15:05
perhaps the name was derived from this word?
15:06
Scintilla is a free, open-source library that provides a text editing component function, with an emphasis on advanced features for source code editing.
15:06
a friend of mine used it for some code editor, too, IIRC
Avatar
Apparently it's a word of it's own but both from the same latin root
15:08
It's actually in italian too, scintillare = to sparkle
Avatar
im scintillating
16:57
but in Qt usually
Avatar
how is ur job
16:58
what about the drug test
16:58
what happened
16:58
@Ewan
16:58
im rapacious to know about it
16:58
hope the answer isnt hackneyed
Avatar
I seem to have passed
Avatar
nice
Avatar
Yapping
Avatar
did you cheat
16:58
tf is Yapping
Avatar
Avatar
Ryozuki
did you cheat
It’s possible
Avatar
i feel so smort about the use of clever words
16:59
what s yapping
16:59
is it a zoomer thing
16:59
Saying a bunch of stuff
Avatar
Yapping The act of speaking without discretion at length to an uninterested audience resulting in discomfort, annoyance, and/or discontent. yap derives from the annoying bark produced by small dog. many other terms or "portmanteaus" incorporate "yapping" Yapanese: when someone yaps so much they appear to no longer be speaking English Yapathon: when a person yaps so extensively they could have ran 42 km or 26 miles during their tangent Yapghanistan: to yap so much that it could be considered as an act of terrorism Man 1: yes so my daughter just got a good VCE result i'm so proud next week the wife and I... Man 2: okay buddy quit yapping this ain't yapghanistan here we speak English not yapanese, now beat it pal! by Man glaser August 17, 2023
17:00
those 2 words were just funny to me
Avatar
you are yapanese
Avatar
I talk sometimes
17:01
I start the job whenever I get the laptop basically
17:01
and idk when that is
17:01
probably by next Monday
Avatar
Avatar
Ryozuki
Yapping The act of speaking without discretion at length to an uninterested audience resulting in discomfort, annoyance, and/or discontent. yap derives from the annoying bark produced by small dog. many other terms or "portmanteaus" incorporate "yapping" Yapanese: when someone yaps so much they appear to no longer be speaking English Yapathon: when a person yaps so extensively they could have ran 42 km or 26 miles during their tangent Yapghanistan: to yap so much that it could be considered as an act of terrorism Man 1: yes so my daughter just got a good VCE result i'm so proud next week the wife and I... Man 2: okay buddy quit yapping this ain't yapghanistan here we speak English not yapanese, now beat it pal! by Man glaser August 17, 2023
perfectly describing me
Avatar
true
Avatar
Avatar
Ewan
Yapping
👀
Avatar
Avatar
Ryozuki
im rapacious to know about it
your rapacity is enthralling
Avatar
A free software to take back control of your videos! With more than 600,000 hosted videos, viewed more than 70 millions times and 150,000 users, PeerTube is the decentralized free software alternative to videos platforms developed by Framasoft
Avatar
GitHub BOT 2024-10-18 20:11
Store and update the last race tick directly in CGameClient instead of in CGhost, as the value is also used in the gameclient. Move current race time calculation from CClient to CGameClient, as this function is not used in the engine and this allows removing unnecessary virtual functions. Closes #1720.

Checklist

  • [X] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • ...
Avatar
i never knew how goated obsidian was
❓ 1
Avatar
GitHub BOT 2024-10-18 20:58
b724ccc Move last race tick and current race time handling to CGameClient - Robyt3 1bd0f43 Merge pull request #9155 from Robyt3/Client-LastRaceTick-Cleanup - def-
Avatar
I have obsidian installed but don't use it
Avatar
Avatar
louis
i never knew how goated obsidian was
what are you using obsidian for? i found it fun but i dont like being forced onto a text editor
Avatar
found in taterclient (there was also a extra space at the end of the first line which wasnt captured in the screenshot) (could be replaced by return NewInput) (edited)
Avatar
Avatar
meloƞ
what are you using obsidian for? i found it fun but i dont like being forced onto a text editor
i used it as my daily schedule, it has everything, but it runs very slow if yoj have too many plugins on
22:06
also plugins tend to become outdated
Avatar
Avatar
Solly
found in taterclient (there was also a extra space at the end of the first line which wasnt captured in the screenshot) (could be replaced by return NewInput) (edited)
heinrich5991 2024-10-18 22:06
what's the code above that? was it in a pattern where this if fit better?
Avatar
Avatar
meloƞ
what are you using obsidian for? i found it fun but i dont like being forced onto a text editor
i think itll be a nice way to jeep track of class notes
22:07
esp since it supports latex
22:07
and other things
Avatar
Avatar
zhn
i used it as my daily schedule, it has everything, but it runs very slow if yoj have too many plugins on
like daily planner+kanban+excalidraw is the best kekeke
Avatar
Avatar
heinrich5991
what's the code above that? was it in a pattern where this if fit better?
bool CControls::CheckNewInput() { CNetObj_PlayerInput TestInput = m_aInputData[g_Config.m_ClDummy]; TestInput.m_Direction = 0; if(m_aInputDirectionLeft[g_Config.m_ClDummy] && !m_aInputDirectionRight[g_Config.m_ClDummy]) TestInput.m_Direction = -1; if(!m_aInputDirectionLeft[g_Config.m_ClDummy] && m_aInputDirectionRight[g_Config.m_ClDummy]) TestInput.m_Direction = 1; bool NewInput = false; if(m_FastInput.m_Direction != TestInput.m_Direction) NewInput = true; if(m_FastInput.m_Hook != TestInput.m_Hook) NewInput = true; if(m_FastInput.m_Fire != TestInput.m_Fire) NewInput = true; if(m_FastInput.m_Jump != TestInput.m_Jump) NewInput = true; if(m_FastInput.m_NextWeapon != TestInput.m_NextWeapon) NewInput = true; if(m_FastInput.m_PrevWeapon != TestInput.m_PrevWeapon) NewInput = true; if(m_FastInput.m_WantedWeapon != TestInput.m_WantedWeapon) NewInput = true; // this is edited btw if(g_Config.m_ClSubTickAiming) { vec2 mouse = m_aMousePos[g_Config.m_ClDummy]; mouse *= (float)g_Config.m_ClMousePositionMultiplier / 100.0f; if(!g_Config.m_ClOldMouseZoom) mouse *= m_pClient->m_Camera.m_Zoom; TestInput.m_TargetX = (int)mouse.x; TestInput.m_TargetY = (int)mouse.y; } m_FastInput = TestInput; if (NewInput) { return true; } return false; } theres no other early returns, and NewInput is also a flag so theres no cast (edited)
Avatar
Avatar
louis
esp since it supports latex
everything supports latex if you have enough time troll
👀 1
Avatar
Avatar
Solly
bool CControls::CheckNewInput() { CNetObj_PlayerInput TestInput = m_aInputData[g_Config.m_ClDummy]; TestInput.m_Direction = 0; if(m_aInputDirectionLeft[g_Config.m_ClDummy] && !m_aInputDirectionRight[g_Config.m_ClDummy]) TestInput.m_Direction = -1; if(!m_aInputDirectionLeft[g_Config.m_ClDummy] && m_aInputDirectionRight[g_Config.m_ClDummy]) TestInput.m_Direction = 1; bool NewInput = false; if(m_FastInput.m_Direction != TestInput.m_Direction) NewInput = true; if(m_FastInput.m_Hook != TestInput.m_Hook) NewInput = true; if(m_FastInput.m_Fire != TestInput.m_Fire) NewInput = true; if(m_FastInput.m_Jump != TestInput.m_Jump) NewInput = true; if(m_FastInput.m_NextWeapon != TestInput.m_NextWeapon) NewInput = true; if(m_FastInput.m_PrevWeapon != TestInput.m_PrevWeapon) NewInput = true; if(m_FastInput.m_WantedWeapon != TestInput.m_WantedWeapon) NewInput = true; // this is edited btw if(g_Config.m_ClSubTickAiming) { vec2 mouse = m_aMousePos[g_Config.m_ClDummy]; mouse *= (float)g_Config.m_ClMousePositionMultiplier / 100.0f; if(!g_Config.m_ClOldMouseZoom) mouse *= m_pClient->m_Camera.m_Zoom; TestInput.m_TargetX = (int)mouse.x; TestInput.m_TargetY = (int)mouse.y; } m_FastInput = TestInput; if (NewInput) { return true; } return false; } theres no other early returns, and NewInput is also a flag so theres no cast (edited)
stop editing big messages so often! you are polluting irc bridge
Avatar
oh shit, mb
Avatar
Avatar
Solly
bool CControls::CheckNewInput() { CNetObj_PlayerInput TestInput = m_aInputData[g_Config.m_ClDummy]; TestInput.m_Direction = 0; if(m_aInputDirectionLeft[g_Config.m_ClDummy] && !m_aInputDirectionRight[g_Config.m_ClDummy]) TestInput.m_Direction = -1; if(!m_aInputDirectionLeft[g_Config.m_ClDummy] && m_aInputDirectionRight[g_Config.m_ClDummy]) TestInput.m_Direction = 1; bool NewInput = false; if(m_FastInput.m_Direction != TestInput.m_Direction) NewInput = true; if(m_FastInput.m_Hook != TestInput.m_Hook) NewInput = true; if(m_FastInput.m_Fire != TestInput.m_Fire) NewInput = true; if(m_FastInput.m_Jump != TestInput.m_Jump) NewInput = true; if(m_FastInput.m_NextWeapon != TestInput.m_NextWeapon) NewInput = true; if(m_FastInput.m_PrevWeapon != TestInput.m_PrevWeapon) NewInput = true; if(m_FastInput.m_WantedWeapon != TestInput.m_WantedWeapon) NewInput = true; // this is edited btw if(g_Config.m_ClSubTickAiming) { vec2 mouse = m_aMousePos[g_Config.m_ClDummy]; mouse *= (float)g_Config.m_ClMousePositionMultiplier / 100.0f; if(!g_Config.m_ClOldMouseZoom) mouse *= m_pClient->m_Camera.m_Zoom; TestInput.m_TargetX = (int)mouse.x; TestInput.m_TargetY = (int)mouse.y; } m_FastInput = TestInput; if (NewInput) { return true; } return false; } theres no other early returns, and NewInput is also a flag so theres no cast (edited)
heinrich5991 2024-10-18 22:10
yea, I guess it could juts be return NewInput; as you say 🙂
Avatar
its not like... actively bad in any way shape or form
22:10
its just a bit funny
Avatar
Avatar
Solly
bool CControls::CheckNewInput() { CNetObj_PlayerInput TestInput = m_aInputData[g_Config.m_ClDummy]; TestInput.m_Direction = 0; if(m_aInputDirectionLeft[g_Config.m_ClDummy] && !m_aInputDirectionRight[g_Config.m_ClDummy]) TestInput.m_Direction = -1; if(!m_aInputDirectionLeft[g_Config.m_ClDummy] && m_aInputDirectionRight[g_Config.m_ClDummy]) TestInput.m_Direction = 1; bool NewInput = false; if(m_FastInput.m_Direction != TestInput.m_Direction) NewInput = true; if(m_FastInput.m_Hook != TestInput.m_Hook) NewInput = true; if(m_FastInput.m_Fire != TestInput.m_Fire) NewInput = true; if(m_FastInput.m_Jump != TestInput.m_Jump) NewInput = true; if(m_FastInput.m_NextWeapon != TestInput.m_NextWeapon) NewInput = true; if(m_FastInput.m_PrevWeapon != TestInput.m_PrevWeapon) NewInput = true; if(m_FastInput.m_WantedWeapon != TestInput.m_WantedWeapon) NewInput = true; // this is edited btw if(g_Config.m_ClSubTickAiming) { vec2 mouse = m_aMousePos[g_Config.m_ClDummy]; mouse *= (float)g_Config.m_ClMousePositionMultiplier / 100.0f; if(!g_Config.m_ClOldMouseZoom) mouse *= m_pClient->m_Camera.m_Zoom; TestInput.m_TargetX = (int)mouse.x; TestInput.m_TargetY = (int)mouse.y; } m_FastInput = TestInput; if (NewInput) { return true; } return false; } theres no other early returns, and NewInput is also a flag so theres no cast (edited)
useless optimization but ig its better to have NewInput |= ... instead
22:14
maybe compiler substitutes it away anyway
Avatar
Avatar
zhn
useless optimization but ig its better to have NewInput |= ... instead
why? isnt move and or same number of cycles
Avatar
Avatar
Solly
why? isnt move and or same number of cycles
chatgpt, the oracle of knoledge first had to be told that im talking about |= and not ||= but once i get it to first say |= it then says NewInput |= ... expands to NewInput = NewInput | ... which as NewInput is a bool is the same as NewInput = NewInput || ... which can short circuit if NewInput is true, which doesnt make much sense as the short circuit would take 1 instruction (if NewInput is true) whilst a non short circuit would take 2 instrucitons (if NewInput is false) (edited)
22:22
and also if you just make it an if else chain then short circuiting doesnt achieve anything anyway, if the compiler were to do anything it might make it an if else chain
Avatar
Avatar
Solly
why? isnt move and or same number of cycles
branch predictor hell
22:26
if compiler doesn't optimize it away it has to dice every if statement
Avatar
oh does or make it such that it appears false
22:26
wait no
22:27
the branch predictor doesnt require the value of NewInput
Avatar
Avatar
zhn
maybe compiler substitutes it away anyway
22:33
it changes the last one to or which makes sense since the value is then used (print true if true otherwise print false)
Exported 184 message(s)
Timezone: UTC+0