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-04-15 00:00:00Z and 2020-04-16 00:00:00Z
Avatar
@Learath2 i think you or @Ryozuki broke vanilla whisper. on master you cant use /w and /whisper anymore. it just sends the msg as a normal chat message leading to No such command: w
Avatar
well do you delete w as a command?
Avatar
of course i dont
09:08
it even shows up
09:09
I am guessing this is because of @Ryozuki's disable whisper thing
09:09
he never tests stuff
Avatar
tell me exactly how to reproduce it, including the versions
Avatar
master, just try to /w
Avatar
on what server
Avatar
no matter
09:09
try /w target
09:10
or /w target msg
09:10
it just gets sent as chat msg, on ddrace server leading to no such command, on ctf leading to just a chat msg
Avatar
"I am guessing this is because of @Ryozuki's disable whisper thing he never tests stuff" fuck you
Avatar
no u
Avatar
well, did you test it?
Avatar
it's my fault not his
Avatar
yes i tested
Avatar
ok, sorry then @Ryozuki
Avatar
idk how to fix it tbh
Avatar
whats the problem :D
Avatar
not without unfixing the other bug
Avatar
which commit caused it?
Avatar
When you put w then press space, you are typing a command, but the selected command becomes -1
Avatar
but for custom commands like /stats <name> it works
09:20
ah, probably not
Avatar
I'm pretty sure that only works because it goes through the old interface
Avatar
probably it just gets executed as a chat command
09:20
yes
09:21
idk how to fix it tbh
Now I understand what you meant xd
Avatar
Hmm I can change the other fix
Avatar
@fokkonaut that should take care of it, it'd be nice if you could give it a test
Avatar
@Ryozuki you never test stuff, so that means maybe you would release my mapfeelsamazingman
Avatar
Say goodbye to your guildmates in China, as CCP extends its political censorship to online gaming world
12:02
China to ban online gaming, chatting with foreigners outside Great Firewall
Avatar
Not a big surprise considering that non-Chinese social networks etc are also banned
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 12:20:15Z
haha rip this minecrap server with all the press for china
12:20
i wondered how long this loophole will stay open
12:21
if one is bored and wants to write a method that converts decimal to base93 for me that would be awesome :D
12:21
i hate numbers
12:22
this is what i have so far
12:24
ok that code was incomplete https://paste.zillyhuhn.com/P8
Avatar
Trafalgar Law 2020-04-15 12:31:16Z
ubuntu > win
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 12:34:14Z
debian > ubuntu
Avatar
Trafalgar Law 2020-04-15 12:39:41Z
discord > ChillerDragon
12:41
everything works until 92 and then at 93 it breaks im sure there is just a -1 or a +1 somewhere in the pack and/or unpacker
12:41
cmn brains i know u know it :D
Avatar
just like you would do with any base
13:43
first get rid of the sign
13:43
then % 93 to extract the last digit
13:43
then / 93 to get rid of the last digit
13:43
repeat
Avatar
base93? who even uses base93 for anything?
Avatar
some random blog post cited by wikipedia, apparently. also the only google result: https://kiwigis.blogspot.com/2013/09/base-93-integer-shortening-in-c.html
This post will describe a technique of shortening an integer by approximately 50%.  For example, the approximate coordinate extent of cont...
13:55
@ChillerDragon why do you implement base93?
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 14:05:12Z
yay i did it! it was some +1 and some index instead of 0
14:05
i hate numbers
14:05
@heinrich5991 i want to compress integers for my network protocol and i use only printable ascii range
14:05
my network packets are simple ascii strings
Avatar
have you considered using base 10, base 16 or base 64?
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 14:06:30Z
yea
Avatar
all of these are standard
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 14:06:43Z
yea but base93 > base64
Avatar
only on efficiency
14:07
not really on human-readability, which you seem to be after with your ascii-only protocol?
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 14:07:18Z
my initial issue suggested me to implement 64 but then i did a test base64 encode and got a string that is longer than 1 character
14:07
so i decided to build my own and max out on 93 printable chars
Avatar
@fokkonaut /kill doesn't seem to be working on your server
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 14:07:49Z
yea i want it to be easier to debug also in wireshark
Avatar
why is it easy to debug with base93?
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 14:08:14Z
also my whole protocol uses strings so i would get utf-8 errors if i go out of printable range
Avatar
there are no standard tools to decode base 93 integers
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 14:08:26Z
well thats why i built mine
14:08
it was a mess but now it works
Avatar
I don't get it, at all
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 14:09:13Z
apparently it is % 94 and / 93
Avatar
it's not easy to debug in wireshark if you use base93
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 14:09:17Z
for base93
Avatar
no, that's wrong
14:09
% 93, / 93
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 14:09:32Z
ok well then my implementation is wrong
14:09
or my base is actually 94
14:09
well my tests pass
Avatar
then your tests are wrong
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 14:09:49Z
u
Avatar
I can proof to you that it's % 93, / 93 if you want…
Avatar
or you haven't created a test that's smart enough
Avatar
*prove
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 14:10:12Z
oh boi i trust you
14:11
here is my test but no need from my side to check it im happy just if ur interested https://paste.zillyhuhn.com/kS
Avatar
why 93 though? there are 95 printable characters in ascii
Avatar
because the blog author didn't want to have , and -
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 14:11:20Z
well i went from ! to ~
Avatar
for some reason
14:11
to better compress his json
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 14:12:01Z
his code is so complicated 0.0
Avatar
I feel like one should remove base93 from that wikipedia article for only having a primary source
Avatar
How does base93 help readability though?
Avatar
not at all?
Avatar
that's where I'm lost
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 14:12:52Z
u rude
Avatar
you can copy-paste it?
14:12
perhaps
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 14:12:59Z
yes
Avatar
but you can also copy-paste the hexdump from wireshark
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 14:13:11Z
type the numbers on ascii keyboard
14:13
and avoid utf8 errors
14:13
i always send strings over the wire
14:13
i didnt bother building binary based packets
Avatar
you encode it in base93, you add 0x20 to get ascii characters, so you can copy and paste from wireshark?
Avatar
@Learath2 it is working, /kill only works after the kil protection time
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 14:14:13Z
yea my encoder adds the offset
Avatar
base64 has the exact same property of being composed of only printable characters AND it's standard almost everywhere
14:14
unless you need the extra compression, I still don't get the idea, but rock on 😛
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 14:14:53Z
but is not single character
Avatar
but a single base93 character isn't something humans can decode either
14:16
unless you have the entire ascii table burned into your head
pepeH 2
sendhelp 2
14:21
not only that, because its not a power of 2, it doesn't align well to byte boundaries, 1 base93 character is worth a nice round 0.81739485138850392378248281789042136653860459116110771616538142207754611495660215200381509901984180335141230364243796154607589618657202135276760265444230954990000188262500247343305991594219461838099269667158834316911854070919771478914536052795385853660643661410874034378300099482440799374831668149376145321093428744538878679558678814981539832844853800974679398724188050886971714870723159757110489346900184725073899821217477661574340213761402609994749634429... bytes
14:22
or 6.53915881110803139025986254312337093230883672928886172932305137662036891965281721603052079215873442681129842913950... bits
14:23
(so it doesn't even align with bit boundries)
14:24
which is only 0.54~ bits better then base64 and that gets you a nice 9%~ increase in compression
Avatar
standard base64 might not be the way to go, thinking about it
14:25
IIRC it can only encode whole bytes
Avatar
I'd definitely just go for good old base16
Avatar
@ChillerDragon you said you still have a bug in base93. can you link the current code again?
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 14:50:26Z
@heinrich5991 thanks for asking but i solved it and im very happy all glitches are gone and tests are passing
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 14:50:56Z
my packets are fixed size strings so i wanted to be one character long to represent NET_MAX_INT
14:51
yea but for sure its good to go with base64 or standards. Hex might be a good idea but i would have much lower max values
Avatar
Is there a way for compiling this game for mac in windows?
Avatar
no, I don't think so
15:18
we only support building from OS to the same OS and from linux to each other OS
Avatar
So is it possible to compile it for mac from linux?
Avatar
yes, but it's a little bit annoying
Avatar
[quakenet] deen BOT 2020-04-15 15:19:21Z
yes, using osxcross
Avatar
@heinrich5991 do you know of a way to override the python interpreter? on macOS it keeps finding the system python which is py2
Avatar
in cmake?
Avatar
hmm actually I better make that script py2 compatible
15:21
FWIW, getting osxcross set up wasn't that difficuly
15:21
difficult*
Avatar
hm, ok
15:21
I found it hard
Avatar
well for me it was just copying the sdk over and doing build.sh then build_compiler_rt.sh
Avatar
whys there no ninja_lifetime tune
Avatar
because no one added it
Avatar
imo ninja_lifetime, ninja_length, ninja_force would be very cool
f3 1
16:11
but
16:11
idk how to code so rip
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 16:15:21Z
@Deleted User github actions can build teeworlds for you also for macOS
16:16
@louis just go and play around with the source im sure if u invest some time you can get to those goals
Avatar
Any tutorial?
Avatar
[quakenet] ChillerDragun BOT 2020-04-15 17:16:18Z
@Deleted User well github has probably some generic tutorials on github actions you can look into github.com/teeworlds/teeworlds in the .github directory how they did it
17:16
what source base are you trying to build? If its a recent fork of teeworlds and on github you might have a mac build already
17:16
Yo bois?
17:17
Does one know the abbreviation of public domain license?
17:17
Like MIT has MIT what has public domain? Is it UNLICENSED?
17:23
omg i thought there is one pub domain which is same as unlicensed but this list says there are multiple :/ https://spdx.org/licenses/
17:24
oke looks like i found it => "Unlicense"
Avatar
Can someone explain me how antiping works?
Avatar
it predicts the position of objects in advance at the simplest level
22:21
it predicts where they (might) be in your ping milliseconds
22:21
so if ur ping is 300, it predicts where they will be in 300 milliseconds
22:21
helps mostly with drag parts where the tee is stationary and prediction is easy
Avatar
where the tee is frozen*
Avatar
trying to phrase it differently: your client takes over the physics that the server normally would, giving you feedback on your own input instantaneously. this works super well for your own tee, since it knows your input, but not quite as well for other tees, since your client does not know their input. for other tees, it simply simulates the physics as if they keep pressing the same buttons they just did. if another tee suddenly changes direction, your client predicted them to still walk in the same direction and corrects that as soon as it hears that from the server. that way antiping tries to simulate 0 ping, it depends on a stable ping, not as much on small ping
22:34
So when I use antiping on a server with high ping and play solo and fall in the freeze, it does not predict that. So the freeze is delayed. Is there any change in playing with or without antiping when playing solo?
Avatar
this works super well for your own tee, since it knows your input
it should be able to predict you perfectly
22:35
since nothing interfers, which your client wouldnt be able to predict
Avatar
So you think playing with antiping is always better when playing solo?
22:36
i would always suggest playing with antiping
Avatar
what is your ingame name?
Avatar
also Patiga :)
22:37
antiping also helps for example whenever you have to catch a frozen tee. since its just falling down, your client can predict that perfectly
Avatar
Ok. You can try to go on chile gores server and fall in the freeze with antiping on and off. there is no difference. its both delayed. but if its the way you say, shouldnt antiping predict it and freeze you instantly? I mean make it visible
Avatar
meaning you dont have to care about ping
22:38
in theory it should exactly do that, if the implementation was perfect
22:38
my guess is that the antiping correctly predicted your position, but didnt make your tee look frozen?
Avatar
I always thought antiping is only "used on" the other players. and does not effect solo gameplay at all
22:38
@Patiga yes
22:39
ye then it sounds like it does well with the position, but doesnt predict you being frozen, but waits for the server response for that
22:39
that sounds like it could be fixed at some point
Avatar
but wouldnt that mean I could not play with 250 Ping gores at all? Or actually, I still dont understand how exactly the position prediction works.
Avatar
your client takes over the physics that the server normally would, giving you feedback on your own input instantaneously. this works super well for your own tee, since it knows your input, but not quite as well for other tees, since your client does not know their input. for other tees, it simply simulates the physics as if they keep pressing the same buttons they just did. if another tee suddenly changes direction, your client predicted them to still walk in the same direction and corrects that as soon as it hears that from the server.
i thought this would cover it quite well
22:42
your client knows the map and it also knows your input, meaning it should be able to predict well
22:42
(maybe not moving freeze tho)
Avatar
130 ping and below antiping works almost perfectly
22:43
anything above that and it is really annoying
Avatar
Oh do you play league of legends? when i have 250 ping there, it actually is impossible to play. thats right. because its delayed. but in teeworlds idk, i can play on chile server 250ping witout antiping just as good
Avatar
i still dont get how smurfer can play with 200 ping tho
Avatar
no delay at all
Avatar
@Shyzo do u have antiping turned on
22:43
also make sure antiping limit is 0 or whatever
22:44
the slider
Avatar
usually I play with antiping on, yes
22:44
yea its on 0
Avatar
and make sure u have all the boxes checked
22:44
below
Avatar
i just tried out chile gores, and it worked well, apart from when my ping suddenly changed a lot
22:45
(at ~250 ping)
Avatar
yes. but with and without antiping, its the same
22:45
how?
22:45
1 sec
22:46
you are right, it works just as well
22:46
my guess is that antiping is in vanilla
22:46
so ddnet antiping is just extending it
22:46
that could be it
22:47
lol,its funny. hook and a/d is fine
22:47
but gun fire
22:47
is deelayed xd
Avatar
interesting, then normal antiping is probably movement only
22:48
and ddnet antiping adds weapons and support for their blocks
Avatar
cl_predict affects client side calculations about your own tee
22:49
turn it off and u have server side
22:49
antiping for pure gores solo is useless, but if u use rockets etc its nice to have
Avatar
oof I thought cl_predict and antiping is the same. oopsi daisy. i just tried it. now thats how it should be xD
22:54
and can someone explain me the difference between cl_refresh_rate and gfx_refresh_rate ? All I know is that, when I cap with cl, my entities blocks are a bit laggy
Avatar
yeah cl is affects all calculations, even the ones that aren't drawed frames(invisible updates basically) while gfx is really just your fps
22:59
so with cl on 1000 u will never get 1000fps bcs ur GPU isnt inifinitly fast
22:59
i also dont like this implementation, but best is probs to let cl be 0 and gfx and anything u want
23:02
to say it better, it may skip frames makes the updates less smooth
Avatar
Ok. I am wondering why it is the case that cl_refresh_rate 480 is a default setting
23:17
Or used to be default. I am not sure. But some people have it like this
Avatar
old client xd
Exported 234 message(s)