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 2020-09-16 00:00:00Z and 2020-09-17 00:00:00Z
Avatar
so hardcoded magic
Avatar
So I can't connect to ddnet server using default tw?
Avatar
you can
00:01
it still hooks on vanilla
Avatar
but no prediction
00:01
No prediction? I thought it's only ddnet client feature
00:02
yes
00:02
Now I'm completely confused
00:02
no prediction = it does not predict freeze
00:02
prediction = see into the future xD
00:02
but no prediction
@Deleted User maybe you meant here "but with prediction"?
00:02
u asked for default tw
00:03
it has no prediction
00:03
Yep
Avatar
default tw has prediction tho..
00:03
ddnet don't glitch because it disabled prediction for hook
00:03
wording is hard..
Avatar
But it does glitch
00:03
On fng
00:03
but fng is something different
00:03
its a different mod
00:03
u can add support for it in ddnet code
00:03
they will add it and it wont glitch
Avatar
sounds like ddnet clients has hardcoded check to disable prediction for ddnet servers
Avatar
Hmmmm
Avatar
so you can't fix it in server, is what he's saying.
Avatar
ddnet is in first place made for ddrace... during the time other modders added mod support too
00:05
Okay I'll look for it in sources
Avatar
use the fng method, you can prevent glitch for a certain distance on all clients i think.
Avatar
It would be not that easy. I've seen folder predictions, what does code inside do?
Avatar
if you only want to make server mods
Avatar
Change the tab of the ingame server browser, disconnect.. you get a different tab there, which causes loading wrong server browser. Since new changes
Avatar
Generally, would be nice to have very decent hover effects and decent colors. I just tried for fun adding hover effects to menu tabs(red for the quit button), hover effects for the server browser items and color for search/exclude I'm not an artist, it doesnt look good, if someone wants to overtake, he/she would be very welcome todo so !image ![image](https://user-images.gi...
Avatar
two things i think would be pretty cool to implement: 1. being able to start a lan server inside the client without having to open an external window + program 2. "texture pack files" where you can just have one folder with game, particles, entities, etc. files so you can hotswap different game, particles, emotes, and other visuals without having to rename each individual one (and have texture packs available to change + select inside the client)
02:39
ofc it would take some time but these are just two things that would be cool
Avatar
@louis isnt 1. in the newest client
Avatar
oh is it
Avatar
version 15
Avatar
is it a beta build
Avatar
it will be released in the next days
Avatar
if you have github https://github.com/ddnet/ddnet/runs/1119831512 you can download artifacts top right
DDraceNetwork, a cooperative racing mod of Teeworlds - ddnet/ddnet
Avatar
neat it works nicely
Avatar
1cef3bf Only show new icons, when client is offline - Jupeyy 59961a2 Merge #2838 - bors[bot]
Avatar
@Soreu it is useful when something epic happens but u weren't recording you can still use replays (if u have them enabled) to save a replay of that epic moment
05:48
save_replay 30 saves the last 30 seconds of ur game
💖 1
Avatar
We should turn on Anti-Ping by default for our new Steam playerbase. Needing to "lead" hooks/etc by a certain amount of time, especially when that amount of time is variable (dependent on your ping), gives a poor gaming experience. I see perfectly competent gamers missing hooks/etc by a consistent amount: the amount they should be leading (but aren't). I wouldn't be surprised at all if many of the new Steam players have rq'd (permanently) simply because the "leading" is dumb. Honestly on...
Avatar
No no no no
Avatar
@Deleted User do github actions eat any money? Did you even meet any limitations with it?
Avatar
No limitations for public repos
Avatar
I'm certain they will talk to you if you go over some limit, same as with repository size
Avatar
There is a limit to the builds you can run per month
Avatar
@Learath2 @heinrich5991 btw, I just checked and xz was about same speed for compression and smaller file sizes than zstd for teehistorian files for me (tested with lowest and highest compression levels). Was just wondering if I could easily save some space by recompressing
09:02
I'm wondering what the proper approach would be to get a teehistorian replayer for creating proper demo files
09:02
I guess I need to reimplement teehistorian format reader in C++, run a modified server that just uses the inputs at the correct ticks?
Avatar
Yes I think that about covers it
09:03
You might also want to run the server at a higher tickspeed so it doesnt take hours
Avatar
And then ideally we throw a DDNet client to watch at it and make it record the video to a stream that gets proxied to the user watching the teehistorian?
09:04
well, or implement a demo viewer in teewebs javascript client
09:05
@Learath2 I thought we could remove the waits between ticks totally and just run through the ticks instantly
Avatar
One problem I can think of is the rather massive teehistorian files
09:05
These are sometimes like 20 hours of server uptime, all in one file
Avatar
There are teehistorian files with > 100 hours I think
Avatar
So when a tee requests a demo, you need to chop the massive demo up
Avatar
and nearly full server for much of the time, so they are easily multi-GB
09:06
well, can't find out where to cut it
Avatar
If only we were saving race starts
09:08
I was thinking of skipping until the race start, then running it backwards until I have enough for a full snap and starting there
Avatar
Well, we have the finish time
09:12
we could go back from that and try to find when the players that finished started
09:12
but it's a bit hacky
Avatar
But it's not very easy to figure out when you have enough for a full snap
09:13
I wonder if we can just run it through in the server, if that's cheap enough, no need to bother with hacking around teehistorian files
Avatar
[quakenet] ChillerDragon BOT 2020-09-16 12:54:59Z
@Ryozuki im such a github influencer i wonder if i can get sponsored and make some github ads xd https://zillyhuhn.com/cs/.1600260808.png
12:55
btw join #olive on freenode
Avatar
It can make it easier to build a windows DDNet client with websocket feature
Avatar
ChillerDragon i found it curious cuz i was searching for a video wditor
Avatar
@heinrich5991 can you give me a hand with some rust?
13:36
just a handful of lines
Avatar
or @Ryozuki ^^
Avatar
if its not too complicated i could try my best @Learath2 :)
Avatar
It's trivial, I have a program that takes a filename as an argument, I need it to be able to get the file from stdin too
Avatar
ah, ive never actually worked with stdin, only ever used the command arguments
Avatar
shouldnt be that complicated tho, no?
14:04
API documentation for the Rust Stdin struct in crate std.
Avatar
process takes a Path though, hm
14:05
I can break it and rewire it to just work with stdin 😄
Avatar
wait so your problem is that you want to allow either filename as argument or via stdin?
Avatar
Smth with pathbuf irc
14:06
Not home rn
Avatar
I was thinking of wiring it like cat, treat - filename as stdin
Avatar
What the problem ezactly
14:08
Taking arguments from stdin
14:08
Or converting it to a path?
14:08
API documentation for the Rust PathBuf struct in crate std.
Avatar
stdin isn't a path
14:09
but process takes a path
14:09
I think I should move the opening of the file out of process, so I can just pass a teehistorian reader to process
Avatar
Whats process here?
14:14
Oh u sent a paste
14:14
Didnt see
14:18
I think u should create the path with pathbuf the diference is that pathbuf is owned
14:18
Also u dont need extern crate
14:18
Pathbuf::from()
Avatar
@Learath2 make sure to use a BufReader
14:51
Read isnt buffered
14:51
std::io::Read
14:51
API documentation for the Rust BufReader struct in crate std.
Avatar
@Learath2 cna't think of something simple except pass /dev/stdin to the process
14:56
I decided against doing everything generically in the teehistorian crate, so the only thing I accept is a File (or a Path) that will be opened
15:22
Avatar
@heinrich5991 why would you tie parsing to the opening?
Avatar
I tie it to a File
15:23
i.e. I can't read from arbitrary streams
15:25
the core library doesn't do that (teehistorian/src/raw.rs), but I didn't expose that in the public API
Avatar
I guess I'll pass /dev/stdin
Avatar
build steps is as below: ``` bash git clone https://github.com/warmcat/libwebsockets.git git checkout tags/v4.1.0 mkdir windows-build64 mkdir windows-build32 cd windows-build64 cmake .. -DCMAKE_TOOLCHAIN_FILE=../contrib/cross-w64.cmake -DLWS_UNIX_SOCK=OFF -DLWS_WITH_SSL=OFF -DLWS_WITHOUT_EXTENSIONS=ON -DLWS_WITH_SYS_SMD=OFF make -j8 cd ../windows-build32 cmake .. -DCMAKE_TOOLCHAIN_FILE=../contrib/cross-w32.cmake -DLWS_UNIX_SOCK=OFF -DLWS_WITH_SSL=OFF -DLWS_WITHOUT_EXTENSIONS=ON -DLW...
Avatar
can mastersrv and twping executables be renamed to something similar, but not the same? (edited)
19:29
git ignores /mastersrv and /twping, github actions can't compile everything
Avatar
what does that have to do with each other?
Avatar
its not very comfortable to make mod under ddnet base on fork with modname branch, it needs to be reuploaded on new repo (edited)
19:33
and when im starting, always tools or various targets are showing up (edited)
Avatar
tools or various targets are showing up?
19:33
where?
19:34
I'm not quite following
Avatar
the mastersrv and twping folders are in gitignore
19:34
if you create a mod and upload your initial base, then these folders dont show up
Avatar
compiler can't find /mastersrv and /twping, because mastersrv and twping are written in .gitignore
Avatar
in the repo
Avatar
ah
19:35
we can fix the gitignore
19:35
(but you should not use create a new git repository for your mod, you can keep the history anyway, even with a different github repo)
Avatar
oh, need to learn about it more
Avatar
It's coming together
Avatar
wdyd?
Avatar
Making a dissector
Avatar
building on any prior work?
20:25
There is no prior work except the libtw2 dissector
20:25
I didn't feel like plunging into depression because of the rust compiler
Avatar
and fstd's dissector
Avatar
Ah, he has one too?
20:26
Anyway I'm using conversations to dissect 0.6 0.6.5 and 0.7 all in one
Avatar
nice!
Avatar
With connless flag set, numchunks doesn't mean anything, does it?
Avatar
numchunks is 0xff for num_chunks I think
20:29
for connless packets*
Avatar
Seems the client doesn't set it to anything
20:31
I found one with 0x56 one with 0x4f and it seems to vary between runs so, I'm guessing uninitialized memory
Avatar
@Learath2 there's also some part that is used as part of the extended serverinfo protocol
20:35
maybe you saw that
20:35
?
20:35
normal (non-extended) should have it at 0xff
Avatar
Oh is that where we packed the extended bit?
Avatar
we made the first two bytes of the packet
20:36
xe
20:36
and then 4 bytes for free use IIRC
Avatar
But the first two bytes of the packet are after numchunks, no?
Avatar
no, first two bytes in the header
20:37
it happened that 'xe' contains the connless flag ^^
Avatar
Oh wow
Avatar
(we didn't have much space to work with, forgive us)
Avatar
But that only destroys flags and ack
20:38
I guess after its detected as extended the rest is just the packet?
Avatar
ye, and then next four bytes are for free use. I don't know which, but we use two of them as the token for the serverinfo
Avatar
we have serverinfo tokens?
Avatar
Not the handshake kind, only for one way verification iirc
Avatar
In 0.6
20:39
?
20:39
ah ye
20:39
i remember
Avatar
I see
20:42
I guess I'll need to keep track of ddnet too, to dissect TKEN properly
Avatar
can also be detected by having exactly four bytes remaining after decoding four chunks
20:43
*all
Avatar
I already keep state for the connection. Might aswell keep this there too
Avatar
fair
Avatar
Wireshark has a rather meh plugin system
Avatar
please do publish your even unfinished end result 😉
20:48
it'll be interesting to look at
Avatar
Idk how best to publish it tbh, you are supposed to develop plugins in tree
20:49
I guess I could have an entire fork of wireshark
Avatar
fstd did that IIRC
Avatar
Ah I'll host the teeworlds folder
20:50
Add the folder as a submodule
Avatar
I like how well plugins integrate though, when you dissect in a plugin it looks exactly like a native dissector
20:52
You have access to exactly the same features as a built in dissector too
Avatar
ye
Avatar
[quakenet] fstd BOT 2020-09-16 20:56:45Z
Learath2: you're going to lua that?
Avatar
@Learath2 nice on the dissector
Avatar
fstd: nah sticking to C
Avatar
[quakenet] fstd BOT 2020-09-16 21:12:10Z
probably for the better, it makes the decompression and deserialization copypastable
21:12
would suck to reimplement that in lua I suppose
Avatar
Why there is no moving platforms or dynamically changing blocks on maps?
21:25
I'm sure this idea already was in some minds
Avatar
The only implementation of it was on kog and it wasnt clean enough to add to ddnet iirc
Avatar
So maybe ddnet should be initiator of this change? Not static maps would be great to see
Avatar
Let me take a look at kogs implementation again
21:29
@qshar can I take a look pls?
Exported 207 message(s)