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 2023-12-11 00:00:00Z and 2023-12-12 00:00:00Z
Avatar
if we needed the money we would add in microtransactions
kek 3
Avatar
Avatar
viny
Hello ddnet admins & devs So me and a bunch of other people were just wondering about what happened to the account system and if there will ever be one to potentially come. It would be nice to know about the problems and plans surrounding this topic. Especially as it seems like the whole community wants something like this implemented (i. e. the survey that was done in the past in ⁠announcements ). Probably the whole community would like to know about what's actually going on there so that perhaps solutions could be found. Be it by funding and therefore paying the devs if that is the problem or by anything else (depending on how this whole thing turns out), I think many people would be glad to help. Best regards
Summary by UnlucksMcGee (thanks a lot!)
00:07
This is not an answer to your question it's more of a hint I thought I would provide since I can.
Avatar
Avatar
Mr.Gh0s7
I appreciate your willingness to help but we don't plan on reading old discussions over and over again. An actual conversation about pro and contra and a final summary and therefore a solution would be nice.
Avatar
did u actually read that thread
Avatar
no I'm blind, I cant read
Avatar
Avatar
louis
did u actually read that thread
the last message you see as user without a github account is from the 24 of July. Most people have no idea how to use github or what it even is
Avatar
Avatar
louis
did u actually read that thread
you cant expect everyone to know whats going on there. we just want a little transparency and talk about the whole topic and what we as a community of which most cant code or costribute in a technical way, how we could help in any other way
Avatar
Avatar
Stepfunn
the last message you see as user without a github account is from the 24 of July. Most people have no idea how to use github or what it even is
That's the last message of the conversation for everyone
Avatar
that github thread is very transparent, anyone can add their own comments
00:30
and read the past discussion
Avatar
Avatar
archimede67
That's the last message of the conversation for everyone
alright well didnt know that since a dont have a private github account. Seemed like the discussion cut off at some point. but none the less it kinda shows that the topic kinda just died out and we want to revive it (edited)
Avatar
Avatar
Stepfunn
alright well didnt know that since a dont have a private github account. Seemed like the discussion cut off at some point. but none the less it kinda shows that the topic kinda just died out and we want to revive it (edited)
Github just shows that if you want to add a comment (aka participate in the conversation) you need an account. Otherwise, it does not cut the thread which lets everyone see it in its entirety. But I agree with louis, this thread wasn't created for nothing and its not like it has been several years since the last comment. There have been proposals made in this thread and I think if you really want to get accounts added you should first look into it and understand what's going on (edited)
Avatar
Avatar
archimede67
Github just shows that if you want to add a comment (aka participate in the conversation) you need an account. Otherwise, it does not cut the thread which lets everyone see it in its entirety. But I agree with louis, this thread wasn't created for nothing and its not like it has been several years since the last comment. There have been proposals made in this thread and I think if you really want to get accounts added you should first look into it and understand what's going on (edited)
I agree on this, atleast read the last comments from july. Its even interesting if you dont have much IT-knowledge. But on the other hand the account topic is such a big topic for every player and would be a big big step in the game. So maybe we should discuss and communicate it more openly, not only on the developer side but also on the players. An idea could be to form a small team of devs, experienced players and well established people of the community and discuss it in a smaller group. Write every argument, ideas and plans to implement down and present it to the community afterwards instead of this "chaos" rightnow. (edited)
Avatar
Avatar
viny
Hello ddnet admins & devs So me and a bunch of other people were just wondering about what happened to the account system and if there will ever be one to potentially come. It would be nice to know about the problems and plans surrounding this topic. Especially as it seems like the whole community wants something like this implemented (i. e. the survey that was done in the past in ⁠announcements ). Probably the whole community would like to know about what's actually going on there so that perhaps solutions could be found. Be it by funding and therefore paying the devs if that is the problem or by anything else (depending on how this whole thing turns out), I think many people would be glad to help. Best regards
It’s not like funding wouldn’t incentivize someone ton work on this feature but I guess if you were serious about it you’d have to set up a bounty. Lots of devs have ideas but they don’t have the time or patience to implement & test it as it’s something which would need extensive work in all faces of DDNet rn (client, server, website, probably discord too). Maybe someone with a real draft would finally get started if there was a bounty
01:59
It’s also something that’s not easily agreed upon so perhaps DDNet staff should set up an in-game announcement or something promoting the GitHub discussion
02:01
This really is an all hands on deck situation so some feedback from admins would be appreciated
02:03
I remember hearing that deen is onboard 😃
Avatar
Avatar
Ewan
the game isn’t installed
I thought it's possible just to copy the file to right path during compilation or smth :/ (edited)
Avatar
morning
Avatar
Hi, is it normal that logfile will create in AppData\Roaming\Teeworlds path ?
Avatar
i guess
Avatar
Avatar
Vexar
Hi, is it normal that logfile will create in AppData\Roaming\Teeworlds path ?
ig u can use a global path if you need to have it somewhere else for some reason
10:37
or change storage.cfg
Avatar
in older version it's save in same folder of server or client and i don't have any storage.cfg file
10:39
is there any flag to set location of save log ?
Avatar
Hi, I want to process the local live chat to create an local website where you can process it. To accomplish that I could use a Network Sniffer. The Problem is that I don’t know what requests i have to look out (UDP Port) and I don’t know how to / if i can decrypt the requests (edited)
Avatar
u can do that on linux with fifo iirc
10:42
or logging
10:42
definitly on server side
10:42
but idk about client side rn
10:42
oh wait
10:42
what do u mean by local live chat
10:42
u can just modify the client
Avatar
he wants to sniff the network packets for some reason
10:43
chillerdragon: u've done smth with wireshark iirc?
Avatar
Avatar
Jupstar ✪
he wants to sniff the network packets for some reason
SNIFFA
😂 5
Avatar
Avatar
Ryozuki
what do u mean by local live chat
Your pc receives chat messages in a request. If you know what requests to look out for and how to decrypt them. That way i can avoid maintaining a whole client
10:47
English on point 💯
Avatar
well nothing is encrypted yet
10:47
also the client port is random on each connection
10:48
check wireshark dissector from heinrich
Avatar
Udp Packages are encrypted by default
10:48
they arent xd
Avatar
Wait that was tcp my bad
10:48
not even tcp
10:48
encryption is built on top of the protocol
10:49
https is encrypted
10:49
http is not
10:49
both are tcp
10:49
ddnet has no encryption at all
10:49
its also a thing to fix for accounts
Avatar
Avatar
Ryozuki
check wireshark dissector from heinrich
Can you provide a link or smth?
Avatar
idk it rn
Avatar
Im sure there is a package for my web framework that can sniff. I will just need to know what to look out for
Avatar
maybe someone else knows
10:51
eh
10:52
i doubt u can sniff packets within a sandboxed web page
10:52
u need a proper program with access to the os
Avatar
Hmm when im home i have to look into that
Avatar
ill just say rust is a perfect fit
10:53
coffee
Avatar
Im a web developer
Avatar
რილია 2023-12-11 10:54:02Z
account are sucks, why can't you just play simple ddnet without any credit ?
❔ 3
Avatar
Avatar
Ryozuki
u need a proper program with access to the os
Maybe I’ll find a program that send the request to frontend
Avatar
Avatar
Bota
Im a web developer
u dont need to be limited by that
10:56
i also did web dev https://ddstats.org/
View DDNet / Teeworlds Statistics.
10:56
😬
Avatar
Avatar
Bota
Maybe I’ll find a program that send the request to frontend
yes u need to do that
10:57
u will need to program it tho
10:57
the sniffer program
Avatar
I hope rust wont be to difficult
Avatar
But i still don’t know what requests I need
Avatar
Avatar
Ryozuki
Click to see attachment 🖼️
U
11:02
im lucy
11:02
😬
11:02
time to put on the socks
Avatar
Programming socks engaged
Avatar
u'r ryozoozki
11:03
@Learath2 do you feel bad if c libraries would die out?
Avatar
Not really. I prefer rolling my own anyway
Avatar
i would be amazed cuz i think its a hard thing to happen
Avatar
Avatar
Learath2
Not really. I prefer rolling my own anyway
😏
Avatar
Avatar
Learath2
Not really. I prefer rolling my own anyway
do u roll out libcurl
Avatar
reinvent the reinvented wheel
Avatar
actually http is really easy protocol its just that
Avatar
Avatar
Ryozuki
do u roll out libcurl
I would if libcurl somehow dies
Avatar
its ambiguous a bit
11:04
and u need to take lot of security measures
Avatar
On a more serious note, as long as you expose a C API. (Which you kinda have to if you want any ffi). I don't care what the library itself is written in
11:12
I would even feel safer if it were written in Rust
Avatar
b59868b Add 50 € donation by louis - def-
💸 4
Avatar
@louis Thanks! ^
🤑 1
Avatar
Avatar
Learath2
I would even feel safer if it were written in Rust
brownbear
11:34
51220b1 Fix editor modified state not being updated properly - archimede67 7b20bf7 Fix modified state being set when lineinput is selected. - archimede67 79b016b Merge pull request #7626 from archimede67/fix-editor-modified-state - def-
Avatar
@Learath2 when u enable as module vs compiled in in kernel?
Avatar
Avatar
Ryozuki
@Learath2 when u enable as module vs compiled in in kernel?
I pretty much have everything that can be compiled in compiled in. Just a handful of things that I don't need all the time as modules
12:05
Like wireguard, ext2, udf, kvm
Avatar
Fixes #6778:
  • Prevent editing the color of entities layers when selecting multiple tiles to edit and pressing "Commit" in the editor
  • Ensure a white color for entities layers when loading map layers

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 po...
Avatar
0c69378 Prevent editing the color of entities layers - archimede67 8c5b8a8 Ensure white color for entities layers when loading map layers - archimede67 5013962 Merge pull request #7627 from archimede67/fix-colorable-game-layers - def-
Avatar
Avatar
Fussel
›just a MOV‹ would be wrong behaviour. the target has to correctly destruct it's current content (delete)
just a MOV works for rust though. because it statically handles the other object no longer being destructed
Avatar
Avatar
Learath2
or #1 most ignored advice of all time, just pick up a book 🙃
do you have a book on signal processing?
13:22
from the basics?
Avatar
I do but I never went through the entire thing. I just read a couple chapters
13:25
The chapter on the laplace transform is truly excellent. I've also read chapter 3, chapter 8 and chapter 14
Avatar
Avatar
Learath2
On a more serious note, as long as you expose a C API. (Which you kinda have to if you want any ffi). I don't care what the library itself is written in
maybe one day we can have a better ABI 🙂 including sum types or sth
Avatar
Avatar
iTom
I agree on this, atleast read the last comments from july. Its even interesting if you dont have much IT-knowledge. But on the other hand the account topic is such a big topic for every player and would be a big big step in the game. So maybe we should discuss and communicate it more openly, not only on the developer side but also on the players. An idea could be to form a small team of devs, experienced players and well established people of the community and discuss it in a smaller group. Write every argument, ideas and plans to implement down and present it to the community afterwards instead of this "chaos" rightnow. (edited)
discord is not a good medium for that. the discussion will be forgotten tomorrow. go to github if you want your voice to be heard in any way
13:26
same goes for @Stepfunn
Avatar
Avatar
Ryozuki
check wireshark dissector from heinrich
@heinrich5991 can you tell me more about it?
13:27
That response speed
13:27
💯
Avatar
I was looking for that link before you asked me
13:28
it was coincidental that you posted your question right before I sent the link
Avatar
ws-client BOT 2023-12-11 13:29:14Z
<ChillerDragon> jopsti yes i did all the wiresharking w heinrichs dissector its very pog
Avatar
chillerdragon: nice, u got some blog about using it?
Avatar
ws-client BOT 2023-12-11 13:31:16Z
<ChillerDragon> @Bota why do you want to sniff it? I would just edit the client or server which is much smoother for live chatting. If you go down the sniffing route and it does not have to be live i highly recommend tcpdump and heinrichs wireshark dissector.
13:32
<ChillerDragon> @Jupstar ✪ i guess you tried to help me plug this xd https://chillerdragon.github.io/teeworlds-protocol/index.html
13:32
<ChillerDragon> but yea on heinrichs dissector no blog is needed u just do tcpdump -w tw.pcap "port 8303" then you run wireshark tw.pcap and you see all chat messages in plain text
Avatar
or you just run wireshark on your computer directly
Avatar
ws-client BOT 2023-12-11 13:33:36Z
<ChillerDragon> yea
Avatar
Chillerdragon: the tcp dump how long does it take? 1 second?
Avatar
ws-client BOT 2023-12-11 13:33:55Z
<ChillerDragon> it doesnt finish
13:33
<ChillerDragon> until you kill it
Avatar
ws-client BOT 2023-12-11 13:34:08Z
<ChillerDragon> so for live chat it makes no sense
13:34
<ChillerDragon> why not edit client or server?
13:34
<ChillerDragon> if that somehow is not a option use a proxy instead
Avatar
Avatar
Bota
Chillerdragon: the tcp dump how long does it take? 1 second?
tcpdump tracks all live traffic on the system
Avatar
ws-client BOT 2023-12-11 13:34:52Z
<ChillerDragon> https://github.com/ChillerDragon/toxy/blob/master/main.py this is a simple poc tw proxy you can modify it to print chat messages
Avatar
404
Avatar
ws-client BOT 2023-12-11 13:35:23Z
<ChillerDragon> woah why is that closed src!? xd
13:35
<ChillerDragon> ah yea because its a mess
13:36
<ChillerDragon> its basically a few lines of python that just read udp and send it on
13:36
<ChillerDragon> in there you can just check the payload if it is a chat message
13:36
A teeworlds network protocol library, designed according to sans I/O (http://sans-io.readthedocs.io/) principles
13:36
<ChillerDragon> can also recommend this python lib (full self plug) if you want to write a tw proxy
13:37
<ChillerDragon> but still dont think it makes sense for your use case tbh @Bota
Avatar
I just need to send the chat data to my frontend. If i get data lile all 5 -10 seconds its not problematic
13:38
I just want to avoid maintaining an extra client (edited)
Avatar
ws-client BOT 2023-12-11 13:38:12Z
<ChillerDragon> i see
Avatar
maintaining a client/server will be easier than sniffing the packets
Avatar
ws-client BOT 2023-12-11 13:39:04Z
<ChillerDragon> a horrible way to do it would be running tcpdump every few seconds and then using this py script to get the chat messages xd https://gitlab.com/teeworlds-network/twnet_parser/-/tree/master/examples/07/print_pcap_files?ref_type=heads
A teeworlds network protocol library, designed according to sans I/O (http://sans-io.readthedocs.io/) principles
Avatar
The sniffer you do 1x and you leave it
13:39
If there is something else than a sniffer ill take that
Avatar
what exactly do you want to do?
Avatar
I just need data thats not older than 5-10 seconds
Avatar
log all chat?
Avatar
ws-client BOT 2023-12-11 13:40:25Z
<ChillerDragon> a proxy is better than a sniffer
13:40
<ChillerDragon> or just look at the logfile
13:40
<ChillerDragon> and live read that
Avatar
I want to make a toll that parses the text and translates it for moderating
Avatar
ws-client BOT 2023-12-11 13:40:54Z
<ChillerDragon> where does the translation appear?
Avatar
Avatar
Bota
I want to make a toll that parses the text and translates it for moderating
you mean chat?
Avatar
Avatar
Bota
I want to make a toll that parses the text and translates it for moderating
I use an language server
Avatar
Avatar
heinrich5991
you mean chat?
Yea the ingame chat
Avatar
ws-client BOT 2023-12-11 13:41:29Z
<ChillerDragon> and the translated result
13:41
<ChillerDragon> where should it go?
Avatar
Avatar
Bota
I use an language server
Stay in my frontend
Avatar
Avatar
Bota
Yea the ingame chat
read it from the log, I'd say
Avatar
ws-client BOT 2023-12-11 13:41:58Z
<ChillerDragon> yea
13:42
<ChillerDragon> if it doesnt have to go back to the client reading from the log works fine
Avatar
Didn't someone already make a translator?
Avatar
ws-client BOT 2023-12-11 13:42:34Z
<ChillerDragon> even if you want to get it back you could use say_self and fifo
Avatar
Avatar
heinrich5991
read it from the log, I'd say
Is it remote console dump?
Avatar
ws-client BOT 2023-12-11 13:42:54Z
<ChillerDragon> just regular logfile from stdout
13:43
<ChillerDragon> or use the logfile myfile.txt command
13:43
<ChillerDragon> then read from that file
Avatar
yes, that
Avatar
thats what i mentioned first xd
Avatar
Does it contain ip adresses?
Avatar
ws-client BOT 2023-12-11 13:43:32Z
<ChillerDragon> client side no
13:43
<ChillerDragon> server side yes
Avatar
I need those aswell
Avatar
ws-client BOT 2023-12-11 13:43:45Z
<ChillerDragon> but they are wrapped in some pattern which you can filter out
Avatar
Well my frontend is client only
13:44
Its just for highlighting anf notifing
13:45
Ill look at the links when im home
Avatar
ws-client BOT 2023-12-11 13:45:09Z
<ChillerDragon> @Teero why u askin bout file size
13:45
<ChillerDragon> @Bota dont look at the links
13:45
<ChillerDragon> just read the logfile dont do any proxy or packet sniffing
Avatar
Sry if i ask again: does the logfile update automatically without user input and does it contain the ip adresses?
13:47
All on Client
Avatar
Avatar
Bota
Sry if i ask again: does the logfile update automatically without user input and does it contain the ip adresses?
I need a Solution for that
Avatar
ws-client BOT 2023-12-11 13:47:44Z
<ChillerDragon> the client never sees any ips
13:48
<ChillerDragon> the logfile is updated live but you also have to make sure you keep reading it live
Avatar
I got access to Rcon. There i can get ips
Avatar
Avatar
heinrich5991
discord is not a good medium for that. the discussion will be forgotten tomorrow. go to github if you want your voice to be heard in any way
That wasnt my idea and i agree we shouldnt discuss it in one of the channels here
Avatar
ws-client BOT 2023-12-11 13:48:56Z
<ChillerDragon> @Bota just setup the thing on the server side not client side
13:49
<ChillerDragon> seems more reasonable anyways
Avatar
Avatar
Bota
I got access to Rcon. There i can get ips
I need ips to generate a ban command
Avatar
ws-client BOT 2023-12-11 13:49:44Z
<ChillerDragon> yea
13:49
<ChillerDragon> so why do it client side?
13:50
<ChillerDragon> just read the logfile on the serverside it contains ips and then you can also host the frontend on the same server
Avatar
Avatar
ws-client
<ChillerDragon> @Bota just setup the thing on the server side not client side
I dont have access to the server
13:51
I just join a server as a mod and i want to process the incoming chat from my local client
Avatar
Avatar
Bota
I got access to Rcon. There i can get ips
show_ips 1 status
13:51
I think this will work for ddnet rcon
Avatar
Avatar
Mʎɹ シ
show_ips 1 status
I know you can dump logs
13:51
But i need it automated
Avatar
ws-client BOT 2023-12-11 13:52:09Z
<ChillerDragon> status does not show in client logs
13:52
<ChillerDragon> and its not automated
Avatar
Bind for login to rcon and dump logs?
Avatar
Avatar
Mʎɹ シ
Bind for login to rcon and dump logs?
That requires user input
13:53
My tool is kinds useless if you have to press s button each time a message comes
Avatar
Avatar
Bota
That requires user input
write a small tool to connect to a server and listen for rcon log messages
13:54
I think that'd be the simplest solution here
Avatar
ws-client BOT 2023-12-11 13:54:09Z
<ChillerDragon> dump_remote_console only dumps once its not live
Avatar
given 1) no access to the server directly 2) rcon access 3) automated chat retrieval
Avatar
ws-client BOT 2023-12-11 13:55:12Z
<ChillerDragon> > write a small tool to connect to a server and listen for rcon log messages
13:55
<ChillerDragon> how?
Avatar
e.g. by using libtw2
Avatar
ws-client BOT 2023-12-11 13:55:39Z
<ChillerDragon> connect as a client?
13:55
<ChillerDragon> login in rcon?
Avatar
or by starting a new tool in the src/tools folder
Avatar
yes
Avatar
"Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin." (edited)
Avatar
ws-client BOT 2023-12-11 13:56:16Z
<ChillerDragon> then might as well use a finished client :D
Avatar
Avatar
ws-client
<ChillerDragon> then might as well use a finished client :D
Thats what I thought
Avatar
ws-client BOT 2023-12-11 13:56:56Z
<ChillerDragon> I would suggest js, python or ruby for scripting that
13:57
<ChillerDragon> instead of rust :p
Avatar
Just compile ddnet without graphics and add user input to console, or create remote control by socket xd
Avatar
that sounds way to complicated ^^
13:58
js, python, ruby don't have readily available libs for connecting to a ddnet server
Avatar
Easiest way: JS lib
Avatar
c++ and rust do
Avatar
Ill probably write a service in my website thats able to connet
Avatar
Avatar
heinrich5991
js, python, ruby don't have readily available libs for connecting to a ddnet server
Avatar
I use Angular. Connecting somewhere should not be an issue
Avatar
ah nice, then JS is an option
Avatar
Avatar
Bota
I use Angular. Connecting somewhere should not be an issue
without the lib that @Mʎɹ シ posted, it'd have been too difficult
Avatar
Lol: then i can just connect to every single ddnet server and track all at once 🤯
14:00
Do it
14:01
Massive ddnet moderation
Avatar
Avatar
რილია
account are sucks, why can't you just play simple ddnet without any credit ?
That's so deep
Avatar
ws-client BOT 2023-12-11 14:01:09Z
<ChillerDragon> > js, python, ruby don't have readily available libs for connecting to a ddnet server
14:01
<ChillerDragon> they do
Avatar
Python and ruby have?
Avatar
ws-client BOT 2023-12-11 14:01:24Z
<ChillerDragon> ye
Avatar
I saw only 0.7 impls
Avatar
ws-client BOT 2023-12-11 14:01:36Z
<ChillerDragon> ofc
14:01
<ChillerDragon> 0.6 is outdated
14:01
<ChillerDragon> xd
Avatar
Is it hard to connect to an ddnet server?
Avatar
ws-client BOT 2023-12-11 14:02:02Z
<ChillerDragon> wait is it a 0.6 only server?
Avatar
Avatar
Bota
Lol: then i can just connect to every single ddnet server and track all at once 🤯
don't do that. ask for permission first
Avatar
Avatar
Bota
Is it hard to connect to an ddnet server?
With js?
Avatar
ws-client BOT 2023-12-11 14:02:16Z
<ChillerDragon> no its easy with js
14:02
<ChillerDragon> the js lib is close to ddnet protocol
Avatar
ws-client BOT 2023-12-11 14:02:31Z
<ChillerDragon> ruby is 0.7 only
14:02
<ChillerDragon> python is 0.6 and 0.7 but not very high level abstracted yet
14:03
<ChillerDragon> @heinrich5991 libtw2 doesnt have docs or crates in cargo i wouldnt know how to build a client with it
Avatar
Avatar
heinrich5991
don't do that. ask for permission first
I will first try if it even works. If i manage that ill ask dw
Avatar
Avatar
Bota
Ye
Example with chat bot, you just need to create function for auth in rcon and able to connect bot with websocket or other stuff https://gitlab.com/swarfey/teeworlds-client/-/blob/main/docs/examples/chat_bot.js?ref_type=heads
Avatar
ws-client BOT 2023-12-11 14:04:18Z
<ChillerDragon> ye
14:04
has anyone read this 700 page book?
14:04
or recommend one related
14:05
thats not over 50€
Avatar
Avatar
ws-client
<ChillerDragon> @heinrich5991 libtw2 doesnt have docs or crates in cargo i wouldnt know how to build a client with it
ChillerDragon: you can check the downloader folder
Avatar
cuz academia inflates
14:05
prices
Avatar
it has a ready client
Avatar
ws-client BOT 2023-12-11 14:08:11Z
<ChillerDragon> where readme
14:08
<ChillerDragon> this is how i marketed mine
14:08
<ChillerDragon> doesnt take much
Avatar
ws-client BOT 2023-12-11 14:10:01Z
<ChillerDragon> @heinrich5991 but good to know maybe i give it a try one day :)
14:10
<ChillerDragon> i mean i kinda knew but thought its unfinished or something because of missing readme
Avatar
I used it in production already
14:10
writing a readme takes time
Avatar
ws-client BOT 2023-12-11 14:11:07Z
<ChillerDragon> cmn 3 lines on how to install and run
14:11
<ChillerDragon> mine took me 1 minute
Avatar
Some Teeworlds stuff in Rust.™. Contribute to heinrich5991/libtw2 development by creating an account on GitHub.
14:12
this readme took me an hour at least
Avatar
ws-client BOT 2023-12-11 14:12:22Z
<ChillerDragon> yea i know
Avatar
If im honest: I don’t like the idea of an massive observation center
14:15
I will take a look at the normal logs when im home
Avatar
@Learath2 do u know how structs are passed by C to functions
Avatar
Avatar
Bota
If im honest: I don’t like the idea of an massive observation center
That does not serve ddnets purpose
Avatar
in the assembly level
14:15
are they on the stack or registers always?
Avatar
depends on the size of the struct IIRC
Avatar
64bit btw
14:16
@heinrich5991 is there a known size
Avatar
what is a "known size"?
14:17
a size up until which it is passed in registers?
14:17
This article describes the calling conventions used when programming x86 architecture microprocessors. Calling conventions describe the interface of called code: The order in which atomic (scalar) parameters, or individual parts of a complex parameter, are allocated How parameters are passed (pushed on the stack, placed in registers, or a mix o...
Avatar
Chillerdragon you have discord?
Avatar
I always use this wikipedia article @Ryozuki
Avatar
Avatar
heinrich5991
a size up until which it is passed in registers?
yes
Avatar
apparently only up-to-pointer-sized structs are passed in registers in microsoft's calling convention
14:18
the article remains silent about the sysv abi
Avatar
Avatar
Ryozuki
@Learath2 do u know how structs are passed by C to functions
This is defined by the ABI, but it'll be passed in a register as a pointer as it's of MEMORY class
Avatar
even for pointer-sized structs?
Avatar
Ah, if it's smaller than a certain size it can be passed differently yeah
14:19
I assumed a large struct for some reason
14:20
wait so they can be passed in a register if small or in the stack and the register has a pointer to it?
14:20
or how it works
14:20
3.2.3 is what you want to look at
Avatar
ws-client BOT 2023-12-11 14:22:26Z
<ChillerDragon> @Bota i do not have discord why?
Avatar
Avatar
Learath2
3.2.3 is what you want to look at
that reads quite complicated
14:24
The classification of aggregate (structures and arrays) and union types works as fol- lows: 1. If the size of an object is larger than eight eightbytes, or it contains unaligned fields, it has class MEMORY 15. 2. If a C++ object is non-trivial for the purpose of calls, as specified in the C++ ABI 16, it is passed by invisible reference (the object is replaced in the parameter list by a pointer that has class INTEGER) 17. 3. If the size of the aggregate exceeds a single eightbyte, each is classified separately. Each eightbyte gets initialized to class NO_CLASS. 4. Each field of an object is classified recursively so that always two fields 18 are con- sidered. The resulting class is calculated according to the classes of the fields in the eightbyte: (a) If both classes are equal, this is the resulting class. (b) If one of the classes is NO_CLASS, the resulting class is the other class. (c) If one of the classes is MEMORY, the result is the MEMORY class. (d) If one of the classes is INTEGER, the result is the INTEGER. (e) If one of the classes is X87, X87UP, COMPLEX_X87 class, MEMORY is used as class. (f) Otherwise class SSE is used. 5. Then a post merger cleanup is done: (a) If one of the classes is MEMORY, the whole argument is passed in memory. (b) If X87UP is not preceded by X87, the whole argument is passed in memory. (c) If the size of the aggregate exceeds two eightbytes and the first eightbyte isn’t SSE or any other eightbyte isn’t SSEUP, the whole argument is passed in mem- ory. (d) If SSEUP is not preceded by SSE or SSEUP, it is converted to SSE.
Avatar
I was just wondering
Avatar
You are basically only interested in the very last part of Classification because we are talking about an aggregate
Avatar
"only"
Avatar
Point 1 immediately applies if you have a large struct
Avatar
@Learath2 what are eight eightbytes
14:24
what is a eightbyte
14:24
??
14:24
XD
Avatar
64 bytes
14:24
8 byte
Avatar
Eh no
14:25
3.1.2
...the term eightbyte refers to a 64-bit object...
Avatar
which is 8 bytes?
Avatar
Oh wait I misread what you wrote
14:26
Sorry
14:28
Anyway, 2 doesn't apply to C. 3) applies to anything smaller than 64 bytes You go 2 by 2 applying the rules in 4)
Avatar
what does 2 by 2 mean?
Avatar
@Learath2 one doubt
Avatar
2 by 2 eightbytes? struct fields?
Avatar
if i pass something as MEMORY ie in the stack
Avatar
2 by 2 fields
Avatar
do i pass a pointer to it on the register? or doesnt make sense
14:29
xd
Avatar
but what if two fields are already larger than the first eightbyte?
Avatar
Avatar
Ryozuki
do i pass a pointer to it on the register? or doesnt make sense
No, just put it on the stack
Avatar
Avatar
heinrich5991
but what if two fields are already larger than the first eightbyte?
Wym?
Avatar
you say I always consider two fields at once
14:31
but I also need to consider the first eightbyte separately
14:31
this part is important too
Avatar
what if my first field is already larger than 8 bytes?
14:31
boo, pictures
Avatar
Avatar
heinrich5991
what if my first field is already larger than 8 bytes?
Your field will either be an aggregate or already have a classification as per the parts we skipped at the start
Avatar
ah
14:32
I should use the former rules as well for classifying struct members?
Avatar
I see
14:33
so structs containing a couple of floats and ints get ripped apart completely
14:33
even if they're interleaved
14:33
very intereseting document, thanks for linking it @Learath2
Avatar
What happens when 2 clients with same ip connect to 1 Server?
Avatar
you can have a maximum of four clients per IP address on official ddnet servers, IIRC
Avatar
Avatar
Bota
What happens when 2 clients with same ip connect to 1 Server?
They'll have different client ports
Avatar
dummy and main tee count as 2
Avatar
@Learath2 i ask this cuz we making some kind of trampoline code for a generated shared library with mlir
14:36
xd
Avatar
the idea of trampoline code is to not touch anything, no?
14:37
so that you just enter the actual function in the end
Avatar
Avatar
heinrich5991
the idea of trampoline code is to not touch anything, no?
i actually tried calling the function using extern c from rust
14:37
but it didnt work well
Avatar
why not?
Avatar
its odd because theorically the function follows the c calling convetion
14:38
weird unexpected results
14:38
segfaults
14:38
etc
14:38
xd
Avatar
look at it in a debugger
14:38
it tells you what's on the ground
14:38
or the disassembly
Avatar
Avatar
heinrich5991
you can have a maximum of four clients per IP address on official ddnet servers, IIRC
There are not clients that wont take a slot, are there?
14:39
1 person taking 3 slots is wrong
Avatar
you can't take no slots
14:39
with a client
Avatar
Then I will stay with logs on my Project
Avatar
https://github.com/gcc-mirror/gcc/blob/master/gcc/config/i386/i386.cc#L2124 It's not too bad to read if you'd like to see an implementation of it
Avatar
Avatar
Learath2
https://github.com/gcc-mirror/gcc/blob/master/gcc/config/i386/i386.cc#L2124 It's not too bad to read if you'd like to see an implementation of it
64bit right
Avatar
Yep, good idea
Avatar
thanks
Avatar
Class MEMORY is basically poison, if any part of an aggregate is classified as MEMORY everything is MEMORY now
Avatar
did I get ghost pinged?
Avatar
me too
14:53
ah, maybe not pinged
14:54
Dunno maybe discord is bugged
Avatar
Sedonya is sent smth and deleted this, maybe this was ping xdd (I saw it on second monitor) (edited)
Avatar
@Learath2 do u thin sysv abi 64 bit is bloated?
14:57
think
Avatar
Not particularly. Why?
Avatar
did u look at the arm64 one
14:57
from macos
14:57
Create 64-bit ARM assembly language instructions that adhere to the application binary interface (ABI) that Apple platforms support.
14:58
Pass arguments to functions correctly The stack pointer on Apple platforms follows the ARM64 standard ABI and requires 16-byte alignment. When passing arguments to functions, Apple platforms diverge from the ARM64 standard ABI in the following ways: Function arguments may consume slots on the stack that are not multiples of 8 bytes. If the total number of bytes for stack-based arguments is not a multiple of 8 bytes, insert padding on the stack to maintain the 8-byte alignment requirements. When passing an argument with 16-byte alignment in integer registers, Apple platforms allow the argument to start in an odd-numbered xN register. The standard ABI requires it to begin in an even-numbered xN register. The caller of a function is responsible for signing or zero-extending any argument with fewer than 32 bits. The standard ABI expects the callee to sign or zero-extend those arguments. Functions may ignore parameters that contain empty struct types. This behavior applies to the GNU extension in C and, where permitted by the language, in C++. The AArch64 documentation doesn’t address the issue of empty structures as parameters, but Apple chose this path for its implementation. The following example illustrates how Apple platforms specify stack-based arguments that are not multiples of 8 bytes. On entry to the function, s0 occupies one byte at the current stack pointer (sp), and s1 occupies one byte at sp+1. The compiler still adds padding after s1 to satisfy the stack’s 16-byte alignment requirements. void two_stack_args(char w0, char w1, char w2, char w3, char w4, char w5, char w6, char w7, char s0, char s1) {} The following example shows a function whose second argument requires 16-byte alignment. The standard ABI requires placing the second argument in the x2 and x3 registers, but Apple platforms allow it to be in the x1 and x2 registers. void large_type(int x0, __int128 x1_x2) {}
Avatar
This is just a document that has a clear explanation. The AArch64 documentation it references is about the same size as the amd64 sysv one I sent
15:01
So on the topic of bloated. I don't think so, but it is rather complicated, only because well ABIs aren't very trivial things if you want them performant
Avatar
i see xd
Avatar
The eight eightbytes thing is e.g. so structs can be decomposed into registers for efficient passing. You could have an ABI that just doesn't do that and always puts structs on the stack
15:06
(not that it gets decomposed for many things tbf, it rarely ends up getting chopped up)
Avatar
points are likely to get chopped up, no?
15:08
like struct { int x; int y; int z; } is a zero-cost abstraction
15:09
unlike in java, where it used to lead to lots of heap allocations
Avatar
Avatar
heinrich5991
points are likely to get chopped up, no?
Anything bigger than 2 eightbytes immediately becomes MEMORY unless it's somethingsomething SSE
Avatar
Avatar
Learath2
Anything bigger than 2 eightbytes immediately becomes MEMORY unless it's somethingsomething SSE
wasn't it eight eightbytes?
Avatar
Avatar
heinrich5991
like struct { int x; int y; int z; } is a zero-cost abstraction
yes the get"flattened"
15:09
this would be like fn(a: i32, b:i32, c:i32)
15:09
on registers iirc
Avatar
Avatar
Learath2
Anything bigger than 2 eightbytes immediately becomes MEMORY unless it's somethingsomething SSE
2 eightbytes or 8?
15:10
wasnt it 8
Avatar
Anything bigger than 8 eightbytes is MEMORY Anything between 2 and 8 eightbytes only get chopped if they SSE something something
Avatar
ah
Avatar
Anything less than 2 can be chopped up
Avatar
what does chopped mean here
Avatar
into registers
Avatar
It's the post merger cleanup part 3.2.3.5c or L2306 in the gcc implementation I referred to
Avatar
hey guys
Avatar
(Atleast that's how I understand it, I only briefly dabbled in this while trying to understand some absurd assembly that made no sense to me with the naive understanding of the calling convention I had)
Avatar
any one can give me default auto-exec.cfg of ddnet++
15:13
?
Avatar
Launching Lean Co-pilot for LLM-human collaboration to write formal mathematical proofs that are 100% accurate. We use LLMs to suggest proof tactics in Lean and also allow humans to intervene and modify in a seamless manner. https://github.com/lean-dojo/LeanCopilot Automating theorem proving… 💖 480
15:23
LLMs as Copilots for Theorem Proving in Lean. Contribute to lean-dojo/LeanCopilot development by creating an account on GitHub.
15:23
Lean Copilot allows large language models (LLMs) to be used in Lean for proof automation, e.g., suggesting tactics/premises and searching for proofs. You can use our built-in models from LeanDojo or bring your own models that run either locally (w/ or w/o GPUs) or on the cloud.
15:23
looks big ngl
15:23
Lean 4 programming language and theorem prover. Contribute to leanprover/lean4 development by creating an account on GitHub.
Avatar
holy shit
15:34
in the current year, @Robyt3 contributed 846 commits so far
poggers 2
15:35
out of 1507
15:35
that's ~56% of all ddnet development
15:35
of 2023
Avatar
Carrying DDNet on his shoulders
15:37
@heinrich5991 how did u see this summary?
Avatar
DDraceNetwork, a free cooperative platformer game. Contribute to ddnet/ddnet development by creating an account on GitHub.
15:37
and manually added the numbers
Avatar
854 Robert Müller 104 furo 96 Dennis Felsing 83 marmare314 60 Alexander Akulich 49 heinrich5991 39 ChillerDragon 35 Jupeyy 25 dobrykafe 15 Edgar Luque 14 Zwelf 12 trml 10 Chairn 10 Tarun Samanta 10 Valentin Bashkirov 9 Corantin H 9 Samuele Radici 9 devdenn 9 lolipodass 8 Learath2 8 Rafael Fontenelle 8 VoxelDoesCode 8 noKetchup 7 By 5 Cheeser0613 5 Pavukoplov 4 JSaurusRex 4 Ravie 4 Tater 3 +KZ 3 BurnyLlama 3 JuraIBOZO 2 -StormAx 2 Axel Vestin 2 CHaBek 2 Cellegen 2 Vlad 2 h-kaan 2 hamdikaan 2 hardliner66 2 louis 2 oy 1 Adrian Bunk 1 ArijanJ 1 ByFox 1 Harri Nieminen 1 Jeremy 1 Kaan 1 Marek B 1 Marvin Winkens 1 Panagiotis "Ivory" Vasilopoulos 1 Patiga 1 Possseidon 1 Remake The Power 1 Sedonya_ 1 Steinchen99 1 Teero888 1 axel 1 hus3h 1 mindTW
(edited)
15:39
❯ git shortlog -sn --since "01 Jan 2023"
15:39
hey atleast im up there a bit XD
Avatar
I fell off. L
Avatar
why is oy there
15:39
hmm
15:40
idk if this includes merge commits
Avatar
Avatar
Ryozuki
why is oy there
Maybe one of chillers 0.7 obsessed prs pulled it in?
15:41
discord marked my edit unsafe
15:41
ah wait it had emails
15:41
i edited it
15:41
without merge commits
15:41
git shortlog -sn --since "01 Jan 2023" --no-merges
Avatar
hey, I've not completely dropped out \o/
Avatar
my new year resolution: do more work on ddnet
15:42
but to my defense i did some projects
15:43
maintained the wiki, did ddstats.org
15:43
and db.ddstats.org
15:44
sadboi
Avatar
Added for ghosts tab, previously only F5 was possible. Added for skins, and assets tab.

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 maps
  • [ ] Tested the ch...
Avatar
can i set password using ddnet custom browser protocol 😮
Avatar
Avatar
heinrich5991
you can have a maximum of four clients per IP address on official ddnet servers, IIRC
yes its 4
Avatar
Avatar
MilkeeyCat
can i set password using ddnet custom browser protocol 😮
With the ddnet:// uri? Not possible.
Avatar
where are the ddnet live logs stored again? I cant find the folder
Avatar
chillerdragon BOT 2023-12-11 17:28:19Z
Why? Just look into config_variables.cfg for the defaults. Also the settings I use on my servers are on GitHub as well in a repo called cfg or something like that
Replying to @! 3x1sT any one can give me default auto-exec.cfg of ddnet++
Avatar
Avatar
Ryozuki
why is oy there
Probably from #5737
Avatar
Port map and editor support for CURVETYPE_BEZIER from upstream, i.e. support bezier curves with configurable in- and out-tangents for every envelope point. The in- and out-tangents are represented ...
Avatar
Avatar
Bota
where are the ddnet live logs stored again? I cant find the folder
Logs when using logfile? They get stored in your DDNet config directory.
Avatar
the local chat output
Avatar
Avatar
Bota
the local chat output
I think you're looking for logfile, it will have everything that gets printed to the local console. There is no way of only logging the chat output.
Avatar
i cant find the folder
Avatar
$configdir
Avatar
DDNet config directory & settings_ddnet.cfg location:
On Windows: Old: %appdata%\Teeworlds New: %appdata%\DDNet On Linux: Old: ~/.teeworlds New: ~/.local/share/ddnet On macOS: Old: ~/Library/Application Support/Teeworlds New: ~/Library/Application Support/DDNet The settings_ddnet.cfg file contains all your friends, control, player & game settings.
Avatar
Ah no, logfile is a command. So, you do logfile output.log for example.
Avatar
there is no output.log in my files
Avatar
Press f1, type "logfile output.log" and somewhere output.log will be generated
Avatar
i did that
Avatar
You also need to restart the client after that
Avatar
makes more sense
17:51
nice "live logs" 😄
Avatar
This will not record rcon messages, i think xd
Avatar
It's live but the changed filename only takes effect when launching the client
Avatar
i think i wont come arround conneting a client
17:52
welp
17:54
466dca8 Support F5 and Modifer + R for refresh where possible. - furo321 df678ea Merge pull request #7628 from furo321/refresh-keys - Robyt3
Avatar
Pressing S while the envelope name editbox is active and envelope points are selected should not active envelope scaling.
Avatar
i wonder when heinrich will just close all the PRs people dont even care about anymore (edited)
Avatar
is there somewhere a documentation what i need to send to the gameserver to get counted as client? (edited)
Avatar
Not even terminal fans want to do colors in the console !screenshot_2023-12-11_20-20-08 !screenshot_2023-12-11_20-20-29 !screenshot_2023-12-11_20-20-33

Checklist

  • [x] Tested the change ingame
  • [x] Provided screenshots...
Avatar
Avatar
Bota
is there somewhere a documentation what i need to send to the gameserver to get counted as client? (edited)
I think there is no detailed guide (edited)
19:27
You can check libtw2 docs
19:27
Or source code of js tw lib
Avatar
i need typescript 😦
Avatar
Twlib bot writen in ts and have "compilated" js source
19:29
You can use it in ts or js
Avatar
Avatar
Mʎɹ シ
Twlib bot writen in ts and have "compilated" js source
19:34
Avatar
if you mean https://github.com/heinrich5991/libtw2 i havw no idea how to use it
19:46
in angular
Avatar
This is an alternative approach to https://github.com/ddnet/ddnet/pull/7598 The issue with the linked approach is that it is not flexible enough (the snap is still tied to the race game type). The approach suggested in this MR is tested in action — I base infclass mod on CPlayer (and CCharacter) subclassing. Later on we can move DDNet-specific stuff to some CPlayer subclass but right now it is hard to e...
Avatar
Avatar
Bota
Click to see attachment 🖼️
@Swarfey can you help?
Avatar
Avatar
MilkeeyCat
I thought it's possible just to copy the file to right path during compilation or smth :/ (edited)
not unless you did make install…
Avatar
Avatar
Bota
Click to see attachment 🖼️
that error is kinda odd, I have never seen it before
20:07
did you install the package using npm install teeworlds?
20:08
Avatar
o_o i've never worked with angular, kinda thought it would work the same as normal js
20:08
1 sec
Avatar
i use .ts (edited)
20:08
but it should normally work
Avatar
can you send me your typescript version? (tsc -v)
20:10
might be something with that, but the library already ships the compiled .js files, so i dont know why it is getting recompiled
Avatar
npx tsc -v?
Avatar
ab5a7b8 Add ui setting for cl_authed_player_color - ChillerDragon 7abada5 Merge pull request #7630 from ChillerDragon/pr_authedcolor_setting - def-
Avatar
above is the version ^^
20:13
over message
20:13
😄
20:13
Avatar
Avatar
Bota
I just join a server as a mod and i want to process the incoming chat from my local client
i hope u are not trying to set up automod on ddnet servers
Avatar
Avatar
Ewan
i hope u are not trying to set up automod on ddnet servers
not automatic
20:15
ppl still have to execute bans
20:15
but a tool that highlights
20:15
and translates
Avatar
Avatar
Bota
Click to see attachment 🖼️
ah xd in my library it uses "typescript": "^3.9.5", you might want to try that
Avatar
yea maybe now that you realized you can’t get ips through the client. Lol
Avatar
otherwise i dont know, maybe theres some fancy angular stuff i have no idea of
Avatar
Avatar
Ewan
yea maybe now that you realized you can’t get ips through the client. Lol
if i connect to rcon i should get ips
Avatar
iirc i didnt add any rcon support
Avatar
i think any sort of extra tooling for rcon besides what they give you through the console should be 100% vetted by ddnet admins first
20:16
if using on a ddnet server
Avatar
well i have dump_logs
20:17
there is ´names and ips
20:17
and logs
20:17
but i wanted to make it automated
Avatar
Closes #7629

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 maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/...
Avatar
so you dont have to press a button each time go get new logs
Avatar
b42f43c Fix envelope scaling being triggered in name input. - furo321 990bb8b Merge pull request #7632 from furo321/input-envelope-scaling - Robyt3
Avatar
https://github.com/ddnet/ddnet/pull/3552 could have saved both problems and is merged in teeworlds. Still think that one is really needed. If one plays on multiple servers it makes sense to bind arrow keys to rcon up/down/left/right in ddrace but to the chat commands /up /down /left /right in city. And there are a bunch of those. Having a config for every gametype and then cyceling through those with a bind on switching server is just annoying. Then there are accounts in block, city and...
21:18
@Jupstar ✪ chatgpt is depressed on december
Avatar
This commits allows to use custom browser protocol as ddnet://host:port/password but ddnet://host:port still works. That's it :justatest:

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 phy...
Avatar
Avatar
Ryozuki
@Jupstar ✪ chatgpt is depressed on december
understandable xd
Avatar
Fix an issue where pressing escape while a lineinput was focused would not close the current popup in editor (reported by @furo321).

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...
Avatar
Updating to curl 8.5.0 leads to random segfaults in DDNet only (tw 0.7 and all other software that I use have no problems that I know of) Downgrading to curl 8.4.0 fixes it These crashes are segfaults caused by seemingly random events from fetching a skin to master servers GDB Backtrace: ``` #0 0x00007ffff4833f3c in () at /usr/lib/libcurl.so.4 #1 0x00007ffff488d274 in () at /usr/lib/libcurl.so.4 #2 0x00007ffff486d0e3 in () at /usr/lib/libcurl.so.4 #3 0x00007ffff4878534 in ...
23:26
05af24a Make less headers depend on <base/system.h> - heinrich5991 7813cfe Merge pull request #7618 from heinrich5991/pr_ddnet_less_system_h - def-
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-addresssan...
Exported 572 message(s)