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-08 00:00:00Z and 2020-09-09 00:00:00Z
Avatar
can we please change it back from type to server pls it looks so bad
00:05
or make it something like Maps
00:05
Novice Maps
00:05
Brutal Maps
Avatar
or "difficulty"
00:08
idk if its good to mix in fng/zcatch/etc with the ddnet tab too u know
00:10
u could have all of that in a "pvp" tab
Avatar
@heinrich5991 idk how to implement that in not a nice way without tons of refactoring work The only thing I been thinking about is to declare some class X {int Value; bool WasModified;} Define implicit cast to/from int for this X type Not sure if it is possible and how hard it will impact the perfomance cuse never tried it in c++
Avatar
As reported on discord by -insert weird letters-
ä̵́̋s̴̅͑d̷̒͐ģ̵͛g̶̋͑ Today at 02:20 Hey guys I need help, Whenever I open DDnet on steam it says its launching for a fews seconds and it dissappears or it dosent > launch. Ive tried restarting my computer, updating steam and reinstalling the game. Any Ideas? Im on a MacOs
and on steam forums by Drax "MacOs game cannot be launched."
The game that I play every day has stopped even today, please I want you to find a solution, than...
Avatar
7abe201 Version 14.7.1, fix Mac build - def-
Avatar
@daria I renamed it to Maps already
Avatar
@Learath2 I guess I should have told you to test without ffmpeg installed locally 😄
Avatar
@deen I should have checked with otool...
07:21
I totally forgot about that
Avatar
@heinrich5991 I guess the best way would be to have a function in CConfig that we always use to set config vars
Avatar
I think this was my worst release in a while, broke so many things
07:58
I guess we can't run the DDNet executable on the GitHub CI thingie?
Avatar
On which platform?
07:59
My guess is that we don't have a display and SDL2 has no easy way of just telling it to software render to /dev/null
Avatar
Oh, I see what you meant, we can run it with a framebuffer probably
Avatar
Yeah, that would be nice
Avatar
problem is, what do we look for? 😄
Avatar
something like ./DDNet quit would be enough to test for proper linking
Avatar
I think just having xvfb on linux would work
Avatar
Why not write a test that tried to connect to a certain game server and the you will see not only linking issues but it will also check the basic features of the client? (edited)
Avatar
points query feels more slow :\
08:41
nvm it's ok on empty server
Avatar
@Luca sure, that's even more fancy
Avatar
Well. But I guess its not too hard? You could even do it via cli if we give a run option or something like they did on ath
08:42
And the just check for the incoming connection on the server?
08:45
Or is that already possible? Like $ DDNet connect 127.0.0.1:83030?
Avatar
Yes, possible: DDNet ddnet:127.0.0.1:8303
08:57
So you can link ddnet: links to be opened with DDNet client
08:57
but testing graphical applications this way is rather brittle
Avatar
[quakenet] ChillerDragon BOT 2020-09-08 08:59:28Z
is it even possible to start the client without a graphical enviroment? To fake some screen or something like that
chiller 2
Avatar
We could observe the traffic on both sides and compare it to a known good sample which should make breakages obvious, but we are making this more and more complex while we don't even have the most basic testing 😄
09:00
ChillerDragon: xvfb would work on linux for that, no such thing on mac or windows, if we had our own buildbots maybe we could
Avatar
[quakenet] ChillerDragon BOT 2020-09-08 09:01:17Z
would be kinda cool to use xvfb in the ci for at least linux then huh?
Avatar
[freenode] b3z BOT 2020-09-08 09:01:58Z
Sounds better, I like @Learath2 idea with the traffic :o
Avatar
[quakenet] ChillerDragon BOT 2020-09-08 09:02:08Z
oh i should hav read all messages before writing probably xd
Avatar
i mean since we build it anyway we can also test it manually real quick?
09:18
09:18
lot of people are having trouble
09:18
seeing entities after the updates?
09:19
rejoining the server sometimes fixes it
Avatar
Is FNG right?
09:20
on 0.7?
Avatar
its my fng server yes and
09:21
its a 0.6 server that supports 0.7
09:21
they are all using ddnet
Avatar
we do "mask" entities by default. We dont do it in order if we know that the server is not a DDNet. But if we do call CMapLayers::OnMapLoad() before getting NETOBJTYPE_GAMEINFOEX ...
09:23
so its known issue
09:23
ok
Avatar
i'll wait for a response of the network ppl
09:24
else i'll fix it xd
Avatar
@Deleted User what is the issue?
Avatar
the gameobj gameinfo ext is sent as a snapshot
Avatar
but it needs to be sent as a packet after joining the server
09:32
before the map is known
Avatar
I don't think that's a feasible change
Avatar
entities on fng used to work for people
Avatar
Why do you need to know the gametype so early?
Avatar
bcs the map is built onmapload
Avatar
@noby I'm guessing the new renderer is doing a lot of work in advance
09:33
Yeah
Avatar
its not built every frame anymore
Avatar
rejoining the server seems to fix it for most people
09:33
but not all
Avatar
yes bcs then they already got the snapshot
Avatar
Let me take a look, but I don't think we can easily move this out of the snap without a lot of compatibility cruft
Avatar
ok thx
Avatar
@Deleted User is it maybe possible for you to rebuild it when more info is available?
Avatar
thats pretty expensive
Avatar
cant they get gametype from server browser
Avatar
it was like that before
Avatar
i doubt it changes often for most servers
Avatar
when i first implemented my code
Avatar
@noby relying on silly strings for determining info like this is very brittle
Avatar
what does it rely on currently?
09:36
to make only red entities show up
Avatar
on uninitialized memory xD
Avatar
You send a GAMEINFO_EX object, which has the needed information
Avatar
the red is shown bcs its a ddrace tile
Avatar
is this something i can fix serverside
09:37
red spike is ddr tile?
Avatar
probably yes
09:37
i mean the index
Avatar
Not our fault you relied on information that's not there yet
Avatar
not the behaviour 😄
09:37
its not his fault
09:38
:x
Avatar
Definitely not his fault
Avatar
it worked before bcs it used the mod string
09:38
whoever implemented gameinfo just didnt thought about buffering
09:39
so lets pls just be constructive
Avatar
Whoever implemented the new renderer didn't check whether the information he used is actually populated at the time of use
09:39
If you want to play blame shifting
Avatar
as i said
Avatar
It's rather trivial
Avatar
when i programmed it it used the mod string
09:40
not any packets
09:40
look the commit in the issue
Avatar
ok so to be clear
09:40
i dont have to fix my server right
Avatar
no, except u want features from the client, else the client should assume its unknown mod and just display all tiles
Avatar
can i ask smth, kinda off topic
09:41
which distro has most minimal live iso?
Avatar
can i do anything to help the client understand that its fng entities xd
09:41
i wondered if the ddnet codebase of my mod mightve been mesing it up
Avatar
i dunno if the client allows snapshots before connected
Avatar
i dont think os
Avatar
@Deleted User can't it be updated when the entities info changes?
09:45
I know a mod that actively uses that IIRC
Avatar
it can but its expensive and will cause lags
Avatar
what are we talking? 1ms?
Avatar
depends on hardware
09:45
but building VRAM isnt fast
Avatar
hm. I mean it's in the very first snapshot
09:46
perhaps one could delay building the vram until the first snapshot is there?
09:46
(would still break the server that changes the gametype info)
Avatar
I'd just rebuild it, if a server changes gameinfo that late we can just tell them that it incurs a cost
Avatar
im ok with that
09:51
how can i compare the objects?
Avatar
okay, different question
09:51
how does the filtering work?
09:52
or rather, the rendering?
09:52
does it render the whole layer to a texture?
Avatar
if m_DontMaskEntities is not set, it will look if its a valid ddrace tile
Avatar
does it upload the texture indices to the graphics card?
Avatar
it uploads vertices
09:52
it doesnt even upload vertices that arent valid
Avatar
so like put this part of the entities texture there
Avatar
it adds valid tiles to a list
09:53
rest is ignored
Avatar
Looking to replace the texture in place?
Avatar
yes
09:53
yes, but how does it upload the valid tiles?
09:53
just by position in the entities layer?
Avatar
well it uploads it as vertices xD
Avatar
I don't know what that means ^^
Avatar
it knows the positon of the entities layer yes
Avatar
fill the list with fng tiles by default for quick fix? 🙂
Avatar
no
Avatar
@Deleted User so if we were to upload all tiles and change the entities texture to only include those that we want, it would work fine?
Avatar
the problem always was, that you could e.g. spam a front layer into fng
Avatar
why is that a problem
Avatar
because people did it and it caused entities to be unplayable
Avatar
maybe its intentional
Avatar
yes
Avatar
yes, in fng it works anyway, but in ddrace its annoying
09:55
@heinrich5991 yes that would work
Avatar
ah nice, and without delay, too, I guess?
Avatar
but it will then create front layers independent of the mod
09:56
yes without any delay
09:57
so if we have a fng front layer
09:57
or generally, a non ddrace front layer
09:57
should be fine
Avatar
isnt the "front" layer supposed to be unused for all types of maps except ddrace
Avatar
yes but we dont know the mod 😄
09:58
so better built everything
Avatar
the front layer doesn't exist by default I think
Avatar
It doesn't indeed
Avatar
also the credits of the entities will then work
Avatar
why does it show the front layer in fng in that case
Avatar
so either remove them or still check some tiles
09:59
well u right @noby
09:59
we can still just not render the front layer
09:59
in any other mod
10:00
only gamelayer, and the mod programmers have to add it to ddnet, if they require other layers
Avatar
i suppose this would fix the fake tiles that @ᶰ°Konͧsti makes too
Avatar
ᶰ°Konͧsti 2020-09-08 10:01:31Z
most faketiles are fixed already
Avatar
so i guess we need ddnet_front.png then?
10:02
and game seperatelly
Avatar
yes
10:02
working on it
Avatar
ok thx 😄
Avatar
What will you do about the credits?
Avatar
still strip them in all gametypes if there's a possible position
Avatar
Hm, don't we already clean up the layers from invalid tiles btw?
Avatar
that's the problem ^^
10:04
we do that with incomplete information
Avatar
heinrichs solution is really the best
10:04
if the mapper creates invalid tiles and destroys performance in his maps
10:04
its the mappers fault
Avatar
So we'll have to strip the credits from the source files as it'd be tricky to strip them in the code
Avatar
we can also just create the texture on fly acutally
Avatar
we can still stirp them in source
Avatar
when loading entities just create front and gamelayer by cheking for valid tiles
Avatar
ah
Avatar
But won't we need a table of valid tiles for a given mod?
Avatar
well, we kinda do this today
10:08
but instead of modifying the texture, we modify the game tiles in the (loaded) map
Avatar
Ah, same idea but we use it to build the entities texture instead of cleaning the layers
10:08
Great solution actually
Avatar
yes 😄
Avatar
okay, may I hand it back to you? @Deleted User
10:09
^^
Avatar
yes, i'll fix it
Avatar
thanks!
Avatar
Not like any of us has any idea how the rendering stack works anymore 😛
Avatar
so when map is rendered the gameinfo object is initialized in some way?
Avatar
GameInfo object is actually uninitialized when the map is loaded I think
Avatar
yes
Avatar
It has a default state, but it takes atleast one snap without gameinfoex for it to get there
Avatar
it initilaized with null paramters tho
10:11
if not found
10:11
but only at the first snapshot tick
Avatar
Maybe initialize it to GetGameInfo(0, 0, &ServerInfo); OnConnected?
Avatar
well i dunno rn when the client calls render for the first time
Avatar
after three snapshots arrived I think
Avatar
then its already fine
Avatar
I thought you need it to be initialized onmapload
Avatar
no we change the texture on fly
10:15
as soon as it knows its fng, it will display fng tiles, but invalid tiles are transparent
Avatar
Well when you first render the map on OnMapLoad, it will be uninitialized
Avatar
we dont require it here anymore
Avatar
But I think it won't display anything until the 3rd snapshot
Avatar
@deen you can put it into ddnet_scripts if you haven't already
Avatar
it will build all tiles
Avatar
@deen just tell me where the new position of the script is so I can put a link there
Avatar
We seem to have an issue capturing the mouse
10:20
on macOS mouse clicks won't register until I switch to another app and back
Avatar
does ddrace have a front layer too?
10:21
not ddnet
Avatar
are the tiles different?
Avatar
Not sure, though is ddrace still relevant? I don't think anyone hosts it anymore
Avatar
ok then i build it up like ddnet
Avatar
At least http://ddrace.info/ points to us 😄
Avatar
well, I own the domain ^^
Avatar
@Learath2 any idea about getting stable builds for steam_api.dll?
Avatar
997a01c Add server-side autoupdater scripts - def-
Avatar
you could apply diffocsope to two subsequent builds
Avatar
478fed3 Add server-side autoupdater scripts - def-
Avatar
@heinrich5991 what's up with that demo gif on diffoscope website? https://diffoscope.org/ I just watched 2 minutes of progress bars until I got bored 😄
10:33
idk
10:34
I'll write an email
Avatar
The magic scripts that make DDNet run. Contribute to ddnet/ddnet-scripts development by creating an account on GitHub.
Avatar
@deen have you put it into diffoscope yet?
11:26
diffoscope file1 file2
Avatar
@heinrich5991 Some bytes are different, but doesn't tell me much
Avatar
can you paste the diff somewhere?
Avatar
Seems like all it does is hexdump and then diff
Avatar
sometimes it shows more intelligent stuff
11:38
like what headers differ
Avatar
whole diff?
Avatar
can you also post the binaries please?
11:40
11:41
Oh, are those just timestamps maybe?
Avatar
the first one is a checksum
11:42
so fixing the second one probably suffices ^^
11:44
the second one is in the beginning of the .edata section
11:45
hmm. why does the checksum even differ? does the checksum cover more than the PE header itself?
11:46
4 4 Time/Date Stamp The time and date that the export data was created.
Avatar
I assume it should be over the entire file
11:46
ha, my guess was right!
Avatar
yes, the second one is a timestamp
Avatar
so we just need to tell the linker to use a fixed timestamp and all good I guess
Avatar
yes, sth like that
11:46
what compiler is it? mingw?
11:46
yes
Avatar
-Xlinker --no-insert-timestamp
11:47
from your link
11:47
This works for executables, but DLLs builts like this cause problems with bound executables: updating a DLL without changing its timestamp causes bound executables to crash.
11:47
hmm
Avatar
So we should set the timestamp, but only update it from the old value when something actually changed. That seems hard to do
Avatar
let's see what bug it causes and whether it applies to us
11:49
😄
11:50
@deen seems it's only important for a feature called "binding"
11:50
ctrl-f binding
11:50
we don't do that, so null timestamps should™ be fine
Avatar
sounds good
11:51
do you want to make a PR?
Avatar
oh, this affects our normal build
11:51
yes
Avatar
Mac does the same btw, but we don't have an autoupdater there
Avatar
can you give me two builds for that one?
Avatar
Apparently in our case there are no timestamps, interesting
11:59
so nothing to fix on mac
Avatar
4680b2a Update bosnian.txt - MikiGamer e0e6100 Merge #2782 - bors[bot]
Avatar
@deen fixed
Avatar
68b1df0 Don't insert timestamps into PEs with MinGW - heinrich5991 21a51ff Merge #2783 - bors[bot]
12:21
b5efed1 Fix #2476 - Learath2 0881ed8 Fix Freetype warning - def- 4825d64 Add sv_rcon_vote - trafilaw 6d5d41b Add vote mute - trafilaw 52796fd Add rules - trafilaw fb4603d Do not spam team messages on solo runs - ChillerDragon 0b0e91c Update readme - def-
12:23
Avatar
what the purpose of masking entities ? Its just for graphics?
Avatar
in the editor?
12:32
to prevent mappers from adding entities that don't exist yet, but might later be added
Avatar
ingame
Avatar
probably peformance
Avatar
I am missing why we can not ignore the 'mask_entities' flag when loading not entities\DDNet.png (edited)
12:37
or we build like layot for any image for future? Probably I need to read what verticies are to understand it, @Deleted User ? (edited)
Avatar
why does the editor not remove speedups instead sets their force to zero?
12:46
@BannZay dunno what u mean but the flag is too late
Avatar
why we do initialize these indicies for everymap instead of every server type?
12:47
like keep initialized vertices for fng for future (edited)
Avatar
@BannZay the purpose of masking entities ingame is to not show entities that don't have an effect
Avatar
hmh, to fix DDNet.png?
Avatar
im finished except that i need a force restriction for speedups, because else they are saved, so no mod compability for speedup layers, until the editor is fixed xD
Avatar
why its on the image then?
Avatar
who programms the editor here?
Avatar
nobody and everyone 🙂
Avatar
there were not that many changes to the editor I think
12:49
@Deleted User but now that you mention it, you can take it over as well. seems like there are no more graphics problems left 😄
Avatar
famous last words
12:49
no graphics problems left
Avatar
dejavu
12:52
and tune zone also working forgot it here
Avatar
@Deleted User are vertices will be rebuilded in case when I left one fng server and connect another? Is there any sense to do it?
Avatar
it will rebuild the entities
12:53
since only entity rendering is the problem
12:53
not every tile layer
12:54
the entities textures to be precise
12:55
@deen you mean rendering the editor with texture arrays?
Avatar
nah, just improving it in general
Avatar
xD
12:56
its soo messy, probs easy to reprogram it, but don't really want to, way too much work xD
12:57
anyway, should i restrict speedups with force zero, else they are displayed, but it removes the possibilties for other mods to use speedup layers with speedups with force 0 xD
Avatar
no other mod uses them I guess ^^
Avatar
I did a bit with the editor, but instead started spending time on editor2 over in 0.7
12:58
Looks like a much cleaner base to work with
Avatar
oh yeah, i saw it too, nice additions
Avatar
Native support for undo-redo is nice
13:01
I recently watched a talk by a guy working on photoshop, their approach to undo-redo kinda shocked me 😄
Avatar
what do they do?
Avatar
Instead of saving the changes, they just say fuck it and save entire snapshots on every save
13:02
every change*
Avatar
ez ram
Avatar
do they do CoW?
Avatar
I thought this was insane, because people edit massive files with photoshop but they have a cute optimization
13:02
Yes CoW
13:03
https://www.youtube.com/watch?v=QGcVXgEVMJg Interesting talk and an interesting approach to polymorphism all in all
Avatar
what use case do they have for polymorphism?
Avatar
In photoshop you have multiple objects within a document that need to be drawn
13:06
That is the example he was using
13:07
I wonder how well it will age as compilers get better and better at devirtualization
13:08
The main arguments he gives against runtime polymorphism is that calls that go through the vtable aren't cheap
Avatar
yea, I thought you'd do ecs or whatever they call it nowadays
Avatar
What he creates throughout the talk is quite similar to an ecs
Avatar
using existing work might have been nice for the new mapeditor
13:12
I found the same project as last time when I thought about it: https://www.mapeditor.org/
A flexible level editor
Avatar
i've no plan if i destroyed compability to blockworlds
13:15
or ddrace
13:15
(not ddnet)
13:15
i dunno what layers they have/had
13:16
can we remove "-Winconsistent-missing-override"
13:17
because i like to use override now, since its safer
Avatar
it's only safer when you use it consistently, right?
Avatar
well i use it for future implemented functions
13:20
so its already safer there
13:20
you cannot have NULL virtual functions for these
Avatar
future implemented functions?
Avatar
functions i implement now or in future
13:21
like that dont exist yet
Avatar
NULL virtual functions?
Avatar
from base class
Avatar
You mean pure virtual functions or sth else?
Avatar
yes
Avatar
About editor: couldn't the "editor2" from vanilla be adapted?
Avatar
yes, would be nice
13:26
but i fixed the bug anyway
Avatar
editor2 has muuuch work to be ready
13:27
It's LordSk's project and he isn't working much on it. I did a handful of PRs that kept him active but I don't think there was any activity after I had to take a break
13:28
If we want to adopt it for ddnet we'll need to adopt the development aswell
Avatar
I thought it's finished already :c
Avatar
@heinrich5991 how would we do envelopes and stuff if we use a tile editor like the one you linked?
Avatar
I thought about extending it, but true, envelopes are a huge features that is missing from it
Avatar
Could someone do me a build for Win x64 with https://github.com/ddnet/ddnet/pull/2730 added in?
Supports hotkeys to enter them, escape to go back. Start menu can be disabled in settings. Play goes to the last tab you had open between Internet, LAN, DDNet, KoG. Still missing: News picture Mor...
yes 1
Avatar
DDraceNetwork, a cooperative racing mod of Teeworlds - ddnet/ddnet
13:34
top right artifacts
Avatar
i give 100€ to whoever codes tees as tiles
14:10
and gets it into ddnet
Avatar
respectable bounty 👍
Avatar
i.want.it
14:11
i need it
Avatar
What will you do with a tee tile? 😄
Avatar
think about it and you will have many ideas. you could put a boat part in the middle of a solomap. you could make easy to use dummy maps.
14:13
if they react like normal tees to tele/switch etc. and reset for every team
Avatar
how does that work for team 0?
Avatar
i dont think it has a lot of use in team 0
Avatar
Spawning the tees in isn't much trouble
14:14
The tees doing anything at all is a bit of a trouble
Avatar
what do you mean. they dont need to move by themselfes or anything
Avatar
I'm guessing you'd want them hooking up for a dummy part e.g.
Avatar
they somehow need to do something useful for team 0, or it would only be possible on solo maps
Avatar
I like the idea with tee`s does nothing
Avatar
well i guess on team 0 you can have them in little areas where a group cant steal them away from another one
14:21
either way it would add bounce, hook and the tee as itself for pressing buttons for example. you could use them in places without having a real player to go there
14:21
also for dummy maps you wouldnt need to get your dummy out of every part. you can map it so you can just leave them
Avatar
I though the spawned tee should be respawned back on entity touched again. It should be in switch layer to have multiple entries for the same tee
14:22
so you can have few of them if you want to
Avatar
i would think like a new spawn tile that spawns one tee where it is and no more
Avatar
@heinrich5991 do you have any idea why nginx might reply to a Client Hello with Bad Request?
14:23
Ah figured it out lol
Avatar
this way it is not possible to replay the part if you lost your dummy
Avatar
what was it?
Avatar
ah true @BannZay but it would be easier to map
Avatar
It was a http server listening on 443
Avatar
oh
Avatar
So the TLS Hello didn't make any sense to it 😄
Avatar
as long as just one respawn is enough for mappers dreams 🙂
Avatar
they should respawn anyway at kill (at least for solo and dummy mod)
Avatar
I would provide any support if need as I like this feature very much
14:26
I dont like connecting my dummy every time I connect dummy server, joining the team etc etc
Avatar
add some to the bounty then 😄
Avatar
Really? Huh
14:27
I'll add it I guess
Avatar
as well the problem with making your dummy deep will be gone
14:27
as well as deep fly
Avatar
yeah true
14:27
and noobs can maybe get into dummy quicker bcs its not so hard to understand
14:28
what about weak strong
14:28
2 kinds of tee or all strong?
Avatar
the main Idea to teleport dummy to entity is to reset level / start next one
14:28
I think about it from mapper side
Avatar
you could do parts that tele them into one single pit but it requires like a 10 tee tower
14:29
not stupid switch door stuff
Avatar
@Learath2 is it possible to make such dummy not to take place on the server? So we can still have 64 real players on the server ?
Avatar
Yeah sure, it's just an entity
Avatar
not with the current code
Avatar
Oh definitely needs some work
Avatar
you could probably manage to only take up one server slot
14:32
if only one dummy is ever in view at the same time
Avatar
that would be shit
Avatar
Yo guys
Avatar
yea, it is defenetely should work with teams. But you can spectate all teams togather as far as I know (edited)
Avatar
Does anyone know how to know when a thread is terminated in C/C++ ?
Avatar
what kind of thread? how did you start it?
Avatar
1 sec
14:34
with pthread_t thread; pthread_create(&thread,NULL,&function,NULL); (edited)
Avatar
hm
14:36
seems like you can only do that by changing variable that your main thread can observe
Avatar
hmm y
14:37
sad
Avatar
what are you trying to do?
Avatar
You mean with the program or with the thread ? (edited)
Avatar
with the thread
Avatar
The function i call with the thread displays squares and count them (edited)
Avatar
do you want to wait for the thread to finish?
14:41
pthread_join can do that
Avatar
Y i saw this, but i dont understand what it does
Avatar
it waits until the thread is done
Avatar
Like, i can know when my thread finish with a condition on it ? (edited)
Avatar
no, it can only wait until it is finished
Avatar
mm ok
14:46
I think ill just use a global var
Avatar
join blocks ur current thread until that thread ends
14:53
you can also check if the thread is joinable without blocking
14:53
and then call join if its true
14:53
pthread_attr_getdetachstate
14:53
The pthread_attr_getdetachstate() returns the detach state attribute of the thread attributes object attr in the buffer pointed to by detachstate.
14:53
@Nagi01 {LAN}
Avatar
ty ill check
14:54
I was watching your github xdd
14:59
Open source is changing the world – one pull request at a time.
14:59
last year i didnt receive the tshirt for some reason rip
Avatar
Its a CTF ?
15:00
it promotes contributing to github repositories
15:00
"Hacktoberfest encourages participation in the open source community, which grows bigger every year. Complete the 2020 challenge and earn a limited edition T-shirt."
Avatar
Ok i see
15:01
it look cool 🙂
Avatar
Trop Petit Pour Toucher Le Ciel 2020-09-08 15:09:22Z
Hello me and my brother like FNG but we cant play in the same server because we have the same IP can you set up that ?
Avatar
@Trop Petit Pour Toucher Le Ciel what server are u trying to play on?
Avatar
Trop Petit Pour Toucher Le Ciel 2020-09-08 15:11:18Z
on all fng
Avatar
if u mean the server at 51.89.23.241:8338 then join the discord for it https://discord.gg/cv5HzE and ask me or a moderator when u wanna play with ur brother
15:12
and we can allow 2/ip
Avatar
Trop Petit Pour Toucher Le Ciel 2020-09-08 15:12:09Z
ok
15:12
Thx
Avatar
@noby me too plz
Avatar
#metoo
Avatar
yes my dog wants to play with me
Avatar
@noby that sounds annoying, why not always allow 2?
Avatar
people abuse dummy
15:34
they either ban themselves with dummy hammer / use it to boost kd and other stats / use two tees to play (edited)
Avatar
ok, that's annoying too
15:37
@deen if theres a more elegant solution in-client to prevent this then itd be cool to see, if not then the best strategy ive found is to just point people to who to ask when they wanna play with people on the same network and leave 1/ip otherwise (edited)
Avatar
hello, the elegant solution is called IPv6
Avatar
@noby would it help if we sent an explicit dummy notification?
Avatar
people could still open two clients to cheat stats but yes i think it would still be helpful
15:40
for the other fng servers+other mods that want to prevent dummy
15:41
not even considering my server it sounds like a good idea
Avatar
also bit irrelevant to the dummy issue but ipv6 still doesnt fix the thing where people can have two monitors and spec themselves/the enemy with another client and zoomout (edited)
Avatar
Of course not. With ipv6 your ISP often gives you a whole range, so even your ip limit won't help
16:01
need ipv6 detection lol
Avatar
and even if it fixed it, someone could just make a hotspot with their phone
Avatar
i actually never see any ipv6 addresses in f2 status, not sure if my vps even supports it, but i guess its translated to (different?) ipv4 addresses
16:02
and yes right thats the problem, this or use an undetected vpn
Avatar
the problem is that the master servers don't work with ipv6 i think
16:03
so no one even knows the ipv6 address of your server
Avatar
i just personaly saw way more people using 2/ip to abuse than using it to play with people irl so i decided to make it something that a mod should oversee
16:03
hmm
16:04
if the vps doesnt support ipv6 and someone tries to connect to it with ipv6 will it show a ipv4 address for them
Avatar
only if your host does some fancy tunneling, but i doubt that
Avatar
if they dont would they be unable to connect
Avatar
if it doesn't support ipv6 it has no ipv6 address so no one can connect on ipv6
16:05
i guess thats a problem i very well may not even know about
16:05
if they cant connect to tell me or find the discord link (edited)
Avatar
if you really want, you can have multiple addresses even with IPv4
Avatar
oh yeah u can have the spec-scanner thing and have whole map zooz :O
Avatar
right xd, people use dummy copy and spec themselves and play zoomed out in spec
16:06
or two monitors for the same purpose
16:06
or just kill their dummy for free multis (edited)
Avatar
but the problem is that everything is heavily NATed today - a lot of people can share single IP, so allowing only unique IPs on server is quite dangerous, isn't it?
16:07
IPv4 must die 😄
Avatar
ive been hosting fng server for about three years and only once ive ran into the problem where two different players share the same ip
16:07
i was rlly surprised when it happened
16:07
and so were they
16:08
im not sure if its silently happening more and i just dont know but somehow doubt it
Avatar
maybe with larger player base it would become more noticeable problem
Avatar
probably yeah
16:08
one smallish server is less likely
16:09
well if u allow 1/ip and then include a discord link in the motd
16:09
the 1 who can connect can go there to ask for help if they want 2?
16:09
or just ask on server
Avatar
not everyone is brave enough to ask such thing, you know 😄
Avatar
i guess but i think putting link in the motd should imply that we want anyone to join
16:10
hope so at least lol
Avatar
Sure, some people overdo the NATting, like Qatar used to have a single IP address for the entire country: https://techcrunch.com/2007/01/01/wikipedia-bans-qatar/
Qatar, home to nearly a million people, has been blocked from editing any entry on Wikipedia “due to a large volume of spam and vandalism.” Apparently Qatar has a single ISP, Qtel, with a single IP address shared by the entire country. Wikipedia has blocked that IP address for...
Avatar
wtf hahahah
Avatar
that's not even possible without breaking so many things 😄
16:11
there are only 65536 ports available
Avatar
this makes me wonder about all the large rangebans ive done
16:11
🤨
16:11
if one ipv4 address can be a whole country
troll 2
Avatar
it's so evil 😄
Avatar
@Deleted User cp 25 has this little bug on it (size 100)
Avatar
strange, i dont have it
16:28
@Ravie r u sure its size 100?
16:28
for me it fills the space much more
Avatar
yeah it says 100
Avatar
is your libfreetype.dll up to date?
16:34
did you change the font?
16:34
something must be different
Avatar
I'm on the previous version cause new rendering is ugly
Avatar
XDDDDDDDDDDDDDD
16:35
i told ya change the shaders
16:35
if u want higher mipmap so despretly
Avatar
I'm too stupid for that
Avatar
in data/shader/tile.frag replace vec4 TexColor = texture(gTextureSampler, TexCoord.xyz); with vec4 TexColor = textureLod(gTextureSampler, TexCoord.xyz, 0); if that won't help then i dunno xd
16:37
might only work with opengl 3.3 tho
Avatar
oh yeah it works, thanks
16:40
I can't live without the clear textures
Avatar
thanks for saying my algorithm was better than from amd or nvidia xD
Avatar
well it's not blurry as heck so, yeah
16:57
I am trying to debug this issue: https://github.com/ddnet/ddnet/issues/2695 , and find a really weird thing...
Might be related to websockets update, I'm on Arch Linux using libwebsockets 4.0.20-3 Using https://teewebs.net/, compiled server with -DWEBSOCKETS=ON, getting this on the server: [2020-08-...
Avatar
why (0 + 0 + 1 ) % 128 = 2
17:11
ah, i find the reason... the usage of macro always connfused me (edited)
17:11
17:16
but it is actually a bug
Avatar
is the web renderer broken for:? https://ddnet.tw/mappreview/?map=Ice+Cave+2
Avatar
@Ravie wait wait, what is the difference? you mean the less-blurry thing, that's why you sit on older?
Avatar
depending on the driver and resolution you get different mipmaps, in old renderer it used a different calculation for that, so full hd screens probs got a higher mipmap
Avatar
*sweats in 2560x1440*
Avatar
1920x1080 and tiles were visibly blurry
Avatar
I'm afraid I didn't even notice difference since sitting on entities xd
Avatar
maybe cause on this resolution tiles aren't scaled close to 32x32 or 64x64
Avatar
@Deleted User and the higher mipmap the better?
17:42
and cause my default zoom is 7, not 10 xD
Avatar
i dunno if you can rate it in good or bad
17:46
it might look less sharp, but normally the quality is better bcs the mipmaps are generated with a computational more expensive algorithm
17:46
bcs they only build once not the whole time
17:46
e.g. zooming out probs looks better in the newest renderer compared to old renderer opengl 3.3
Avatar
Video tools have god awful commandline interfaces except for ffmpeg. Makes one wonder how all the pirates don't go absolutely insane messing around with these while encoding their releases
Avatar
ger2 kicked me out 😦
18:32
maybe they use ffmpeg?
Avatar
ᶰ°Konͧsti 2020-09-08 18:34:57Z
feelsbadman
Avatar
Eh there are many things ffmpeg doesn't do
Avatar
enlighten me 🙂
19:03
I was under the impression it's a swiss army kniw
19:03
kinfe
19:03
knife
19:03
naifu
Avatar
e.g. it can't extract chapter information from m2ts
Avatar
Fng ddnet ||https://discord.gg/cv5HzE
19:07
justatest
Avatar
Major respect to the people who actually release all the pirate movies, god it takes a decade to encode things
Avatar
Can't update to version 14.7.1 of the non-steam client... Also can't unzip the version from the website without the Windows defender alarm 🤔
Avatar
@Wollwolke you can report this as a false positive to Windows Defender
Avatar
interestingly, the steam version does not result in the warning
Avatar
Not sure what else we can do about that
Avatar
Surpsisingly, for me the version from website didn't show any viruses, neither on unzip nor on full scan
Avatar
maybe win32 instead of win64?
20:31
antivirus heuristics are really annoying
Avatar
I wonder how they come up with these signatures
Avatar
did we always have these antivirus warning?
Avatar
We get them every once in a while on some updates
Avatar
ok, i remember i got them first time using glew in a different project, bcs glew dynamically loads functions from the opengl.dll 😄
20:36
dunno if windows defender is still that bad
20:39
ok cant find anything, so could also be unrelated
Avatar
ERROR: The server unsuccessfully validated your authorization challenge(s). Cannot continue. thanks
20:48
heartw feelsamazingman
Avatar
lol ger1 is in duesseldorf, since when 😄
20:49
finally a server with ping 8 xD
Avatar
I have no idea which ger server is where/what anymore 😄
20:51
They all moved around
Avatar
@Soreu best
heartw 1
Avatar
@deen checked both
Avatar
https://www.beyondallreason.info/ a open source rts kinda like total anihilation
Beyond All Reason (BAR) is thé ultimate Realtime Strategy Game (RTS) and we think you are going to enjoy the hell out of it. It's the official succesor to the Balanced Annihilation Mod for Spring RTS.
21:11
whats this mean
Avatar
amazing explanation
21:12
u should become a teacher
Avatar
@deen @Kingston's antivirus also detected DDNet & removed his files ._.
Avatar
maybe cuz ddnet got more famous
Avatar
@Wollwolke can you tell me your defender definition version?
Avatar
Sure: Security intelligence version 1.323.757.0
Avatar
Huh, it's not threat definition version for you?
Avatar
nope
21:39
it says security intelligence version
Avatar
Uh, that's odd
21:40
Can you show me a screenshot? I don't have access to windows right now so I can't check :/
Avatar
Though, I guess it's the same thing
Avatar
for me it's ~security analysis version (translated from PL) 1.323.764.0
21:41
4h of difference between our versions
Avatar
and you have no problems?
Avatar
I submitted a false detection report
Avatar
yes or no
21:41
nouis
Avatar
no, I don't have problems
Avatar
it didn't detect anything
21:41
>.<
21:42
Avatar
Microsoft is really one big meme
Avatar
newer version tho
Avatar
even though he checked for update 2 hours after my version was released, it didn't detect update for him xD
Avatar
my version is: Linux arch 5.8.7-arch1-1 #1 SMP PREEMPT Sat, 05 Sep 2020 12:31:32 +0000 x86_64 GNU/Linux
Avatar
Soreu has 1.323.764.0, wollwolke has 1.323.757.0, the online scanner they use to scan submissions has 1.323.775.0
Avatar
which part of it called the bot lol
Avatar
the hash 1 maybe
Avatar
While the file was getting scanned by the online scanner they changed the online scanner to 1.323.788.0
21:44
just got update to 1.323.780.0
Avatar
Got a new version: 1.323.780.0: no problems there... sorry to bother you all
Avatar
Now they will send me a mail asking why I bother them for problem they already fixed
Avatar
xD
Avatar
🤡 company
Avatar
@Kingston @jason54 update your antivirus' definition versions
Avatar
It takes so long to get a sample scanned, if you want to get it faster you need "Premier support"
Avatar
Maybe we should get a code signing cert, I bet they treat signed executables less harshly and it's only a one time payment
Avatar
...and the price is?
Avatar
one time payment
21:52
per year
troll 6
21:52
150€
justatest 3
👀 2
nouis 2
Avatar
damn monopolies 😦
21:53
The Open Source Code Signing certificate is meant for software developers and publishers who work under the Open Source licence.Code Signing certificates enable software develop
21:54
Seems cheaper here
Avatar
Deleting the Microsoft SmartScreen Filter® system message
21:54
no
21:54
Certificate cross-certified by Microsoft
21:54
no
Avatar
maybe someone from ddnet team injected some ransom
Avatar
but for 400$ per year it gets ignored
Avatar
400$ per year to make an undetectable trojan? thonkery
Avatar
xD
Avatar
you'll get 400$ pretty soon with your trojan, doesn't even matter that you get detected
Avatar
ransomware is your best bet, trojans are so 2007
Avatar
trojan delivery method, ransomware payload
Avatar
Does Microsoft bs trigger on steam version tho?
Avatar
no, and the new version of the threat definitions seems to fix it
Avatar
steam and non-steam might actually be the same binary
21:59
anyone want to check? ^^
Avatar
I doubt that, I think we added something specific to steam
Avatar
On Steam we disabled autoupdater
22:02
and to be fair, autoupdaters are basically the same as malware since they load random code from the internet and execute it
Avatar
Is web browser a malmware? 😄 (edited)
Avatar
no, but enjoy adware
22:04
except google chrome
Avatar
autoupdaters are great attack vectors actually
22:05
just need to compromise one badly secured autoupdate server
Avatar
which probably needs at least control over the network
22:07
so unsecured wifi somewhere
Avatar
Arent website suffer from the same problem?
Avatar
or someone misplacing a private key
Avatar
Well mitm attack is also possible so I see why certificate is important
Avatar
It might be a good idea to sign our releases actually now that I think about it
Avatar
In web it's tls
Avatar
@Learath2 even with a private key, you still need contrl over the network
Avatar
A sha sum of every file, which we can sign with a key, so if someone compromises ddnet.tw they can't deploy ransomware
22:10
@hein?
22:10
wtf discord, anyway, @heinrich5991 say I leak my private key accidentally, someone could use that to deploy an update on ddnet.tw
22:11
don't need control over the network if you can compromise the source
Avatar
yes, true
22:11
but you need one more thing
Avatar
in web it's also CORS exploits
Avatar
But you can fool server with disabled cors just by modifying request headers?
Avatar
I don't think CORS is relevant here, there is no cross origin request being done to the update server, nor would such a request ever expose private information as the update server only hosts public information
Avatar
mitm we already mitigate with having TLS
22:15
If we also start signing the things we host, compromising the source wouldn't be a concern either
Avatar
would have to make sure to not lose the signing keys
Avatar
A smartcard is the only sane choice for that
Avatar
can get lost, get broken
22:16
need a backup
Avatar
2 smartcards?
Avatar
backup smartcard that i
22:16
s
22:16
yes
Avatar
maybe 3, we can all keep one and feel cool 😄
😄 1
Avatar
the question is: what is likelier
Avatar
A split custody setup where 2 out of 3 signing keys are required to do a release, like in the movies
Avatar
we mess something up and lose the signing keys
22:17
or we mess something up and someone ships malware
Avatar
Losing signing keys isn't the end, we can always just say in news that they should get a new copy 😄
Avatar
😄
22:19
that also demonstrates the security of them? ^^
22:19
the extra security
Avatar
What are the odds of 2 of us losing keys though?
justatest 1
22:20
I guess an attacker could always say in news that we lost the keys :/
22:20
Lets sign the news too
pepeH 1
Avatar
I guess it could give us some delay
Avatar
I just wanted to feel cool with a smartcard reader 😦
22:21
I need a reason to buy one
Avatar
don't the cool kids have dedicated devices for that?
22:22
yubikey or sth?
Avatar
already have a yubikey, though I use if more for u2f
22:24
@deen I don't think you can check for bans later, won't that allocate a slot for banned people?
Avatar
I didn't try. I hoped they'd get insta-kicked
Avatar
Maybe we can optimize IsBanned instead
22:30
If we only allow ban ranges of proper subnet masks it should be cheaper to check those
22:31
Though we only have a handful of ban ranges if any, that loop should end rather quickly anyway
Avatar
In my case the ban list was empty btw
Avatar
ᶰ°Konͧsti 2020-09-08 22:32:49Z
lifeban Tsin justatest
Avatar
our ban list has very little entries, probably?
Avatar
Can ip ban list be implemented on network stack? Like iptables or something
Avatar
That's a very odd function, the hash looks absolutely massive
Avatar
gameserver bans are for stuff like votes, moderating servers
22:36
having a ban list in the server is nice for displaying error messages
Avatar
ᶰ°Konͧsti 2020-09-08 22:37:04Z
can u actually lose control over DDNet
Avatar
CNetHash aHash[17]; is 136 bytes
Avatar
BTW, why someone ddos servers? Like what's the point of it?
Avatar
dont ask us lol xD
Avatar
I guess that's the reason why I can't connect using my VPN
Avatar
How about storing the ips in a trie instead of a hashmap?
22:42
Or just putting everything in a sorted array and doing binary search?
Avatar
I've seen ip storaging in trees in some devops tool
22:43
It's pretty efficient
Avatar
For the record, nftables and iptables just evaluates each rule one by one, so even a linear search is performant enough
Avatar
I think our list might just be short enough for linear search
Avatar
(and we don't need in order checking like nf/iptables, we can do binary search too)
Avatar
unclear if binsearch is faster
Avatar
it can't possibly be slower, can it?
22:48
atleast in the average case
Avatar
can, misprediction
Avatar
ah the branch predictor, hm
Avatar
can also use simd to check more in parallel
22:51
although I had a bad simd performance story recently
22:52
but I think for this usecase it would be fine
Avatar
Whatever we use, I think this ad-hoc implementation of a hashmap is far from ideal and I'm fairly certain a hashmap isn't even the best thing to use here
22:55
branchless binary search? 😄
Avatar
at like 16 bans
22:56
you can probably check them in what
22:56
16 instructions?
22:56
if you lay them out nicely
Avatar
How? The best I can think of is 32 instructions
22:58
2 * 16 + 2 to make it loop 34 actually
Avatar
load 4 bans into xmm register; load 4 masks into ymm register; and ip, ymm; xmm == ymm (edited)
23:01
+ a branch
23:02
with 256bit registers, you get it down to 16 instructions
Avatar
Ah with simd, yeah I guess
23:07
We could also keep range and normal bans separate. Then it's just and ip, xmm; makesureallcomponentsarenonzero xmm;
23:07
there is probably an instruction for that nowadays 😄
Avatar
How to get into development? I know cpp a bit
Avatar
@Deleted User have you tried compiling ddnet?
Avatar
We have an extensive issue tracker with 100s of issues to choose from 🙂
Avatar
if you need help with compiling, just ask in this chat
Avatar
Not yet
@Deleted User have you tried compiling ddnet?
@heinrich5991
Avatar
once you can compile, you can change something small; if that works, you can take a look at github
23:09
that's what we use for development
Avatar
Ok, but how to know if issue is constructive? Have all of them been reviewed or smth?
Avatar
anyone can suggest changes there
23:09
no
23:09
things that clearly sound like bugs are always okay to fix
23:10
for feature requests, better ask in this channel or on the issue tracker first
Avatar
Okay, I will ask when I get some problems
23:13
Okay, I will ask when I get some problems
Avatar
Did I duplicate the same message?
Avatar
yes
Avatar
Lol, looks like I've immediately got some networking problems
Avatar
757998e Fix some 5:4 rendering in demo menu & recorder menu - def- 7bea697 Add some keyboard shortcuts for demos - def- ca100ba Merge #2781 - bors[bot]
Avatar
@heinrich5991 have a minute?
Avatar
yes
23:47
I don't see a qualifier being discarded anywhere
23:48
Ah, the function itself is const
23:48
gm
Avatar
Follow up question, how best to fix that? I mean I can remove the qualifier, but ::find_binary doesn't really change the data anyway
23:49
it's a defect of c++ and matricks' tl
Avatar
only matricks' tl?
Avatar
the stl implementation of binary_search doesn't have the same issue
Avatar
I meant that it's only an issue of matricks' tl, not of C++
23:51
you could change matricks TL library to be const-aware
Avatar
C++ has a bit of an issue with qualifiers anyway
Avatar
or we could use std::vector instead
23:52
or you cast it away
23:52
it's not even UB
Avatar
As long as you don't actually modify it through that reference 😄
Avatar
not even that is UB
23:54
the only thing that matters is what the actual thing the pointer points to is declared as
23:54
the const on pointers is a guideline for mere mortals
Avatar
How sure are you?
Avatar
pretty
23:54
let's find some references
23:55
I have the following piece of code: void TestFunc(const void * const Var1, const float Var2) { (float)Var1 = Var2; } It looks like I am changing the value of the const object the const pointer
23:55
stackoverflow says I'm right
23:55
Your assignment expression may or may not be undefined behavior. It is permitted to cast away constness if the object actually pointed to is not const.
Avatar
c++11 5.2.11p7 "[Note:Depending on the type of the object, a write operation through the pointer, lvalue or pointer to data member resulting from aconst_cast that casts away a const-qualifier(75) may produce undefined behavior (7.1.6.1).— end note]"
23:58
I guess as long as the actual object it points to isn't const, it's fine
Exported 872 message(s)