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-10-13 00:00:00Z and 2020-10-14 00:00:00Z
07:32
nice
Avatar
got annoyed by all the copy paste at some point 😄
Avatar
Didn't check out the teeworlds source while setting the value the last time. teeworlds sets those values to 0.
Avatar
06e9050 Use the same value as vanilla - Patiga a252097 Fix comments - Patiga 05fdd02 Merge #3082 - bors[bot]
Avatar
the bg animation isn't smooth when you switch the tabs Settings -> DDNet
10:37
and please why this terrible sun with wrong sunrays
Avatar
smooth like the camera?
10:38
or the actual animation
10:39
@Lady Saavik we are happy to take better maps, the current ones are from vanilla
Avatar
oh it's so random
Avatar
if u have laggs loading the settings, it might be bcs of loading something from ur harddrive (edited)
Avatar
it's annoying that the sun sometimes moves so far and sometimes not
Avatar
the clouds resetting is the most annoying thing
10:43
as said the maps arent really good, except maybe jungle night
10:43
winter night is ok, rest is not really nice (edited)
Avatar
idk, the bug is gone .-.
10:44
omg it's back
10:44
I know
10:44
now
Avatar
are you using 15.1 btw?
10:45
or master
Avatar
I was in wrong tab in settings
10:45
Avatar
ok
Avatar
I can record it
Avatar
its not like i dont believe it 😄
10:47
but go ahead
Avatar
idk if you understand me
Avatar
ok
Avatar
Tee and Controls have almost the same position in the background xd
Avatar
same with General and Player
10:49
not smooth
Avatar
yeah
Avatar
true
Avatar
probably bcs the distance is too short
Avatar
but it works the other way xd
10:53
when I click on "Run server" and close the black window, why does it still say "Stop server"
Avatar
Internet and Sound have the same position
Avatar
the client doesnt track the server process probably
10:54
u can probably also close the client and it wont stop the server
10:56
setting for example cl_rotation_radius 15
10:56
fixes it, so its very probably the distance
Avatar
@Дядя Женя please don't make a huge PR with everything. Split features into smaller PR's. That has benefits: you get feedback early and will make less work on refactoring; others will get features sooner; subtasks will not stall the development; you will get better motivation seeing something is finished already; we don't risk you quit development at all not making a single PR cause it's "unfinished"
12:16
In my point of view although chat/ messages are technically related but are functionally separate from scores. (edited)
Avatar
Дядя Женя 2020-10-13 12:19:11Z
k, I'll try to make some margin, fix bugs and clear some useless code I made on failed attempts and make a PR
12:23
I was afraid making any pull requests mainly because I don't think it's ok to build release version of client with unfinished feature, which not everyone would like on that stage
12:24
Maybe I should add client config variable for that to be enabled
12:25
Also half of the padding is hardcoded now, 'cause I had no idea how to calculate it properly (edited)
Avatar
There is such thing as WIP-PR or drafts. A way to get a feedback from reviewers before the feature gets to the stage. Though chances are if your feature is only lacks some visual polishing only it still could be merged.
12:26
Sadly I don't know anything about client. But I am sure others ddnet devs will suggest better solutions when reviewing your PR. Also you can direct them to lines in code commenting it in PR by yourself and asking questions there.
12:27
12:28
Before draft pr's were introduced a title containing "WIP" keyword was indicating that this PR is not yet complete but you need a review to get a fresh look or suggestions.
12:28
:s/but/but still
12:29
(I hate this SED edit syntax enforced in this channel)
Avatar
The vanilla code isnt really robust against short distances, hope this fixes almost all edge cases
Avatar
i guess its just the data allocation that is broken, not the commands itself #3068
Avatar
@Deleted User what is broken about data allocation? It didn't look like it required anything specific to me, that's why I didn't touch it
Avatar
yeah i dunno yet either, but OGL 3.3 doesnt work in entities anymore @Learath2
Avatar
@Deleted User You sure it's alloc? entities works completely fine for me on macOS with 3.3
Avatar
i bisect and its 100% this commit
15:14
but im not 100% sure what is causing it
Avatar
I'll try linux
15:17
Well I'll be, for once something works on macOS doesn't on linux
Avatar
xD
Avatar
failed to allocate data for command buffer
Avatar
y<eah
15:20
i think i found the issue
15:20
the current commands rely on the buffer size too much
15:20
i'll write the patch if thats ok for u
15:21
so its not ur impl
15:22
(except that it always adds the alignment)
15:22
which increases the buffer size always
Avatar
Yeah, I came to the same conclusion, it genuinely doesn't seem to fit
15:22
I'll fix the wasted bytes
15:23
Oh, I wonder if that would be enough actually 😄
Avatar
yeah thats the question 😄
Avatar
Yep, it's enough
15:24
But still, is it expected that space is so tight in the data buffer?
Avatar
no, but it will use the full buffer if the alloc fails once
15:24
it just clears it and uses full space
Avatar
That was apparently wasting so many bytes that even the full space wasn't enough
Avatar
yes, its always 16 bytes too much 😄
15:25
so it can never allocate the space it wants
Avatar
Oh I forgot to ask, what should the alignment for data be?
Avatar
well, actually doesnt matter probably, alignof(ptr) should be fine for almost all architectures
15:27
dunno if floats have higher alignments somewhere
15:27
maybe maximum of floats and ptrs xd
15:27
but that would be the same issue for commands
Avatar
AllocData is just byte storage, right?
Avatar
they sometimes contain floats too 😄
15:28
yes, but it should still be aligned correctly
15:28
arm cant read floats that are missaligned
15:28
(so too driver dependend) to make it byte aligned
Avatar
(iirc new arm can do unaligned read/write, it's quite costly though)
Avatar
well for floats it crashes
15:29
i had a bug in arm android some day
15:29
i am speaking about arm32 btw
Avatar
I guess I'll keep max_align_t for data, just to be safe
Avatar
64 is fine 😄
Avatar
ah, arm32 yeah
Avatar
yeah just keep it, should be safe
Avatar
Should I close the issue by fixing the waste or do you want to do something about it too?
Avatar
yeah just do it by waste
15:32
i dont see anything that could break else
Avatar
This fixes #3084, seems to be enough to make all the data fit in the buffer again.
Avatar
@Deleted User look what i found on youtube, (probably version 14.6.2) xddd
Avatar
what video is that
15:45
im lurking youtube
15:45
the guy plays the game
15:45
like its normal
15:45
xdd
15:45
feelsbadman
Avatar
WTF XD
Avatar
funny how the skins are broken not the map
Avatar
the map is broken
15:46
look at epix start
Avatar
thats like the opposite of what we have else
Avatar
thats not normal
15:46
15:46
i mean kobra
15:47
start
15:47
this is bugged
Avatar
well anyway with the new verion he'd be in the fallback
Avatar
He must think we are all on LSD all the time
Avatar
but why are the skins broken xD i dont get it
Avatar
man ppl in 2020 still upload videos to youtube in 480p
15:47
hilarious
Avatar
4:3 with some 15 years old GPU uploads in 480p
15:48
some ppl just live in the past xD
Avatar
@Deleted User yep, look at #showroom
15:48
i found a funny chilean
15:48
well u probs dont understand him
Avatar
ryo lives in a bubble
15:49
xdddd
Avatar
I don't get it how could valgrind say there is no leak and ASan say there is a leak?
Avatar
i still dont get why valgrind didnt see the invalid index, what ubsan found
Avatar
maybe valgrind is not perfect
Avatar
IT IS
Avatar
anyway
15:50
WHO BROKE BORS (edited)
Avatar
isnt ubsan static analysis and valgrind runtime?
Avatar
both are runtime
Avatar
ubsan is runtime too
Avatar
UBSan and ASan are instrumented directly into the program. Valgrind instruments the program by monkey patching it
Avatar
is ubsan and asan faster?
Avatar
valgrind rly makes the game slow af
15:51
xd
Avatar
With ASan the game is actually quite playable
Avatar
yes
15:52
it runs pretty smooth 😄
15:52
> 1k fps
Avatar
yes we know u have a super vega gpu
Avatar
its not gpu side xD
15:52
what cpu u got
Avatar
3800x
Avatar
thats pretty good
15:53
isnt it
Avatar
I wonder if something like ASan exists for GPUs
Avatar
342€
15:53
yes
15:53
xd
Avatar
instrumenting the shaders 😄
Avatar
yeah but like 30% faster than some 5 years old intel
15:53
so not the world xd
Avatar
will u buy the new amd ryzen 9
15:53
poggers
Avatar
Well ASan wouldn't be much use in a shader, but something like ubsan might
Avatar
i only buy hardware all 4 years normally, when i sell my old to my one of my sister xD
15:54
yeah same
15:54
i need to change gpu soon tho
15:54
my r9 390 is getting old
Avatar
I wish the new generation had some backwards compatibility with DDR3 😦
Avatar
u still in ddr3
15:54
lol
Avatar
I want to upgrade but it'll cost a fortune to replace 32g of ram with ddr4
Avatar
do u rly need 32
15:55
im fine with 16
Avatar
I do yeah. I use chromium boy
Avatar
1 tab in chrome = 1gb
Avatar
why u use chromium
Avatar
so yes 32 gb
15:55
firefox uses 2gb
Avatar
The remote debugging
15:55
I use firefox for my own browsing
Avatar
i even use both at same time
15:55
i dont have ram problems
Avatar
i know was just jk
15:56
bcs browsers
Avatar
But that's not what kills my ram, it's unreal engine and maya
Avatar
android studio eats lot of ram too
15:56
nouis
Avatar
all java stuff eats ur ram
Avatar
both open at the same time gets the computer swapping every 10 seconds
15:56
Java is really so irresponsible with the memory given to it
15:57
Not only that, it keeps all the pages hot, all the time with it's GC
Avatar
ur hot
15:57
😍
15:57
lol
Avatar
Okay, I don't get it, do you see how src/engine/client/serverbrowser.cpp:502:32 could ever leak?
Avatar
is it one of those I fixed?
Avatar
bors is dying
Avatar
Not in #3076 atleast
Avatar
470 warnings treated as errors The actual work will be fixing those or at least NOLINT(clang-analyzer-optin.cplusplus.VirtualCall) them so we can enable this. $ cmake -GNinja -DWEBSOCKETS=OFF -DMY...
Avatar
then where did you see it leak?
Avatar
master, ASan
Avatar
ok, haven't looked into it then
Avatar
It doesn't make sense though, there is the free right there :/
Avatar
maybe a buggy libc?
Avatar
I'd have many more things broken if I had a broken libc, no? 😛
Avatar
where is the free?
16:03
m_ppServerlist is freed, not ppNewlist
Avatar
or is the leak at destruction?
16:03
its never freed when closing
Avatar
Oh, maybe it's reporting it leaking when shutting down
Avatar
yeah, I guess a free(m_ppServerlist) at the end would help
16:04
seems easy enough to fix in the destructor
Avatar
Heh, yep. I didn't consider it leaking at the end
Avatar
there is alot leaking, we could also clean the opengl context before closing
16:06
but so much static stuff that allocates textures, would require alot of work
Avatar
The only leaks reported by ASan that are allocated by us. There is one other by SDL and one by X11.
Avatar
Well these were the only two reported by ASan, so I fixed them
Avatar
oh ok
Avatar
4c87b0c Make menu background camera impl more robust - Jupeyy 6ee362f Merge #3083 - bors[bot]
Avatar
Github Actions is also throwing a hissy fit, I wonder what's going on
16:08
I have a feeling it's microsoft still not understanding how one should update their apt repositories
Avatar
mhh, someone once said here the server browser feels to laggy with OGL 3.3, WHO was it
16:10
cant find him in discord search
Avatar
index 32767 out of bounds for type 'short [64]' this looks odd
Avatar
yeah
16:11
we have a huge problem with snapshots
16:11
#3049
Avatar
but the discussion about it moved into some pr
16:13
I removed the shift commits.
16:13
oh
Avatar
"yes, my claim is, that appearently the same snapshot has different values between linux and windows So its probs caused by some of the other snapshot code" to quote myself
16:13
it wasnt about the shift
16:13
i assumed it bcs linux returned -1, but i wasnt in windows anymore at that poiunt
Avatar
Only heinrich knows how this stuff works really well and when the world needed him most, he vanished 😛
Avatar
100 years passed and Learath and me found a new heinrich (edited)
Avatar
Okay, from my crude understanding of the snapshot extended objects, I think that type has to be translated first
Avatar
maybe heinrich already thought about it, he also removed crc code
16:23
@deen have u seen #3077 it litterally doubkes my fps with ogl.. just bcs of the text
16:23
I noticed that in menus everything is super slow
Avatar
I have another question, why is the client even creating a snapshot??
16:24
Ah maybe demo recording
Avatar
I'M generally in favor of it @Deleted User
Avatar
good bcs u can still use the old implementation
16:25
i'll just implement the stuff i need whenever i feel there is something too slow
16:25
the rest can stay streamed
Avatar
Ah, I get what's wrong, the extended types have dynamic size, the itemsizes table shouldn't even be checked
Avatar
i mean create a pr, and ask heinrich for a review
Avatar
I will in a minute
Avatar
a fix until the next version would be nice
Avatar
@deen where do you think would be a good place to add a COUNT_OF macro? we use it in a couple places and we just have ad-hoc implementations
16:33
I was thinking system.h but there I can't use the more thorough C++ version of the macro
Avatar
what's a count_of?
Avatar
It's the macro that everyone uses to get the number of "things" in an array
16:34
sizeof(arr)/sizeof(arr[0])
Avatar
ah, right
16:35
for all I care make system.c -> system.cpp, I had a PR for that 😉
16:35
then put it in system.h
16:35
otherwise src/base/count.h? I don't really see a fiting place
Avatar
I'll put the unsafe C version in system.h and we'll all be careful not to pass it anything except arrays 😛
Avatar
yes lets pls make it cpp
Avatar
@deen why did you close that PR anyway?
Avatar
then we can use std::chrono and remove some strange code from windows 😄
Avatar
If only C++17 wasn't too new, we could replace a lot of the fs_ functions too
Avatar
i also made a local pr where is changed everything
Avatar
Maybe I misremember and didn't have it. Foudn only https://github.com/ddnet/ddnet/issues/1444
We are compiling system.c with C90 for some reason. Should we maybe start compiling it with C99 or replace it with a system.cpp(C++11)?
Avatar
DDraceNetwork, a mod of Teeworlds. Contribute to Jupeyy/ddnet development by creating an account on GitHub.
16:37
i made it a few weeks ago
Avatar
you can remove all the (void) in function signatures in cpp
Avatar
yeah but too lazy xd
Avatar
let's ask @heinrich5991 what he thinks, I'd be fine
16:39
sed -i 's/(void)$//' src/base/**/*.{cpp,h} (edited)
Avatar
will do if we ok with removing c 😄
Avatar
4854809 Fix 2 leaks in CServerBrowser - Learath2 e11511f Merge #3086 - bors[bot]
Avatar
btw @deen #2157
Avatar
Disadvantage is of course losing Vanilla Teeworlds compatibility, so I don&#39;t care much either way. Haven&#39;t cleaned up much since I don&#39;t want to put work into it if it&#...
Avatar
Probably because of Vanilla compat
Avatar
who cares xD
Avatar
but now with our reformatting etc, I guess matters less and less
16:42
so let's just do it
Avatar
we can still copy their functions
Avatar
I think this is the proper fix, but it'd be nice to get it confirmed by @heinrich5991 before merging. Fixes #3049, I think?(tm)
Avatar
i only know that deen tried to fix it and couldnt join the server anymore xD
16:44
but if u can its fine xD
Avatar
Hm, I wonder if we are talking about the same bug
Avatar
yes
Avatar
../src/engine/shared/snapshot.cpp:264:9: runtime error: index 32765 out of bounds for type 'short [64]' SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../src/engine/shared/snapshot.cpp:264:9 in
Avatar
its the code in createdelata and unpackdelta
Avatar
This one turned out to be in the demo recorder, fixing it like this didn't break anything(tm)
Avatar
#3050 here are the reports
Avatar
CC=clang CXX=clang++ CXXFLAGS=&quot;-fsanitize=undefined&quot; CFLAGS=&quot;-fsanitize=undefined&quot; cmake -GNinja -DWEBSOCKETS=OFF -DMYSQL=ON -DCMAKE_BUILD_TYPE=Debug -DVIDEORECO...
Avatar
UnpackDelta looks fine to me, at the very least doesn't suffer from the same bug
Avatar
yeah cant find unpack delta, so just create 😄
16:47
but 2 times
16:47
src/engine/shared/snapshot.cpp:139:21: runtime error: signed integer overflow: 0 - -2147483648 cannot be represented in type 'int' #0 0xede8fb in CSnapshotDelta::DiffItem(int*, int*, int*, int) src/engine/shared/snapshot.cpp:139
Avatar
I couldn't get that, how did you trigger it?
Avatar
it was deen
16:49
or was it me
16:49
oh yeah
16:49
it was me xD
Avatar
We should decide on a list of allowed C++ features, instead of having some unspecified list. Questions:
  • Replace array with std::vector?
  • Allow std::string?
  • Allow auto? Only for iterators?
  • Allow foreach loops?
What do you think?
Avatar
@Learath2 i dunno, i just played some ddrace and fng
Avatar
what's the benefit of allowing C++ in system.c? @deen
16:52
@Learath2 you can use the fancy macro in #ifdef __cplusplus__
Avatar
whats the benefit of using c code xdd
Avatar
less difference to tw
Avatar
cpp allows std::chrono std::thread
Avatar
Stability or system.c
16:52
s/or/of/
Avatar
the problem with the overflow for m_aItemSizes is due to the protocol extension
Avatar
oh, that sounds like my fault
16:53
what is it?
Avatar
it's fixed in 0.7
16:54
the whole thing relies on some random memory being 0 😄
Avatar
have a link to the PR?
16:54
very nice. sorry for that code 😄
Avatar
nobody noticed for years ^^
Avatar
damn my vim is stubborn and doesnt want to insert tabs instead of spaces in the python files we have in datasrc
Avatar
@Ryozuki use vim-sleuth addon
16:55
sleuth.vim: Heuristically set buffer options. Contribute to tpope/vim-sleuth development by creating an account on GitHub.
16:55
thanks
16:56
works perfect
Avatar
I actually never had to care about indentation again with this vim addon 😄
Avatar
the only problem is that you have to install it
Avatar
This an initial pr towards having server side localization to help with https://github.com/ddnet/ddnet/issues/269#issuecomment-706080357 I don't know if we should normalize the language (currently whats send is the language file...), use a enum or what. (This pr doesnt add localization yet)
Avatar
@redix seems to be the exact same thing I did 😛
Avatar
oops 😄 didn't notice
Avatar
redix with another fix to 0.7 without even telling us, traitor angerycat
Avatar
i'm so sorry 😄
Avatar
xDDDDDDDDDD
Avatar
anything else we want to know? XD
17:00
vulkan support for vanilla?
Avatar
there are so many things that are fixed in either 0.7 or ddnet ^^
Avatar
yeah its funny xD
Avatar
Vulkan would probably get us even less compatible with older machines
17:03
I was supposed to have tea like 3 hours ago, then I forgot, now it's too late for tea 😦
Avatar
never too late for tea
Avatar
well lets say it like this opengl 2.0 is from 2004 and still like 1% cannot use it xD
Avatar
I drink tea for breakfast, lunch and dinner
Avatar
in germany we drink Tees
Avatar
@heinrich5991 I could drink tea with my dinner but I was more looking forward to having a cookie, cookie for dinner is no no
Avatar
webgpu would be cool as a backend once it's final :D metal for macos + vulkan for the rest
17:05
its a rly nice project
17:05
but calling it webgpu imho is rly bad
Avatar
I wonder why they didn't do Vulkan on macOS too
Avatar
xDDD
17:06
u really wonder about it
Avatar
I read vulkan came too late
17:06
webgpu api is rly like vulkan btw
17:06
or atleast from my little experience using it
17:06
i made a triangle
Avatar
Metal is low level enough that translation from vulkan to metal is pretty cheap
Avatar
u get a instance, a adapter a device a queue
17:07
etc
Avatar
MoltenVK is already pretty mature
Avatar
wgsl is the future too
17:08
spir-v ftw
Avatar
I guess if they don't mind spending the development effort on maintaining a separate metal backend, who am I to judge
Avatar
i dont like the syntax
17:08
c syntax nice
Avatar
When are we getting a standard shading language?
Avatar
@Deleted User u can use glsl
17:08
and compile it to spir-v
Avatar
then its fine 😄
Avatar
@Learath2 I'd include the vanilla fix instead of yours, is that ok?
Avatar
@Deleted User I see more out of date intel gpu drivers causing troubles, maybe adopt the blacklist? ^^
Avatar
@heinrich5991 It's the same fix, but sure, go ahead
Avatar
@heinrich5991 well idc, but what would that help, telling them to upgrade? moving them down to gl 1.x?
Avatar
telling them to upgrade
17:12
what you'd manually say to them
Avatar
well the guy in #general didnt, bcs too much work for him xD
Avatar
I guess it defines an extra enum to avoid arr/arr[0]
Avatar
but as said, i'd be ok with it @heinrich5991
17:12
still better than nothing
Avatar
@Deleted User could give them a small warning and fall back to gl1
Avatar
the problem is, they will never go back to higher gl versions then
Avatar
Who cares? Not like their toaster will ever get a driver update
Avatar
nono
17:13
its new intel gpus
17:13
funny enough my 10years old laptop works fine
17:14
while louis with a 2017 gpu has problems
Avatar
I wonder how Unreal and Unity solve the issues
Avatar
directx
17:14
very simple
17:14
these problems are mostly on windows
Avatar
mac always the problem
17:15
👺
Avatar
compile in clang @Ryozuki
Avatar
UE4 is coming out with Vulkan as the backend, I wonder how they'll handle it there 😛
Avatar
well maybe just drop support for older gpus?
Avatar
compile what in clang
Avatar
hdiutil: create failed - Resource busy
Avatar
most tripple A titles have pretty high miniums
Avatar
hmmm
Avatar
@Ryozuki ok nvm if its just a bug 😄
17:16
thought some clang warning xD
Avatar
hdiutil thing happens every once in a while
17:16
just re-run the job
Avatar
is that a known bug of hdiutil so we should just retry in the script?
17:16
or are we holding hdiutil wrong?
Avatar
I have no idea whether it's a known bug
Avatar
I'm trying to build dmg of .app file using following hdutil command: hdiutil create -srcfolder /Users/me/My.app My.dmg It works as expected as it creates My.dmg correctly. Problem started happen...
17:19
wtf
Avatar
HAHAHAHA classic apple
17:20
Of course creating an archive on the commandline would require a trash folder
Avatar
hm. can you check whether such a trash folder is actually created?
17:21
if you have a mac handy
17:21
(just to check the plausibility and whether I should really implement that solution…)
Avatar
d172286 Fix out of bounds access in snapshot delta handling - axblk 0689466 Merge #3089 - bors[bot]
Avatar
It would be the first time you open the folder in finder, let me check
Avatar
eh, I mean by the hdiutil
17:23
i.e. can you run a build (like on CI) and check whether the generated archive contains a trash folder
Avatar
@heinrich5991 u mean server sending msg ids and the client displaying them?
17:28
how would u work around dynamic conent
17:28
content
Avatar
it'd need our own printf parser
Avatar
Or we could do it in a very insecure way 😛
Avatar
no
Avatar
Oh cmon, it'd be fun
Avatar
rce is a feature, not a bug
17:29
user freedom!
Avatar
Server sending a %n to do arbitrary writes
17:30
Error copying file "/Users/learath2/Desktop/C/ddnet/ddnet-libs/ffmpeg/mac/lib64/libavcodec.58.dylib" to "pack_DDNet-15.1.2-osx_dmg/DDNet.app/Contents/Frameworks/".
Avatar
uhm, idk how this is supposed to work
17:32
Why is it even looking there? we don't ship that
Avatar
I guess you have an up-to-date submodule?
Avatar
Even if I disable -DVIDEORECORDER it's looking for it
17:33
Yeah, up-to-date
Avatar
The server would send a packet instead of a chat message with a id and arguments, then the client would display the translated messages with those values. We would then need our own printf parser according to @heinrich5991 We also need to take care of compatibility with unsuported clients. Any more ideas?
Avatar
idk tbh @Learath2
Avatar
Oh, btw how are we supposed to deal with unsupported clients? The version number is an ugly fix
Avatar
can oyu comment that out?
17:35
I'd send the untranslated string as well
17:35
that'd be some network traffic though
Avatar
@deen I think you forgot to commit the mac build for ffmpeg to ddnet-libs
17:36
@heinrich5991 and it would require very ugly string matching to remove the untranslated string
Avatar
hm? no
17:36
I was thinking:
Avatar
especially since there is nowhere to hide a mark in a chat message
Avatar
maybe add a hidden unicode characte
17:37
at the start
17:37
and use it to hide on modern clients
17:37
superh acky hack
17:37
nouis
Avatar
a new message type TRANSLATED_SERVER_MESSAGE, with an ID (UUID), untranslated message (string), format parameters (various, string, int)
Avatar
but the problem here is old clients
17:37
they dont know about this packet
17:37
they only want chat messages
Avatar
yea, distinguish them by version
Avatar
then why we need to send the untrasnlated messages o nnew clients?
Avatar
The new message type is simple
Avatar
i dont find the reason
Avatar
Ah by version
Avatar
because they might not support all the strings we need
Avatar
damn i type like a retard
17:38
missing keys
17:38
xd
17:39
ah thats true
17:39
but
17:39
it can fallback to the english
17:39
ah
17:39
we dont have a english
17:39
its directly in the src
Avatar
yes, that's the untranslated string 😉
Avatar
well then im fine with that
17:39
btw add any final decicion to the issue
17:39
this will be lost
17:39
here
Avatar
yes, true
17:39
thanks for the reminder
Avatar
So we check the version, if it's too old we send preformatted english string. If new enough to know this string, send unformatted message with parameters
Avatar
and english
Avatar
no, if new enough to know the TRANSLATED_SERVER_MESSAGE message
17:40
then we send it
Avatar
Ah, you want to send the entire string
Avatar
then the client can decide whetheri t knows this particular message
Avatar
in case its not translated
17:40
we need a fallback
Avatar
meh, atleast it's not more traffic
Avatar
well, my solution is more traffic?!
Avatar
yes its more
17:41
but i dont think it matters
Avatar
the UUID + the formatting parameters
Avatar
why a UUID?
17:42
and not a simple id
Avatar
It's sliightly more traffic
Avatar
@Ryozuki because people are going to add their own messages and we don't want to conflict
Avatar
e.g. noby adds a message for fng
Avatar
Why bother with an id at all actually?
Avatar
you are thinking outside ddnet too
17:43
good i forgot
Avatar
@Learath2 because the untranslated string might change without the translations needing change
Avatar
We can send the untranslated string unformatted
Avatar
(was my thought)
Avatar
i prefer a uuid
17:44
this get stuff translation is rly funny
17:44
cuz there are repeated translations
17:44
atleast i found that when translating
Avatar
Дядя Женя 2020-10-13 17:44:42Z
How can I know what causes permanent freeze on my build?
Avatar
I sort of dislike having redundant information, but I guess I can't come up with a better solution
Avatar
if u cant then its not that redudant i guess
Avatar
well it is redundant in the sense that we control client and server
Avatar
@Дядя Женя run it in a debugger, when it freezes, send SIGTERM, the debugger will tell you where it stopped. Repeat a couple times to see whereabouts the client is looping
Avatar
but not redundant if we don't assume that
Avatar
It's redundant because we actually know on the server whether a client knows a string or not via the version number
Avatar
@heinrich5991 why did u decide not to add "Map: " on the steam status?
Avatar
but I thinkn that's kind a ugly
Avatar
i find it really funny tho
Avatar
@Ryozuki redundant, people will learn I display the map
17:47
wasted screen space otherwise
17:47
(my thinking)
Avatar
btw there may be ppl who dont play the game
17:47
and can see ur status
Avatar
nice 😉
17:47
I'm In Da House
17:48
btw remember to add info to the issue in github
17:48
xd
17:48
we will rly forget
Avatar
@heinrich5991 hm, well I'm sure we could come up with some scripts to make it pretty, generate a ClientKnowsString(const CUuid &Uuid, const int Version)
17:49
but your solution is trivial really
Avatar
what about allowing auto too when u have a cast
17:52
auto x = (sometype)a;
Avatar
Дядя Женя 2020-10-13 17:52:11Z
Can I take someones time to answer my question about rendering optimization
Avatar
well i should probs write it in the issue
Avatar
Дядя Женя 2020-10-13 17:53:00Z
So, there are "text containers" where text is being drawn and then, if nothing new is happening, game just draws entire container at once
17:53
Skipping drawing characters for text individually (edited)
17:54
I want to draw not only text, but also background for it, RenderTee, maybe some quads and text as well
17:54
In a container ofc, so it doesn't need to be redrawn every time
17:54
Do you have that kind of buffering already implemented
Avatar
CQuadContainer is the generic version, the text container is also implemented on top of it
Avatar
Дядя Женя 2020-10-13 17:54:59Z
Or should I make my own containers for that
17:55
I'll explain. I want to draw chat messages with some extra graphics, margin, background and so on (edited)
17:56
So the best way to do it is just render the message when it was received from server and store it somewhere
17:57
I'm just not sure how to do it and if you have any logic for that already
Avatar
@Deleted User would know best, but the best way would probably be to render it on the first OnRender rendering when you receive it is a meh idea
Avatar
Huge maps like back in time 2, will always "only" upload 2MB of data at once, and then wait for the graphics thread to finish building/copying the VRAM, this might increase performance a bit
Avatar
Дядя Женя 2020-10-13 17:57:39Z
Doesn't matter. The idea is to render only once and then buffer
Avatar
Currently chat messages are rendered onto text containers if they haven't been rendered yet. You can probably replace the text container with a quad container
Avatar
Дядя Женя 2020-10-13 17:58:13Z
I need some help with "buffer" part
Avatar
it builds VRAM on the GPU
Avatar
Дядя Женя 2020-10-13 17:58:32Z
What is quad container
Avatar
just like u build HEAP on RAM
17:58
dont think of GPUs to different from CPUs
Avatar
isnt text already optimized?
Avatar
GPUs are CPUs with more cores xD
Avatar
Дядя Женя 2020-10-13 17:59:11Z
I'm remaking and redesigning it @Ryozuki
Avatar
he wants to add a ui rect behind it
17:59
CreateRoundRectQuadContainer
Avatar
and probably a tee image to the left of it from what I gather
Avatar
i already added a function for that
Avatar
ah u want to display a tee
Avatar
Дядя Женя 2020-10-13 18:00:19Z
I've already done all that
Avatar
will u add the tee on the chat?
18:00
its already bloated
Avatar
Дядя Женя 2020-10-13 18:00:50Z
Just need to know the best way to buffer it once and not redraw every frame
Avatar
heart + id + repeated counter
18:00
and now a tee
18:00
monkalaugh
Avatar
you want to have framebuffers?
18:01
sounds like u want to render to a texture
18:01
we dont have this and if we would have it, only for gl 3.3+
Avatar
if u add that, use it on video recording too
Avatar
yes
Avatar
u said smth like that time ago
Avatar
Дядя Женя 2020-10-13 18:02:18Z
Avatar
i know, but no motivation for that feature xD
18:02
OBS is too good xD
Avatar
@Deleted User couldn't you render a tee into a quad container? Not that it'd help much
Avatar
Дядя Женя 2020-10-13 18:02:29Z
18:02
obs best
Avatar
Дядя Женя 2020-10-13 18:02:49Z
that's an example of what I have right now
Avatar
@Learath2 well u can draw a tee with quad containers, i already do it, but not all tee parts at once
Avatar
did u test with chinese
18:02
and stuff
Avatar
it be still good enough tho
Avatar
Дядя Женя 2020-10-13 18:03:17Z
Imagine second screen as one message container. I want to draw it, store and then redraw whole container for optimization purposes
Avatar
aslong as the VRAM is built, its pretty fast
Avatar
the tee there looks so out of place
18:03
xD
Avatar
Дядя Женя 2020-10-13 18:03:49Z
yes, because margin in source code sucks
Avatar
@Deleted User why can't you do the entire tee?
Avatar
Дядя Женя 2020-10-13 18:04:05Z
that was already hard enough to margin text like that
Avatar
@Learath2 bcs multi texture support is cancer, when the drivers are buggy xd
Avatar
@Дядя Женя don't bother, all of those functions you use buffer wherever they can anyway
18:04
Ah, I keep forgetting the shitty drivers
Avatar
Дядя Женя 2020-10-13 18:05:14Z
18:05
this happens every OnRender
18:05
I can leave it like that if you'll say that's ok
Avatar
Completely fine, we render rectangles everywhere
Avatar
Дядя Женя 2020-10-13 18:06:14Z
what if I'll move DrawRoundRect in a loop?
18:06
now github is dead xD
Avatar
$build_status
18:06
whtie theme
18:06
frozen
18:07
:octocat: Dark GitHub style. Contribute to StylishThemes/GitHub-Dark development by creating an account on GitHub.
Avatar
yeah is there black theme?
Avatar
use the stylus plugin
18:07
with this
Avatar
is that a browser plugin?=
Avatar
@Дядя Женя fine, doesn't really matter how much you render
Avatar
<.< i hate browser plugins for single websites
18:07
its not for
18:07
single websites
Avatar
look nice 😄
Avatar
its a plugin for styles
18:07
and u install a style for github
18:07
xd
18:08
it even styles code
18:08
well im using monokai
Avatar
After recompiling 10 times, there is no .Trash folder @heinrich5991
Avatar
@Learath2 thanks for trying. should I try anyway? ^^
Avatar
ah maybe mac can't see the trash folder
18:36
mind sending the dmg?
Avatar
Дядя Женя 2020-10-13 18:37:13Z
my client crashes when I'm trying to send really long message (just spamming letters, preferably without spaces)
18:37
I mean it freezes permanently
18:37
But that does not happen on release
18:37
debug only
Avatar
mhh sounds bad, does that also happen with current ddnet source?
Avatar
Дядя Женя 2020-10-13 18:41:40Z
idk, Im here
Avatar
ok, if you want, create an issue with the text u typed
Avatar
Дядя Женя 2020-10-13 18:43:17Z
Ok, now
18:43
1. How do I build game executable
18:43
2. How do I create a pull request for you to review and test (I mean it's clearly not ready to be added in public version) (edited)
Avatar
puhh, just google git tutorial 😄
Avatar
Дядя Женя 2020-10-13 18:46:09Z
Do you have some privacy setting in your repository so I can't break it if I try to push or smth?
Avatar
u cannot push to ddnet github directly
Avatar
Дядя Женя 2020-10-13 18:46:46Z
I can't break it ofc, but would not be cool if I make something u dont want to
18:46
ok nice
Avatar
you can fork it and push to your forked repository
Avatar
Дядя Женя 2020-10-13 18:46:59Z
then I'll click on push button
18:47
xD
18:50
@Deleted User what about building?
Avatar
what os are u on?
Avatar
Дядя Женя 2020-10-13 18:50:24Z
win
Avatar
visual studio?
Avatar
Дядя Женя 2020-10-13 18:50:32Z
yes 2019
Avatar
just change to release mode
18:50
and build it
18:50
then the executable is accessable in the directory somewhere
Avatar
Дядя Женя 2020-10-13 18:51:01Z
I did
Avatar
/build/Release or smth
Avatar
Дядя Женя 2020-10-13 18:51:22Z
Yes, the question is mainly about that "somewhere" thing (edited)
Avatar
where is your ddnet.sln?
18:51
there should be the Release directory
Avatar
Дядя Женя 2020-10-13 18:52:01Z
there is only DDNet.exe
Avatar
whats what u want isnt it?
Avatar
Дядя Женя 2020-10-13 18:52:40Z
I mean the whole game folder. Do I need just replace DDNet.exe in the game directory so it applies all the changes?
Avatar
yes, that should do the job
Avatar
Дядя Женя 2020-10-13 18:53:05Z
ok then, cool
18:53
will try
18:53
Yeah, 4real
18:59
Any advanced git user here?)
Avatar
thats a bad question
19:01
read this website thanks
Avatar
Дядя Женя 2020-10-13 19:01:22Z
I've cloned ddnet git repository, build it with CMAKE (I have no idea what it did, really) as written on repository page, made some changes and committed it (edited)
19:01
And now I want to make a pull request on that, which I can't, because I didn't fork the repository before
19:02
So what can I do now
19:02
thats a bad question
@Ryozuki yes, I know, I was typing in the good one at the time, sorry. I'm just chatting that way, that I split one topic on several messages, so the first question mentions on who can help and then goes the problem explaination
(edited)
Avatar
@Дядя Женя ok, let's walk through this
19:29
you cloned the repo and made some changes
Avatar
Дядя Женя 2020-10-13 19:32:16Z
Yes. Then locally commit it
Avatar
hm, now I don't know msvc's git interface
19:32
let me google a bit
Avatar
Дядя Женя 2020-10-13 19:32:36Z
After that I realized that I need to fork ddnet repo and clone it instead
Avatar
no, should still be fine
19:32
but do fork the repo on github please
Avatar
Дядя Женя 2020-10-13 19:32:56Z
I did now
Avatar
nice
19:33
let's google changing the upstream, sec
Avatar
Дядя Женя 2020-10-13 19:33:11Z
I use "Fork" program on windows, if it helps you somehow
Avatar
in msvc?
Avatar
Дядя Женя 2020-10-13 19:34:11Z
Fork - a fast and friendly git client for Mac and Windows
Avatar
@Дядя Женя what does the "repository" menu say?
19:35
can you do something like "add remote" there?
Avatar
Дядя Женя 2020-10-13 19:35:58Z
Avatar
hm, show me the push dialog please
Avatar
Дядя Женя 2020-10-13 19:36:30Z
Avatar
hmhm
19:39
@Дядя Женя sorry, distracted. what does the To menu show?
Avatar
Дядя Женя 2020-10-13 19:39:23Z
its faster to clone my fork repo and replace all changed files I guess
Avatar
😦 okay if you want to do that ^^
19:39
(btw, there are also free git clients for windows, I think github has one, for example)
Avatar
(or use the command line client and you can refer to the hundreds of online tutorials and documentation)
Avatar
Дядя Женя 2020-10-13 19:42:33Z
Or may be it's not
19:42
I can use command line, if you have any solution
Avatar
On the git commandline, it would be just git remote add <name for repo> <url for repo>
Avatar
so
19:50
Avatar
@Learath2 why do you think so?
Avatar
Oh, it is there and my ddnet-libs is up to date
20:01
I wonder why it won't download for me
Avatar
Дядя Женя 2020-10-13 20:06:37Z
I'm getting stuck somewhere here
20:07
Happens randomly, but with high chance when pressing tab (so chat should change width/height)
Avatar
Includes some critical bugs in it 😏 😏
  • Player's skin near message author's name
  • Transparent black background for chat
  • Text margin when message is multiline
  • Messages margin
Avatar
For visual changes you should try to include a screenshot
Avatar
Дядя Женя 2020-10-13 20:17:05Z
yeah, sry, forgot about that
20:17
can I edit?
Avatar
Дядя Женя 2020-10-13 20:22:55Z
done
20:25
As I mentioned before there is a critical bug that freezes your client completely. seems like infinite loop? See screenshot above
Avatar
since ur changes or on ddnet master? xd
Avatar
Дядя Женя 2020-10-13 20:26:01Z
I have no idea what causes it and need some help
Avatar
but you've only had the infinite loop happen with your changes?
20:26
so far
Avatar
Дядя Женя 2020-10-13 20:28:30Z
Some simple visual bugs occure with my chat's background sometimes (when message got cut instantly without being blended) and there are two problems with text margin if message is 4 lines long or when holding tab, but it's not a big deal, I'll fix it (edited)
20:30
@Deleted User I guess I should choose "staging" branch next time?
20:30
Told ya I suck hard in git
Avatar
well for the first pr, its acceptable 😄
20:32
i cant rerun the jobs in #3092 i dunno why its so broken, the other pr is much newer and had no problems
Avatar
Huge maps like back in time 2, will always "only" upload 2MB of data at once, and then wait for the graphics thread to finish building/copying the VRAM, this might increase performance a bit
Avatar
@Deleted User I reran the jobs
Avatar
ok lets hope they dont cancel again 😄
20:50
tried already 5 times or smth
Avatar
just click on merge manually
20:50
github is just having some network problems I guess
Avatar
it's just for the green checkmark
20:50
bors wouldn't stop the merge for codeql yet I think
20:51
@Pipou looks like they already planned an egyptian tileset in vanilla btw
Avatar
Ah well.. xd
Avatar
I just played a round of DDNet and found a real nice tileset that would also fit very well for Vanilla: What do you think about this tileset? The author Pipou seemed willing to release it under a f...
Avatar
@Deleted User @Ravie @mind I have a question about image rendering and ddnet's new version (edited)
Avatar
go ahead
Avatar
If my client is 15.1 and I play old maps with dilated and borderfixed images, will it look funky to me ?
Avatar
borderfix might make the map very bit less good looking, dilate is still required anyway
Avatar
@deen so dilate is still needed 😛
Avatar
sadly teeworlds built upon the borderfix for too long time 😄
20:56
well it auto dilates in the editor now @Pipou
20:56
so I don't need to drag images in the .exe now?
Avatar
@Deleted User when did that happen? ^^
20:57
how can one check that images are dilated @Deleted User
Avatar
to counter borderfix, wasn't there borderadd?
20:57
@heinrich5991 you clearly see it ingame
Avatar
@Pipou what do I need to look out for?
20:58
borders?
Avatar
without dilate there is an odd outline around the mapres
Avatar
@heinrich5991 open in gimp and disable alpha layer
Avatar
k
20:58
teeworlds doesn't require dilate anymore?
20:58
yes
20:59
thye use pre calculated alphas
Avatar
so I need to re-render all of my images 😭
Avatar
@Pipou wdym? due to tileset_borderfix no longer being needed?
Avatar
well all of them are already dilated and borderfixed
21:00
so I need to render them without anything
21:00
fun 😄
Avatar
yeah especially the border fix
21:01
the dilate doesnt matter really
Avatar
is dilate idempotent?
21:01
i.e. does it not do anything on the second application?
Avatar
i dont understand xd
Avatar
if I apply it to an image A and get another image B
21:02
and then apply it to the image B, do I get the same image B?
Avatar
if AB were the same before yes
Avatar
e.g. if pipou puts it into dilate.xe and then it imports it in the editor
21:02
which also dilates
Avatar
yes
21:02
if he uses our dilate tool
Avatar
does the second dilating change the image?
Avatar
it will be the same
Avatar
kk
Avatar
and we have a config to disable it
Avatar
nice
21:03
but why do we need the config then?
21:03
if it's the same anyway
Avatar
if someone doesnt want to dilate for some reason
Avatar
ah, at all you mean
Avatar
dilated images will work fine in 0.7 too, its really just transparent pixels that are getting colored
Avatar
I see
21:08
yea, thanks for the explanation the other day
21:09
I never knew what dilate does
Avatar
@Deleted User So if I dilate it myself it's fine ?
Avatar
yeah, doesn't hurt
Avatar
oh good great 😄
Avatar
@Deleted User maybe we should remove the dilate tool if it's not needed anymore?
21:15
so that people don't need to worry about applying it
Avatar
It's needed for other graphics, like skins
21:16
just not for mapres
Avatar
okay
21:16
is there anything that doesn't need it?
21:17
so I can add a CI check for dilation?
Avatar
graphics without transparency
21:17
@heinrich5991 I added one once, my PR must still be around somewhere
Avatar
but they don't get affected, no?
21:17
I just dilated and differed the resulting pictures
21:18
(using identify from imagemagick)
Avatar
to sum it up, we could go with pre calculated alphas, that would require runtime calculations, for 1024*1024 around 3million float operations per texture, thats not alot, but for 4k images its a bit already on the other side i'd not require dilate at all anymore idc what we do GTA 5 for example does something similar to dilate other games prefer precalculated alphas
Avatar
3million float operations per texture, thats not alot
computers poggers
Avatar
basename "$file" .png
21:19
uh nice trick, didn't know it
Avatar
with zsh it's just ${i:r}, but apparently no one likes zsh except me
Avatar
whats the trick
Avatar
I didn't know you could pass a second parameter to basename
21:21
you should read the manual monkalaugh
Avatar
can't read the manual of each command to discover new options, way too many commands
21:22
I can read a manual if I know which tool I need
21:22
I'd probably have googled how to strip the .png in bash
21:22
well
21:22
but yeah
Avatar
bf576de check_style CI no longer needs git history - heinrich5991 fd90740 Merge #3094 - bors[bot]
Avatar
Дядя Женя 2020-10-13 22:00:45Z
What should I do with my pull request when I know there is a bug in it and I've already fixed it in my repo?
Avatar
you can push your new commits
Avatar
Дядя Женя 2020-10-13 22:01:48Z
What's gonna happen? Will it be another request or it will be updated somehow magically?
22:03
Oh, I see now
Avatar
@Deleted User about the PR. in what thread is stuff like CCommandProcessorFragment_OpenGL2::Cmd_RecreateBufferObject executed? main or graphics
22:18
graphics probably?
Avatar
Graphics
Avatar
okay, so the change is to hand ownership of some buffers over to the graphics thread?
Avatar
Yeah. In this case only one tho I just implemented it for all for consistency
Avatar
okay, so as I see it, this can only make thread-safety better
22:21
do I want to ask what ensures that the other pointers are still alive once the graphic thread receives them?
22:21
ah
22:22
the sending function takes care of that?
Avatar
Yes. If that would fail tw wouldn't render correctly
Avatar
ye, ok, I see
Avatar
So it can't fail™️
22:23
Xd
Avatar
8e9baed Use pointer directly for tile layer building - Jupeyy 1fb4f90 Merge #3092 - bors[bot]
Exported 884 message(s)