Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.tw/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories β€” IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2022-08-03 00:00:00Z and 2022-08-04 00:00:00Z
Avatar
@deen Update on hungarian.txt: -Fixed most uppercase errors on words -Fixed spelling mistakes -Added extra details on option descriptions -Added the rest of the missing words, that needed translation
Avatar
01d183a M DontMove, M Pyramid-freeze-race - ddnet-maps
Avatar
[quakenet] ChillerDragon BOT 2022-08-03 05:35:14Z
maybe I can try working on 0.7 support in the dissector, ChillerDragon
05:35
@heinrich5991 that would be hot :)
05:38
@yair you mean the score that gets displayed for each player in the scoreboard? That is indeed CPlayer::m_Score but you can also modify when it when its being send to the client in the snap
Avatar
Avatar
deen
neat πŸ˜‰
Avatar
Avatar
Cellegen
@deen Update on hungarian.txt: -Fixed most uppercase errors on words -Fixed spelling mistakes -Added extra details on option descriptions -Added the rest of the missing words, that needed translation
Thanks
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 added coverage to integration test
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addres...
Avatar
[quakenet] ChillerDragon BOT 2022-08-03 08:07:58Z
@Jupstar βœͺ seems like linus torvald touched the new apple m2 for linux stuff https://lore.kernel.org/lkml/CAHk-=wgrz5BBk=rCz7W28Fj_o02s0Xi0OEQ3H1uQgOdFvHgx0w@mail.gmail.com/
08:08
cuz u said m2 cant do linux :p
Avatar
Jupstar βœͺ 2022-08-03 08:14:50Z
Its more about gpu
Avatar
Could also be m1
08:15
It's really nice to finally have a high performance computer you can use without any fan noise
Avatar
Avatar
[quakenet] ChillerDragon
@yair you mean the score that gets displayed for each player in the scoreboard? That is indeed CPlayer::m_Score but you can also modify when it when its being send to the client in the snap
Found it thanks man
Avatar
hi, I would like to tackle this Prediction for laser doors #1279 , how difficult is this to implement (I'm beginner cpp)?
Avatar
add some prediction for laser doors so you dont have this bouncy buggy screen while walking on them. make them like stoppers (as other players look smooth on doors, just not the own tee)
Avatar
This might be fixed by https://github.com/ddnet/ddnet/pull/4176. Have you checked that it still looks bouncy?
09:30
For prediction stuff its probably best to get advice from @trml , he's our expert and can maybe guide you to how to best implement something there
Avatar
Reported by Skyrx on Discord:
Btw, when 64 players with freeze bar fps drops from 800 to 100-150
@C0D3D3V could you take a look? Is this expected?
Avatar
Avatar
deen
It's really nice to finally have a high performance computer you can use without any fan noise
I'm not sure how nice it is to have a different CPU architecture though. on mac I heard it's pretty well integrated, but if you're running linux, I'm not aware of such a thing
Avatar
What would the problem be?
Avatar
not being able to run some proprietrary software, having to manually compile stuff, less distros to choose from
Avatar
I don't think I run any proprietary software on Linux, all just intalled from pacman/AUR
10:18
except some stuff via wine, surprisingly that just works on macOS
10:19
So I guess Rosetta helps for some stuff
Avatar
(e.g. docker also doesn't work anymore, it's all x86_64 binaries, I think)
10:24
it seems the only proprietrary software that I have installed is clion and webstorm, so that would be fine on ARM as well
Avatar
[quakenet] ChillerDragon BOT 2022-08-03 10:24:42Z
gpu driver?
Avatar
my laptop also has an intel CPU that works out of the box, I haven't installed the discrete GPU's driver
10:25
and that wouldn't matter for the apple laptop, they have their own GPU, no proprietrary drivers for linux exist AFAIK
Avatar
Intel can kind of blame themselves with ARM. They dropped their own ARM processors to promote Atom, but no one wanted to use Atom in mobile devices. Otherwise iPhone would probably have ran on Intel ARM CPUs from the start
Avatar
Jupstar βœͺ 2022-08-03 10:32:27Z
A new processor generation with 30% more performance can overcome the emulation cost required to emulate old software in the processor architecture. Then new software ofc needs to adopt to the new architecture or live with some perf decrease.. But most apps probs don't need insane perf...
Avatar
but AFAIK I don't have a convenient way to do that on linux yet; that's what I'm complaining about, not the cost of emulation
Avatar
Avatar
heinrich5991
but AFAIK I don't have a convenient way to do that on linux yet; that's what I'm complaining about, not the cost of emulation
So Linux on M2/M1 means you don't get any x86_64 compatibility at all?
Avatar
Jupstar βœͺ 2022-08-03 10:34:35Z
Mh ok but that's simply bcs it's not a deal yet.. Yuzu emulates the switch. Which is an arm processor
10:34
So it basically exists
Avatar
I know that theoretically it's no problem
Avatar
Jupstar βœͺ 2022-08-03 10:34:54Z
Just wrong way
Avatar
but I want to practically use the computer ^^
Avatar
Avatar
Jupstar βœͺ
Mh ok but that's simply bcs it's not a deal yet.. Yuzu emulates the switch. Which is an arm processor
A much weaker one than an m1 btw. As it gets stronger and stronger emulating stuff gets very annoying
Avatar
it's also not just about being able to run x86_64 code
10:36
apple integrated the whole stuff into the system AFAIK, shipping the relevant libraries also for x86_64, etc. (edited)
Avatar
yeah, works quite seamlessly
Avatar
PS3's Cell gave everyone hell, it's emulation is still janky. Older nintendo consoles emulation is still usually inaccurate so it can perform well realtime
Avatar
So for native linux to have this someone would need to basically figure out what rosetta does and reimplement it
Avatar
Avatar
Learath2
PS3's Cell gave everyone hell, it's emulation is still janky. Older nintendo consoles emulation is still usually inaccurate so it can perform well realtime
Though I guess arm does mesh rather well with native x86 instructions in most matters, hence how performant rosetta and new nintendo console emulators are
Avatar
Not sure how much of the magic is in hardware vs software. The Linux VM solution could probably be adapted for Asahi
Avatar
Huh apparently some people already ran rosetta for linux on arm64 machines other than apples
Avatar
Avatar
deen
This might be fixed by https://github.com/ddnet/ddnet/pull/4176. Have you checked that it still looks bouncy?
Just got back, do you know if it fixed it or should i go test it out?
Avatar
I guess what's required for Linux is a multiarch like some distros have for x86-64/x86, but for arm/x86-64 instead, to bring in all the shared libs etc
Avatar
yup
10:47
ah, is arch linux available for arm? I think there's only archlinuxarm.org, which seems to be for specific systems only
10:47
and not apple hardware
10:48
just x86-64
10:51
For reference, Debian builds DDNet for these archs: amd64 arm64 armel armhf hppa i386 m68k mips64el mipsel ppc64 ppc64el riscv64 s390x sh4 sparc64 x32
Avatar
Avatar
bubliman
Just got back, do you know if it fixed it or should i go test it out?
I don't know, you test it please πŸ™‚
πŸ‘ 1
Avatar
Avatar
bubliman
hi, I would like to tackle this Prediction for laser doors #1279 , how difficult is this to implement (I'm beginner cpp)?
it's a little bit complex, but it depends a bit on how it is implemented. the current implementation of laser doors isn't too nice since it works by modifying the map, so the implementation has to take that into account when a switch is enabled/disabled and when a laser door goes in/out of the snapshot (the most complex question is perhaps overlapping laser doors, although a perfect solution is maybe not necessary)
Avatar
Avatar
trml
it's a little bit complex, but it depends a bit on how it is implemented. the current implementation of laser doors isn't too nice since it works by modifying the map, so the implementation has to take that into account when a switch is enabled/disabled and when a laser door goes in/out of the snapshot (the most complex question is perhaps overlapping laser doors, although a perfect solution is maybe not necessary)
Client could read and store the value of switches, using that to be able to not walk through a gate when it would know that it is closed. Eliminating the issue since the client would not have to wait for a response from the server. Could this work?
Avatar
the client already has the switch values (and predicted as well) from the server, so the client only needs to identify where the doors are (using the laser netobjects -- here one question is whether to keep using entityex) and apply these to the map (using the switch status)
Avatar
I guess there is no harm in introducing new netobjs instead of the entityex solution we initially went with
Avatar
out of the loop on this, will have to read up how the map interacts with players etc
Avatar
I would kind of also want to go in that direction
12:29
and that was also why I didnt try to add too many features using entityex initially (also with the new work by codedev etc on extendible netobjects there are perhaps no downsides left)
Avatar
The only issue I can think of is it's introducing a branch per player, that I dont know how well the branch predictor will do on
12:31
The index of the loop strongly predicts the outcome of the branch, but idk if it's smart enough nowadays
Avatar
yes, true, have never really looked at server profiling. but since those branches can skip the entityex snapping it will perhaps be a net positive?
Avatar
Jupstar βœͺ 2022-08-03 14:31:03Z
@Patiga u ready for the next optimization? xd
Avatar
Avatar
trml
yes, true, have never really looked at server profiling. but since those branches can skip the entityex snapping it will perhaps be a net positive?
Dont we snap entityex either way and just let clients that dont understand it drop it themselves?
Avatar
Avatar
Jupstar βœͺ
@Patiga u ready for the next optimization? xd
am on one rn :d
15:03
trying to optimize the cpu calculations, figured out that combining the transformations into one matrix multiplication could be better
Avatar
Avatar
Patiga
trying to optimize the cpu calculations, figured out that combining the transformations into one matrix multiplication could be better
Jupstar βœͺ 2022-08-03 15:08:20Z
i thought about minimizing GPU load too πŸ˜„
15:08
but cpu + gpu would ofc be optimal
Avatar
what did you think of? ^^
Avatar
Jupstar βœͺ 2022-08-03 15:09:00Z
its nothing special actually, i already thought about it for ddnet
15:09
but with ddnet it would increase load times, which might be worse than in your experiments
Avatar
hm what is it? I'm curious :)
Avatar
Avatar
Learath2
Dont we snap entityex either way and just let clients that dont understand it drop it themselves?
I dont remember how it is for all entities, but since entityex aren't used for anything yet for lasers (except slightly optimizing delta snapshots) it would be safe to drop them completely if a new laser/door netobject is added
Avatar
Jupstar βœͺ 2022-08-03 15:11:16Z
well actually its 2 approaches, since i dunno which is better, and also i am not 100% sure how much it will give, but for bigger maps probs more than enough u pre analyze all textures used, put all non transparent pixels of the texture into one texture, all non transparent into another
Avatar
oh god o.o
Avatar
Jupstar βœͺ 2022-08-03 15:11:36Z
then u draw the non transparent in reversed order without alpha enabled
15:11
and then u either render the others with stencil buffer(which was filled by the non transparent ones)
15:12
yeah i guess try that first, if u interested xd
Avatar
Avatar
Jupstar βœͺ
then u draw the non transparent in reversed order without alpha enabled
don't we have to use the stencil buffer here already, since we render the layers from front to back
Avatar
Jupstar βœͺ 2022-08-03 15:14:05Z
yes
15:14
i just forgot to write it there and included it in the next sentence XD
15:14
the first pass fills stencil whenever there is a pixel drawn
15:15
the advantage in your approach over ddnet is, that there a few vertices total
15:15
the GPU ofc has to wait for the previous fragment stage, before starting a new, bcs stencil is used(needs sync for colliding fragments)
Avatar
oh god separating transparent and non-transparent sounds a bit nightmarish to me o.o
Avatar
Jupstar βœͺ 2022-08-03 15:16:05Z
but maybe the drivers are clever enough anyway
15:16
without that approach it wont give u alot tho
15:16
almost any tile layer has atleast rounded corners
15:16
which would result in non transparent pixels
Avatar
I don't understand how the transparent pass should work though, the stencil buffer has to change whenever there was another non-transparent layer inbetween, no?
Avatar
Jupstar βœͺ 2022-08-03 15:17:41Z
also rendering without an alpha stage after the fragment shader should eliminate the extra work for the stencil test inside the fragment shader(e.g. is pixel transparent)
Avatar
Avatar
Patiga
I don't understand how the transparent pass should work though, the stencil buffer has to change whenever there was another non-transparent layer inbetween, no?
Jupstar βœͺ 2022-08-03 15:18:25Z
the non transparent are completly rendered before tho
15:18
u render the tilemap twice, but with enough opaque pixels it will skip basically almost all fragments
15:20
i would say its rahter simple to split the textures and call the whole render function twice
15:20
i just cannot say how much worth it is.. there are certainly maps that use transparency pretty much everywhere
15:20
but all vanilla tilesets are like 90% opaque
15:21
ah and also implement an own clear pass
15:21
dont use glclear
15:21
its wasted for opaque pxiels
Avatar
the thing I still don't understand is how transparent parts of layers still have the correct render order with the opaque parts
Avatar
Jupstar βœͺ 2022-08-03 15:25:23Z
u mean the ones rendered above?
Avatar
Jupstar βœͺ 2022-08-03 15:25:47Z
stencil buffer is 255 combinations
15:25
but u can also use dpeth buffer
Avatar
ah true
Avatar
Jupstar βœͺ 2022-08-03 15:26:04Z
if thats easier to imaginate, and give u bit more flexibility
15:26
yeah i dunno, u can theoretically with modern hardware use a 32bit stencil buffer
15:26
since we dont use depth buffer at all
Avatar
yes that sounds reasonable actually
15:28
the depth buffer was the thing I missed in the explanation ^^
Avatar
do you have 1 quad per tile @Patiga ?
Avatar
ah wait now I'm confused, did you mean the depth buffer when you said stencil?
Avatar
Avatar
k2d222
do you have 1 quad per tile @Patiga ?
no, 1 quad for the entire tilemap
Avatar
Jupstar βœͺ 2022-08-03 15:29:21Z
i imagine it with a stencil buffer that is atleast 16 bit
Avatar
the tilemap is stored in a texture
😡 1
Avatar
Jupstar βœͺ 2022-08-03 15:29:33Z
its just so u know the tile layer index
15:29
and can drop transparent layers "before" the opaque
Avatar
ah so stencil buffer <-> depth buffer
Avatar
Jupstar βœͺ 2022-08-03 15:29:50Z
its the same buffer πŸ˜„
15:29
24bit depth, 8bit stencil
15:30
maybe vulkan allows splitting them, but opengl probs not
Avatar
Jupstar βœͺ 2022-08-03 15:30:47Z
but if u can set a atleast 16bit stencil buffer, i dont see any reason to use the depth buffer
15:31
even 8bit might be enough for testing, i dunno any map that uses 255layers
Avatar
if u build 1 tex per layer why don't you combine all layers of the same group in a tex ?
Avatar
as a atlas?
Avatar
Jupstar βœͺ 2022-08-03 15:32:08Z
thats not how alpha calculation works sadly
Avatar
I will shut up and look at your code i'm intrested πŸ˜†
Avatar
the shaders are probably the most telling
15:33
not much code documentation yet, although already some nice struct/module documentation
Avatar
Jupstar βœͺ 2022-08-03 15:34:05Z
tbh just open it in renderdoc and u get the clue pretty much instant
Avatar
Avatar
Jupstar βœͺ
tbh just open it in renderdoc and u get the clue pretty much instant
πŸ‘ πŸ‘ πŸ‘ gud idea
Avatar
its just a fullscreen quad, with no special values. the vertex shader transforms it so that we have the map coordinates for each pixel after fragmentation, the fragment shader then figures out the correct tile
Avatar
Avatar
Jupstar βœͺ
even 8bit might be enough for testing, i dunno any map that uses 255layers
Top five maps sorted by layer count: types/brutal/maps/Lost Story 2.map: 192 types/brutal/maps/Wour Forlds.map: 130 types/ddmax/maps/Lost Story.map: 128 types/fun/maps/Seagull City.map: 123 types/insane/maps/Justice 2.map: 114
15:39
Avatar
#!/bin/env β†’ #!/usr/bin/env btw
πŸ‘Œ 1
15:40
env is de-facto standardized to be at /usr/bin/env
Avatar
I'ts a bit sad if your renderer stops working beyond 255 layers
Avatar
Jupstar βœͺ 2022-08-03 15:40:49Z
it doesnt
Avatar
I mean it would
Avatar
Jupstar βœͺ 2022-08-03 15:41:13Z
u can usually set stencil size
15:41
its nothing too special
15:46
in worst case depth buffer supports unsigned int too, GLES 3 spec
15:46
which is basically webgl2
15:48
GL_DEPTH_COMPONENT16 is even the "standard" for embedded devices
15:49
in desktop opengl you are allowed to simply use GL_DEPTH_COMPONENT and dont specify the size xd
15:52
with depth buffer u need to ship the zvalue with stencil u can simply use the stencil API thats basically the only difference later
15:53
you could be mean and say, stencil only exists bcs there weren't any shaders back in the days πŸ˜„
Avatar
Chips are the clearest example that economic efficiencies will not be the ultimate decider of technology’s end state: politics will play an important role.
16:00
amd has more market cap than intel rn
Avatar
test4321 doesnt work as rcon password on usa test
19:07
also the mod password only gives helper status
19:08
i guess i got demoted feelsbadman
Avatar
oh damn
19:53
ddnet getting bigger
19:53
3598 peak
19:53
19:54
it also hit the all time peak on steam today
19:54
19:54
poggers
Avatar
whats that huge jump?
Avatar
Avatar
louis
whats that huge jump?
idk
19:55
maybe its cuz ppl have summer vacations
19:56
steam was the biggest success of ddnet kek
Avatar
Avatar
Ryozuki
idk
videos, the spike is mostly chn players
Avatar
2M views
19:59
but i would take it with a grain of salt
19:59
cuz on esports i heart they inflate views a lot
19:59
e.g dota 2 esports is supported to have like 9M live viewers XD
19:59
on chn
Avatar
Jupstar βœͺ 2022-08-03 20:07:31Z
i mean there are 1.5 billion chinese ppl
20:07
we are nothing against them xd
Avatar
The current population of Europe is 748,583,133 a
20:08
not that far
Avatar
Jupstar βœͺ 2022-08-03 20:09:22Z
and usa is like 300mios
20:09
and south 400 mios
20:09
so all these together are just as much as china xD
Avatar
i think india is bigger
Avatar
damn I wish usa had even 2% of CHN players xd
Avatar
india 1.38 billion (2020)
Avatar
there was also a large live stream on twitch yesterday, anyone caught it?
Avatar
Closes #5694.

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
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/...
Avatar
c696d93 Add documentation for IServer::GetClientVersion - Robyt3 35280a7 Merge #5700 - bors[bot]
Avatar
Avatar
k2d222
Jupstar is right you do need a sdl.lib file somewhere in the linker path. You prob have to copy it somewhere to be visible by the compiler, or add it to you path env variable idk
i counted the amount of links it drops onto me when i try to do this whole sdl2.lib thing. i counted 100 different file paths
23:31
one is relating to visual studio's link.exe
Avatar
@Jupstar βœͺ could you try out if https://gitlab.com/Patiga/twgpu/-/tree/matrix-optimization increases fps for you over master?
Exported 198 message(s)