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-11-22 00:00:00Z and 2022-11-23 00:00:00Z
Avatar
After you get through the mess that is setting all this up with 0 documentation, podman actually works quite well
00:47
Also definitely worth it to set it up with netavark instead of the old cni-plugins
Avatar
'拏 MAhdiyar 2022-11-22 03:24:41Z
@WarHammer i send command in terminal
Avatar
Rustaceans: after learning the syntax, rust is easier to read than python!! Meanwhile rust: Data cleaning
justatest 1
Avatar
05d83fc M [SI] SELEN, M BlackBear3, M BlackBear6, M deathpack - ddnet-maps
Avatar
Direct link to #5708 . I want a way to have the emotes YOU want to have, as well as some newer ones to fit your need. These new emotes are: HELP, WAIT, SPEC, ACHE, WIFI, CLIP, YES, NO, TALK !image Emoticons file used in testing (22/11/22 - not embedded): !emoticons_extend T...
Avatar
chillerdragon BOT 2022-11-22 06:51:01Z
Ok I put it on my CV thanks (@Jupstar ✪)
anyway i'd say u can claim that u know rust now chillerdragon xd
Avatar
Avatar
Anime.pdf
Rustaceans: after learning the syntax, rust is easier to read than python!! Meanwhile rust: Data cleaning
This is a snippet shared on twitter purposely obscure btw
06:58
Its explained on rust reddit some time ago
Avatar
it looks like its staring at you
06:58
| _ |
Avatar
_ is saying, i have to pattern match this variable, but i wont use it
06:59
In this case
Avatar
Avatar
Anime.pdf
Rustaceans: after learning the syntax, rust is easier to read than python!! Meanwhile rust: Data cleaning
If you wanna see some truly horrendous rust, you need to look at traits. I've seen some almost compete with C++ std types
Avatar
C can be rly obfuscated too
10:12
U can do art
Avatar
IOCCC
Avatar
Also if i run the code from the img to the formatter u can see it clearer
10:13
Its formatted in a way to make it look like its all closures
10:14
But its just OR pattern matching
10:14
U can have | a | b
10:14
The first | is valid
10:14
Cuz it allows to writte macros easier
10:14
That use this
10:14
Its the same as a | b
Avatar
How does this get formatted anyway?
Avatar
Probs some spaces between the OR
10:15
And if u run check u prob get some warns
10:18
as said
10:18
10:18
this is how it gets formatted
10:18
and
10:18
10:19
btw
10:19
x is a closure
10:19
and the ..
10:19
is an empty Range
10:19
so u are passing an empty range that gets ignored
10:19
x(..)
Avatar
Ah it does remove all the useless |
10:20
well idk if .. is an empty range or an infinite
Avatar
Yeah, that does fix it up a fair bit
10:21
Avatar
0761f4a Fix invalid demo cutting, Add slice highlighting - VoxelDoesCode cc2e40d Reset slice markers if invalid - VoxelDoesCode 2333f8e Merge #6058 - bors[bot]
Avatar
SELECT Map as map, Name as name, Time as time, Ranking as rank, Timestamp as timestamp, Server as server, ((time - PrevTime) / PrevTime) * 100 as faster_percent FROM ( SELECT RANK() OVER w AS Ranking, MIN(Time) AS Time, Name, Timestamp, Server, LEAD(Time) OVER w as PrevTime, Map FROM race GROUP BY Map, Name WINDOW w AS (PARTITION BY Map ORDER BY MIN(Time)) ) as a WHERE Name = "Ryozuki" ORDER BY Ranking ASC;
11:15
is have this query
11:16
but my ranks are a bit less, like by 3-6 ranks
11:16
on some maps
11:16
as shown on the website
11:16
i wonder if im wrong or the web is wrong
11:16
Quite proud of coming up with this
11:16
Learning window functions ftw
Avatar
This query is criminally slow
11:31
90s
Avatar
You can put an explain in front to see the execution plan
Avatar
I probs dont have proper indexes for this query
11:34
Since sqlite doesnt have any when importing it
Avatar
[quakenet] Ryozuki BOT 2022-11-22 11:34:43Z
create unique index mapinfo_map_idx on mapinfo(Map);
11:34
create unique index maps_map_idx on maps(Map);
11:34
create index maps_timestamp_idx on maps(Timestamp);
11:34
create index race_map_idx on race(Map);
11:34
create index race_time_idx on race(Time);
11:34
create index teamrace_map_idx on teamrace(Map);
11:34
create index teamrace_time_idx on teamrace(Time);
11:34
i got these
Avatar
I probs need a index on name
11:36
For ranks xd
Avatar
I'm not good enough to look at a complex nested query like the one above and really guess what index is required
11:37
I'd also try name, but I'd probably also look at explain before 😄
Avatar
I never used explain
11:38
Will see
11:39
After i test it with the name idx
11:45
time to interpret this
11:45
never rly did explains before
11:45
index didnt help
11:45
i even added a composite index
11:45
map name
11:55
42 seconds
11:56
Using rust release
11:56
So there is some overhead on my side and not just sqlite
11:57
38~s on sqlite3
Avatar
Still quite a long time, though it is kinda understandable
Avatar
There are quite lot of ranks
12:04
So idk whats a good time
Avatar
Yeah the table is massive
Avatar
Essentially my query has to run over all ranks to determine the rank of the player
12:05
This is the query for the player page
Avatar
(We do cache these for a reason :D)
12:06
Can you do an EXPLAIN QUERY PLAN instead of flat explain?
12:06
Sqlite print's individual opcodes with just explain which is annoying to read
12:07
s/'//
12:09
QUERY PLAN |--CO-ROUTINE a | |--CO-ROUTINE (subquery-3) | | |--CO-ROUTINE (subquery-4) | | | |--SCAN race USING INDEX teamrace_map_name_idx | | | `--USE TEMP B-TREE FOR ORDER BY | | `--SCAN (subquery-4) | `--SCAN (subquery-3) |--SCAN a |--SEARCH m USING INDEX maps_map_idx (Map=?) LEFT-JOIN `--USE TEMP B-TREE FOR ORDER BY
12:10
the query:
12:10
SELECT a.Map as map, Name as name, Time as time, Ranking as rank, a.Timestamp as timestamp, a.Server as rank_server, m.Server as map_server, ((time - PrevTime) / PrevTime) * 100 as faster_percent, m.Points as points, m.Stars as stars FROM ( SELECT RANK() OVER w AS Ranking, MIN(Time) AS Time, Name, Timestamp, Server, LEAD(Time) OVER w as PrevTime, Map FROM race GROUP BY Map, Name WINDOW w AS (PARTITION BY Map ORDER BY MIN(Time)) ) as a LEFT JOIN maps m ON m.Map = a.Map WHERE Name = "Ryozuki" ORDER BY Ranking ASC;
12:10
I guess temp trees are missed index opportunities
12:11
Lol i think that i misnamed a index
12:11
But well shouldnt matter
12:12
Teamrace -> race
12:12
Its using the composite index i made
Avatar
Hm, can you try an index on Time maybe?
Avatar
I think i have one
12:13
But ill do that after i go eat xd
Avatar
Oh, I think the group by there might make an index on time not work actually
Avatar
How to turn ON vulkan by console argument? (edited)
Avatar
./DDNet "gfx_backend vulkan"
Avatar
Avatar
Learath2
./DDNet "gfx_backend vulkan"
Ty
Avatar
[quakenet] Ryozuki BOT 2022-11-22 14:29:15Z
i found a small optimization with a where clause
14:29
6 seconds ~~
14:29
i think it depends on how many different maps u finished
Avatar
What is your sql supposed to show
Avatar
There are currently 18M ranks
Avatar
Avatar
Jupstar ✪
What is your sql supposed to show
All the best ranks a player has on all maps they finishes
14:58
Aka the ddnet player page
14:58
Its actually faster to calculate all at once
14:58
Im gonna do this and keep it in memory, ordering by player name and building a manual index
Avatar
is it possible for mods to have prediction if it can't replicate ddnet physics in some way
Avatar
Avatar
Brokecdx-
? Why do I bounce more when i open chat but when I dont there is not a bounce at all? XD
This is a client id bug that happens when you have strong and a lower client id than the person in freeze. chatting probably fixes it by changing the order of inputs. It could also be fixed by changing the order you join the server(which is why you say it worked fine yesterday). Cool thing though, this makes it so doing this with hammer isnt reliant on client id. Before you could only get height from hammering someone in freeze with weak and a higher client id, but if you just chat while hammering you can do it with either client id. this tech isnt dummy-able though
Avatar
Keeping all calculated ranks in memory takes 1.6gb
16:24
Not bad
16:24
There are 10M non repeated player ranks
16:25
18M if counting repeated
Avatar
@Ryozuki either the sqlite is wrong or website you are right xd
16:25
I think it only respects second
16:25
Not milliseconds
16:25
Ah
Avatar
Wdym about seconds
Avatar
Oknvm
Avatar
Teamranks are also always ranks right?
16:30
If u finish in team it saves a teamrank and rank
Avatar
@Ryozuki so how fast is your sql
16:33
When I'm at home i want to beat
16:35
Awesome job
16:35
Montblanc
Avatar
[quakenet] Ryozuki BOT 2022-11-22 16:36:05Z
my current sql returns all ranks with their calculated rank numbers and a bit more info like % of improvement over previous rank
16:36
and number of finishes on same map
Avatar
Previous rank or previous run of a completely unrelated player xd
Avatar
SELECT a.Map as map, Name as name, Time as time, Ranking as rank, a.Timestamp as timestamp, a.Server as rank_server, m.Server as map_server, ((time - PrevTime) / PrevTime) * 100 as faster_percent, m.Points as points, m.Stars as stars, finishes FROM ( SELECT RANK() OVER w AS Ranking, MIN(Time) AS Time, Name, Timestamp, Server, LEAD(Time) OVER w as PrevTime, Map, COUNT(*) as finishes FROM race GROUP BY Map, Name WINDOW w AS (PARTITION BY Map ORDER BY MIN(Time)) ) as a LEFT JOIN maps m ON m.Map = a.Map ORDER BY Name;
16:37
i find this looks kinda odd
Avatar
different player
Avatar
How is that useful lol
16:41
To see the rank inprovement
16:41
Its the same shown in #records
Avatar
Ah but that's only for top rank
16:42
Its for each
16:42
Vs previous
16:42
Thats what LAG window function does
Avatar
I mean in record
16:42
Ah ye
Avatar
What if u last place xd
16:43
NaN
Avatar
0 iirc
16:50
Or ye
Avatar
hey where can i find the logs file please ?
Avatar
[quakenet] Ryozuki BOT 2022-11-22 16:59:27Z
im only doing the data fetching part for now so the website couldnt be uglier but here are my ranks https://ddstats.org/players/Ryozuki
Statistics about the game DDRaceNetwork.
16:59
(it will look nothing a like when finished)
17:00
also got some maps in case ur curious https://ddstats.org/maps
Statistics about the game DDRaceNetwork.
Avatar
Unlike the ddnet web this actually lists all ranks! So u may find ur name in the map page even if ur a nobo
17:04
monkalaugh
Avatar
[quakenet] ChillerDragon BOT 2022-11-22 17:10:16Z
cool stuff ryo im fan
17:10
also wow did u buy a domain for that?
Avatar
Avatar
Ryozuki
Unlike the ddnet web this actually lists all ranks! So u may find ur name in the map page even if ur a nobo
explain im stupid
Avatar
[quakenet] ChillerDragon BOT 2022-11-22 17:11:29Z
i gotta say ryo i do enjoy your front ends they look so nice
17:11
im not even trolling
17:11
i enjoy this simple pornhub themed rank site
17:11
also your blogs etc very lit
17:14
yo btw @Ryozuki the ddnet category is a dead link here https://edgarluque.com/blog/chat-command-ddracenetwork/
A chat command that shows info about our player
17:15
also when blog that explains how to write UI code in ddnet
Avatar
Avatar
Jupstar ✪
explain im stupid
Ddnet only shows top 500
17:16
Iirc
17:16
On a map
17:16
The ranks
Avatar
ah
17:16
right
Avatar
Ye chiller i bought it
17:17
I want to make the next ddnet website, and if it is not accepted ill just run it as some alternative stats web
17:18
Soon ill blog i guess
17:18
Been busy
Avatar
[quakenet] ChillerDragon BOT 2022-11-22 17:19:47Z
such community driven ddnet much decentralized
17:19
pog
17:20
when add ranks to blockchain?
17:22
So many ideas so little time
17:22
Gotta integrate teemasterparser
Avatar
Avatar
Skystrife
This is a client id bug that happens when you have strong and a lower client id than the person in freeze. chatting probably fixes it by changing the order of inputs. It could also be fixed by changing the order you join the server(which is why you say it worked fine yesterday). Cool thing though, this makes it so doing this with hammer isnt reliant on client id. Before you could only get height from hammering someone in freeze with weak and a higher client id, but if you just chat while hammering you can do it with either client id. this tech isnt dummy-able though
cool but weird at the same time
Avatar
without order by my query runs in 32ms just adding the order by Ranking adds fucking 14 seconds
18:03
wtf is wrong with SQLite
18:03
we speak about 700 rows
18:08
@Ryozuki gimme ur results, first 10 entries or smth
18:08
i want to compare
18:09
without order by my query runs at 390ms with previous
Avatar
Ofc order by is not cheap
Avatar
yeah but bro, 700 entries
18:09
14 seconds
18:09
never in life
18:09
over a integer
Avatar
U only get 700?
Avatar
783
Avatar
Im at the gym
Avatar
rip
Avatar
I get 10 million
Avatar
wtf
18:09
how can u can 10 mios if there are only like 1000 maps on ddnet
Avatar
Im talking about ranks lol
Avatar
yeah i mean best ranks for Ryozuki
Avatar
@Jupstar ✪ urs is slow cuz u probs didnt add indexes
Avatar
i did
Avatar
The sqlite db u download has indexes stripped
Avatar
its only order by ranking
18:10
which is slow
Avatar
It will be slow
Avatar
nah bro
Avatar
To get the ranking u gotta scan all ranks to know the poss
Avatar
i can put them in memory (not sqlite) and do sorting my own
Avatar
it will never take 14 seconds
18:12
Idk
18:12
Im half doing that rn
Avatar
this must be some weird optimization that sucks in this situation
Avatar
Its prob a sql limitation
18:13
Rn i get all ranks sorted by player name
18:14
And i build a hashmap with each player name mapped to a start index and end index in the sorted array
Avatar
Avatar
Ryozuki
SELECT a.Map as map, Name as name, Time as time, Ranking as rank, a.Timestamp as timestamp, a.Server as rank_server, m.Server as map_server, ((time - PrevTime) / PrevTime) * 100 as faster_percent, m.Points as points, m.Stars as stars FROM ( SELECT RANK() OVER w AS Ranking, MIN(Time) AS Time, Name, Timestamp, Server, LEAD(Time) OVER w as PrevTime, Map FROM race GROUP BY Map, Name WINDOW w AS (PARTITION BY Map ORDER BY MIN(Time)) ) as a LEFT JOIN maps m ON m.Map = a.Map WHERE Name = "Ryozuki" ORDER BY Ranking ASC;
i want to beat this sql ^
18:14
its very slow tho
Avatar
How much time it takes mine
18:14
Did u beat it
18:14
It is slow yeah
Avatar
yeah mine takes 390m,s
18:14
without order by
18:14
with order by 14seconds xD
Avatar
Which order by
Avatar
but i have to verfify the prev time thing
18:15
SELECT z.*, ((z.best - z.prevranktime) / z.best) * 100 as prev FROM ( select y.best, y.Map, y.Ranking, y.Timestamp, ( select r4.Time from (select r3.Time from race as r3 where r3.Map = y.Map order by r3.Time ASC) as r4 where r4.Time > y.best LIMIT 1 ) as prevranktime from ( select x.best, x.Map, ( select COUNT(*) + 1 as r from (select time from race r1 where r1.Map = x.Map and r1.time < x.best group by r1.name) ) as Ranking, (select timestamp from race as r2 where r2.Map = x.Map and r2.Time = x.best and r2.name = "Ryozuki" LIMIT 1) as Timestamp from ( select min(r.time) as best, Map from race r where name = "Ryozuki" group by map ) as x ) as y ) as z --order by y.Ranking as soon as i enable the last line (edited)
18:15
rip
Avatar
The order by in window is needed
18:15
Ah ok
18:15
Hmm idi
18:15
Idk
18:15
Does it do the same correct
Avatar
i dunno except for faster_percent it looks correct
18:16
tho i dont query map info
18:16
but that cant take long with indices
Avatar
@Jupstar ✪ just to be sure r u showing the best time?
Avatar
yes
Avatar
Btw mine also shows finish count
Avatar
yeah but tbh that shouldnt add lot of extra time
18:25
even i a completly seperate sub select
Avatar
In theory window functions should be an improvement btw
18:25
Or so i read xd
Avatar
maybe the query is simply inefficient
Avatar
Ye im no expert
Avatar
but the fact that order by completly destroys my query already makes me wonder if its simply a bug that ur query is so slow
18:26
would be interesting to know similar query in mariadb perf
Avatar
Some order bys cant be optimized with an index
18:27
Cuz they use temporary values
Avatar
yes
Avatar
Like the rank
Avatar
but in no world does sorting 700 elements take 14 seconds
18:28
But
18:28
Ur not sorting 700
18:28
Ur sorting 10m
18:28
And then picking
18:28
700
Avatar
no
18:28
i already tried to use an extra subselect
Avatar
I have T-SQL code snippet and i wonder if i can do same things in my mariadb query declare @abc table (dat float) insert @abc values(2),(3),(4) select max(dat) from @abc or any workaround
Avatar
U want to insert and return?
18:29
On postgresql u use the RETURNING clause
Avatar
Avatar
Ryozuki
U want to insert and return?
create temp table, insert values and use functions like avg max min with it
Avatar
Make it all in a transaction or smth
18:30
Why would u do that
18:30
Just make a tbl
18:33
i mean, just wondering, i want to pass some values to my procedure and use avg min max with them (edited)
Avatar
Just do
18:35
Select from <procedure call>
18:35
From accepts more than tables
Avatar
now rewrite in rust.
Avatar
Avatar
Ryozuki
From accepts more than tables
I want to smthAvg(1,2,3,outVat); And get 2 in outVat
18:40
But not just sum and divide
18:41
But make a virtual table and use avg() on it
18:41
Its just an example but shows the problem
18:41
Not home atm
18:41
Sounds like XY problem
18:42
U probs can do all thst in the procedure
18:42
Without a table
18:42
Sql itself already makes temp tables when needed
Avatar
@Ryozuki if u had r4 is it the prev time to whoever had r4 before your rank? or is it r4 if your finish wouldnt exists or simply the actual run before ur finish? its so magic to me xd
19:13
i mean records always takes whoever had r1 before
19:13
but it kinda seems weird to do that for other ranks, since they can change during time
19:14
anyway enough SQL for a month xd
19:18
its the rank before yours
19:18
thats not yours
19:18
e.g you improved a % over the previous rank
19:18
its always just your previous rank
19:18
not relative to the first
Avatar
Avatar
Ryozuki
its always just your previous rank
so if u have r4, the time to r5? xd
Avatar
Avatar
Jupstar ✪
SELECT z.*, ((z.best - z.prevranktime) / z.best) * 100 as prev FROM ( select y.best, y.Map, y.Ranking, y.Timestamp, ( select r4.Time from (select r3.Time from race as r3 where r3.Map = y.Map order by r3.Time ASC) as r4 where r4.Time > y.best LIMIT 1 ) as prevranktime from ( select x.best, x.Map, ( select COUNT(*) + 1 as r from (select time from race r1 where r1.Map = x.Map and r1.time < x.best group by r1.name) ) as Ranking, (select timestamp from race as r2 where r2.Map = x.Map and r2.Time = x.best and r2.name = "Ryozuki" LIMIT 1) as Timestamp from ( select min(r.time) as best, Map from race r where name = "Ryozuki" group by map ) as x ) as y ) as z --order by y.Ranking as soon as i enable the last line (edited)
ok fixed it for that
19:23
for some reason it also only takes 48ms now xD
19:24
i only added a timestamp index, which i didnt use before so weird af
19:24
these are my indices, cant copy so soz for image
Avatar
Avatar
Jupstar ✪
so if u have r4, the time to r5? xd
the % improvement over r5
19:30
u literally see my calc in the query
19:30
oh timestamp query
19:31
i dont think i have it
19:31
oh lol
19:31
you can have indices with ASC and desc
19:31
TIL
Avatar
Avatar
Ryozuki
the % improvement over r5
yeah i did that too now i think
Avatar
i have the 5800x on my table
19:32
just gotta install it
19:32
i gotta beat my lazyness
19:32
10 fps increase here i come
19:32
kek
Avatar
i wonder how fast ddnets sql is deen is SQL pro
Avatar
nah but its probs matters a lot for compile times
19:33
and sql kek
Avatar
Avatar
Ryozuki
10 fps increase here i come
xd
19:33
but faster compiling
19:33
is epic
Avatar
just learned csgo has dxvk vulkan backend on linux poggers with tearing protocol merged it is time to install it on linux back
Avatar
nice 😄
Avatar
they were using abstraction layer for opnegl too right? smth like togl
Avatar
yes, but with dxvk not anymore
19:48
they use dxvk-native
19:48
u can compile dx on linux now 😄
Avatar
well looks like it's on upstream now https://github.com/Joshua-Ashton/dxvk-native
D3D9/11 but it runs natively on Linux! Contribute to Joshua-Ashton/dxvk-native development by creating an account on GitHub.
19:53
with dxvk 2
Avatar
yep
Avatar
so i added a new mod file koth.mod in the teeworlds 0.6 source for a gamemode
19:56
do i have to edit the cmake files somehow/
19:56
it's returning a lot of errors
Avatar
Avatar
nori
they were using abstraction layer for opnegl too right? smth like togl
csgo was always native what u on about
20:15
dota 2 and csgo are native
20:16
@Jupstar ✪ im back
20:16
idk if i should put lot of load on the pc right now or let the thermal paste settle
Avatar
Avatar
Ryozuki
csgo was always native what u on about
before they use togl now they use dxvk-native
Avatar
it runs better now
20:18
since they use vulkan
Avatar
but why dxvk
20:18
on dota they have opengl and vulkan backend
Avatar
bcs they dont want to port to source engine 2
Avatar
thats fake
20:19
source 2 is in vulkan already
20:19
dota 2 uses source 2
Avatar
yes
20:19
but csgo not
20:19
he talked about csgo xD
20:19
u came up with dota
Avatar
but they use the same engine
20:19
well csgo is in source 1
Avatar
yes
Avatar
and its valve
Avatar
source1 has no vk
Avatar
but why call it dxvk
20:19
and not vulkan
20:20
stupid directx
20:20
make it go away
Avatar
bcs its literaly dx9 compiled on linux
20:20
they use dx9 header files
Avatar
and then dxvk as library
Avatar
yeah it has dxvk with -vulkan now
20:27
and it is source 1 so
20:27
only problem is
20:27
can't change the resolution sadge
20:28
system info, basically AMDGPU, Arch, xorg Changing resolution is not possible except in windowed mode, where 640x480 is an option. it is possible to launch in windowed mode with a non-native res vi...
Avatar
Avatar
nori
can't change the resolution sadge
r u one of those pros that plays 4:3 xd
Avatar
i'm one of those nobos that plays on 4:3 xd
20:37
stutters a lot, i hope it will stop after shader caching stuff is done xd
20:39
but fps is improved like +30%
20:39
maybe more
Avatar
Avatar
nori
stutters a lot, i hope it will stop after shader caching stuff is done xd
yeah it does
20:41
for me it fixed the bug of slow opening
20:41
with togl it always took like a minute to start
Avatar
2022-11-22 20:39:54 I server: ClientID=0 rcon='reload' 2022-11-22 20:39:54 I collision: something is VERY wrong with the Game layer please report this at https://github.com/ddnet/ddnet, you will need to post the map as well and any steps that u think may have led to this i have no idea what i did map: https://cdn.discordapp.com/attachments/1037235725453766709/1044715555455770644/Spooky_Hooky_REWORK.map
Avatar
@Jupstar ✪ https://github.com/ValveSoftware/csgo-osx-linux/issues/2889#issuecomment-997804245 do u have any idea how can i do some workaround like this on wayland? :d
system info, basically AMDGPU, Arch, xorg Changing resolution is not possible except in windowed mode, where 640x480 is an option. it is possible to launch in windowed mode with a non-native res vi...
20:56
maybe with xwayland dunno
Avatar
Avatar
nori
@Jupstar ✪ https://github.com/ValveSoftware/csgo-osx-linux/issues/2889#issuecomment-997804245 do u have any idea how can i do some workaround like this on wayland? :d
ohm can u set ddnet to such a resolution? xd
Avatar
gotta try
Avatar
Thank you @GoldenJoysticks for the award! We're honored to receive this, and on behalf of all of us here - thank you to the community for making Steam Deck possible. #GoldenJoystickAwards
21:00
gaben the lord and saviour
Avatar
Avatar
Jupstar ✪
ohm can u set ddnet to such a resolution? xd
yep
Avatar
well then there must be a command to set your whole compositor to that resolution i guess 😄
21:08
i never used wayland
21:08
never really
21:09
else compile own SDL2 for csgo that forces the resolution xd except they are static linking it
Avatar
Avatar
ReiTW
Awesome job
Server up there?
21:45
justatest
21:47
i dont watch programming videos
Avatar
microkernel
Avatar
Avatar
Ryozuki
i dont watch programming videos
Its not programming video
Avatar
Avatar
Jupstar ✪
i wonder how fast ddnets sql is deen is SQL pro
i only optimize when some page gets too slow though, disk space is expensive so don‘t want indexes for everything
Avatar
ddnet sql is probs not fast
21:49
since they rely on caching to a file
Avatar
i mean the website pre calcs anyway doesnt it
Avatar
but iirc the website doesnt do the rank calculation in the query
Avatar
but disk space expensive is a word xd
Avatar
it does it in python
Avatar
Avatar
Jupstar ✪
i mean the website pre calcs anyway doesnt it
only the parts which were too slow
Avatar
does it not pre genearade a player's rank page?
Avatar
yes, most of that page is precalculated
Avatar
ok
Avatar
@Jupstar ✪ i think he means adding a index to sql adds disk space
Avatar
yes but the db is rather small
Avatar
I doubt I can do the players page in 100ms with sql
Avatar
i think its inefficient to pre render, you rly only need to cache the sql results
21:51
not the page itself
21:51
or just some parts
21:51
1. its way smaller
21:51
2.
Avatar
async fetching
Avatar
can be stored in memory
21:52
i simply store all the ranks in memory
Avatar
but anyway the website is like it is
Avatar
it‘s not the page, it‘s some results which i store in a msgpack file
Avatar
i guess msgpack is less space efficient than just memory
Avatar
so it‘s also in memory
21:52
msgpack is just the ondisk format to get it from one python process to the other
Avatar
so it has to go on disk?
Avatar
yes, some download it for other projects too
21:53
i think discord bot uses it
Avatar
oh well
Avatar
how often does it recalculate btw?
Avatar
if i do the page and its accepted ill just remake the bot in rust too
21:54
and use bincode or smth idk
Avatar
as often as it can run, it basically runs in a loop, around once per hour
Avatar
damn once per hour
Avatar
uff
Avatar
python for ya
21:55
on my sv fetching and indexing the ranks takes 130s, then thats it
21:55
Statistics about the game DDRaceNetwork.
21:55
player pages load instant
Avatar
Avatar
Ryozuki
on my sv fetching and indexing the ranks takes 130s, then thats it
but with a precalculated/cached SQL?
Avatar
ok
Avatar
the script also generates the /ranks/ pages for all countries and global, the msgpack is just a sideeffect of that
Avatar
i basically load all player ranks
21:56
i think making this party dynamic allows for even more combinations
21:56
cuz this can grow exponentially
21:56
part*
21:57
e.g comparing between regions
Avatar
i like to write small fast sqls per need then everything is always up to date 😄
21:58
but i think some caching is needed for player ranks, there is just too many
21:58
unless ur sql is magic
21:58
does it rly work
Avatar
well i would never load all at once
Avatar
i do that cuz otherwise i would hit a cache miss on every player page
Avatar
see e.g. my sql for ranks in sqlite, 48ms sounds good enough
Avatar
so i just do it all once
21:58
which is as fast as 1 player kinda
21:59
can u show it
Avatar
i also once wrote an insanly optimized name search in sqlite, that can fetch maps, names etc in 3ms but it used 6gb disk space for the sqlite db from ddnet xD
22:01
oh
22:01
servers might be updated now
22:01
so in theory skins are reported
22:01
i know what i will add to the player page
22:02
ok i guess servers dont run on master
22:03
f
Avatar
ah btw with sqlite fts5 the query is also faster
22:07
completly forgot it
22:07
finding "Ryozuki" was still too slow
Avatar
skins are coming to the player page?
Avatar
Avatar
Jupstar ✪
ah btw with sqlite fts5 the query is also faster
whats this
Avatar
Avatar
Alexander
skins are coming to the player page?
it will be possible
22:10
cuz i added so the ddnet servers report things such as each player skin and color, and if they are afk or not
Avatar
i think i know how to render them troll
Avatar
and the team they are in
Avatar
Avatar
Ryozuki
whats this
Full text search
22:13
Do if u type in the full string at once it can basically create a hash and find that
22:13
For example. Dunno how it is implemented
22:15
I also abused it for the insanely optimized search. Even with a wildcard search it could find all ranks of "Ryo" in 3ms. But as said it wasted quite a bit of disk space
22:16
Lukely tw names are pretty short (edited)
22:16
Also it requires a higher level script to generate the input. So it's not pure SQL
Avatar
Avatar
louis
is it possible for mods to have prediction if it can't replicate ddnet physics in some way
not really, no
Avatar
Avatar
deen
Server up there?
Nop, just buildings, my university owns around 220 buildings (edited)
22:33
It was a rly cool place
Avatar
Hello. Can someone please help me with pos calculations? I can't calc even the trivial Y distance at time. I use this input: V = 13.2 (the default GroundJumpImpulse, assigned once (m_Vel.y = -pTuningParams->m_GroundJumpImpulse;)) A = 0.5 * 50 (the default Gravity multiplied by ticks per second). CCharacterCore::Tick() { m_Vel.y += pTuningParams->m_Gravity; } T = V / A = 0.528 sec until the highest point. This is similar to what is observed. S = V * T + A * T * T /2 = 13.2 * 0.528 + (-25 * 0.528 * 0.528 / 2) = 3.4848. (edited)
23:02
Visually the ground jump is about 5.5 tiles / 180 units in height. S = 3.4848; something like S * 50 = 174.24 would be approximately equal to the observed jump height. Is this correct? If yes then why we need the final *50? (edited)
Avatar
I've measured a ground jump. Seems to be 5.69 tiles = 182.08 units.
Avatar
Avatar
ReiTW
It was a rly cool place
I could tell by all the snow 😉
Avatar
Avatar
Kaffeine
Visually the ground jump is about 5.5 tiles / 180 units in height. S = 3.4848; something like S * 50 = 174.24 would be approximately equal to the observed jump height. Is this correct? If yes then why we need the final *50? (edited)
50 ticks per second?
23:58
your unit for time seems to be seconds, the game uses ticks?
Avatar
sounds about right
Exported 509 message(s)