Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.org/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 2024-11-29 00:00 and 2024-11-30 00:00
Avatar
ws-client BOT 2024-11-29 01:36
<ChillerDragon> @Learath2 maps as json is called MapDir cargo install twmap-tools twmap-edit --mapdir dm1.map out_folder_name
Avatar
nameplates pr has 60 review comments justatest
Avatar
sounds fun
Avatar
Checklist Tested the change ingame Provided screenshots if it is a visual change Tested in combination with possibly related configuration options Written a unit test (especially base/) or add...
Avatar
can anyone answer while i'm making the changes. timezone and stuff
02:57
greenthing am i encouraged to just use classes instead
Avatar
i don’t understand why structs shouldn’t be used
02:58
idiomatically even if access specifiers are different by default there is definitely a contextual difference between structs and classes imo
02:59
structs make me think it’s fairly portable data, maybe a POD type
02:59
class makes me think generics, methods, private machinations
Avatar
i don't either, but i tend to follow reviewers. but i'm more confused about whether i need classes or he wants me to factor out the variables into the parent class directly
Avatar
well you would need to prefix it with S if you were to keep it a struct
03:00
but yeah
03:00
idk the context that much
Avatar
pepeW maybe i'll just wait for robyt3
03:01
gotta figure out the cursor position thing.
Avatar
well only he knows what he means
03:01
i definitely think you should group your data tho
Avatar
ye. i'll just change it to class for now until he says other things
03:02
i do believe double is reasonable here tho (edited)
Avatar
weird coincidence but i guess i’m in the midst of transcribing you rn https://youtu.be/X2FWgkcTc4U?si=Hy94tq1b72q78BBn
03:03
or maybe it isn’t weird and i’m just a nerd
Avatar
Avatar
TsFreddie
i do believe double is reasonable here tho (edited)
i think as long as there is any reason not to use float then yeah
03:04
use the double
Avatar
i'd rather to be freddy the fazbear
Avatar
the guy on the cover isn’t fred fwiw
03:04
if you’re being typical chinese rn
03:04
justatest
Avatar
greenthing well that's the only thing that is visible unless you want me to check lyrics or something
Avatar
no lyrics
Avatar
so just the vibe
Avatar
the song is just called fred
03:05
yeah
Avatar
fair enough
Avatar
Avatar
Ewan
if you’re being typical chinese rn
oh you don't want to hear me ranting about how china is overdoing their welcome to africa countries for allying
Avatar
even if i did want to
03:07
definitely not here
Avatar
ye, still figuring out the cursor drifting
Avatar
even still no reason to hate on an american-born black guy who has nothing to do with any of that
Avatar
i don't
03:10
what even is the pr
03:10
cursor drifting
03:10
is this shadowing?
Avatar
is there another TargetPos?
Avatar
just these two
Avatar
oh i didnt see
03:11
no
03:11
if the outer scoped one was declared before that branch then yes (edited)
Avatar
oh cool
03:11
C# doesn't like that, i think i'm just rusty on C++ (edited)
Avatar
lol yeah
Avatar
it was like this but robyt3 want it scoped
Avatar
i think you’d get a warning there anyway
Avatar
well MSVC doesn't really give a lot of warning and i failed too many linux builds bcs of MSVC
03:12
cammo
03:13
it's the only compiler i have rn tho
Avatar
dont use msvc then
Avatar
Avatar
TsFreddie
it was like this but robyt3 want it scoped
the first is better bcs you make one less object
Avatar
it's just habit of setting up msvc i guess
Avatar
install msys2 -> pacman -S -> win
03:14
it really is very good
Avatar
idk why i really didn't like msys2
03:14
but that was like 15 years ago (edited)
Avatar
idk if the project is that old
03:15
what were ur qualms
Avatar
i forgot. hence the idk why part
03:17
well it’s noticeably better now than it was when i started using it in like 2019
03:17
pacboy makes environments/packages easier
Avatar
it started that late huh
03:18
2019 is like after my college already. weird.
03:18
oh wait, read that wrong
03:19
disregard that
Avatar
i think it was from 2017
03:23
nostalgic
Avatar
Avatar
Ewan
what even is the pr
oh right, it's just showing cursor during spectating
Avatar
you want it to show?
Avatar
wanted it a few years back, i've implemented this three times already, never got to the place where it was useable. ye
03:25
honestly the original thought is to catch cheaters more obviously
Avatar
and it’s drifting?
Avatar
ye, when zooming + dyncam it mismatch the local cursor (edited)
03:26
haven't dive deeper but i'm afraid that we are sending the wrong world position in the first place.
03:27
i'm just hoping i did something wrong when displaying the cursor
Avatar
i feel like this was talked about a few months ago
03:28
but idr
Avatar
ye
03:28
if i know how to interpolate, this would be a much easier pr a few years ago when it was first suggested
03:28
with all the new exprotocol and zooming stuff
Avatar
is cursor relative to player or absolute world units? i genuinely dont know
Avatar
a bit tougher
Avatar
to interpolate you’d need a second set of coords
Avatar
Avatar
Ewan
is cursor relative to player or absolute world units? i genuinely dont know
cursor is screenspace locally but it was scaled somewhere to worldspace and sent to the server
Avatar
Avatar
Ewan
to interpolate you’d need a second set of coords
the interpolation is done already.
Avatar
why should it be worldspace
Avatar
Avatar
Ewan
why should it be worldspace
no idea. but it is what it is. not my fault
03:30
kekw
Avatar
that just seems like a great way to break physics as you move further away from the origin lol
justatest 1
Avatar
even when i started working on it i always assumed it was screenspace, then i was corrected.
Avatar
not like that doesn’t already happen
Avatar
Avatar
Ewan
that just seems like a great way to break physics as you move further away from the origin lol
the sheer thought of we are having different grid precesions in different zoom levels scares me
03:31
catbite
03:32
justatest
Avatar
Avatar
TsFreddie
the sheer thought of we are having different grid precesions in different zoom levels scares me
need to make a map that only works if you zoom right
Avatar
ah damn. i think i run into the same issue as souly
03:36
do i just friend it after it was changed to class?
Avatar
I guess the world space cursor makes sense for telecursor
03:38
unless the camera position is also sent when you're in spec or pause?
Avatar
wDyM tElEcUrSoR
03:38
i'm so outdated on ddnet features
Avatar
it's a practice mode thing
Avatar
thank god
03:40
cuz i just found out we are not sending cursor positions accurately unless you click or move. if we have gameplay features relying only on cursor positions i'm gonna scream
Avatar
Avatar
TsFreddie
do i just friend it after it was changed to class?
Why friend when it's already in the class
Avatar
CGameClient doesn't have access to private members of nested class
Avatar
im great at this
Avatar
Avatar
TsFreddie
CGameClient doesn't have access to private members of nested class
Could just make them public if that's necessary i guess
03:53
You still need to use m_cursorinfo.variable to access them
Avatar
Avatar
Solly
im great at this
is there a verdict on that?
Avatar
no ones said they dont want this
03:53
apart from myr
03:53
i'm doing this currently
Avatar
its just that i fail to make good code
Avatar
Avatar
TsFreddie
Click to see attachment 🖼️
whats this
Avatar
nouis is it ugly or you are just asking what pr i'm working on
Avatar
doesnt look ugly?
03:54
i cant say i dont know
03:54
what is it are u working on
Avatar
just making sure
Avatar
Avatar
Solly
what is it are u working on
#9292
Avatar
Another branch for #8836 This is a interpolation only method using existing info from DDNetCharacter NetObj. Added settings: cl_spec_cursor, cl_spec_cursor_interp, cl_spec_cursor_demo. No new ex p...
Avatar
I would just make the variables public rather than getters
Avatar
also you arent meant to use "Get" for getters
03:55
should just be Weapon()
03:55
etc etc
Avatar
Avatar
Solly
should just be Weapon()
was wondering about that thx
Avatar
Avatar
kebs
I would just make the variables public rather than getters
i will as soon as robyt3 say just make it class
03:56
rn i'm trying to implement a dirty server side cursor position lol
Avatar
Avatar
TsFreddie
i will as soon as robyt3 say just make it class
I mean public inside this class om screenshot
Avatar
just to see what is happening with that drifting
Avatar
o thats cool
03:57
why do you need a seperate class?
Avatar
Avatar
kebs
I mean public inside this class om screenshot
i know. i can do that later and remove the getters
Avatar
Avatar
Solly
why do you need a seperate class?
robyt3 says not to use struct
Avatar
Avatar
TsFreddie
robyt3 says not to use struct
why do you need a seperate struct
Avatar
and it is too many things to just dump into cgameclient i feel like
03:58
it is nested
Avatar
oke ¯\_(ツ)_/¯
Avatar
i was just following other codes tbh
03:58
04:02
😢
04:03
oh dear i have to rename like 20 symbols
04:03
poor vscode is gonna struggle
04:03
who was the guy who said this was a crutch
04:03
yeah im not doing this manually x-x
Avatar
@kebs bad news
04:04
04:04
04:05
spec cursor is correctly displaying server cursor position, the position sent to server is wrong justatest (edited)
Avatar
im curious how this interacts with tc_improve_mouse_precision
Avatar
tf is that
Avatar
tc... tater client?
Avatar
it normalizes your mouse cursor to 1000 distance
04:07
specificially for me because i play on low max distance (edited)
Avatar
damn it
Avatar
i think it will work fine
Avatar
well i guess it'll just get clamped
Avatar
mite look a bit weird
04:07
where does it read the data for local clients from?
Avatar
local cursor
Avatar
do you read from input?
Avatar
yes
Avatar
local cursor is not touched
Avatar
then thatll show wrong
04:08
;--;
Avatar
from mouse input
04:08
also tater client will deal with it. this is purely client side anyway
Avatar
m_aMousePos[g_Config.m_ClDummy]
Avatar
it's just spectating a tater client will be weird
Avatar
or m_aInputData[g_Config.m_ClDummy]
Avatar
Avatar
TsFreddie
it's just spectating a tater client will be weird
im not worried about how other people see taters
04:09
its just yourself
Avatar
Avatar
Solly
its just yourself
then tater will deal with it
04:09
like the tater client will implement it their way if they were to implement it
04:09
this is ddnet client
Avatar
Avatar
Solly
m_aMousePos[g_Config.m_ClDummy]
(it should be this one) (or just read it from mpclients[clientid].mousepos then that works eveywhere) (edited)
Avatar
Also are targetxy still scaled by zoom? Someone fix that
Avatar
fine i'll check what ddnet is doing
Avatar
Avatar
Teero
Also are targetxy still scaled by zoom? Someone fix that
yes and it is scaled wrong
Avatar
o yeah how u gonna deal with that
Avatar
i don't
Avatar
Avatar
TsFreddie
yes and it is scaled wrong
yes, make a new net msg for mouse position pls that has the mouse position and the zoom
Avatar
let's just say out of scope for this pr
Avatar
i feel like the zoom thing should be fixed first x-x
Avatar
if that was fixed the spec cursor will just show whatever is sent by the server
Avatar
Gn now tho
Avatar
night night
Avatar
we can make it screenspace (which i was doing until i found out we are using world space cursor)
Avatar
you could find the max distance and normalize that to normal zoom
Avatar
server doesn't have max distance yet
Avatar
server does?
04:12
clients dont get them
04:12
but u can work it out
Avatar
it does?
04:12
like mouse distance or view distance
Avatar
someone in an fng server commented about my insanley low max mouse distance
Avatar
they just saw your cursor
Avatar
¯\_(ツ)_/¯
Avatar
as in they did work it out
04:13
justatest
Avatar
i guess so
04:14
i like how vscode asks me if it hasnt accidently tried to replace more things than it has
04:14
but i dont even check and just press yes cuz its always right x-x
Avatar
@TsFreddie would cl_show_hook_coll_other 2 not do what u want
04:15
actually
04:15
for cheat detection at least
Avatar
Avatar
Ewan
@TsFreddie would cl_show_hook_coll_other 2 not do what u want
cheat detection wasn't really possible anyway, so i shifted to make it at least look good for normal players
Avatar
Avatar
TsFreddie
spec cursor is correctly displaying server cursor position, the position sent to server is wrong justatest (edited)
I guess dyncam extra range isn't scaled by zoom
Avatar
Avatar
kebs
I guess dyncam extra range isn't scaled by zoom
it really shouldn't be scaled in the first place imho (edited)
f3 2
Avatar
GitHub BOT 2024-11-29 04:38
Related issues: #8452 #9067 Blocks #9292 !image Red cursor is the local cursor Spec char is a hacked netobj showing the server target position. Image shows that they are different when dyncam is enabled and in effect. I think this along with the two issues above calls for a rework on how cursor is sent to server altogether We can revert back to teeworlds behavior and pretend zoom does not exist ...
Avatar
brownbear i hate timezone
04:59
now i need to wait a day for comments on pr and stuff
Avatar
Avatar
TsFreddie
brownbear i hate timezone
mood
Avatar
european morning
Avatar
@TsFreddie tc_improve_mouse_precision scales mouse position such that the max mouse distance looks like 1000 if it is not already greater
05:04
i used to use a fixed factor but when coming to put it into tc we came up with a better... way
Avatar
it's probably a interpretation thing
05:05
by fixed scale i mean scaling it not just normalize it
Avatar
well it does normalize it
05:05
before then multiplying it by a factor based on your max mouse distance (such that it goes from 0 to 1000) (TODO: make it work with min mouse distance) (edited)
Avatar
ah
05:06
either way it doesn't really matter how tater does it tho
05:06
ddnet need to decide on the route to go for
05:06
cuz if we normalize it, we then need another way to send cursor position for spec cursor to work properly
05:07
or we can decide spec cursor is not worth the precision trade off and normalize it and scape the spec cursor pr
05:07
any way is okay but we (as in everyone here) gotta settle on one idea
05:08
kekw
Avatar
Avatar
TsFreddie
cuz if we normalize it, we then need another way to send cursor position for spec cursor to work properly
i was earlier concerned about if you spectate yourself and then move your mouse
05:08
you would see your normalized mouse
Avatar
Avatar
TsFreddie
any way is okay but we (as in everyone here) gotta settle on one idea
which means this probably will go unfixed for quite a while
Avatar
Avatar
Solly
i was earlier concerned about if you spectate yourself and then move your mouse
again, i didn't change anything about local cursor and tater client does not affect ddnet client
05:08
the spec cursor pr is purely client-side
Avatar
no but you may pull data for local clients from a place where its already been normalized
Avatar
or you think i stored local cursor positions in demo or something
05:10
i did not touch local cursor
Avatar
🤦‍♂️
Avatar
what ddnet used to look like after that pr it will still look like that
Avatar
ill just look at what u did
05:10
there is no "spectate yourself" you know
Avatar
press spectate then click
Avatar
spectate yourself is just spectating the server tee of you
05:11
which is not local
05:11
it is yourself but it is not local
Avatar
atleast for the mouse position it uses local (edited)
Avatar
ug syfrkg lrf akdif
05:11
ye
05:11
that means it doesn't use angle in qwertymak
Avatar
(angle is just a property of a mouse position, its never stored anywhere)
Avatar
the angle u see on urself when spectating is random shit
Avatar
once in specview the data fully comes from server
05:12
so in spec cursor there is no spectating yourself i guess
Avatar
you cant spectate yourself?
05:13
thats weird
Avatar
you can
05:13
but it is not local
05:13
it just renders the server cursor position
05:13
when you are in spectate mode
Avatar
(you cant click onto yourself when spectating)
Avatar
just pause and use right shift
05:14
HUH
Avatar
o that works?
05:14
it does :D
05:14
it does use local mouse position tho
05:14
im on a server with 300 ping
Avatar
fine let me check
Avatar
I've been sitting in freeze for two hours
Avatar
have u tried space heater
Avatar
and fikmesån joined did not expect that
Avatar
stop worry about weird stuff
05:15
Avatar
wait why are you doing inerpolation yourself
05:16
doesnt prediction do that already?
Avatar
Avatar
Solly
wait why are you doing inerpolation yourself
for testimg
Avatar
Avatar
Solly
doesnt prediction do that already?
extrapolation on cursor? no thanks
05:16
even linear interpolation looks bad
05:17
also sample points doesn't tell you whether the cursor moves. server can say cursor position x is 2 2 5 5 9 9, and linear interp will just jitter each step.
05:17
and it does say that because we don't send cursor position every tick at 50hz
Avatar
we get jittery mouse by default
05:18
wait mouse isnt interpolated at all
05:19
would it be possible to shove what you have into prediction
Avatar
of course it isn't... mouse cursor position isn't even a teeworlds thing
05:19
we added it in ex protocol
Avatar
Avatar
Solly
would it be possible to shove what you have into prediction
no
05:19
extrapolation on mouse cursor will just make it fly out of screen most of the time
Avatar
Avatar
TsFreddie
of course it isn't... mouse cursor position isn't even a teeworlds thing
is it not?
05:20
i thought angle was never sent
05:20
it was always mouse position
05:20
the infclass selection wheel works in 0.7
Avatar
it's the other way around i think
05:21
Freddie was faster but yes
Avatar
Avatar
TsFreddie
Click to see attachment 🖼️
ghasp!
05:21
wait why
Avatar
i mean (edited)
05:21
even in 0.7
05:21
it is still angle
Avatar
Avatar
Solly
wait why
why not? cursor position is not used for anything on client-side
Avatar
ive never seen anywhere angle used its always a mouse position turned into an angle where needed
Avatar
literally nothing in vanilla teeworlds calls for a target position client side
05:23
it sends a single low precision angle just to show the angle player is pointing at
05:23
saves a varint i guess
Avatar
but 0.7 infclass wheel works
Avatar
that's server side?
Avatar
chillerdragon BOT 2024-11-29 05:23
Based on the angle I guess
05:24
So even if your cursor is not far enough distance wise it should still select
Avatar
but you cant select it unless your mouse is far enough (edited)
Avatar
chillerdragon BOT 2024-11-29 05:24
Yes the wheel is server side
Avatar
idk how client side map reads angle
Avatar
chillerdragon BOT 2024-11-29 05:24
Weird
Avatar
Avatar
Solly
but you cant select it unless your mouse is far enough (edited)
server does have player mouse position
05:24
client only sees other players angle
05:24
idk what's bothering you lol
Avatar
i thought it was mouse positions all the way down (edited)
Avatar
chillerdragon BOT 2024-11-29 05:25
There is HookX
05:25
But that’s only on hook I guess
Avatar
Avatar
chillerdragon
There is HookX
that's kinda needed for pred
05:25
i think
05:25
and animation probably
Avatar
pick an angle or mouse position dont use both D:
Avatar
Avatar
Solly
pick an angle or mouse position dont use both D:
i would do the same to save bandwidth tbh
Avatar
chillerdragon BOT 2024-11-29 05:26
Wait I got lost
Avatar
vanilla teeworlds seems to care a lot about each byte. until 0.7
Avatar
chillerdragon BOT 2024-11-29 05:26
The client sends its mouse pos as coordinates
05:26
But the server does not
Avatar
how did chiller got lost
Avatar
then how does mr tsfreddies thing work
Avatar
chillerdragon BOT 2024-11-29 05:26
But the client does not know the other players target x and y
Avatar
bruh
05:26
Avatar
it's a ddnet thing
05:27
i kinda hate this tbh. too much bandwidth used for not a lot for regular player (edited)
05:27
i guess hook collision for other player is better?
05:28
my first attempt at spec cursor is to just send target position per player. not per player^2. then this was added when i tried it the second time.
05:28
this is my third time implementing spec cursor. now we have a weird cursor drifting bug
05:28
kekw
05:29
#3262 this feature started in 2020 bruh
Avatar
Display player&#39;s cursor when spectating and in demo. Checklist Tested the change ingame Provided screenshots if it is a visual change Tested in combination with possibly related configu...
Avatar
GitHub BOT 2024-11-29 05:30
dbe1865 M Firewatch 2, M Bouncy - ddnet-maps
Avatar
int StrongWeakSpriteId; switch(Data.m_HookWeakStrong) { case TRISTATE::ALL: HookWeakStrongColor = color_cast<ColorRGBA>(ColorHSLA(6401973)); StrongWeakSpriteId = SPRITE_HOOK_STRONG; break; case TRISTATE::SOME: HookWeakStrongColor = ColorRGBA(1.0f, 1.0f, 1.0f); StrongWeakSpriteId = SPRITE_HOOK_ICON; break; case TRISTATE::NONE: HookWeakStrongColor = color_cast<ColorRGBA>(ColorHSLA(41131)); StrongWeakSpriteId = SPRITE_HOOK_WEAK; break; default: dbg_assert(false, "Invalid hook weak/strong state"); dbg_break(); }
05:34
bullshit
Avatar
doubting compiler is a sign of maturing programmer
05:35
and a sign of self reflection probably
Avatar
i cant get theese errors in my compiler
05:36
which is more annoying cuz github ci takes 5 years
Avatar
are you on windows?
Avatar
no B)
Avatar
nouis then you can probably match the ci
05:36
enable all warnings and stuff
Avatar
yes but i just want to cmake .. build and be done
05:36
cmake -E env CXXFLAGS=-Werror cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -Werror=dev -DDOWNLOAD_GTEST=ON -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=. .. cmake --build . --config Release --target everything
05:37
oh wait
05:37
i am smort
05:37
god its cold and im naked
♿ 1
05:37
and im not gonna fix that
05:38
05:38
yay i get anothjer bullshit error
05:38
seems if dbg_assert(false) isnt assumed to always fail
Avatar
Avatar
Solly
god its cold and im naked
why do you do that to yourself
05:42
👀 also isn't tater lurking a few moments ago
Avatar
Avatar
TsFreddie
why do you do that to yourself
im too lazy to put on clothes
Avatar
Hi, you need something? owo
Avatar
Avatar
Tater
Hi, you need something? owo
just wondering about your thought on the cubic interp of mouse position
05:43
there's a video in that pr
Avatar
#9292
Avatar
It looks good
Avatar
you told me to use some fancy interp and i did kekw
Avatar
Was it worth?
Avatar
kinda, but we found new bugs that kinda ruins everything
Avatar
That first video looks literally perfect
05:44
The ground truth one makes more obvious
05:45
Maybe that's just latency
Avatar
i didn't offset the latency and i couldn't be bothered with video editing
05:46
honestly the key point is to not trust every sample the server send you cuz i found out client doesn't even send cursors regularly
05:46
i have to throw away non-changing sample points for the cubic interp to work
Avatar
interesting
Avatar
so the entire thing is just guessworks now
05:47
also #9294 might trigger you
Avatar
Related issues: #8452 #9067 Blocks #9292 Red cursor is the local cursor Spec char is a hacked netobj showing the server target position. Image shows that they are different when dyncam is enabled a...
Avatar
I had another idea a while ago but it's probably worse. You could just steal the interpolation from the angle of the tee and then use the mouse coordinates to determine the 1D magnitude of the distance and use some simpler interpolation than the cubic stuff
Avatar
Avatar
Tater
I had another idea a while ago but it's probably worse. You could just steal the interpolation from the angle of the tee and then use the mouse coordinates to determine the 1D magnitude of the distance and use some simpler interpolation than the cubic stuff
i actually thought about that after implementing the interp, not sure what it would look like
Avatar
Me neither (edited)
Avatar
also the hook collision line is using normal interpolation it seems so it does jitter due to the non-changing samples
Avatar
I am deeply unhappy about the current state of the mouse protocol from client->server (edited)
Avatar
and they mismatch the cursor which is kinda bothering me
Avatar
Avatar
Tater
I am deeply unhappy about the current state of the mouse protocol from client->server (edited)
we should change that
05:49
😴
05:50
we kinda need to change that before spec cursor
Avatar
Idk what the best way to fix it is
Avatar
cuz it implicate the camera mapping as well
Avatar
Send zoom somehow i guess
Avatar
i think the safest way is the worst way precision wise. just pretend zoom doesn't exists and we match teeworlds
Avatar
Sending the mouse as ints is actually also bad
Avatar
not the best way tho, but it is safe
05:52
well everything is int in teeworlds for packing isn't it
Avatar
Avatar
TsFreddie
i think the safest way is the worst way precision wise. just pretend zoom doesn't exists and we match teeworlds
The server needs to know zoom for teleport commands, that's the whole reason we're in this mess (edited)
Avatar
oh sweet teleport
05:53
i mean we could just revert to teeworlds or use some improved method for controls and send target position some other way
Avatar
wdym revert to teeworlds
Avatar
pretend zoom doesn't exists thing
05:54
so the cursor kinda acts like screenspace cursor.
Avatar
Yeah but that's a regression for teleport commands
05:54
I have that in tclient already
05:55
It was doing that until semi recently
Avatar
if target position is used occasionally maybe we could just use a ex protocol for that
Avatar
what's wrong with sending zoom level
Avatar
then you need to send dyncam settings as well
05:55
and do dyncam offset in server i think?
Avatar
Yeah this is why I haven't touched it
05:56
I don't understand anything about dyncam because I don't use it
Avatar
how often do we use target position exactly in ddnet?
Avatar
teleport only
Avatar
then i don't see why we can't just make it special
Avatar
The client sends screen position for other stuff I think
Avatar
the client only start sending that after that ddnetcharacter change. someone said it is for hook collision
Avatar
Avatar
Tater
The client sends screen position for other stuff I think
montikboom 2024-11-29 05:57
When tater client updateplease
Avatar
i forgot if it is you or someone else
Avatar
Why so you need dyncam settings to calculate position
Avatar
Avatar
montikboom
When tater client updateplease
For what?
Avatar
Avatar
Tater
For what?
montikboom 2024-11-29 05:58
For mor fitures
Avatar
Avatar
Tater
Why so you need dyncam settings to calculate position
i'm not exactly sure but dyncam seems to shift cursor positions
Avatar
Avatar
Tater
justatest
montikboom 2024-11-29 05:58
Rotat hamer brokin
Avatar
i mean it's just #9294
Avatar
Avatar
TsFreddie
i'm not exactly sure but dyncam seems to shift cursor positions
Does it work with /tp at all?
Avatar
Avatar
montikboom
Rotat hamer brokin
Talk to solly
Avatar
it will tp you to a wrong position
05:58
a bit off to your cursor
Avatar
ok so we can just ignore it because it's not a regression 😄
05:59
well spec cursor can merge just with these bugs untouched
Avatar
I'm joking
Avatar
but if we decide to do anything about the target position then spec cursor will need to be nuked and redo (edited)
06:00
which i'm okay with but that feels a bit unproductive
Avatar
I don't see how that could happen
Avatar
to be fair if we only fix the dyncam bug, spec cursor doesn't need to be changed as-is
06:01
but if so many people are unhappy with the current target position, we could just rework it
Avatar
The easiest solution is you simply stop multiplying by zoom, send netex float for zoom, then the server does pos*zoom when it needs to tp you. (edited)
06:02
It will work
Avatar
Avatar
Tater
The easiest solution is you simply stop multiplying by zoom, send netex float for zoom, then the server does pos*zoom when it needs to tp you. (edited)
but dyncam justatest
Avatar
Avatar
TsFreddie
Click to see attachment 🖼️
montikboom 2024-11-29 06:02
#include <iostream> #include <string> #include <bitset> #include <thread> #include <chrono> std::string syncClientServer(const std::string& clientInput) { std::string binaryData; for (char c : clientInput) { binaryData += std::bitset<8>(c).to_string(); } std::this_thread::sleep_for(std::chrono::seconds(5)); std::string decodedInput; for (size_t i = 0; i < binaryData.size(); i += 8) { std::string byteStr = binaryData.substr(i, 8); char character = static_cast<char>(std::bitset<8>(byteStr).to_ulong()); decodedInput += character; } decodedInput += "_synced_successfully_with_server_1234"; return decodedInput; } int main() { std::string clientData = "client_input"; std::cout << "Synchronizing with server..." << std::endl; std::string result = syncClientServer(clientData); std::cout << "Result: " << result << std::endl; return 0; } This may work
Avatar
Different bug
Avatar
oh you mean we just change how dyncam works?
Avatar
Avatar
montikboom
#include <iostream> #include <string> #include <bitset> #include <thread> #include <chrono> std::string syncClientServer(const std::string& clientInput) { std::string binaryData; for (char c : clientInput) { binaryData += std::bitset<8>(c).to_string(); } std::this_thread::sleep_for(std::chrono::seconds(5)); std::string decodedInput; for (size_t i = 0; i < binaryData.size(); i += 8) { std::string byteStr = binaryData.substr(i, 8); char character = static_cast<char>(std::bitset<8>(byteStr).to_ulong()); decodedInput += character; } decodedInput += "_synced_successfully_with_server_1234"; return decodedInput; } int main() { std::string clientData = "client_input"; std::cout << "Synchronizing with server..." << std::endl; std::string result = syncClientServer(clientData); std::cout << "Result: " << result << std::endl; return 0; } This may work
montikboom 2024-11-29 06:03
@TsFreddie
Avatar
i assume we don't want to actually change where dyncam is pointing
Avatar
I don't mean anything about dyncam
06:03
Someone has to figure out the bug first
Avatar
Avatar
montikboom
#include <iostream> #include <string> #include <bitset> #include <thread> #include <chrono> std::string syncClientServer(const std::string& clientInput) { std::string binaryData; for (char c : clientInput) { binaryData += std::bitset<8>(c).to_string(); } std::this_thread::sleep_for(std::chrono::seconds(5)); std::string decodedInput; for (size_t i = 0; i < binaryData.size(); i += 8) { std::string byteStr = binaryData.substr(i, 8); char character = static_cast<char>(std::bitset<8>(byteStr).to_ulong()); decodedInput += character; } decodedInput += "_synced_successfully_with_server_1234"; return decodedInput; } int main() { std::string clientData = "client_input"; std::cout << "Synchronizing with server..." << std::endl; std::string result = syncClientServer(clientData); std::cout << "Result: " << result << std::endl; return 0; } This may work
montikboom 2024-11-29 06:03
Read it
Avatar
Did chatgpt write that
Avatar
montikboom 2024-11-29 06:03
This is fix for prablem
Avatar
Avatar
Tater
Did chatgpt write that
montikboom 2024-11-29 06:03
No
Avatar
I saw you type copilot
Avatar
Avatar
Tater
I saw you type copilot
montikboom 2024-11-29 06:04
Aw
06:04
I mean
06:04
Co-Pilot
Avatar
Which btw uses chatgpt on the backend
Avatar
Avatar
Tater
Which btw uses chatgpt on the backend
montikboom 2024-11-29 06:05
Chat gps 1.5 ultra upgraded pro 1883 omega cool 585 ver. beta release alplha pro
Avatar
Avatar
montikboom
#include <iostream> #include <string> #include <bitset> #include <thread> #include <chrono> std::string syncClientServer(const std::string& clientInput) { std::string binaryData; for (char c : clientInput) { binaryData += std::bitset<8>(c).to_string(); } std::this_thread::sleep_for(std::chrono::seconds(5)); std::string decodedInput; for (size_t i = 0; i < binaryData.size(); i += 8) { std::string byteStr = binaryData.substr(i, 8); char character = static_cast<char>(std::bitset<8>(byteStr).to_ulong()); decodedInput += character; } decodedInput += "_synced_successfully_with_server_1234"; return decodedInput; } int main() { std::string clientData = "client_input"; std::cout << "Synchronizing with server..." << std::endl; std::string result = syncClientServer(clientData); std::cout << "Result: " << result << std::endl; return 0; } This may work
montikboom 2024-11-29 06:07
Any errors in my code?
Avatar
No it just doesn't make any sense for this purpose
06:07
It has no relation to TW code
Avatar
Avatar
Tater
Someone has to figure out the bug first
idk if this is clear
06:10
wait. wrong
06:10
ah nvm, couldn't be bothered to redraw this
Avatar
Oh I get it
06:19
The camera is offset but the mouse is not offset backwards
06:19
Seems easy to fix?
Avatar
i mean ye
06:22
nouis ahhhh, i'll just fix this and move on. i just think only fixing this without touching how target is send is kinda useless
06:23
unless we are definitely not going to rework the target position at all this year. but i do want a confirmation i guess.
Avatar
Avatar
TsFreddie
idk if this is clear
montikboom 2024-11-29 06:24
#include <iostream> #include <cmath> #include <thread> #include <chrono> struct Vector2 { float x, y; Vector2 operator+(const Vector2& other) const { return {x + other.x, y + other.y}; } Vector2 operator-(const Vector2& other) const { return {x - other.x, y - other.y}; } Vector2 operator*(float scalar) const { return {x * scalar, y * scalar}; } float magnitude() const { return std::sqrt(x * x + y * y); } Vector2 normalize() const { float mag = magnitude(); return {x / mag, y / mag}; } }; Vector2 syncCamera(Vector2 charPos, Vector2 targetLocal, Vector2 targetServer) { Vector2 errorVector = targetServer - targetLocal; std::cout << "Calculating sync in the most inefficient way..." << std::endl; std::this_thread::sleep_for(std::chrono::seconds(3)); Vector2 correctedTarget = targetLocal + errorVector * 0.5; Vector2 jitterEffect = correctedTarget + Vector2{std::sin(correctedTarget.x), std::cos(correctedTarget.y)} * 0.1; return jitterEffect; } int main() { Vector2 charPos = {10, 10}; Vector2 targetLocal = {20, 20}; Vector2 targetServer = {25, 25}; Vector2 result = syncCamera(charPos, targetLocal, targetServer); std::cout << "Final camera position: (" << result.x << ", " << result.y << ")" << std::endl; return 0; } This maybe help
06:25
@TsFreddie
Avatar
what is that
Avatar
Avatar
TsFreddie
what is that
montikboom 2024-11-29 06:25
Fix
Avatar
Avatar
TsFreddie
what is that
montikboom 2024-11-29 06:25
For problem
Avatar
since when do we have a gpt bot here
Avatar
Avatar
TsFreddie
since when do we have a gpt bot here
montikboom 2024-11-29 06:26
No cheat gpt!!!!
Avatar
Avatar
TsFreddie
since when do we have a gpt bot here
montikboom 2024-11-29 06:26
I'm not bot!
06:26
signs
Avatar
GitHub BOT 2024-11-29 06:30

Checklist

  • [x] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test (especially base/) or added coverage to integration test
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-ad...
Avatar
@Souly just wondering do you still play ddnet like actively
Avatar
GitHub BOT 2024-11-29 06:47
Fixes #9294 by taking the keep the current behavior and fix dyncam drift (fix this issue only) route. But i kinda want to demonstrate that:
  • this introduces a new coupling between control and camera
  • camera settings need to be send to server in order to do this server-side @sjrc6
I personally do not think this is the best way to go about it, review and merge only after agreed upon please.

Checklist

  • [x] Tested the change ingame
  • [x] Provided screenshots if it is ...
Avatar
Avatar
TsFreddie
@Souly just wondering do you still play ddnet like actively
is that meant to be @Solly ?
Avatar
oh right (edited)
Avatar
oops
Avatar
Avatar
GitHub
Click to see attachment 🖼️
i want this cuz im skill issue
Avatar
greenthing cool.
06:52
i don't get to play ddnet a lot so i'm kinda like blindly doing coding
Avatar
Avatar
TsFreddie
@Souly just wondering do you still play ddnet like actively
although i guess that tag still stands cuz i haven't seem him for a while too
06:54
well i guess i lied kekw
06:58
@Tater https://github.com/ddnet/ddnet/pull/9296/files this is why i think it is trickier to just send zoom to calculate target, cuz you really need camera settings to know where the cursor is actually pointing at.
06:59
i still think a aiming target of somekind and a one-shot message for teleport with the exact position might be good.
Avatar
can you solve backwards on the client?
07:00
the sever doesn't even need to know about any of this complexity
Avatar
that pr is client-side btw
Avatar
I know
Avatar
i mean we could change how dyncam works
Avatar
yeah world pos cursor position over the network makes sense in that sense too, no need to send camera settings to the server
Avatar
by showing the cursor position that matches the ones currently sent to server
Avatar
I'm just saying that it doesn't matter what values you send to the server so long as Pos*Zoom is equal to the mouse position on your screen. it's like a math equation
Avatar
but i think long time dyncam user will notice it
Avatar
Avatar
Tater
I'm just saying that it doesn't matter what values you send to the server so long as Pos*Zoom is equal to the mouse position on your screen. it's like a math equation
i get it now
Avatar
you can always find values that make Pos*Zoom be correct on the server
Avatar
though sending camera settings to the server would be cool for spec
Avatar
but what's bad about a one shot message for position tho
07:02
i'm sorry but i have to consider CHN bandwidth for everything i do kinda
Avatar
it's messy
07:03
how do you know when the client is doing a chat command
Avatar
Checklist Tested the change ingame Provided screenshots if it is a visual change Tested in combination with possibly related configuration options Written a unit test (especially base/) or add...
Avatar
just deprecate the chat command and add a position commandkekw
Avatar
uhh it just got merged
Avatar
you need to parse the chat messages to figure out when to send the special net message
Avatar
i wasnt expecting that
Avatar
Avatar
Solly
uhh it just got merged
congrats
Avatar
Avatar
risu
congrats
it only freezes you every second instead of permanently like normal freeze tiles
07:04
it works perfectly its just visually weird
Avatar
sending zoom just makes sense because that's the value the server is missing
Avatar
Avatar
Solly
it only freezes you every second instead of permanently like normal freeze tiles
don't normal freeze tiles also freeze you once a second?
07:04
it's just that the freeze bar is hidden by default
Avatar
is there a way without an additional value
07:05
catxplosion
Avatar
its not that big of a value
Avatar
oh it wasnt merged it was just approved
Avatar
Avatar
risu
don't normal freeze tiles also freeze you once a second?
oh really?
07:05
i didnt know that
Avatar
isn't input data duplicated for handling packet loss?
07:05
that's a future issue
Avatar
oh right the bit data is
07:06
byte data isn't
Avatar
Idk what you mean
07:06
there is no duplicated data
Avatar
Quick question. is smth like const char* pMsg = #include "some.txt"; achievable? (edited)
Avatar
Avatar
Solly
oh really?
Settings -> Appearance -> HUD -> Opacity of freeze bars inside freeze though it seems to freeze more often than once per second
07:07
nvm it's just one second and my brain thought that seconds were longer
Avatar
if you're trying to minimize bandwidth there's about a dozen things you can do that significantly reduce it but we're not doing
07:08
improving the compression would be like 2x-4x less bandwidth
Avatar
Avatar
TsFreddie
is there a way without an additional value
It's not like players change their zoom all the time (unless this would be a part of some bigger packet that gets sent every network tick, idk how the game works)
Avatar
that's also true
07:08
it will only be send on zoom change
Avatar
Avatar
risu
It's not like players change their zoom all the time (unless this would be a part of some bigger packet that gets sent every network tick, idk how the game works)
it will need to update every tick if we calculate it with dyncam adjusted tho
Avatar
not really
07:09
you can adjust the mouse instead
Avatar
just send dyncam settings too and then you can have your camera settings automatically copy those of the player you're specing :)
Avatar
the zoom is just a scalar
Avatar
didn't you say you want to work backwards from dyncam to zoom value? dyncam offset is changing per frame (edited)
Avatar
yes but there's infinite solutions
07:10
we can pick any of them
Avatar
ye, change how dyncam works
Avatar
Avatar
TsFreddie
didn't you say you want to work backwards from dyncam to zoom value? dyncam offset is changing per frame (edited)
I'm suggesting the dyncam settings constants, not the calculated dyncam position
07:10
"constants"
Avatar
Avatar
risu
I'm suggesting the dyncam settings constants, not the calculated dyncam position
that's true, but working that out server side is also messy
Avatar
I mean config variables
Avatar
I mean for the Zoom*Pos = world_space_pos you can make Zoom or Pos fixed and there will still be a valid solution (edited)
07:11
i get it now (again)
07:11
fake data gang
Avatar
WHAT NO WAY
Avatar
if u pull someone out of freeze its 2 to 3 seconds to unfreeze
07:12
not 3 seconds
07:12
thats wack
Avatar
who made this game
Avatar
Avatar
Tater
I mean for the Zoom*Pos = world_space_pos you can make Zoom or Pos fixed and there will still be a valid solution (edited)
but wait, that breaks spec cursor again, cuz targetx and targety are shifted again
07:13
pepeW
Avatar
Avatar
Solly
if u pull someone out of freeze its 2 to 3 seconds to unfreeze
Are there maps that require you to use this fact somehow?
Avatar
Avatar
TsFreddie
but wait, that breaks spec cursor again, cuz targetx and targety are shifted again
it should just be scaled differently not broken
07:14
you'll just see their cursor distance slightly offset
Avatar
Avatar
risu
Are there maps that require you to use this fact somehow?
yes since if theres a section where you fall out of a freeze section the difference between 2s to unfreeze and 3s to unfreeze could be death
Avatar
but like who cares if it's dyncam
Avatar
so it cant be changed
Avatar
I want to make a 1* Novice that's impossible to finish because all the tricks are so obscure 😈
Avatar
Avatar
Tater
you'll just see their cursor distance slightly offset
and i think that's broken
07:14
lol
Avatar
there are novices which might use this aswell
07:14
but where the trick is automated (eg hold left) (edited)
Avatar
it won't look weird tho
07:14
you'll just see them as a slightly smaller max distance
Avatar
Avatar
risu
Are there maps that require you to use this fact somehow?
In tassing it's important :v
Avatar
there are some maps that use it I think
Avatar
Avatar
Tater
you'll just see them as a slightly smaller max distance
it'll change pretty rapidly
Avatar
Avatar
Tater
there are some maps that use it I think
On gores there is a solo part on aled to the legend that does use this
07:15
Stupid random shit
Avatar
pepeW also i mean there is @zhn was concerned about even interpolation for the sake of cursor accuracy and we are taking it to the other extreme of not caring about spectating cursor accuracy at all (edited)
Avatar
Avatar
TsFreddie
it'll change pretty rapidly
Avatar
but mouse is moving
07:18
player shift in and out of dyncam pretty regularly
Avatar
simply set dyncam deadzone to 0
Avatar
even if it is stable i don't think showing a skewed position is good
Avatar
Avatar
Tater
Click to see attachment 🖼️
Can't see
Avatar
Avatar
risu
simply set dyncam deadzone to 0
isn't that gonna make it worse InsaneCat
Avatar
Avatar
Teero
Can't see
❤️ 1
Avatar
Avatar
TsFreddie
isn't that gonna make it worse InsaneCat
mwehehe
Avatar
i'd be more happy if we just nuke dyncam but we can't poggers2
Avatar
the curve is continuous so it doens't matter what happens with their mouse, you still observe it being fine
Avatar
why on earth does the server decide whether the freeze bar is shown or not
07:19
x--x
Avatar
you can make it always on
07:19
I think
Avatar
Avatar
Tater
the curve is continuous so it doens't matter what happens with their mouse, you still observe it being fine
i get that. and i understand that it looks perfectly fine
Avatar
Avatar
Solly
why on earth does the server decide whether the freeze bar is shown or not
Wait what??
Avatar
wait no nvm
Avatar
Avatar
risu
Wait what??
if(m_pClient->m_aClients[i].m_FreezeEnd != 0) aRenderInfo[i].m_TeeRenderFlags |= TEE_EFFECT_FROZEN | TEE_NO_WEAPON; if(m_pClient->m_aClients[i].m_LiveFrozen) aRenderInfo[i].m_TeeRenderFlags |= TEE_EFFECT_FROZEN; if(m_pClient->m_aClients[i].m_Invincible) aRenderInfo[i].m_TeeRenderFlags |= TEE_EFFECT_SPARKLE; m_LiveFrozen is set only by server
07:20
but this doesnt drawn frozen bar
Avatar
but i just don't think showing a skewed position at all is good on a principle level lol. i mean i worked so hard to make sure the interpolation garantees to pass through each sample point
07:21
kekw
Avatar
montikboom 2024-11-29 07:21
think_bot
Avatar
Avatar
TsFreddie
but i just don't think showing a skewed position at all is good on a principle level lol. i mean i worked so hard to make sure the interpolation garantees to pass through each sample point
it's not skewed that's just the relationship
07:22
I mean
07:22
you don't have to do it this way, you could just send the dyncam settings
Avatar
montikboom 2024-11-29 07:22
Is there ddnet+
Avatar
Avatar
montikboom
Is there ddnet+
montikboom 2024-11-29 07:22
?
Avatar
i could do it a lot of ways and none is appealling to me rn
Avatar
Avatar
montikboom
Is there ddnet+
montikboom 2024-11-29 07:23
Everyone
Avatar
isn't there a way to account for all 5? 1. no send fake input 2. show correct spec cursor position 3. account for dyncam 4. not increase bandwidth 5. don't do messy math on server-side.
Avatar
Avatar
montikboom
Is there ddnet+
Is there ddnet+++
Avatar
kekw (i mean i know there probably isn't)
Avatar
Is the math really that messy? Isn't it just a couple simple equations?
Avatar
Avatar
risu
Is the math really that messy? Isn't it just a couple simple equations?
true
07:25
i'm starting to like the send camera setting option
07:25
ok i think i know what we can do now
07:25
but i've been stuck on this for so long i haven't eat for the past 18 hours (edited)
07:25
i need food
Avatar
Avatar
risu
Is there ddnet+++
montikboom 2024-11-29 07:26
no
Avatar
montikboom 2024-11-29 07:27
Is there ddnet+
Avatar
Original message was deleted or could not be loaded.
montikboom 2024-11-29 07:28
Lua betor
Avatar
Original message was deleted or could not be loaded.
On one hand I adore filthy preprocessor macros, on the other hand they're like really not the best idea
07:33
even more beautiful when you write a script to convert binary files to a list of numbers, then include that in your C code
07:33
the most reasonable way to include your assets in the executable, I'm sure
07:34
at least it's very portable as long as you don't run into executable size limitations :)
Avatar
i'm still starving
08:03
i cooked a dish but there is no rice
08:03
day ruined
Avatar
MilkeeyCat 2024-11-29 08:03
chillerdragon: you would've already finished the library by now, if you were the owner of the repo xd
Avatar
very sad
Avatar
why hasnt chiller make commercial games already
Avatar
i had pbj and banana for dinner
Avatar
Avatar
TsFreddie
@Souly just wondering do you still play ddnet like actively
yup
Avatar
ws-client BOT 2024-11-29 08:11
<ChillerDragon> @TsFreddie skill issues
08:14
<ChillerDragon> @MilkeeyCat i do not feel slowed down by not being the owner actually
08:14
<ChillerDragon> you are doing good and fast reviews
Avatar
MilkeeyCat 2024-11-29 08:14
>~<
Avatar
i love time traveling
Avatar
Guys wtf
Avatar
@meloƞ we love you
Avatar
@meloƞ we love you
Avatar
who tf uses dyncam smh
Avatar
me when ictf
Avatar
fokk: Reminder: this get's really annoying Edit: especially since I play with default zoom 9, so edge hooks are actually different now
(edited)
09:33
does fokk actually want less accuracy for edge hooks?
Avatar
@meloƞ Are you a melon?
09:34
juicy round beautiful
09:34
Avatar
How do I compile F-DDRace correctly for a test server, on Ubuntu 22.04
09:35
I had a Core dump
Avatar
no idea, but fokko currently has a build-failure on master - so maybe that's why? i dont use f-ddrace personally
Avatar
Okay
Avatar
Avatar
TsFreddie
i'm starting to like the send camera setting option
yeah like why not
Avatar
Avatar
zhn
yeah like why not
cool
Avatar
Avatar
TsFreddie
who tf uses dyncam smh
i di
09:56
didoo doo
Avatar
Avatar
TsFreddie
does fokk actually want less accuracy for edge hooks?
@meloƞ wdym
09:57
oh oops melon ping justatest
NOOOO 1
09:57
hallo :D
Avatar
we love him so much that it just pings
Avatar
Avatar
zhn
@meloƞ wdym
on one hand tater has a improved accuracy settings. but on the other fokk's preferred zoom is already zoomed out which should have a higher angle density than default teeworlds ones but it is making edge hooks harder for him (edited)
09:59
or is edge hook gonna be easier with like 1000 mouse dist
09:59
i can't tell cuz i don't even know how to edge hook
09:59
HUH
10:00
to be clear i know what edge hook is, i just never played with it extensively myself.
Avatar
can't tell anything about mouse dist but before mouse pos was multiplied by zoom we had consistent hooks/angles on any zoom level
10:01
so fokkos default settings literally outplayed him after update
10:01
cuz he needs to hook differently
Avatar
so i'm assuming we want to revert back to how teeworlds works (pretending zoom doesn't exists at least for characters)
Avatar
no, zoom level should be known for server and initial input should not be changed on client side since it kills any consistency among players setups
10:03
so zoom exists, we just apply it on server side instead
Avatar
so sending unzoomed target position?
Avatar
i consider that revert back to teeworlds
10:04
zoom on client side, server sees the same unzoomed ones
Avatar
i mean, targetxy should be unzoomed, but server should know zoom value to know how to handle input
Avatar
input for character?
Avatar
telecursor etc etc base on zoomed values
Avatar
i will send zoom to server just to get absolute mouse position for teleport.
10:05
but not for charactercores
Avatar
seemed like it was the only reason to send changed value
Avatar
i think we are on the same page
Avatar
seems like yup
Avatar
alrighty
Avatar
@zhn any idea for #9067 tho
Avatar
i'm assuming fixing that probably also nukes the 45 degree binds and stuff
Avatar
Avatar
TsFreddie
@zhn any idea for #9067 tho
i just dont get it personally
10:24
30 dist is kinda unplayable
Avatar
ye, but do we actually want to address it?
10:26
i have a feeling that adding yet another config for that is probably not what we want
Avatar
i don't get the issue personally
10:27
first known 30 dist player to me xd
Avatar
well that too i guess
10:27
ye, i'll ignore that one for now
Avatar
Avatar
TsFreddie
on one hand tater has a improved accuracy settings. but on the other fokk's preferred zoom is already zoomed out which should have a higher angle density than default teeworlds ones but it is making edge hooks harder for him (edited)
uhm actually that was me :D
Avatar
i mean tater client i guess, i saw your pr for that
Avatar
it depends how you edge hook
10:30
because you can actually just aim for the ground beside the edge and it works 99% of the time
10:30
which is actually helped by low mouse precision
Avatar
it happens every time i want to code something for ddnet. some past quirks that just becomes a feature (edited)
10:31
brownbear
Avatar
Avatar
Solly
it depends how you edge hook
how did you come up with 30 mouse dist
Avatar
thats what i use
10:34
i dont know why i use it
10:34
but i cant play without it
Avatar
how big is your screen
Avatar
1920x1080?
Avatar
like physically
10:34
24 inch, 27, 32 etc
10:35
its 2 cucumbers long
Avatar
Avatar
Solly
i dont know why i use it
no like
10:35
you played with default 400
10:35
and ???
10:35
boom you started to play with 30
Avatar
oh no i remember why
10:35
i used to play with 1000 or so senstaivity
10:35
or higher
Avatar
i do kinda want to address that, but i'm too afraid of player's edge hook habit and the old 45bind
Avatar
but it was so unstable
10:35
that i had to go to lower mouse distance
Avatar
it works vice versa tho
10:36
it stables with higher dist
Avatar
i was probably playing with defualt max distance
10:36
i wanted to keep my sensativity
Avatar
Avatar
Solly
i wanted to keep my sensativity
why
Avatar
i probbaly tried alot before settling on low max distance
Avatar
Avatar
zhn
why
because i want to not move my mouse alot to rotate 180 deg?
10:37
i just wana move my mouse right and have my tee also face right
Avatar
i dont move my mouse at all with 130 dist and 150 sens lulz
Avatar
i have it on 200 with low sens it feels nice
10:37
i just want to see my cursor
Avatar
even when playing dm or gctf
Avatar
Avatar
zhn
i dont move my mouse at all with 130 dist and 150 sens lulz
i move about 0.2cm for it to rotate x-x
Avatar
Avatar
Solly
i move about 0.2cm for it to rotate x-x
same there
10:38
i still don't get it, 30 dist is something too non standard
Avatar
Avatar
Teero
i just want to see my cursor
but do you want to see other player's cursor too
Avatar
Avatar
zhn
i still don't get it, 30 dist is something too non standard
its just what i use and trying anything else doesnt work
Avatar
Avatar
Solly
its just what i use and trying anything else doesnt work
u have to try once more ig justatest
Avatar
honestly if i find my config doesn't work as well i would change my config instead of changing the game normally.
Avatar
is it possible that being opensource greenthing made us accept too many personal preferences
Avatar
that what heinrich was talking about i think
Avatar
that dummy update years back by eki is still on my mind
Avatar
Avatar
zhn
u have to try once more ig justatest
i have it so its the same to go 180
10:41
but it doesnt feel the same playing
10:41
and now that the major issue of low sens is gone
10:41
i dont see any reason to change
Avatar
there was no issue of low sens afair
Avatar
@zhn do you know when did we update the zoomed target?
Avatar
oh not really
Avatar
cuz we are still kinda breaking habit of players that only played the newer versions i think
Avatar
but it was referenced a plenty
Avatar
Avatar
TsFreddie
i do kinda want to address that, but i'm too afraid of player's edge hook habit and the old 45bind
cyberfighter 2 2024-11-29 10:42
but why
Avatar
Avatar
zhn
there was no issue of low sens afair
max distance*
Avatar
if we just change back to teeworlds
Avatar
Avatar
cyberfighter 2
but why
why want to address it or why i'm afraid
Avatar
cyberfighter 2 2024-11-29 10:42
first
Avatar
@TsFreddie if you are changing how mouse works you can just reduce precision at < 5 max disatnce (what tclient does)
Avatar
cuz it just seems like a bug. i won't really touch it tho
Avatar
the bind only works at 2
Avatar
i think i do want to at least match teeworlds
Avatar
cyberfighter 2 2024-11-29 10:43
how is it a bug
Avatar
which is how most experienced players use their mouse
Avatar
Avatar
cyberfighter 2
how is it a bug
it doesn't really matter what it feels like to me if i don't touch it
Avatar
cyberfighter 2 2024-11-29 10:44
isnt it normal to have low precision with 30 distance because you dont even have many pixels to put your mouse in
Avatar
is there a way i can hide the cursor x-x
Avatar
Avatar
Solly
is there a way i can hide the cursor x-x
cyberfighter 2 2024-11-29 10:44
just get a gameskin
Avatar
o yeah fair
10:44
but that will break @TsFreddie thingy
10:45
or rather i want to see cursors for othe rplp
Avatar
Avatar
TsFreddie
cuz it just seems like a bug. i won't really touch it tho
imagine solving a bug by sending fake targetxy tho
Avatar
Avatar
cyberfighter 2
isnt it normal to have low precision with 30 distance because you dont even have many pixels to put your mouse in
say that to a person with an 8k screen zoomed all the way in
Avatar
Avatar
TsFreddie
say that to a person with an 8k screen zoomed all the way in
cyberfighter 2 2024-11-29 10:45
30 distance is 30 distance even if you zoom in
Avatar
but it is not 30 pixels
Avatar
Avatar
cyberfighter 2
30 distance is 30 distance even if you zoom in
no
10:45
not for server
Avatar
Avatar
TsFreddie
say that to a person with an 8k screen zoomed all the way in
they see their tee really close
Avatar
cyberfighter 2 2024-11-29 10:46
oh
10:46
i see what you mean
10:46
that sounds very specific lmao
Avatar
also that really doesn't matters, i won't change it, i have other things to solve for now lol
Avatar
cyberfighter 2 2024-11-29 10:47
i dont think anyone will use 8k monitor and zoom in with specifically 30 distance or lower (edited)
10:47
at that point its your fault
Avatar
Avatar
Solly
o yeah fair
have you tried to play with mouse min values
Avatar
Avatar
zhn
have you tried to play with mouse min values
yes, its bad
10:51
cuz u cant go thru the center
Avatar
why do u need to
10:55
justatest
Avatar
Avatar
zhn
why do u need to
because... what if you want to turn
11:20
from the left
11:20
to the right
11:20
move my mouse right? error noise
11:20
you cant the min mouse distance stops you
11:20
you have to go in an arc motion
11:20
which is alot harder
Avatar
i think i did it
11:41
11:45
wait hang on
11:45
why does smooth dyncam feel different than the teeworlds ones
Avatar
Avatar
TsFreddie
why does smooth dyncam feel different than the teeworlds ones
ah?
Avatar
i swear smooth dyncam wasn't supposed to shift cursor positions when i made itjustatest
Avatar
oh no, i messed this up for years haven't i
11:50
Avatar
Avatar
TsFreddie
Click to see attachment 🖼️
lulz
11:52
is it zoom 10?
Avatar
zoom 10 it is normal
11:52
that's why i haven't noticed it
11:52
i play pvp and we can't zoom on that
11:52
catbite
11:54
there might be something that is fundamentally wrong with dyncam and zoom
Avatar
ok not really. cursor just happens to move when you zoom with your character not in the center. so i just need to fix smooth dyn then (edited)
Avatar
nouis i can't math
Avatar
Koll Potato 2024-11-29 13:49
do meth instead
13:50
how did u get 2=3
Avatar
bad at math
Avatar
meth to math
Avatar
me doing math be like
Avatar
A guide on overriding native scroll behavior to provide your own objectively better experience.
kek 3
Avatar
Avatar
rutujek
2024-08-09 13:39:03 I server: +-------------------------+ 2024-08-09 13:39:03 I register/6/ipv6: registering... 2024-08-09 13:39:03 I register/6/ipv4: registering... 2024-08-09 13:39:03 I register/7/ipv6: registering... 2024-08-09 13:39:03 I register/7/ipv4: registering... 2024-08-09 13:39:03 I sql: [2] load best time done on read database 0 2024-08-09 13:39:03 E http: https://master1.ddnet.org/ddnet/15/register failed. libcurl error (6): Could not resolve host: master1.ddnet.org 2024-08-09 13:39:03 E http: https://master1.ddnet.org/ddnet/15/register failed. libcurl error (6): Could not resolve host: master1.ddnet.org 2024-08-09 13:39:03 E register/7/ipv6: error sending request to master 2024-08-09 13:39:03 E register/6/ipv6: error sending request to master
did you manage to resolve the issue on windows? my friend has the http: https://master1.ddnet.org/ddnet/15/register failed. libcurl error (6): Could not resolve host: master1.ddnet.org and register/6/ipv6: error sending request to master on windows 11 (edited)
Avatar
Avatar
WaRNe0nx3
did you manage to resolve the issue on windows? my friend has the http: https://master1.ddnet.org/ddnet/15/register failed. libcurl error (6): Could not resolve host: master1.ddnet.org and register/6/ipv6: error sending request to master on windows 11 (edited)
could not resolve sounds like dns issue. /ipv6 sending error sounds like there is no ipv6 available, sv_register ipv4 should solve the second problem.
15:29
probably everything together is just the ipv6 issue
Avatar
ip del <ipv6 address> dev wlan0 (linux momento, dont do this either i think u can turn off ipv6 without deleting the address) (edited)
Avatar
Avatar
jxsl13
could not resolve sounds like dns issue. /ipv6 sending error sounds like there is no ipv6 available, sv_register ipv4 should solve the second problem.
ipv4 also struggles to resolve as posted earlier
👍 1
Avatar
probably dns issue.
Avatar
Avatar
TsFreddie
me doing math be like
Too many cursors
16:18
What do these tiles do?
Avatar
ask fokkonaut
16:19
these are for f-ddrace not ddnet
Avatar
Oh aorry
16:19
Sorry
Avatar
@fokkonaut
Avatar
@murpi @Robyt3 #general is getting raided
Avatar
channel's locked ^^
Avatar
GitHub BOT 2024-11-29 17:08
I am moving hosts soon & want the playerbase to follow. As I experienced when i last moved moved servers, the players will not join a server that is being displayed as being from a different region. My new server-IP is: 191.96.11.73 (it is correctly being identified as netherlands by web lookups) The masterserver identifies this IP as na:us while the correct one would be eu:nl. Would be nice if that entry / the lookup table could be...
Avatar
Avatar
Ryozuki
@murpi @Robyt3 #general is getting raided
O... But then can't they just move to here eg?
Avatar
Avatar
Evelyn
Click to see attachment 🖼️
They look like zombie stuff
Avatar
GitHub BOT 2024-11-29 17:22
DDNet's zoom made smooth dyncam (which was only made for default zoom value) very hard to use due to the cursor drifting unpredictably. This PR addresses that by fixing the cursor in world place by doing some calculation when setting CControls::m_aTargetPos this requires a bit refactoring and now CControls has a coupling with CCamera. I'm pretty sure this only affect control when using Smooth Dyncam AND Zoom at the same time, which is provable:
The only terms added to `CCon...
Avatar
Avatar
Learath2
Too many cursors
just some anchor points to check values
17:23
for this PR
17:23
nouis
Avatar
GitHub BOT 2024-11-29 18:00
a03f642 fix cursor drifting when using smooth dyncam and zoom at the same time - TsFreddie cf48128 Merge pull request #9298 from TsFreddie/smooth-dyncam-cursor-fix - def-
Avatar
Avatar
jxsl13
could not resolve sounds like dns issue. /ipv6 sending error sounds like there is no ipv6 available, sv_register ipv4 should solve the second problem.
we tried sv_register ipv4 but then it just kept getting stuck on registering ipv4. dns settings in windows are automatic dhcp. router dns settings are default from ISP.
Avatar
try changing the dns?
18:15
to lile 1.1.1.1 or 8.8.8.8
18:15
like
Avatar
and he can also just open https://master1.ddnet.org/ddnet/15/ just fine
Avatar
also no DS-Lite
Avatar
Where is the Player Search API located in teedata
Avatar
GitHub BOT 2024-11-29 19:55
The client state was not checked when searching through the list of client names for the whisper target and when handling 0.7 whisper messages. The invalid whisper target ID being used was causing crashes in the following cases:
  • When using /whisper (invalid) message, if there is any free slot on the server.
  • When using /whisper (connecting) message, if there is any player currently not ingame, e.g. connecting or redirected.
  • When sending specially crafted 0.7 whisper messages wit...
Avatar
GitHub BOT 2024-11-29 20:33
a2e3905 Fix crashes with whisper command - Robyt3 3277223 Merge pull request #9299 from Robyt3/Server-Whisper-Fix - def-
Exported 904 message(s)
Timezone: UTC+0