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 10/29/2023 12:00AM and 10/30/2023 12:00AM
Avatar
ChillerDragon BOT 10/29/2023 12:14AM
xd
12:14AM
u ok ewan?
Avatar
Make Ghosts sortable in ghost menü by Time / Date / Name / Favourites (sorted by time) (favourites to Compare) Black Star/ [Super Favourites for All Time Best Runs] White Star
  • so u can mark ur best runs even tho they have 1 fail in it.
  • comparing
1:26AM
Now only the Last (Bad?) Ghost/Attempt is shown after a run, even tho in the ghost menü the best time is marked. O Only if u manuel disable and reenable the best ghost time its shown correctly. Show the best marked Time by Default. (without the need to reenable it on/off).
Avatar
131ef0b M Purple Panic 2, M Skyisland3, A Oscura - ddnet-maps
Avatar
There is a thing called teewebs.net - no matter if it works atm, how is it built? Using WebRTC for an UDP connection? Or WebSockets - but using a proxy or smth?
Avatar
Jupstar ✪ 10/29/2023 7:16AM
It uses web sockets
7:16AM
And the server must support it too
7:17AM
Also there is no udp in the web
7:17AM
At least no raw udp
Avatar
Quic is udp issou
Avatar
yeah i thought maybe it uses webrtc to establish an "udp" connection to not have the tcp drawbacks just was curious, thanks
Avatar
Avatar
GitHub
Click to see attachment 🖼️
Missing image name and broken rendering in Purple Panic 2 is fixed now
Avatar
Avatar
Robyt3
Missing image name and broken rendering in Purple Panic 2 is fixed now
Jupstar ✪ 10/29/2023 10:01AM
what was it in the end?
Avatar
I didn't check what was wrong with the string itself, but because it was not getting loaded, the ingame image was also not getting loaded
10:02AM
We don't really need the name for embedded images, but I guess it's good that it was caught like this
Avatar
Jupstar ✪ 10/29/2023 10:02AM
it's just interesting that this probably broken since years but apparently never caused issues ^^ lucky
Avatar
Yeah, we just ignored missing/broken name for embedded images
10:03AM
If the embedded images failed to load, it might have printed garbage UTF-8 to the console
10:03AM
Nothing more
Avatar
Jupstar ✪ 10/29/2023 10:03AM
but what prevented it from load crrectly
10:03AM
in our current version
Avatar
Harder validation
10:03AM
If name not loaded -> fail to load entire image
Avatar
Jupstar ✪ 10/29/2023 10:03AM
i c
10:04AM
and do you know why patigas tool failed to detect it?
10:04AM
i didnt follow ur convo
Avatar
Maybe it didn't check for broken UTF-8 yet
10:04AM
I can investigate in what way the string was broken
Avatar
Jupstar ✪ 10/29/2023 10:05AM
would maybe be useful if some editor version generated these invalid strings
10:05AM
if patiga converts the string to a rust string it must have been checked i guess
Avatar
I think we are going to discover a bunch of strange maps that are generated by other editors and tools once we add more map validation
Avatar
Jupstar ✪ 10/29/2023 10:06AM
yeah
10:06AM
still i'd have thought that's what patigas tool is for xd
Avatar
Not sure if it checks everything, like map item versions. For example every map version item should have version 1, but there were maps that didn't have this item.
10:08AM
The map info item also should always have version 1, but maybe another client added version 2
Avatar
Avatar
Jupstar ✪
and do you know why patigas tool failed to detect it?
its because invalid utf-8 is wayyy too common, so I just used https://doc.rust-lang.org/std/string/struct.String.html#method.from_utf8_lossy
10:12AM
while I do try to be strict with loading, I do also want compatibility to a degree ^^
Avatar
Avatar
Patiga
its because invalid utf-8 is wayyy too common, so I just used https://doc.rust-lang.org/std/string/struct.String.html#method.from_utf8_lossy
Jupstar ✪ 10/29/2023 10:12AM
wtf, why is it so common tho
10:12AM
aren't most maps simply using english names
Avatar
I believe there was some broken input in the past, maybe it was utf-16 or something, or local input with other symbol maps
10:14AM
and the thing is, these things get propagated further by mappers basing their maps on other maps (or appending them) to use their envelopes
Avatar
Jupstar ✪ 10/29/2023 10:14AM
well but if ddnet will fail in future
10:14AM
we should make a decision
Avatar
we could decide to forbid saving maps with invalid utf-8
10:15AM
and maybe fix the utf-8 during loading as well as possible
10:15AM
there are a few other bugs which the twmap parser intentionally ignores
10:16AM
but the invalid-utf8 was so big that it doesn't even throw a log warning I think
Avatar
Jupstar ✪ 10/29/2023 10:17AM
problem is: in my eyes a failed image means a failed map
10:17AM
if there is invalid parts in maps we should not at all allow to continue
10:17AM
this is always a mess to deal with
10:18AM
currently an image fails with broken utf8
10:18AM
the renderer is simply not built to deal with it
10:18AM
it's not its problem
10:19AM
if we ignore it for stirngs, we should also ignore it in ddnet again
10:19AM
(which afai understand is not the case rn)
Avatar
Avatar
Jupstar ✪
if we ignore it for stirngs, we should also ignore it in ddnet again
wdym here?
Avatar
Jupstar ✪ 10/29/2023 10:20AM
well u kinda ignore invalid utf8
10:21AM
but ddnet does not anymore
Avatar
Silently ignoring errors is usually a big no in code review, so validation is as strict as possible
Avatar
what about fixing the utf-8?
10:22AM
or throwing away the string
Avatar
Do unicode replacement characters cause problems elsewhere though?
Avatar
Avatar
Robyt3
Silently ignoring errors is usually a big no in code review, so validation is as strict as possible
Jupstar ✪ 10/29/2023 10:22AM
i also prefer to catch all errors at IO time. then not all other code has to deal with it
10:22AM
i just don't like a semi broken map
10:23AM
either completely not load, or load
10:23AM
as said, i don't like that the renderer has to deal with this (in theory)
Avatar
btw, the filename in question was DDmaxFreezeAlpha3 weiß versuch 1 (encoded as correct ANSI, but therefore incorrect utf-8)
Avatar
Avatar
Robyt3
Do unicode replacement characters cause problems elsewhere though?
slightly, the strings get longer (because its 4 bytes long) and they breach the size limit of the string. twmap slices the string after to keep the max
Avatar
Always returning the checked string from the datafile directly is nice because no additional malloc/free is necessary
10:25AM
I'll also add GetDataStringArray in the future, which would return std::optional<std::vector<const char *>>
Avatar
note that I don't think performance considerations are necessary. my benchmarks always showed that the zlib decompression is responsible for ~95% of the cpu time
10:26AM
allocations won't make any difference I think
Avatar
Avatar
Patiga
allocations won't make any difference I think
Jupstar ✪ 10/29/2023 10:26AM
true
10:27AM
zlib decompression and png decompression is most time for me too
Avatar
Avatar
Jupstar ✪
i also prefer to catch all errors at IO time. then not all other code has to deal with it
Yeah, there should be a validation phase after loading the map file, where all map items that are known to the game are validated. But checking all the data at this stage would mean we load everything into memory immediately, which heinrich was also against.
Avatar
Jupstar ✪ 10/29/2023 10:27AM
but additionally the mapformat sadly saves 0-tiles (air tiles) so gotta iterate over all tiles
10:27AM
that sucks too xd
Avatar
Avatar
Robyt3
Yeah, there should be a validation phase after loading the map file, where all map items that are known to the game are validated. But checking all the data at this stage would mean we load everything into memory immediately, which heinrich was also against.
Jupstar ✪ 10/29/2023 10:28AM
ok but he is against anything lmao
Avatar
Avatar
Patiga
note that I don't think performance considerations are necessary. my benchmarks always showed that the zlib decompression is responsible for ~95% of the cpu time
I mostly meant that the frees are annoying from API usability point of view
Avatar
Jupstar ✪ 10/29/2023 10:28AM
make a parameter list of stuff that we "want" to load
10:28AM
and only load these things
10:28AM
ofc. we don't need the credits or smth
Avatar
But you also need to load the image/sound from the data immediately
Avatar
Avatar
Jupstar ✪
but additionally the mapformat sadly saves 0-tiles (air tiles) so gotta iterate over all tiles
does that actually affect performance that bad? twmpa always iterates over all tiles on map loads with checks and its still 95% decompression
Avatar
You wouldn't want image loading to fail later when it finds that the RGBA data was invalid
Avatar
Avatar
Robyt3
But you also need to load the image/sound from the data immediately
Jupstar ✪ 10/29/2023 10:29AM
yep is that a problem?
10:29AM
i mean not like the images aren't used anyway
10:29AM
they are loaded anyway later btw
10:29AM
all at once
Avatar
Hmmm, basically you want a giant wrapper around the entire map
Avatar
Jupstar ✪ 10/29/2023 10:29AM
i do that in dd-pg
10:30AM
it still loads faster than ddnet-cpp
10:30AM
the only thing it does additionally is having a bool list of stuff u want to load
10:30AM
e.g. server doesn't need to load design tiles
10:30AM
saves RAM etc.
Avatar
Avatar
Jupstar ✪
the only thing it does additionally is having a bool list of stuff u want to load
That would be checked by the map item validation
Avatar
Avatar
Robyt3
I mostly meant that the frees are annoying from API usability point of view
don't we have newer c++ versions in ddnet now? couldn't we just use some smart pointer?
Avatar
Each data index needs to validated as well, at which point you load the respective data
Avatar
Avatar
Robyt3
That would be checked by the map item validation
Jupstar ✪ 10/29/2023 10:31AM
why cant the validator do it on per item base?
Avatar
Then it's not a pure validator anymore
Avatar
Jupstar ✪ 10/29/2023 10:31AM
but it validates anything we use
10:31AM
anything else is task of the editor
Avatar
If it also allocates another data structure that represents the validated map, but I guess that makes the most sense
Avatar
Avatar
Robyt3
Then it's not a pure validator anymore
Jupstar ✪ 10/29/2023 10:32AM
we don't need a pure validator. with that argument u'd need to check all maps u'll ever download xd
10:32AM
even if not loaded
Avatar
Avatar
Robyt3
If it also allocates another data structure that represents the validated map, but I guess that makes the most sense
Jupstar ✪ 10/29/2023 10:33AM
ah yes
Avatar
As long as it's not loaded it doesn't have to be validated
Avatar
Jupstar ✪ 10/29/2023 10:33AM
we should introduce a cleaner data structure anyway
10:33AM
working with the map data directly is kinda unclean imo
Avatar
Avatar
Robyt3
As long as it's not loaded it doesn't have to be validated
Jupstar ✪ 10/29/2023 10:33AM
yes
10:33AM
that's my argument too
10:33AM
it sounded like u want a validator that checks the whole map
Avatar
Avatar
Jupstar ✪
we should introduce a cleaner data structure anyway
yeah, it's like we have to add validation everywhere separately where the items are used. much better to have a validated wrapper class
Avatar
Jupstar ✪ 10/29/2023 10:34AM
i just wanted to say:
  • load everything that is requested(by a bool list)
  • check all these things => we can use it safely
Avatar
Avatar
Robyt3
yeah, it's like we have to add validation everywhere separately where the items are used. much better to have a validated wrapper class
Jupstar ✪ 10/29/2023 10:34AM
yep i agree
Avatar
Avatar
Jupstar ✪
the only thing it does additionally is having a bool list of stuff u want to load
I could offer twmap bindings happy
10:34AM
tho there are multiple reasons why it could be a bad fit
Avatar
Jupstar ✪ 10/29/2023 10:38AM
my dd-pg is still unclean and doesn't support sound but: it basically writes everything(that is possible) into a struct https://github.com/Jupeyy/dd-pg/blob/test5/game/shared-base/src/datafile.rs#L214-L237 then another wrapper loads all stuff it needs from above strruct: https://github.com/Jupeyy/dd-pg/blob/test5/game/client-map/src/client_map.rs#L42-L45 render & upload_data = all buffered stuff, images etc. collision = game layers raw should be private at some point probably so it should in theory never have to deal with the original raw file
10:39AM
i think envelops are still handled from the raw data rn ^^
Avatar
Avatar
Patiga
while I do try to be strict with loading, I do also want compatibility to a degree ^^
Are you checking Header.m_Size and Header.m_Swaplen already?
Avatar
yea, but with compatibility with that weird error in the past
Avatar
good good, that also confused me when I first added some validation for teeworlds maps
10:42AM
Never finished testing all of this, and the chance of merging were already less than 1% before oy went perma-afk
tear 1
Avatar
what surprised me a lot was that in heinrich's map collection, many many maps fail in my parser because the zlib compression fails thonk not sure whats going on with those maps
Avatar
Jupstar ✪ 10/29/2023 10:43AM
can u name a map?
Avatar
lemme check
Avatar
Jupstar ✪ 10/29/2023 10:44AM
and maybe also send it xd
10:44AM
i'd really wish we could break the map format. it's so wrong xd
10:45AM
well i'll do it anyway xd
Avatar
I still want to revert that parallax-zoom-values-per-group change
Avatar
Jupstar ✪ 10/29/2023 10:46AM
why do we even need an addon for that at all?
Avatar
you mean why we need custom values?
Avatar
Jupstar ✪ 10/29/2023 10:46AM
yes
Avatar
I don't know actually
10:46AM
Ravie says it breaks maps
10:47AM
I have yet to see a proper example
Avatar
Jupstar ✪ 10/29/2023 10:47AM
in the background?
Avatar
I was shown a map where it would've broken visuals if a certain element would've had transparency
10:47AM
but the fix would've been easy
10:47AM
yes
Avatar
Jupstar ✪ 10/29/2023 10:47AM
mh ok
Avatar
Ravie's other argument was that it makes it harder to map, because you have to verify that the map looks good with and without parallax-zoom
Avatar
Jupstar ✪ 10/29/2023 10:48AM
i'd argue that zoom is generally the hard part here
Avatar
my argument there was, that we retroactively activated it on all maps, and it only caused a non-issue on a single map
Avatar
Jupstar ✪ 10/29/2023 10:53AM
mhhhhhhhhhh
10:55AM
i have to say i am rather confused what the current behavior of ddnet is then. it seems to only scale the first layer of the background?
10:55AM
to me this sounds like an issue with our background zoom feature
10:55AM
in general
10:55AM
but i haven't thought about this enough yet
10:57AM
maybe background is already a bad word: we have FAR away background and we have a "near" background
Avatar
Jupstar ✪ 10/29/2023 10:57AM
the FAR background must scale all elements
Avatar
Avatar
Jupstar ✪
i have to say i am rather confused what the current behavior of ddnet is then. it seems to only scale the first layer of the background?
no, Fireball made a nice video to show the difference https://www.youtube.com/watch?v=W7eXQN0gRFI
Avatar
Avatar
Patiga
no, Fireball made a nice video to show the difference https://www.youtube.com/watch?v=W7eXQN0gRFI
Jupstar ✪ 10/29/2023 11:00AM
my point is maybe a different one
11:00AM
parallex kinda emulates depth
Avatar
its about scaling all groups differently depending on their parallax value, to create a 'logical' zoom before, only parallax x == 0 + parallax y == 0 was a special case so that it doesn't get resized on zoom, but with the new parallax-zoom, its no longer a special case but simply integrated into the general case
Avatar
Jupstar ✪ 10/29/2023 11:00AM
in the background parallex 0 would basically mean scale the background to fit
11:01AM
a completely static background would not scale at all
Avatar
Avatar
Robyt3
All of them lead to the same crash dump because the image data seems to be truncated
interesting. my checker only throws: Io: corrupt deflate stream
Avatar
Avatar
Jupstar ✪
a completely static background would not scale at all
exatly, it is infinitely far away, so moving the camera back and fourth doesn't change its size
Avatar
Jupstar ✪ 10/29/2023 11:02AM
and you cannot calculate that mathematically?
11:02AM
without an extra item?
Avatar
yes, thats also how its done
11:02AM
if the value is not changed, its simply max(parallax.x, parallax.y)
11:03AM
and those are also the values the editor writes on new maps
11:03AM
but the values are editable for some reason
Avatar
Avatar
Patiga
interesting. my checker only throws: Io: corrupt deflate stream
The client also prints datafile: uncompress error. result=-3 wanted=4194304 got=4173556 because zlib fails, but we don't check in other places if the image data was loaded and has the correct size
Avatar
Avatar
Patiga
but the values are editable for some reason
Jupstar ✪ 10/29/2023 11:03AM
yeah that's weird. But generally, we isn't this simply default behavior for all maps?
Avatar
it is the default behavior
Avatar
Jupstar ✪ 10/29/2023 11:03AM
why a new map item
Avatar
ah, yes
11:04AM
thats also my question
11:04AM
I want that reverted currently
11:04AM
(since like a year or so)
Avatar
Jupstar ✪ 10/29/2023 11:04AM
yes
11:04AM
what happens if the map item misses?
11:04AM
does it not do any logical scale?
Avatar
Avatar
Patiga
if the value is not changed, its simply max(parallax.x, parallax.y)
ah its actually clamp(max(parallax.x, parallax.y), 0, 100)
Avatar
Avatar
Jupstar ✪
what happens if the map item misses?
it simply calculates the value normally
Avatar
Jupstar ✪ 10/29/2023 11:05AM
mh ok
Avatar
which I think is the correct behavior
Avatar
Avatar
Patiga
interesting. my checker only throws: Io: corrupt deflate stream
Jupstar ✪ 10/29/2023 11:05AM
i get the same err xd
Avatar
just calculate the value
Avatar
Avatar
Patiga
which I think is the correct behavior
Jupstar ✪ 10/29/2023 11:06AM
wait ok, but if it's not missing and u didn't explicitly change it in the editor, it's the same value basically?
Avatar
Avatar
Jupstar ✪
i get the same err xd
are you also using the system zlib?
Avatar
Avatar
Jupstar ✪
wait ok, but if it's not missing and u didn't explicitly change it in the editor, it's the same value basically?
yes
Avatar
Avatar
Patiga
are you also using the system zlib?
Jupstar ✪ 10/29/2023 11:06AM
i use deflate crate
Avatar
Avatar
Patiga
yes
Jupstar ✪ 10/29/2023 11:07AM
yeah then i guess it makes sense to not have it, except that guy that implemented it shows clear evidence that the math is wrong
Avatar
where? please show an example where its wrong. was the timeshop map actually changed?
Avatar
Jupstar ✪ 10/29/2023 11:07AM
well that is my question too
👍 1
11:08AM
your issue is rather long
11:08AM
did he reply with anything?=
Avatar
Jupstar ✪ 10/29/2023 11:08AM
anything useful i mean xd
11:08AM
not sure what you consider useful ^^
11:09AM
I'd say at this point that I'll quickly check with python which map has parallax zoom on non-default values
11:09AM
but twmap doesn't parse that :d
11:10AM
(see Why the value is complicated to handle right now in my discussion issue)
Avatar
Jupstar ✪ 10/29/2023 11:10AM
he claims timeshop uses non default?
Avatar
the timeshop map up on ddnet servers does not use custom values, no
Avatar
Jupstar ✪ 10/29/2023 11:12AM
interesting xd
Avatar
(cool map btw)
11:12AM
maybe Fireball confused some stuff from early testing
Avatar
Jupstar ✪ 10/29/2023 11:13AM
well anyway, i don't even remember why we got to this feature, but yeah, best is good default behavior xd
Avatar
if you want you could give a +1 on that issue or smth, I don't think I can really push it harder with just my own opinion
11:20AM
@Robyt3 do you have an opinion on parallax zoom?
Avatar
Haven't looked at it in detail. I suppose you could push harder by opening a PR with your proposed changes
Avatar
Jupstar ✪ 10/29/2023 11:21AM
@Patiga did u already try out egui xd
Avatar
no ^^
Avatar
Avatar
Robyt3
Haven't looked at it in detail. I suppose you could push harder by opening a PR with your proposed changes
fair point
Avatar
Jupstar ✪ 10/29/2023 11:28AM
@Patiga what would be the biggest thing for you to change in the map format?
Avatar
Avatar
Jupstar ✪
@Patiga what would be the biggest thing for you to change in the map format?
hmm, I always liked your idea of adding shaders otherwise: switch the compression method with a much quicker one? I haven't given it much thought tbh
11:30AM
add quad scaling to envelopes
Avatar
Avatar
Patiga
hmm, I always liked your idea of adding shaders otherwise: switch the compression method with a much quicker one? I haven't given it much thought tbh
Jupstar ✪ 10/29/2023 11:30AM
that was voxels idea xd
Avatar
@Voxel gud idea
Avatar
Jupstar ✪ 10/29/2023 11:31AM
shaders would be cool, but uncontrolled code execution
11:31AM
uncontrolled by us at least
Avatar
hm yea
11:32AM
lets invent a new shading language brownbear
Avatar
Jupstar ✪ 10/29/2023 11:32AM
yeah compression 100% agree
11:32AM
and don't compress image data directly into the map format
11:32AM
xd
Avatar
at least save it as png or smth, not weird zlib
Avatar
Jupstar ✪ 10/29/2023 11:32AM
yep
11:32AM
and i'd love to have the ability to set the clamp mode for quads
11:33AM
i really dislike that mappers have to use an offset for the texture coordinates
Avatar
fn R (t:f32, mut x: f32,mut y:f32)->(f32,f32,){ let mut f=x;x-=t*y;y+=t*f;f=(3.-x *x-y*y)/2.;(x*f,y*f)}fn main() {let( mut x,mut y,mut o,mut N); let mut z:[f32; 1760];let mut a:f32=0.;let mut e:f32=1.;let mut c:f32=1.;let mut d:f32=0.;let (mut g,mut h, mut G,mut H,mut A,mut t,mut D);let(mut b):[char ;1760];loop{(z)=[0.; 1760];(g,h)=(0.,1.); b=[' ';1760];for TJ in 0..90{(G,H)=(0., 1.0);for M in 0.. 314{A=h+2.0;D=1./ (G*A*a+g*e+5.);t= (G*A*e)-(g*a);x=( 40.0+(30.0*D*(H*A *d-t*c)))as i32;y =(12.0+(15.*D*(H* A*c+t*d)))as i32; o=x+(80*y);N=(8.* (((g*a-G*h*e)*d)- G*h*a-g*e-H*h*c))as i32;if 0<y&&y<22&&0 <x&& x<80&& D>z[o as usize]{z[o as usize] =D;b[o as usize]=b".,-~:;=!*#$@"[if N >0{N as// usize}else{0}]as char}(H,G)=R(0.02,H,G);}(h,g)= R(0.07,h,g);}for k in 0..=1760{print!("{}", if k%80!=0{b[k]}else{'\n' as char})}(e,a) =R(0.04,e,a);(d,c)=R(0.020,d,c);std:: thread::sleep(std::time::Duration ::from_millis(015));print!( "\x1b[23A");}}//TJ!
🍩 2
11:33AM
valid rust
Avatar
hm, couldn't the editor be improved to somewhat fix that? noone would notice a 1-pixel offset
Avatar
Avatar
Patiga
hm, couldn't the editor be improved to somewhat fix that? noone would notice a 1-pixel offset
Jupstar ✪ 10/29/2023 11:34AM
the problem is, that this is still not really fixable, considering that different mipmaps have different texture sizes
11:34AM
a 10x10 texture would require a 1/10 offset
Avatar
we could also save the tilemap layers as png feelsamazingman
11:34AM
(except for speedup)
Avatar
Avatar
Ryozuki
fn R (t:f32, mut x: f32,mut y:f32)->(f32,f32,){ let mut f=x;x-=t*y;y+=t*f;f=(3.-x *x-y*y)/2.;(x*f,y*f)}fn main() {let( mut x,mut y,mut o,mut N); let mut z:[f32; 1760];let mut a:f32=0.;let mut e:f32=1.;let mut c:f32=1.;let mut d:f32=0.;let (mut g,mut h, mut G,mut H,mut A,mut t,mut D);let(mut b):[char ;1760];loop{(z)=[0.; 1760];(g,h)=(0.,1.); b=[' ';1760];for TJ in 0..90{(G,H)=(0., 1.0);for M in 0.. 314{A=h+2.0;D=1./ (G*A*a+g*e+5.);t= (G*A*e)-(g*a);x=( 40.0+(30.0*D*(H*A *d-t*c)))as i32;y =(12.0+(15.*D*(H* A*c+t*d)))as i32; o=x+(80*y);N=(8.* (((g*a-G*h*e)*d)- G*h*a-g*e-H*h*c))as i32;if 0<y&&y<22&&0 <x&& x<80&& D>z[o as usize]{z[o as usize] =D;b[o as usize]=b".,-~:;=!*#$@"[if N >0{N as// usize}else{0}]as char}(H,G)=R(0.02,H,G);}(h,g)= R(0.07,h,g);}for k in 0..=1760{print!("{}", if k%80!=0{b[k]}else{'\n' as char})}(e,a) =R(0.04,e,a);(d,c)=R(0.020,d,c);std:: thread::sleep(std::time::Duration ::from_millis(015));print!( "\x1b[23A");}}//TJ!
Jupstar ✪ 10/29/2023 11:34AM
xd
Avatar
Avatar
Jupstar ✪
a 10x10 texture would require a 1/10 offset
well who needs a differently sampled 10x10 texture, honestly :p
Avatar
Jupstar ✪ 10/29/2023 11:34AM
what does it calculate @Ryozuki
11:35AM
Making donut.c in every language. Contribute to EvanZhouDev/TheDonutProject development by creating an account on GitHub.
11:35AM
This all started with donut.c, the classic C code that looks like, and generates a 3D spinning donut when run. Out of sheer curiosity, I searched up this code in different languages, and noticed that many people have created 3D spinning donuts in those languages... but their code mostly didn't look like a donut.
Avatar
Avatar
Patiga
well who needs a differently sampled 10x10 texture, honestly :p
Jupstar ✪ 10/29/2023 11:35AM
my point is rather that the mipmap would leak other texels
11:36AM
e.g. u have a 1000x1000 image in the editor so the editor adds 1/1000 as offset when zooming out tho, it would not work bcs the mipmap might be 10x10
11:36AM
1/1000 on a 10x10 would bleed
Avatar
Avatar
Jupstar ✪
i use deflate crate
if you haven't yet you could try out if https://crates.io/crates/cloudflare-zlib improves your map loading :D
Avatar
Jupstar ✪ 10/29/2023 11:36AM
is it rust only?
Avatar
doesn't look like it, C
Avatar
Avatar
Patiga
hmm, I always liked your idea of adding shaders otherwise: switch the compression method with a much quicker one? I haven't given it much thought tbh
heinrich5991 10/29/2023 11:37AM
does adding shaders bind us to a certain standard like opengl or vulkan, unable to change away from that? or is it even worse?
Avatar
but SIMD-accelerated, must be good :p
Avatar
Jupstar ✪ 10/29/2023 11:37AM
yeah ^^
11:37AM
but i guess my map loading is ok now
11:37AM
<1s for biggest ddnet map
Avatar
Avatar
heinrich5991
does adding shaders bind us to a certain standard like opengl or vulkan, unable to change away from that? or is it even worse?
yup, you'd need to select a shading language
11:38AM
there are transpilers
11:38AM
but yea, that makes it difficult
11:39AM
https://crates.io/crates/naga appears to be a good tool for shader translation
Avatar
Jupstar ✪ 10/29/2023 11:39AM
mhh
11:39AM
i used it xd
11:39AM
it's very unfinished still sadly
Avatar
ow :c
11:39AM
how so?
Avatar
Jupstar ✪ 10/29/2023 11:39AM
i tried GLSL to spir-v
Avatar
heinrich5991 10/29/2023 11:39AM
is there some subset shader language that is supported by all graphic APIs?
Avatar
ah, naga and not that cloudflare thingy
Avatar
heinrich5991 10/29/2023 11:40AM
(and would thus likely be supported in the future as well)
Avatar
Jupstar ✪ 10/29/2023 11:40AM
it has missing features like push-constants and generally seems to use a syntax that is closer to HLSL than GLSL xd
Avatar
Avatar
heinrich5991
is there some subset shader language that is supported by all graphic APIs?
that is what wgsl tries to be
Avatar
Avatar
heinrich5991
is there some subset shader language that is supported by all graphic APIs?
Jupstar ✪ 10/29/2023 11:40AM
vulkan only supports spir-v
Avatar
which is made for webgpu
Avatar
Jupstar ✪ 10/29/2023 11:40AM
nothing else
Avatar
(but can be translated to from wgsl for example)
Avatar
heinrich5991 10/29/2023 11:40AM
maybe you can compile wgsl to spir-v?
11:40AM
ah
11:41AM
wgsl seems quite new though, 2021
11:41AM
will it still be around in ten years?
Avatar
I don't know
Avatar
Jupstar ✪ 10/29/2023 11:41AM
i guess it's the opposite
11:41AM
it will be around in 10years XD
11:42AM
when browsers finally support it to 100%
Avatar
https://en.wikipedia.org/wiki/WebGPU @heinrich5991 the big players seem to be onboard
Avatar
heinrich5991 10/29/2023 11:43AM
WebGPU is the working name for a potential web standard and JavaScript API for accelerated graphics and compute, aiming to provide "modern 3D graphics and computation capabilities".
sounds good indeed. it might be better to wait until it's a standard so it doesn't change anymore
Avatar
Jupstar ✪ 10/29/2023 11:44AM
the biggest problem is that it still relies on safe drivers to a certain extend
Avatar
heinrich5991 10/29/2023 11:45AM
ah, it's a security vulnerability? ^^
11:45AM
probably a lot more than loading a png
Avatar
Jupstar ✪ 10/29/2023 11:45AM
well i wouldn't say it is
Avatar
heinrich5991 10/29/2023 11:45AM
if we're executing code
Avatar
Jupstar ✪ 10/29/2023 11:45AM
yes
11:45AM
https://www.khronos.org/webgl/security/ e.g. they specify what webgl has to check
Avatar
Jupstar when you don't have 20,000 fps: cammostripes
Avatar
Jupstar ✪ 10/29/2023 11:45AM
so the browser might do all this
11:45AM
but still doesn't mean the driver itself isn't exploitable
Avatar
Avatar
Patiga
Jupstar when you don't have 20,000 fps: cammostripes
Jupstar ✪ 10/29/2023 11:46AM
that's not even my point here ^^
Avatar
ah xd
Avatar
Jupstar ✪ 10/29/2023 11:46AM
i managed to crash my PC with webgl2
11:46AM
that doesn't directly mean it's unsafe
11:46AM
but at least concerning xD
Avatar
heinrich5991 10/29/2023 11:46AM
well, DoS by making the machine crash is also a security vulnerability ^^
11:47AM
but yea, wgsl seems like the thing we'd need in order to enable shaders for maps
Avatar
Jupstar ✪ 10/29/2023 11:48AM
Is WebGL a potential security problem due to the low level access it provides? For example, a web page can attempt to compile and run any shader source it wants. It seems that security would espe...
11:48AM
random stackoverflow answer
Avatar
heinrich5991 10/29/2023 11:48AM
spir is an abbreviation just like llvm 😄
Avatar
Jupstar ✪ 10/29/2023 11:49AM
note also webgpu is MUCH more powerful than webgl
11:49AM
i only quote webgl here xd
11:49AM
"Browsers have responded to this with a variety of defenses: they have blacklisted video cards with known security problems; they have tried to fix the known memory safety problems; and they have restricted use of WebGL per the same-origin policy, to prevent a malicious web site from using WebGL to spy on users' use of other web sites."
11:50AM
this alone sounds like a hard to manage thing
Avatar
heinrich5991 10/29/2023 11:50AM
yea
11:50AM
sounds like the code would need to be approved before being run in the client
11:51AM
Microsoft Security Research & Defense: Microsoft information on security mitigations, workarounds, and other technical leadership for better actionable guidance.
11:51AM
(from the so answer)
Avatar
Jupstar ✪ 10/29/2023 11:58AM
i guess wgsl with a limited subset of features could work out but in the end there is always a risk, even if u just write a endless loop or stuff like that, which is not in our control anymore (or the wgls converter)
Avatar
what happens if a shader runs into an endless loop btw?
Avatar
Jupstar ✪ 10/29/2023 12:01PM
i dunno i can just say that i managed to crash my PC, by spamming many draw instances XD
Avatar
heinrich5991 10/29/2023 12:02PM
do shaders allow for loops?
Avatar
Jupstar ✪ 10/29/2023 12:02PM
yeah
12:02PM
shaders are kinda just mini programs
12:02PM
without direct memory allocation access etc.
12:03PM
i mean always depends on the graphics library, but spir-v is also used for the compute shaders
Avatar
Interesting that they aren’t limited to provably finite loops like eBPF
Avatar
Jupstar ✪ 10/29/2023 12:19PM
i mean if u do a for i in 0..u64::MAX
12:19PM
would u say this is a finite loop?
12:19PM
strictly speaking yes
Avatar
heinrich5991 10/29/2023 12:20PM
matricks wanted to create a scripting language that provably terminates (in reasonable time)
12:21PM
loops would have been forbidden, you'd be allowed to iterate only over certain arrays
12:21PM
IIRC
Avatar
Jupstar ✪ 10/29/2023 12:21PM
but can u iterate over arrays of arrays xd
12:21PM
or the same array twice
12:21PM
nested
Avatar
Avatar
Jupstar ✪
would u say this is a finite loop?
Yeah, but iirc eBPF also limits the amount of times you can loop, it’s a very rough time limit
Avatar
Jupstar ✪ 10/29/2023 12:22PM
anyway shaders are not really limited at all and that's not really their idea. the limits they have are simply to fit the idea of a graphics pipeline and high parallelism
Avatar
Avatar
Jupstar ✪
but can u iterate over arrays of arrays xd
heinrich5991 10/29/2023 12:22PM
probably not, or only twice deep
12:22PM
or something like that
Avatar
Jupstar ✪ 10/29/2023 12:27PM
anyway, before it sounds like i want to prevent that feature. i just want to make clear there are certain things i'd find concerning. If we disable loops etc. at some point u can also not use shaders but parameters to alter the rendering xd
12:28PM
or human proof the shaders, before maps are released or smth
Avatar
Avatar
Patiga
@Voxel gud idea
brownbear
Avatar
Avatar
Jupstar ✪
anyway, before it sounds like i want to prevent that feature. i just want to make clear there are certain things i'd find concerning. If we disable loops etc. at some point u can also not use shaders but parameters to alter the rendering xd
yea a growing set of 'official' shaders with configurable parameters also sounds nice
Avatar
what type of shaders r u thinking
Avatar
well any, I guess ^^
12:32PM
textures, materials, post-processing
12:32PM
get particles into it somehow
12:32PM
dunno which ones ares the most important
Avatar
ooh yea ive always wanted a particles system
12:34PM
12:34PM
old particle generator idea (edited)
12:35PM
what u could see and place in a map link it to an image n stuff
12:36PM
smoke type goes up and is interactive spew type acts like a lil cannon
Avatar
Jupstar ✪ 10/29/2023 12:37PM
is that even a shader xd
12:37PM
sounds like u want custom physics
12:39PM
tbh anything works at this point
12:39PM
ddnet maps Need something new like this
Avatar
Particle flow system already exists, it's just disabled. Would be cool to enabled it again and add particle emitters as map tiles (edited)
Avatar
Jupstar ✪ 10/29/2023 12:42PM
i wish i could show some stuff, but i am not far enough yet but generally i'd allow with the WASM runtime to even change client side graphics on a per server basis. so there wouldn't be any limiations on what you can change. but similar to shaders i'd only allow this if human prooved
12:44PM
it also wouldn't be required to be added to the code base, so no bloating xd
Avatar
u know what would also be cool? envelope logic
12:46PM
like, have envelopes that loop or just play once add tunes that start, stop and play certain envelopes
Avatar
the only sad thing about such envelopes is that spectating multiple teams wouldn't really work with them, or solo parts
Avatar
good morning
owo 1
Avatar
just like switches also don't interact well with solo parts
12:49PM
loop/play once is interesting, I guess you can do play once already, by placing an env point at like 1 day or smth
12:49PM
(and loop is the default)
12:52PM
another spitball idea: different sounds for different textures
Avatar
Jupstar ✪ 10/29/2023 12:52PM
materials
Avatar
grass hook noises, alongside stone, metal, stuff like that
12:52PM
yea
Avatar
Jupstar ✪ 10/29/2023 12:52PM
good
12:52PM
learn rust and join robyte & me team or patiga & zwelf's team
Avatar
whats rust gotta do with that
Avatar
sounds like they are using rust 😃
Avatar
Jupstar ✪ 10/29/2023 12:58PM
smone gotta code these features
Avatar
jupstar carry me in gores
Avatar
Avatar
Voxel
ooh yea ive always wanted a particles system
cyberFighter 10/29/2023 12:58PM
diep.io
Avatar
Avatar
Ewan
jupstar carry me in gores
Jupstar ✪ 10/29/2023 12:58PM
k
Avatar
Avatar
Jupstar ✪
smone gotta code these features
well i dont know how to code low level i can provide concept art n stuff tho
Avatar
Avatar
cyberFighter
diep.io
yea
Avatar
Avatar
Voxel
well i dont know how to code low level i can provide concept art n stuff tho
Jupstar ✪ 10/29/2023 12:59PM
k
Avatar
i like this map very aesthetic
Avatar
Jupstar ✪ 10/29/2023 1:00PM
@Patiga what r u workn on rn
Avatar
Avatar
Ewan
i like this map very aesthetic
Jupstar ✪ 10/29/2023 1:00PM
how can i find u ingame
1:00PM
😃
Avatar
Jupstar ✪ 10/29/2023 1:00PM
i dont have account
1:00PM
xd
Avatar
o u wanna play ddrace
Avatar
Jupstar ✪ 10/29/2023 1:01PM
no
1:01PM
just have no kog acc yet
Avatar
Avatar
Robyt3
Haven't looked at it in detail. I suppose you could push harder by opening a PR with your proposed changes
@Jupstar ✪ this
Avatar
Avatar
Patiga
@Jupstar ✪ this
Jupstar ✪ 10/29/2023 1:01PM
work on ddnet-next instead xd (edited)
Avatar
all ger servers are account servers justatest
Avatar
Jupstar ✪ 10/29/2023 1:02PM
74.91.114.169:8303
Avatar
74.91.114.169:8303 appears to be a KoG server. DDNet and KoG aren't affiliated. Join their discord and ask for help there instead. https://discord.kog.tw/
Avatar
cant wait for mirror materials in ddnet
1:07PM
so u can walk past one n stuff
1:09PM
i imagine they'd be like, tiles so that its easier to manage
1:10PM
if u want custom shapes u can overlay graphics over them
Avatar
Disturbed | Killin_ng 10/29/2023 1:53PM
i tried suicide 3 times and nothing
Avatar
Fixes double jump effect not being rendered for other players this bug only affected 0.7 clients on ddnet servers

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 ma...
Avatar
ChillerDragon BOT 10/29/2023 2:42PM
i can open demos in my downloads folder via file manager gui "open with" is there a cli alternative for that?
Avatar
Jupstar ✪ 10/29/2023 2:42PM
./DDNet name.demo
Avatar
ChillerDragon BOT 10/29/2023 2:43PM
i tried
Avatar
Jupstar ✪ 10/29/2023 2:43PM
but
Avatar
ChillerDragon BOT 10/29/2023 2:43PM
it just open ddnet
Avatar
Jupstar ✪ 10/29/2023 2:43PM
mhh
2:43PM
surprising
Avatar
ChillerDragon BOT 10/29/2023 2:43PM
yea i thought stuff like that works in modern 2023 ddnet
2:43PM
maybe im doing something wrong
Avatar
It does, your computer broken
Avatar
ChillerDragon BOT 10/29/2023 2:43PM
ok
2:43PM
i go buy new
Avatar
Install windings, is much better
Avatar
ChillerDragon BOT 10/29/2023 2:43PM
wat windings
Avatar
Jupstar ✪ 10/29/2023 2:44PM
windoof
2:44PM
hööhhö
Avatar
ChillerDragon BOT 10/29/2023 2:44PM
a
2:44PM
wait does it work for you guys?
Avatar
I can even drag demos onto my ddnet shortcut, superior os
Avatar
ChillerDragon BOT 10/29/2023 2:44PM
i can probably too? maybe
Avatar
Jupstar ✪ 10/29/2023 2:44PM
i think i've opened demos like that
2:44PM
in fact our benchmark does that
Avatar
ChillerDragon BOT 10/29/2023 2:45PM
axaxax works in chilerbot
Avatar
if you drag the demo onto ddnet it passes the absolute path, which should work (edited)
Avatar
ChillerDragon BOT 10/29/2023 2:46PM
idk wat cracklord version my DDNet in path is
2:46PM
a nvm
2:46PM
it was the demo name
Avatar
if you use a relative path then it has to be in your storage, also it has to include the demos folder
Avatar
ChillerDragon BOT 10/29/2023 2:46PM
seems like it cant do spaces
Avatar
you need "" to escape paths with spaces
Avatar
ChillerDragon BOT 10/29/2023 2:46PM
always these windows users and their spaces in filenames
2:46PM
i know how to use bash -.-
2:46PM
it didnt eat it
2:47PM
does it work for u?
2:47PM
wait now it does
2:47PM
im confused af
Avatar
which command line are you using?
Avatar
ChillerDragon BOT 10/29/2023 2:48PM
bash
2:48PM
wait i can reproduce again i restored old filename
Avatar
and the command you are running including the argument?
Avatar
ChillerDragon BOT 10/29/2023 2:49PM
DDNet team\ bug.demo
Avatar
Does it work with escaping the space?
Avatar
ChillerDragon BOT 10/29/2023 2:49PM
yes
2:49PM
its same as DDNet 'team bug.demo' if it makes you nervouse
2:50PM
neither work
2:50PM
idk im stupid rn
2:50PM
i managed to play "a a.demo"
2:50PM
lemme try and error for a sec
2:50PM
ah maybe because it starts with "team
2:50PM
and thats a ddnet command
2:51PM
yea pretty sure thats it
2:51PM
i still blame the windows user that sent me a demo containing a space for that :p
2:51PM
but the ddnet client could also not troll in that case
Avatar
In git bash it works with ./ddnet "C:\absolute\path\test 123.demo"
Avatar
ChillerDragon BOT 10/29/2023 2:52PM
not test 123.demo
2:52PM
do "team 123.demo"
Avatar
Also works, why would that make a difference?
Avatar
ChillerDragon BOT 10/29/2023 2:53PM
the file exists check should probably be before the is a command check
2:53PM
i assume it runs the command team with "123.demo" as arg and calls it a day
Avatar
You are not passing an absolute path, are you?
Avatar
ChillerDragon BOT 10/29/2023 2:53PM
no
2:53PM
relative
2:53PM
How should the game find your file then?
Avatar
ChillerDragon BOT 10/29/2023 2:54PM
it works well for me
Avatar
Relative path works if the file is in a storage location
Avatar
ChillerDragon BOT 10/29/2023 2:54PM
idk how ddnet does it i assume it also checks relative
2:54PM
yea $currentdir
2:54PM
should be there in a vanilla storage.cfg
2:54PM
works wonderfully for me
2:55PM
unless it starts with a valid ddnet command
2:55PM
u get what im saying right?
Avatar
Interesting, I can reproduce it
Avatar
ChillerDragon BOT 10/29/2023 2:56PM
this quits my client DDNet "quit game.demo" and this plays a demo DDNet "game quit.demo"
Avatar
Workaround: use play command instead
2:56PM
I'm not sure it's solveable easily
Avatar
ChillerDragon BOT 10/29/2023 2:57PM
play command is pain to quote its almost slower than opening ui
Avatar
The way it works is that we register an "unknown command handler" for the console temporarily, but because team 123.demo is not an unknown command it doesn't reach it
Avatar
ChillerDragon BOT 10/29/2023 2:57PM
yea if its pain to fix it dont its an edge case
2:57PM
i just insult the user who sent me the demo and call it a day
Avatar
We previously tried to check if the command line argument end in .demo but that breaks on other edge cases (edited)
Avatar
ChillerDragon BOT 10/29/2023 2:58PM
yea thats not better
2:59PM
it should check if the file exist if it does then check the ending if its map use it as map if its demo use it as demo. And otherwise fallback to interpreting it as commands.
2:59PM
seems doable
3:00PM
just run that check in the very beginning before any command handler. Only if argc is 1
Avatar
Could get a bit weird. If you open the client with ./DDNet "play my.demo" should it execute play my.demo or open the demo play my.demo
3:01PM
Assuming both demos exist
Avatar
ChillerDragon BOT 10/29/2023 3:01PM
also TIL that the commands are case insenstive. I assumed Team to not match the team command
3:01PM
oh yea you are right
3:02PM
i guess my gui open with expands the path and thats why it worked on the demo
Avatar
yeah, GUIs should pass the absolute path, so it should only be an issue for edge cases in the CLI
Avatar
ChillerDragon BOT 10/29/2023 3:04PM
yea cli users will manage (he said after asking for help in #developer and being confused for 10minutes xd)
3:04PM
but in general i can see demos matching that pattern quite often since there are so many one word commands and all the windows users love spaces and it even matches case insensitive
Avatar
DDNet.exe ./team\ 123.demo with ./ also works
Avatar
ChillerDragon BOT 10/29/2023 3:06PM
well neither my bash nor my zsh tab completion expands the ./ so i would have to manually type ./ :c
3:06PM
but yea much better workaround than using the play command :)
Avatar
That's where remappable keyboard key come into play justatest
Avatar
ChillerDragon BOT 10/29/2023 3:07PM
lmao
3:07PM
i rather fork bash before i remap my keyboard
3:07PM
or fork readline i guess its not even bash who handles that is it?
3:08PM
there is probably hooks for it
3:08PM
windows does that if i remember correctly
3:08PM
you do foo<tab> and it gives your the .\foo.ps1
Avatar
yeah, seems like it works that way in PowerShell but not in Bash
Avatar
ChillerDragon BOT 10/29/2023 3:09PM
omg my windows knowledge is top tier
Avatar
ChillerDragon BOT 10/29/2023 3:13PM
uhm can you turn off teams in the autoexec.cfg?
3:13PM
i never bothered to figure out and always edited the default in the code or added it to map settings
Avatar
ChillerDragon BOT 10/29/2023 3:13PM
how?
Avatar
sv_team 0 (edited)
3:13PM
or sv_teams
3:13PM
BUT
Avatar
ChillerDragon BOT 10/29/2023 3:14PM
in the autoexec.cfg without config reload?
Avatar
It forces it to 0 in the src code somewhere
Avatar
ChillerDragon BOT 10/29/2023 3:14PM
0 is what i want xd
3:14PM
i cant get it off
Avatar
Avatar
Nouaa
It forces it to 0 in the src code somewhere
Ah, 1*
Avatar
ChillerDragon BOT 10/29/2023 3:15PM
yea so adding sv_team 0 does not work that much i know
3:15PM
but what is the clean way to set it then?
3:15PM
editing the map is not an option
Avatar
you need to do smth in gamecontext.cpp afaik
3:16PM
It's called ddrace options or sum
Avatar
ChillerDragon BOT 10/29/2023 3:16PM
in the code? fr
Avatar
ChillerDragon BOT 10/29/2023 3:16PM
cant i set it in my config somehow -.-
Avatar
heinrich5991 10/29/2023 3:17PM
you can set it in the reset file or in the map config
3:17PM
if I read the source code correctly
Avatar
Avatar
heinrich5991
if I read the source code correctly
Can you send the part where it does that?
Avatar
ChillerDragon BOT 10/29/2023 3:19PM
ok lemme try putting it in reset.cfg
Avatar
In the last post I announced musli-zerocopy. In this one I’ll discuss one of the concerns you’ll need to mitigate to build and distribute archives: endianness.
Avatar
ChillerDragon BOT 10/29/2023 3:26PM
works thanks for reading the code when im too lazy to do it @heinrich5991 i hoped someone would know already
Avatar
Since when does DDRace have moving freeze tiles?
Avatar
how do i convert uint to hsla pepeW
Avatar
Avatar
Teero
how do i convert uint to hsla pepeW
uint what?
Avatar
Avatar
Blade
Since when does DDRace have moving freeze tiles?
it doesnt. its kog specific
Avatar
Avatar
Teero
it doesnt. its kog specific
Ah! Gotcha
Avatar
Avatar
Blade
uint what?
unsigned int 32 to HSLA color format
5:15PM
im sure there is some function for that in ddnet code but i cant find it
Avatar
1 byte per value
Avatar
Either the color constructors or UnpackAlphaLast
Avatar
Didn't dive directly into the code in a long while so unsure if there already is
5:16PM
Roby here to save the day!
Avatar
UnpackAlphaLast is for HSLA/RGBA, the constructors use AHSL, ARGB
Avatar
I assume this is used for the skin colors? Since images are RGB/RGBA
Avatar
Skins colors are saved in AHSL format, editor saves colors in RGBA
Avatar
Weird inconsistency
5:20PM
I mean it does kind of make sense given that skin colors are modulated and not set
Avatar
Skins are also weird because they don't use the full L-value for HSL
Avatar
Is that only a limit set by the game's slider or is that actually limited in the code?
Avatar
683c5bb Add sixup server triggered events translation - ChillerDragon e826a72 Merge pull request #7388 from ChillerDragon/pr_sixup_events - Robyt3
Avatar
Should be limited in code when the colors are received by clients, otherwise we would have more players with completely black skins running around
Avatar
I do remember that being a think way back in the day
5:22PM
Like, 0.5 time
5:22PM
Rainbow skins too, although I assume these are still around
Avatar
Avatar
Blade
Rainbow skins too, although I assume these are still around
sadly not bcs of info change delay on servers
Avatar
Oh, oh well, it is what it is
Avatar
When I try to compile DDNet I get this error (main/master branch): -- Building vulkan shaders /home/USER/Development/ddnet/data/shader/vulkan/quad.vert error: line 1: Capability cannot appear before the memory model instruction OpCapability Shader
Avatar
Added the information wished for in. #7229 ^>^ Changed Sound buffer size to Sound buffer size (may cause delay if large).

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 added coverage to integration test
  • [x] Considered possible null pointers and out of bounds array indexing
  • [x] Changed no physics that aff...
Avatar
Avatar
Blade
Oh, oh well, it is what it is
to me rainbow visuals are still the coolest.
Avatar
Yeah, why not
Avatar
now program in bloom monkalaugh
Avatar
coroa de cristo. 10/29/2023 8:00PM
does anyone know how to put a points system on the ddrace server?
Avatar
Avatar
coroa de cristo.
does anyone know how to put a points system on the ddrace server?
catseyenebulous 10/29/2023 8:16PM
There is a point system?
Avatar
Avatar
coroa de cristo.
does anyone know how to put a points system on the ddrace server?
You mean in the scoreboard?
8:23PM
You can choose between time format and points
8:23PM
Or smth else
Avatar
Avatar
coroa de cristo.
does anyone know how to put a points system on the ddrace server?
Create in database table with points, table with points for finishing map and code system for it xd
Avatar
Avatar
coroa de cristo.
does anyone know how to put a points system on the ddrace server?
For what ?
Avatar
uuuhmmm
Avatar
Avatar
Ryozuki
Click to see attachment 🖼️
dis supposed to be a joke or something to demonstrate something?
Avatar
Avatar
Teero
dis supposed to be a joke or something to demonstrate something?
its a joke
10:04PM
i guess u dont know js and c#
10:04PM
i mean java
Avatar
Well I do but I'm kinda xonfused
10:04PM
its just imitating js and java in c++
Avatar
you can do python in C xd
Avatar
u made the joke boring now
10:05PM
:c
Avatar
sry :<
10:06PM
😬 1
10:06PM
hope this fixes it :>
Avatar
Avatar
Ryozuki
:c
I also have a duck 🦆 if that helps :c
Avatar
Parallax Zoom improves the appearance of maps visually when zooming. Contrary to initial tests, it does not interfere with certain map locations, such as the shop on the map Timeshop. The default value appears to be correct for all existing maps. The value in the map file is non-trivial to manage, and provides little benefit. See #6196 for further discussion. Interesting could be if there are more maps nowadays, which set custom values. And then also if those maps use the value correct...
Avatar
751343c Fix client crash on maps with invalid image and sound indices - Robyt3 a88befb Merge pull request #7385 from Robyt3/Client-Mapres-Bounds-Checking - def-
11:07PM
c76352c Altered snd_buffer_size description. Fixes #7229 - BurnyLlama 1acdb6d Merge pull request #7389 from BurnyLlama/fix-docs-snd_buffer_size - def-
Avatar
Avatar
Ryozuki
Click to see attachment 🖼️
brownbear
Avatar
a9fc220 Remove Parallax Zoom from map file - Patiga 911880a Merge pull request #7390 from Patiga/remove-parallax-zoom-from-map - def-
Avatar
i think its really goofy that in shell theres the if...fi concept
11:45PM
like, i mean this in a funny manner
Avatar
heinrich5991 10/29/2023 11:45PM
also case…esac
11:46PM
cant wait for an update that makes do...while...done loops do...while...od
11:52PM
build.yml
11:53PM
why is rm -rf here specifically xd
11:53PM
oh wait no theres a mkdir
11:53PM
it flushes out the folder
Avatar
Previously the wrong ghost would be shown/loaded when finishing a run that's worse than your best time. Closes #7387

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...
Exported 617 message(s)
Timezone: UTC+0