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-30 00:00:00Z and 2020-07-01 00:00:00Z
Avatar
#2370
Avatar
ᶰ°Konͧsti: @Deen any idea why i cant join DDNet server 14 on lan? I can't reproduce on Linux and with Win64 in wine. Anyone can?
Avatar
ᶰ°Konͧsti 2020-06-30 08:06:12Z
feelsbadman
08:06
Others had the same problem
Avatar
@ᶰ°Konͧsti you don't see the server or connecting doesn't work?
Avatar
ᶰ°Konͧsti 2020-06-30 08:08:55Z
I see the server but it keeps connecting forever
08:09
The lan server is The Problem, didnt work with older client too
Avatar
could I ask you to install wireshark and capture packets for debugging?
Avatar
ᶰ°Konͧsti 2020-06-30 08:09:37Z
not now tbh, im on a way till evening
Avatar
okay 🙂
Avatar
e7a9599 Add maps-paginated-ranks post - def-
Avatar
Pipou suggested it. I'm against it since it causes more work for translators and most players will never see the editor anyway. And once you're mapping, you probably have to submit your map somewhere and communicate in English anyway.
Avatar
Please discuss ^
Avatar
ᶰ°Konͧsti 2020-06-30 09:00:42Z
Maybe it would make it easier to understand envelopes and shit
Avatar
1782d95 Client tells server its zoom level (fixes #2087) - def- a79b126 Merge #2401 - bors[bot]
Avatar
Can we have some command like "bind_to_default YOUR_KEY" ? Why: Yesterday I accidentally bound return key to another action via Controls tab menu. I haven`t found a way to get bind back without searching across source code for default binding. What regular user can do in this case except full settings reset?
Avatar
Can we have a command to be able to see a connection between teleport in and out. Can we draw a small trace lines from any instance of TELEFROM to TELETO and CHECKPOINT to CHECKTO if their numbers match. bind x "+toggle tele_trace 0 1" should do the trick without being spammed all the time
Avatar
@heinrich5991 isn't showothers used to showothers from another team
11:00
thats what i does rn
Avatar
yes
Avatar
look my github
11:07
comments
Avatar
the following situation:
11:07
A has showothers enabled
11:07
B doesn't, is in a different team
11:08
we create a snap for B
11:08
since A has showothers enabled, we snap the specchar
11:08
but that's not intended, its should only be snapped when B has showothers enabled, not A
Avatar
"we create a snap for B" as in the snapshot will be sent to b?
Avatar
yes
Avatar
snappingclient is the one who will receive the snapshot?
Avatar
yes
11:09
its a bit confusing sometimes
11:10
so i should just use pSnapPlayer->m_ShowOthers
11:10
@heinrich5991 did you see about -1?
11:11
this is on the same level and it doesn't handle -1
11:12
@heinrich5991 do you know if the dummy is the same player?
Avatar
dummy is a separate player
Avatar
ah nevermind
11:13
it isnt
11:13
ok it works
11:14
well only the -1 remains
Avatar
@Ryozuki out of bounds is still a problem there (and above as you noted), star goes to the variable name, not the type
Avatar
I think this may be useful. Maybe could make it switchable, if someone doesn't want to find next available port.
12:27
5c45f08 Clean and fix style on character snap - edg-l 3f61bab Merge #2418 - bors[bot]
Avatar
49ba907 Fix out of bounds read in CPlayer::Snap with IsSixup (fixes #2416) - def- 3e77272 Merge #2417 - bors[bot]
Avatar
using a variable and then for some reason not using it
12:47
lol
lol 1
Avatar
eb1779f Fix showothers for specchar - edg-l b96544f Merge #2413 - bors[bot]
Avatar
Preview: https://www.youtube.com/watch?v=ZWDffbmyQmo Disabled by default and you can change the animation length.
Avatar
#2370 happens with our prebuilt servers
Avatar
ᶰ°Konͧsti: @Deen any idea why i cant join DDNet server 14 on lan? I can't reproduce on Linux and with Win64 in wine. Anyone can?
Avatar
yep, that's pretty bad
Avatar
eh, rather hard to debug when recompiling it fixes it 😄
Avatar
so I should bisect on my build server?
Avatar
Trafalgar Law 2020-06-30 14:54:34Z
@deen is the steam rls now planned 🤔 ?
Avatar
Trafalgar Law 2020-06-30 14:54:53Z
Nice one
Avatar
@Learath2 you could run with asan or valgrind to check for some weird stuff, because that's my guess
Avatar
planned? is there a release date?
Avatar
ddnet birthday
14:56
feelsbadman
Avatar
I'm taking a look on what messages I get on the client
Avatar
planned yes, release date no
14:57
we're waiting for valve to review the release
14:57
currently
Avatar
I get a NETMSG_CON_READY, then I get a SNAPEMPTY
14:57
which should be enough to let the client ingame, no?
Avatar
client receives 3 snaps before it goes ingame IIRC?
Avatar
hm, I only get one, nothing after
14:58
no symbols on the release either, I thought we were building with RelWithDebInfo
Avatar
@Learath2 memcheck output, maybe it helps
Avatar
it might be nice if we could build with detached debug info
14:59
then we don't need to ship the debug info (smaller downloads) but can still debug after the fact
Avatar
Found with memcheck: ``` On server start: ==463034== Conditional jump or move depends on uninitialised value(s) ==463034== at 0x1E03CE: CServer::CacheServerInfo(CServer::CCache, int, bool) (server.cpp:1781) ==463034== by 0x1E188A: CServer::UpdateServerInfo(bool) (server.cpp:2079) ==463034== by 0x1E6B14: CServer::ConchainSpecialInfoupdate(IConsole::IResult, void, void ()(IConsole::IResult, void), void*) (server.cpp:3174) ==463034== by 0x18FB53: CConsole::Con_Chain(ICon...
Avatar
hm, maximum(MaxClients - maximum(g_Config.m_SvSpectatorSlots, g_Config.m_SvReservedSlots), PlayerCount) how could any of these be uninitialized? the memcheck doesn't make much sense
Avatar
the first one?
Avatar
the 2 variables we directly initialize, the configs are initialized by the config
Avatar
i think the last one might be more interesting
Avatar
oh yeah that does look more interesting
Avatar
My guess would be that you run the CacheServerInfo before initializing g_Config
15:10
looks like my guess is wrong
Avatar
mine was too
Avatar
m_MaxClients in CNetServer is only initialized after Open()
15:19
but we access it before
15:21
I'll fix that
15:23
hm, actually not so easy since it happens while reading the config and we need the config for that
Avatar
What triggers resends?
Avatar
no idea 😄 @heinrich5991 maybe knows
Avatar
when the other peer asks for them
Avatar
Nothing else?
Avatar
and long outstanding acks I think
Avatar
I don't see the client asking for one, but the server sends the tuneparams, then sends another with resend flag set
Avatar
after a timeout?
Avatar
I'm not sure why it's sent
15:26
the client is still stuck in the loading screen
Avatar
found a nicer solution
Avatar
@deen can you try a build with debug info?
15:32
Well actually, can you get me one 😄
Avatar
from the build server?
15:33
did you fix the uninitialised value in OnClientEnter yet?
Avatar
yeah, doesn't happen on my builds
15:33
I couldn't find what is uninitialized OnClientEnter
Avatar
ok, let me take a look
15:34
the Flags
15:34
hm, no 😄
Avatar
it has a default value
15:34
I thought it could be the m_Sixup of the client, but I don't see how that could happen
15:35
especially after [2020-06-30 16:58:01][server]: player has entered the game. ClientID=0 addr=<{192.168.0.2:63032}> sixup=1
Avatar
m_aClients[ClientID].m_Sixup is initiailzed?
Avatar
oh, doesn't seem to be, but at that point it has to be assigned to atleast once
Avatar
nope, missing in CClient::Reset()
15:37
i think that will fix it
Avatar
nnonono
Avatar
that creates a really interesting issue
15:37
try it in CServer::Init instead
Avatar
done, memcheck is green now
15:39
now let's test on the build server if I can verify it
15:39
x86-64 linux?
15:42
Having it in Reset() caused the server to forgot that the client is sixup on a map change because a rejoin causes a reset
15:42
s/forgot/forget/
Avatar
5db2efa Remove ddnet-master-steam too - def-
Avatar
tbf though, I don't see how the value can end up uninitialized ever, NewClientCallback always sets m_Sixup
Avatar
but this code is run before NewClientCallback
15:47
maybe that's the problem
Avatar
really? how? I thought NewClientCallback is where CNetServer hands it over to CServer
15:48
memcheck complained all the way in CGameContext
15:54
aha I see why
15:54
are you passing in an uninitialized Sixup into NewClientCallback?
Avatar
Nah, I'm not checking ClientIngame before checking IsSixup
15:55
The lower part of the stack drops the messages to the invalid clientids just fine so I never noticed
Avatar
ok, my change didn't fix the connection issue
15:56
do you still need the debug build?
Avatar
Well yes, can't really go on without symbols
15:56
I mean I could but disassembling this would be a PITA and I'd rather avoid it
15:56
so you're hoping it also happens in debug
15:56
could be something that is caused by optimizations
15:58
ok, can be reproduced
Avatar
oh great that it happens in debug
15:59
I was hoping RelWithDebInfo
Avatar
that would have been my next step
16:00
but easier to debug without opts
Avatar
@deen Reading symbols from ./DDNet-Server...(no debugging symbols found)...done.
16:01
what are you building on?
Avatar
oooh, it's probably stripping
16:02
i used the make package_default
Avatar
ah makes sense
Avatar
\o/ symbols
Avatar
Solves issue discussed in #2374. Also keeps direction and jump, which is evaluated when player is in /pause. Fire could be deleted, as it does not affect game play in any way.
Avatar
@deen which commit is this exactly?
16:16
I'm having trouble matching the source lines
16:22
uh, I wonder how this ever worked at all
Avatar
it's just master from ddnet/ddnet
Avatar
@deen https://streamable.com/ozwb2j using the logistic function :D
👍 1
Avatar
I see, @deen I think your compiler is choosing the wrong template specialization
Avatar
yay, buggy compiler
16:26
ok, so I need to update and build a new release
Avatar
gotta find a way to make it look good when zooming while the animation
Avatar
or figure out a better template hack than me
Avatar
nah, not worth it to fight buggy compilers
Avatar
can you take a quick look at what I do please?
16:27
I'm not great with meta-programming and SFINAE
Avatar
@Ryozuki maybe a bit too fast
16:27
there is a setting tho
Avatar
@Learath2 ok, where
16:28
better make the default reasonable
Avatar
@deen datasrc/seven/compile.py:L118
16:30
messages from protocol7 are then marked with using is_sixup = char; causing is_sixup to evaluate to true
16:30
Ah I know this issue actually
16:30
hm, it's not a compiler issue, it's a standards defect fixed in C++14
Avatar
so we need to set C++14 as minimum?
Avatar
nah there is an ugly-ish workaround to define void_t before C++14
16:31
c++ template<typename... Ts> struct make_void { typedef void type;}; template<typename... Ts> using void_t = typename make_void<Ts...>::type;
Avatar
sounds like you know enough to fix it 😄
Avatar
@deen can you try that instead of the simpler definition of void_t I have there?
Avatar
8d8f1d7 Only SendChat to clients that exist. Initialize m_Sixup anyway - Learath2 5a41318 Merge #2423 - bors[bot]
Avatar
@deen it just hit me when I looked at compile.py that I added that void_t definition when I thought we'd upgrade to C++14, then I remembered reading about a standards defect
16:33
Until CWG 1558 (a C++14 defect), unused parameters in alias templates were not guaranteed to ensure SFINAE and could be ignored...
16:33
Oh It's a C++14 defect even, so would have needed C++17
Avatar
There's something broken with switches on the map Croissant
Avatar
nope, doesn't work
Avatar
nooooo
16:35
you sure it regenerated the protocol?
Avatar
$ grep -r "void_t = " Binary file datasrc/seven/__pycache__/compile.cpython-34.pyc matches datasrc/seven/compile.py:template<typename... Ts> using void_t = typename make_void<Ts...>::type; src/game/generated/protocol7.h:template<typename... Ts> using void_t = typename make_void<Ts...>::type;
Avatar
meh, I guess it's a compiler defect then
Avatar
hm, that fixed the wrong branch being taken
16:39
@deen that does fix it for me
16:39
I can join the server with the prebuilt binary
Avatar
59a7e1f Revert "Fix /save on solo server" - def-
Avatar
I would have been awfully surprised if that didn't work, given the C++14 defect fit perfectly to what I'm doing
16:42
After that change I can connect with both 0.7 and ddnet, if there is another issue, it's one that I can't reproduce on any system I have access to
Avatar
making the zoom go faster when u spam zoom+ is rly hard
16:46
or idk
Avatar
why? Just change the end spot and the logistic function should get faster?
16:47
don't set a new start spot
Avatar
i did that, but the zoom jumps
Avatar
it's not that simple
Avatar
jumps? huh how could it if you don't move the current spot?
Avatar
it jumps cuz if u were 30% done, now ur 20% done
16:47
and thus it jumps
Avatar
jump in speed
16:48
instant change
16:48
i dont want instant changes
Avatar
that shouldn't happen
16:48
16:48
tell me what im doing wrong
16:48
xd
16:49
well
16:49
the second screenshoit
16:49
is just testing
Avatar
so when targetzoom changes, m_Zoom gets an abrupt change?
Avatar
because the old point is no longer on the logistics curve
Avatar
with only m_TargetZoom *= ZoomStep;
Avatar
i was racing and some admin shut down the server
Avatar
how about you instead go forward in time? to where the curve matches the current zoom and continue from there?
Avatar
im trying that
16:51
complicated tho
Avatar
guys a hacker is locking all the servers
Avatar
no hacker
16:51
just read #announcements
Avatar
but why reset when i was in middle of race
16:52
why censor
Avatar
cuz it says deen
Avatar
not
16:52
it could say anything
Avatar
its the right length
16:52
it could say noby to
16:52
o
Avatar
@Ryozuki so where is the curve that drives zoomprogress?
Avatar
zoomprogress is getting incremented somewhere according to the curve, no?
Avatar
this calculates the current zoom, zoomprogress returns from 0 to 1, i scale that to -6 to 6
16:54
ah
16:54
Avatar
What calculates ZoomProgress()?
Avatar
forgot to send it
Avatar
uhm, I can get a little dense with this math stuff, but where is the curve defined?
Avatar
zoomprogress returns a value which is used in the curve
16:55
the curve is the float ScaledProgress = ZoomProgress() * 12 - 6; float Amount = 1.f / (1.f + exp(-ScaledProgress)); m_Zoom = mix(m_StartZoom, m_TargetZoom, Amount);
16:55
Amount specificily
Avatar
ah, yeah sorry blind
16:56
I think I can get a formula for how you should modify the starttick to get the point you need
Avatar
this is either rly simple, or overcomplicated
16:56
if you can go ahead
16:56
xD
Avatar
@Learath2 now it works when it's not stripped, but after stripping it doesn't
16:57
i'm confused
Avatar
what? really?
Avatar
I'm baffled, strip shouldn't be touching any code
Avatar
i rebuilt again, deleted all files before
16:57
or cmake does something very wrong here?
16:58
ooooh
Avatar
if you deleted your build folder, I don't see how the past could influence
Avatar
the DDNet-Server I sent you is wrong
Avatar
@Learath2 we can always just forbid zooming while zoom is in progress
Avatar
when you make package_default the DDNet-Server doesn't get updated apparently
Avatar
@Ryozuki but that's not cool enough
16:58
@deen so it's not fixed?
Avatar
Wait, how is the DDNet-Server you sent me fine then?
16:59
It should be fixed 😄
Avatar
let me rebuild again
Avatar
the smooth zoom should be like accelerating
16:59
not linear
16:59
if u know what i mean
Avatar
a logistic curve is accelerating in the middle
Avatar
ah was it changed
17:01
in the github thingie it looked linear
17:06
this is how it looks rn
Avatar
@Ryozuki what about smooth zoom from ath
Avatar
ath sucks my ass
feelsamazingman 2
f3 3
noath 2
17:06
but smooth zoom is nice
Avatar
you can implement it
Avatar
for videos and stuff
Avatar
i wont do it
Avatar
biggest f3
Avatar
why does /save g if g is already a save code make my tee do a weird kill thing
Avatar
shouldnt it not affect ur tee and give an error msg instead
Avatar
@Ryozuki how do you modify the end of the animation when you modify the target zoom?
Avatar
it does, but it spawns the kill particles on my tee and also makes the kill message in scoreboard
Avatar
end tick of the animation*
Avatar
even though my position doesn't change
Avatar
oh.. thats weird lol
Avatar
secret trick to swap strong hook justatest
Avatar
come srv @noby
17:09
oh wtf
17:09
thats actuaqlly genius
17:09
wait lemme test it
Avatar
@Learath2 here u have the changes with this thing missing https://github.com/ddnet/ddnet/pull/2420/files
Avatar
ah I see what you tried
Avatar
i can try that but i doubt it makes any difference
Avatar
wait i dont get it lol
Avatar
aw it doesnt give strong >:l
17:10
@noby join my server
Avatar
send tldr
Avatar
u have to see it
17:11
im on springlobe 3
17:12
wtf
17:12
hahahaah
Avatar
okay this is more @heinrich5991's ball park as this ends up being a differential equation if you don't want the speed to change 😛
Avatar
that looks so silly
Avatar
tdtw's zoom
Avatar
heinrich the math expert
Avatar
if you just want the zoom not to jump, I can do that
yes 1
Avatar
what do you mean
17:13
you can fix it without complicated maths
17:13
?
Avatar
can an admin join my server
17:13
flw louis
17:13
yeah
17:13
i watched it
17:13
its wierd
17:13
i do think someone should look into it xd
Avatar
If you don't want instant changes of the zoom, I can solve the equation to tell you how to modify the start and the end
Avatar
he just makes the spawn particles
17:14
and appears in the same place
Avatar
yeah go ahead
Avatar
If you want the speed the zoom is changing to stay the same, I can't, it's a differential equation that I can't seem to solve 😛
Avatar
haha this can be used to do instant hooks since you die and respawn and your hook is reset so it makes it easy to do edgehooks since you need to hook very fast
Avatar
how do u trigger it?
17:14
just using a save code that exists? lol
Avatar
what about smooth text appearing?
17:15
it would be nice
Avatar
louis are u sure ur actually dying and respawning
17:15
maybe it happened too fast for me to see lol
Avatar
no my time doesnt change but i see the scoreboard for a split second sometimes
Avatar
i took demo
Avatar
ill go play a dota ranked and cry in a corner after losing
17:16
@Learath2 ping me if u find a solution
Avatar
if i am dying and respawning, it should be possible to stack tees in maps where /spec doesn't allow for it and possibly do some bugs
17:16
im not sure
Avatar
try to find a way to exploit it
17:16
then it will get fixed faster
Avatar
@Learath2 diff eq?
17:19
did someone call me? 😛
17:21
how to modify the curve smoothly
17:21
after the zoom animation already started
Avatar
@Ryozuki have you just tried increasing the target zoom?
Avatar
you can try it
17:21
download the artifact
Avatar
this entire equation just reduces to 0 = 0 so you should be able to change that
17:22
i tried but its abrupt
Avatar
no it does kill because my rockets suddenly stop when i run the command
Avatar
you can checkout the pr and try it xd
Avatar
so its not exploitable
Avatar
nvm, I'm retarded, I forgot the mix()
Avatar
and its literaly just a way to kill in a weird way? lol
Avatar
no i think it could be exploitable
Avatar
and u dont even die / give strong
Avatar
well i think ur not wrong that if its making ur projs disappear then ur tee is dying
17:24
i fail to see how it helps u yet
Avatar
for example, running the bind the frame you are on a kill might override the kill and you may be able to skip kills
Avatar
hmmmmmmmm
Avatar
or running the bind the frame a tee teleports to the tile you are on can stack both tees and you can do a sg bug maybe
Avatar
u should make a test map
17:24
for that
Avatar
ye but idk if my srv will have the glitch
Avatar
download newest ddnet
Avatar
@deen join my server
Avatar
@louis ip?
Avatar
just follow louis
17:35
74.91.114.132:8305
17:35
i think
17:37
@noby yes its fully exploitable LMAO
17:38
how?
Avatar
join srv
Avatar
@noby can you explain the rocket thing?
Avatar
which thing
18:08
if u mean what louis said, i just agreed because ddnet removes ur projectiles once ur tee dies
18:09
so i thought that supported the idea of what he had found
18:09
i dont know much about how hes actually doing it
Avatar
-- troll (edited)
Avatar
NICE SNITCH
Avatar
he can scroll up himself tho
Avatar
if u didnt want ddnet #developers to know maybe u shouldnt have wrote how to do it in the #developer channel @louis lmao
Avatar
d10cb17 Revert "Restore old /save behavior" - def- 4476ec3 Revert "Explain why the randomly generated save code is used" - def-
Avatar
@noby i wrote that before i realized u could a: buse :(
18:17
uve learned something today
Avatar
send senior bug tester role troll
Avatar
3de5b3a Revert "Revert "Explain why the randomly generated save code is used"" - def-
Avatar
Trafalgar Law 2020-06-30 18:20:10Z
Revert Revert troll
Avatar
@Learath2 no, still not fixed somehow
Avatar
@louis see
Avatar
how did you even get that one build that worked?
Avatar
I'm also wondering...
18:25
where is that DDNet-Server executable coming from
Avatar
It'd be really odd if this was undefined behaviour in the compiler itself
Avatar
I deleted it and it came back with an old creation timestamp
ghost 3
Avatar
what the hell?
Avatar
oh, my time is wrong in the chroot
18:26
that at least explains the timestamp
18:27
ok sorry
18:27
it's fixed
18:27
i copied to the wrong directory
Avatar
mixed up the user and then copied to the wrong home directory obviously
18:28
your fix works
Avatar
I'm very confused 😄
Avatar
please make a PR, and let's get it released before I go on vacation 😄
Avatar
@deen some weird bug
18:28
with /save again
18:28
join srv xd
18:28
too bad i cant a: buse this one
Avatar
not with that attitude
Avatar
nvm it wasnt even a bug
nouis 2
Avatar
I don't get it
Avatar
@heinrich5991 what? the fix?
Avatar
yes
18:37
I guess I should read up on CWG1558
Avatar
Before C++17 whether an unused template argument could cause substitution failure was undefined
18:39
and when something is undefined the vendor always chooses the easier to implement choice 😄
Avatar
omg @Learath2 my color binds are back!
Avatar
@Learath2 whats a c++ defect?
18:47
reproduced ping bug
18:47
@jao's hairy kebab
Avatar
who is using my name
18:47
in that image
18:47
llol
Avatar
but it pinged
Avatar
its sp someone
Avatar
@Ryozuki it's when the standard itself missed something
troll 1
Avatar
@ZombieToad troll
Avatar
u
🇺 1
Avatar
that's heresy @Learath2
Avatar
never heard of this
Avatar
@Ryozuki @heinrich5991 found a function that should work better than a logistic curve and is easy to manipulate on the run
Avatar
@Ryozuki never heard of what?
18:50
Cubic bezier curves
Avatar
CWG Issues
Avatar
or something similar to them
Avatar
Cellegen | HU 2020-06-30 18:51:08Z
@Learath2 is the hungarian version updated or not? im actually scared on updating my client so i wont lose any progress translating it lmao
Avatar
You can set the curve to range from m_StartZoom to m_EndZoom, and the first derivative is simple enough that we can set the initial speed to be the current speed
18:51
*the first derivative at 0
Avatar
reading wikipedia formulas is an art
18:52
itself
Avatar
takes a masters degree and 3 phds
Avatar
if you know how to implement it feel free justatest
Avatar
I'll try to
Avatar
enjoy, my math has gotten too rusty in a year of not doing any math
Avatar
Cellegen | HU 2020-06-30 18:55:12Z
how to convert subtiles/tick into blocks/sec lol lol lol
Avatar
50ticks=1sec
18:55
32subtiles=block
Avatar
Cellegen | HU 2020-06-30 18:55:49Z
one of my friends who programs C# asked me this
18:55
genuinely
18:56
beutiful
Avatar
I was only proposing something similar to bezier curves
Avatar
Cellegen | HU 2020-06-30 18:56:41Z
that algorithm can be used on teewords editor?
Avatar
I think so
Avatar
@heinrich5991 I think bezier curves fit perfectly here, no?
Avatar
Cellegen | HU 2020-06-30 18:57:40Z
@Learath2 for graph editing yes
Avatar
the formula we use is not the one web browsers use (at least if we use it in 1d instead of 2d)
Avatar
A detailed explanation of Bézier curves, and how to do the many things that we commonly want to do with them.
Avatar
easy to attach one bezier curve to the end of another
Avatar
A detailed explanation of Bézier curves, and how to do the many things that we commonly want to do with them.
18:58
😛
Avatar
first!
Avatar
はい
18:58
japanese
18:58
weeb heinrich
Avatar
Cellegen | HU 2020-06-30 18:58:48Z
kek nerds finding best stuff
Avatar
わかりません
18:59
I found a bug in apples IME
Avatar
asian characters look rly nice, i wonder what they thing of our characters
justatest 1
18:59
have you seen japanese or chinese websites, some are impresive
Avatar
Chinese is usually a little more blocky, but both do have some beautiful glyphs
19:02
I looked into rendering arabic lately
19:02
god is that insanely hard
Avatar
that's fun 🙂
19:02
I took a arabic course for a semester, was a bit enlightening
19:02
even word is broken btw
Avatar
you need a feedback loop while putting out the characters as the character that comes after a character determines how it's drawn
Avatar
korean language best feelsamazingman
Avatar
Cellegen | HU 2020-06-30 19:02:49Z
laughs in hungarian
Avatar
hangul is really easy to learn
Avatar
Cellegen | HU 2020-06-30 19:03:06Z
hangul?
Avatar
The korean alphabet
Avatar
Cellegen | HU 2020-06-30 19:03:14Z
ah
19:03
d3ac9a6 Address C++14 defect(CWG1558) - Learath2 84372fb Merge #2426 - bors[bot]
Avatar
+Added 95%~ of the missing texts that has been added to 14.0 and above. +Fixed most texts, that was being larger, than intended. +Fixed translations on "Dummy" for better understanding. !Didn't test the translation of the "Tutorial Phase" yet, but i think it stands out good, as scaling goes well for it. !There's a bug with "Connect Dummy" and "Disconnect Dummy" on the Hungarian translation, which I've tried to apply, but with no success. Please fix the texts where on the missing text sec...
Avatar
Cellegen | HU 2020-06-30 19:17:58Z
my other profile is not available, so this is the new one tee_thinking
Avatar
fork-pr also not working lol
Avatar
thanks @Cellegen | HU
Avatar
Cellegen | HU 2020-06-30 19:52:56Z
^^
20:09
c352157 Add showothers2@netmsg.ddnet.tw - def- edba33b Add Show others (own team only) menu setting - def- 59cf78b Always recreate the language files in same order - def- 9a87068 Regenerate language files - def- 73dcd08 Update German translation - def- 1cb9454 Rename showothers2 -> showothers - def- e8feba8 Lost some polish translations by TortiLeq, restore - def- 00673e5 Add hungarian translation by Cellegen (fixes #2428) - def- 0199254 Merge #2398 - bors[bot]
20:44
e69f747 Don't run UpdateServerInfo if server isn't initialized yet - def- 47a3318 Merge pull request #2422 from def-/pr-updateserverinfo - def-
20:44
1b17c25 Version 14.1 - def- ac42861 Merge pull request #2427 from def-/pr-14.0.4 - def-
Avatar
arch linux updated greenthing
Avatar
thanks Ryozuki
Avatar
@Ryozuki TU when?
Avatar
whats TU?
21:34
ah
21:34
idk
Avatar
[quakenet] Learath2 BOT 2020-06-30 21:34:39Z
Translation Unit?
Avatar
Trusted User
Avatar
i think i need to maintain more packages
21:36
A digital logic designer and circuit simulator.
Avatar
Zwelf: (if you are still around in freenode) I had an idea yesterday, do you think maybe we could pause teams while saving, instead of killing them and reloading them?
22:07
The reloading seems to be a great place for our resident pentesters to find "features" in
Avatar
pause as in /spec where the tees disappear? or what kind of pause?
Avatar
the old kind, as in when pause was first developed
22:11
freeze in place, no hooks no jumps
22:16
@deen how did we handle the case when someone used an old save code?
Avatar
right now?
22:17
or before all my reverts?
22:17
right now you get a new random save code
Avatar
before
Avatar
you get saved and instantly reloaded?
Avatar
I mean before the entire rework
22:18
You were in an inbetween-state until the save gets written
22:18
I think you could even get a finish and a save from just before the finish
22:18
and if the code exists nothing happened
Avatar
ah we didn't handle the asynchronous nature of the query at all
22:19
hm, I guess reloading should work as long as we reload everything correctly
Avatar
@Ryozuki ^
22:23
@Learath2 the thing is, the other bug could also be abused before
Avatar
@heinrich5991 is this performant?
Avatar
what is performant?
22:24
evaluating a cubic polynomial?
Avatar
more performant than evaluating an exponential function I guess
22:25
but yes
22:25
it's like 32 floating point operations that happen on each render while the smooth zoom is in progress
Avatar
that's some beautiful code 🙂
Avatar
thanks
Avatar
32 floating point ops doesn't sound bad
Avatar
I like how cubic beziers connect so nicely
Avatar
https://ddnet.tw/ranks/moderate/3/ the map "Silk Touch" is incorrectly labeled as a 3-player-map
Avatar
thanks, fixing
heartw 1
Avatar
@heinrich5991 you could overload () instead of Evaluate if you want to be a cool hip C++man
Avatar
I think I'm good without syntax 😛
Avatar
@heinrich5991 what controls the curves timescale?
Avatar
it's always between 0 and 1
23:04
we calculate the float between 0 and 1 in progress
Avatar
Why? I remember that only being the case because CSS fixed 2 points of the curve
23:05
did you also fix those?
Avatar
ah
23:05
no, I use a "bezier curve" in R, not R²
23:06
i.e. I don't have a separate time scale
23:06
I just fit a cubic polynomial in a way that matches the current zooming speed, current zoom level, target zoom level and target zoom speed=0
Avatar
huh, I should read more about bezier curves
23:08
I didn't see any definition on wikipedia for cubic bezier curves other than the one that defined the curve using 4 points
Avatar
yea, I use that
23:08
but the four points lie in R, not R^2 for me
Avatar
I sometimes have trouble visualising these, if the 4 points lie on a line (R) how does it still define a curve?
Avatar
in R^2, they are also parametrized using a time
23:13
do you see the four basis vectors b_03, b_13, b_23, b_33?
Avatar
basis vectors of what?
23:15
When did we get to 4 dimensions? 😕
Avatar
basis vectors of polynomials of degree at most 4
23:17
four other basis vectors would e.g. be 1, x, x², x³
Avatar
Hm, didn't know those were called basis vectors
Avatar
hm
Avatar
Okay sure, we have 1, x, x^2 and x^3 in our cubic
Avatar
but we use the bernstein polynomial basis instead
Avatar
Ah I see what you mean
23:19
So what property does bernstein polynomial bases have that help us?
Avatar
b_03 is 1 at 0 and 0 at 1
23:20
b_33 is 0 at 0 and 1 at 1
23:21
so by doing a * b_03 + d * b_33
23:21
we get a polynomial that is a at 0 and b at 1
Avatar
Oh, so we don't care what happens outside [0,1]?
Avatar
ah yes
Avatar
but you seem to have used more than b_03 and b_33
Avatar
yes
23:24
for influencing the derivatives at 0 and 1
23:24
there's probably a better basis for this than the bernstein basis and I probably even learned about it in numerics
23:24
but I don't remember its name
23:25
here you can see that B is precisely a linear combination of that bernstein basis
23:26
and then you can see the derivative below that
23:26
plug in 0 and 1 to see how you have to manipulate b and c to get the derivatives yo uwant
Avatar
Yep, I see that now, is it a property of bernstein bases to have nice values at 0 and 1?
Avatar
yes
23:27
there's definitely a basis for even nicer values at 0 and 1
Avatar
honestly I don't see what else you could want
23:28
I'll read up on bernstein polynomials, I wonder what the intent was when coming up with them and how they are generated
Avatar
In numerical analysis, polynomial interpolation is the interpolation of a given data set by the polynomial of lowest possible degree that passes through the points of the dataset.
23:30
this is better I guess
Avatar
oh we are in a sense fitting a polynomial to data
Avatar
yes
Exported 674 message(s)