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-06-23 00:00:00Z and 2020-06-24 00:00:00Z
Avatar
Pls need some help, i want register a server, i open my ports and i can join, but my friends cant they stuck in download "1 second left" but dont download nothing and they get stuck 4ever :x , some help pls
Avatar
@Ravie Hoped you'd draw something until morning. And damn it looks nice.
Avatar
ooh ye i had that idea before too but im a gfx nobo so i just recolored x_ninja to icy colors
03:08
it made a lot more sense imo
Avatar
why dont you make /spec tee colors optional instead of doing the vote
Avatar
@Learath2 you crash even harder
06:11
a03a22b Fix uninitialized warning on SBufferContainerInfo - edg-l b720737 Merge #2314 - bors[bot]
Avatar
hello i wanted to ask you how to put the accounting with the two version of teeworlds sa it gives me this error (disabling 0.7 compability)
Avatar
@Fran_ can you try hosting the server with a map they already have? what happens? which version of the server do you use?
07:06
@jason54 I'm not sure what you mean with "accounting". there are no accounts in the standard ddnet source
07:20
Avatar
57280fb Store saves client-side in ddnet-saves.txt - def- 0db5c51 Add a simple CSV writer for Python's "excel" csv dialect - heinrich5991 48e8ba6 Use the CSV write to write save codes - heinrich5991 1652d73 Merge #2322 - bors[bot]
Avatar
@jason54 you seem to be missing the wordlist
07:33
Where did you get this copy of the client?
07:33
well the server
Avatar
on the ddnet github
Avatar
huh, wordlist.txt should be in the data folder
07:34
is it not?
Avatar
Can you show me the first couple lines when you launch the server, it should show the what storage paths are added
Avatar
I put that I think I was wrong add_path $USERDIR add_path $CURRENTDIR add_path types/short add_path types/middle add_path types/long add_path types/fastcap add_path types/fastcapnoweapons
Avatar
Well I see no $DATADIR
07:40
You either have to move the wordlist into one of those folders ^
07:40
Or add $DATADIR
Avatar
I just did it doesn't change much
Avatar
Which one did you do?
Avatar
add_path $USERDIR add_path $DATADIR add_path $CURRENTDIR
Avatar
Well it can't find the data directory, it checks in a couple places
Avatar
its little come from when i compiled the version for mysql?
Avatar
little?
Avatar
It can
Avatar
The server looks for the data directory using the mapres folder inside it. It looks for it in the same directory as the binary, or in one of the preset locations
07:46
if you don't have your data dir next to your binary, it won't find it
Avatar
I just understood had to put the data folder thank you for your help
Avatar
@heinrich5991 should we maybe have cmake symlink or copy the data folder into the build directory?
Avatar
we do, but only on CMake rebuild
08:15
I guess I'll add a list of files in the data directory as well
Avatar
This fixes missing files for people recompiling when we add new data files.
08:47
85f772b Fix array as initializer g++ 4.9 error (fixes #2320) - def- e040c28 Merge #2325 - bors[bot]
08:54
47e6c7c Only forbid resizing when videorecorder is recording - def- 83c820d Fix some naming conventions in videorecorder - def- 10ab14d List data files in CMakeLists.txt - heinrich5991 160a7b7 Merge #2279 #2327 - bors[bot]
09:02
557f23b Disable -Wstringop-overflow warning in IntsToStr - def- 366a0ec Merge #2326 - bors[bot]
Avatar
I wonder if there is a way to streamline our rather large cmake file
Avatar
split up or get rid of the file lists?
Avatar
hmm I'm fine with file lists, they don't hurt IMO
Avatar
Meh, I still don't like CGameContext::PreProcessMsg
09:18
It ended up much less streamlined then I hoped
09:19
Every Cl packet needs some processing, even if it didn't change between 0.6 and 0,7
09:21
I can't shake off the feeling that maybe I should have generated more code to auto translate the messages that didn't change
09:22
Not terribly inefficient if the compiler isn't being dense, but it became a function that wouldn't inline well and causes decently sized copy
Avatar
That concludes all the 0.7 issues I know of
🥳 2
Avatar
5293f78 Translate the emoticon message - Learath2 339070b Merge #2329 - bors[bot]
Avatar
Btw @deen have you seen any performance issues on 0.7?
Avatar
you mean on the servers caused by sixup?
Avatar
@Learath2 why do we have to translate the emoticon msg?
10:01
it should work the same
Avatar
CPU load looks totally normal
Avatar
@Learath2 for emoticons we only need the MsgID being translated, but that is already like for all packets
10:04
you only need to translate messages if they differ, like cl_say or cl_spectatormode
10:05
But emoticon is the same for both, like cl_kill
Avatar
(of course the ID always gets translated)
10:15
BTW: @Learath2 can you show me where, or more, HOW the functions for translating IDs are generated?
Avatar
The way I set up PreProcessMsg means I need to translate by hand, I guess being explicit about the message being passed through is nice in a way, but it's a copy that's not completely needed
10:18
@fokkonaut https://github.com/ddnet/ddnet/blob/master/datasrc/crosscompile.py this is the part that reads both protocols, finds matching messages and generates the mapping
Avatar
wow thats smart
Avatar
I still to this day don't know how @deen managed to get both protocols included without conflict, but if you manage that part, it's simple
Avatar
@Learath2 yea thats the part i struggle, can you give me an example of how to just include the ddnet protocol into 0.7?
10:20
Oh just the ddnet protocol
10:20
Well that's simple, just copy over the entire ddnet datasrc directory into a subdirectory of datasrc
10:21
then you just need to call compile.py to generate the protocol
Avatar
i mean plus self compiling
10:21
how you did it
Avatar
self compiling?
Avatar
I want to do it the way you did it, but swapped of course
Avatar
Getting the ddnet protocol included is trivial, getting both protocols included in one python script is what idk
10:22
python modules work in mysterious ways
10:25
generate_maps didn't work in that commit, but the inclusion of the 0.7 protocol worked fine
Avatar
ok, thanks
Avatar
I only added L169 and L334 to compile.py to put it in a namespace, and modified L167 to include the new generated file
Avatar
Thanks!!
Avatar
@fokkonaut you're adding sevendown in ddnet7? 😄
Avatar
No, I have Sevendown in my mod already
10:31
But I want to clean it up
Avatar
a little bit
Avatar
feels like we have so much duplication
10:31
yes
Avatar
everyone is reimplementing the same features
10:32
But well, I had it before ddnet did it, also my mod is on 0.7
10:32
so that was neccessary anyways
Avatar
So we could've switched ddnet to your mod?
10:32
or are there 0.6 ddnet features missing
10:33
now it's too late since Learath2 reimplemented it anyway
Avatar
Eh, yes that would have been possible
10:33
But ddnet6 is better i think (?)
10:34
because my mod is just ddnet7 + my mod, its based on ddnet
Avatar
I wonder what we will do with tw 0.8
Avatar
get an exponential explosion
10:36
with some 0.8 mods with support for 0.7 but not 0.6, some 0.6 with support for 0.7 and 0.8 and all possible other combinations
Avatar
If I hadn't failed in keeping this nice and clean, we could have supported all the protocols
Avatar
No need to be so negative
10:41
I think it's a huge step forwards to have a single DDNet server where 0.6 and 0.7 players can play together
10:42
@fokkonaut you also have 128 player support? Is it something we could add in DDNet?
Avatar
We could, but with 0.7 not having info in snaps its gay
10:43
laggy
10:43
we need to improve the algorithm
Avatar
he's been having performance issues with it iirc, if we do migrate, we should get some better collision and stuff
10:43
chunking the map up so we don't have to iterate all entities would go a huge way
Avatar
ah, i see
10:44
thanks for the info
Avatar
We could probably go with n players if we do optimise a bit
Avatar
learath
Avatar
The int64 flag storage can be made into a std::bitset
10:47
Players could fit in a vector
Avatar
the problem is we have 0.7 support now
10:47
so we need to sent the connect and disconnect packets each time we change the map
10:47
it doesnt get updated in the snaps anymore
Avatar
change the map? are you sure about that?
Avatar
change player map*
10:48
the Idmap
Avatar
ah that, we can work with that
10:48
an algorithm that more aggressively doesn't move players could help
Avatar
I made one
10:49
But that one is not good if > 63 player are inside of your FOV
10:49
then they dont update to the very closest
10:49
but if < 63 are in ur FOV it works fine
10:49
guess that also breaks with /showall
10:49
if i think about it
Avatar
we can work with bounding volumes
Avatar
every tee would have a bounding radius around it that's larger then the actual FOV, unless the players fov moves out of the bounding radius, we don't calculate the map again
10:51
hm, but other tees moving in and out of the fov would be an issue than
10:51
then*
Avatar
56c6841 Add steam release in ddnet-release.sh - def-
Avatar
I'll go bake a cheesecake and think about it more, I'm sure we can come up with something
Avatar
Happy baking
Avatar
Wait, do we actually need the disconnect and connect messages? We could just mess with the info, the client doesn't need to know
Avatar
No, how?
10:56
You cant change the info on 0.7
10:56
You are forced to send SvClientDrop and then SvClientInfo with other information for the same ID
Avatar
Thought we had a namechange message too along with the skinchange one
Avatar
Same faked ID*
Avatar
turns out we don't
Avatar
Nope, we dont
Avatar
I wonder what about the ability to change info ingame offended them so much that they broke it and didn't reimplement it
Avatar
Its just annoying :(
10:58
Because of that we cant change our own name on a Server for your local tee
10:59
It stays the same because you cant send clientdrop to your client when ur online
10:59
Only info for other players can be updated
Avatar
Oh I know a 0.7 issue
11:04
@fokkonaut can you create it? I don't drop and connect players that changed name, that'll be an issue
Avatar
Oh true
11:05
I will create it
11:05
Btw
11:05
Do you use the fak idmap for 0.7?
11:06
Do you send skinchanges?
Avatar
no idmap
11:06
yes skinchanges
Avatar
We need to send Sv_ClientDrop and then Sv_ClientInfo with the same ID but updated name/clan/countryflag. (Skins have a skinchange Netmsg)
Avatar
@heinrich5991 I have the map and all run "good" i see my server in master server but i have two common error : Stuck in download or Connecting.. , but both stuck in that process, i have a old version of the server 0.6
11:26
I can join in localhost to my server and work all fine but in multiplayer dont work :/
Avatar
@fokkonaut @Learath2 can you tell me how you determined that the players out of the snap are the cuase for performance issues?
12:06
the snap deltas also contain information like "this player left" and "that player joined"
12:06
in 0.6
Avatar
So many calculations
Avatar
that's also in 0.6, the snap diffing algorithm has to check which player names changed etc.
Avatar
no, i mean the algorithm for the player id map
12:07
in GameWorld
12:07
Thats very inefficient for 128 players
Avatar
what does that have to do with the player names being in/out of the snap?
Avatar
Oh, you mean that
Avatar
you keep mentioning it
Avatar
Well, the biggest issue is that we cant change info
12:08
Without sending ALL data again
12:08
(disconnect, then connect with only 1 value changed)
Avatar
ah
12:09
and that happens? that the player data only changes slightly?
Avatar
Yes, of course
12:09
the clientinfo packet contains every information about the tee
12:09
And then we have skinupdates
12:09
which contains all skin values
12:09
But no namechange or info change in general
12:10
In the snaps we could handle a namechange very simple, but now we need to send disconnect packets and then again connect with a new name
12:10
And that to everyone except yourself
Avatar
ah, but for 128 player support, you need to change player name, clan, skin etc. anyway, right?
12:10
a lot
Avatar
but also in the snap-based version, right?
Avatar
so the complaint is more about mods where you want to e.g. solely change a player's name
Avatar
i guess
12:11
but in general
12:12
mods arent so free anymore
12:12
you also cant change your local tee's info
12:12
(not for yourself, only others see the change)
Avatar
yea, that's annoying
Avatar
also you cant change client id of the local tee
12:13
which is why timeout prot doent work in 0.7
12:13
(in our curret ddnet6 with bridge
12:13
)
Avatar
yes
Avatar
@deen was there a reason you set up timeout protection this way? After @fokkonaut said why do we change the ID, I started wondering whether we could instead assign the old state to the new id, thus it'd work in 0.7 without client modification
Avatar
i just tried to make it work, don't really remember the details tbh
12:29
you could switch it around, as long as it still works fine
Avatar
Well
12:29
we dont even have to do that
12:29
if we do fake ids for 0.7
12:30
Nah wait
12:30
Then dummies get fucked up if we dont do extra work for them like i did in my mod
Avatar
Well dummies are bot vanilla 0.7
12:37
We can fix custom clients however we like
12:37
.s/bot/not
Avatar
s\/bot/not
12:38
to not trigger it
Avatar
irc never forgets
12:38
s/bot/not
Avatar
s/a/bn
Avatar
Ah I see
12:39
Whoever implemented this fake sed, is the laziest engineer alive
12:39
I couldn't possibly go to sleep knowing I left it like this
Avatar
5bde4fb Also build SDL2 for Linux - def-
12:56
831c17c Add Linux SDL2 static libs - def-
12:56
[ddnet/ddnet-libs] New branch created: pr-linux-sdl2
13:27
I guess we should have a way to say when we want to build against the static sdl2? Or we just ship SDL2 for the ddnet.tw releases as well. I'd be fine with the latter, but it adds a few MB probably.
Avatar
@Learath2 about showing the players in /spec, do you mean that showothers transparency and spec transparency should be separate settings?
14:45
unlike how it'
14:45
s coded right now
Avatar
I think spec shouldnt have transparency by default
14:49
So that when you have someone with the spec skin and transparency you know immediately thats just a tee in a different team spec'd
Avatar
I'd honestly be for that transparency, so you can set how much you actually care to see others, same as is with showing others in general, but would really like to see those two things separated as I don't want to see other teams while would love to see ppl in spec because of playing a lot of gores
14:51
maybe it's just me
Avatar
Well how would you distinguish between a tee in spec in another team vs yours?
Avatar
That's one of the scenarios I didn't think about
14:54
just the nick color ain't much of helpful
14:54
but well, how about just not showing /spec from other teams until you... pause to look at them? idk
Avatar
just don't show them (edited)
Avatar
@louis Tip: try not to edit messages in this channel. They are sent twice to IRC then.
Avatar
I wouldnt show them at all but there are still people who play with /showothers for one reason or the other
Avatar
Well then, show players in /spec only from same team unless 1. you /spec or /pause 2. you enabled showothers and in both cases, show all /spec players in same way, keeping the colored nicks. Eventually... the spec alpha could be % of showothers alpha, so that spec'd from other teams are less visible :F
15:02
and yes, it kind of gets overcomplicated
Avatar
Is the alpha for the specd tees really necessary?
Avatar
Without it the answer is trivial
15:03
Only if it's actually required should we look for solutions
Avatar
if I could test the /spec on KoG that'd be easier, as there is a lot more players in spec than on DDNet servers
15:03
and the only version that I got and that works on KoG servers shows just semi-transparent tees instead of the x_spec skin :f
15:05
@qshar how long till you add that ddnet char or whatever was needed to KoG servers? ^^'
Avatar
It should be trivial if he has the extended netobj patch in
15:06
Even if not heinrich's patches are always surprisingly clean
Avatar
Can you briefly write me what is the topic about and what do you need us to do? If you are talking about some pull request to ddnet, link it pls.
15:11
@Soreu
Avatar
@qshar DDNet is adding visible players in /spec - https://github.com/ddnet/ddnet/pull/2309 but since this: https://github.com/ddnet/ddnet/pull/2309/commits/933ea7cca30849f3d2020fcd008fa77a26c7592e it no longer works same way on DDNet & KoG servers
15:12
@Learath2 Best I could do was testing with double dummy, and on entities, but with no opacity it still looks good to me
15:13
ofc the nicks are becoming a mess then
15:13
so maybe 100% visible x_spec but semit-transparent nick? xd
15:16
This is the relevant part, it'll also get you better prediction
Avatar
ok, thanks. Gonna take a look and apply it today!
Avatar
@qshar it also requires the extended protocol patch though, if you don't have it yet
Avatar
If you implememnted it during last years, then for sure we don't have it
15:20
not sure when you forked kog off
Avatar
ye, I see what you mean. No, we don't have it...
Avatar
This huge looking patch applies suprisingly cleanly 😄
Avatar
This should let us get a quick idea of how many people are actually using the bridge. Also adds the const qualification which could enable more optimization.
15:42
f327e5b Log join type - Learath2 3ba2d3a Merge #2333 - bors[bot]
Avatar
Casual: Novice Normal: Moderate, DDmaX, Solo, Dummy Competitive: Brutal, Insane @Learath2 Want to take it? Or anyone else?
Avatar
github so round today
Avatar
they changing the style
19:35
``` src/engine/server/server.h: In member function ‘void CGameContext::ForceVote(int, bool)’: src/engine/server/server.h:449:57: warning: array subscript -1 is below array bounds of ‘CServer::CClient [64]’ [-Warray-bounds] 449 | bool IsSixup(int ClientID) { return m_aClients[ClientID].m_Sixup; } | ~~~~~~~^ In file included from src/game/server/gamecontext.cpp:12: src/engine/server/server.h:207:10: note: while referencing ‘CServer...
Avatar
Noticed that team state wasn't sent to the client in some cases (when SetForceCharacterNewTeam is called directly), which I think this could happen if a team is unlocked between killing and respawning a player. Also added a CheckTeamFinished for that case.
Avatar
[1:29 AM] ExP: Ghost bug How to do: 1) join the team and lock it; 2) kill and unlock at the same time (bind q "kill; say /unlock"). Now you are in team 0, but for other players you are pretending to be in the team. That means you can't interact with guys in solo and in other teams (only team 0 while you are in t0 too). That also means in Tab you could be in the same team with 2 more guys but they can finish a map without you (cuz you are in t0 despite the fact that Tab says you...
23:37
66917c4 map_convert_07: Check image dimensions for divisibility by 16 - def- c99d791 Add warning in editor for image widths - def- de328c1 Merge #2301 - bors[bot]
Exported 318 message(s)