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-09-09 00:00 and 2024-09-10 00:00
Avatar
ws-client BOT 2024-09-09 00:37
<ChillerDragon> @nikas1337 how did it go?
Avatar
ws-client BOT 2024-09-09 02:44
<ChillerDragon> @Jupstar ✪ I used you as the gold standard for fng hammer tuning and took your code from fng2 I hope that is okay
Avatar
Dr. Web is malware on it's own
Replying to @Robyt3 you can probably ignore whatever DrWeb is
Avatar
Avatar
Learath2
Nicely done
MilkeeyCat 2024-09-09 05:01
Did you see linked list example?
Avatar
Avatar
ws-client
<ChillerDragon> @Jupstar ✪ I used you as the gold standard for fng hammer tuning and took your code from fng2 I hope that is okay
theres some russian mod clearly based on c&p of jupeyys fng kek
05:29
no worries ziller
Avatar
chiller where are you
Avatar
GitHub BOT 2024-09-09 06:37
If you want to resave a map to a different folder thats not really supported. Entering a / for paths jumps the cursor to the end. And clicking on folders does not work.
Avatar
MilkeeyCat 2024-09-09 06:40
I just realized that static methods on structs look exactly like if Foo was a module and bar was a function in it :\ struct Foo {} impl Foo { fn bar() { ... } } Foo::bar();
Avatar
MilkeeyCat 2024-09-09 06:53
@Learath2 do you have any ideas for how modules should like, or yoink rust's and call it a day? santatrollet
Avatar
Avatar
MAhdiyar
Zzz Melon
Yes sry I fell asleep
Avatar
Avatar
meloƞ
Yes sry I fell asleep
brownbear
Avatar
ws-client BOT 2024-09-09 07:54
<ChillerDragon> @MAhdiyar im here
Avatar
Avatar
MAhdiyar
if i want to define a function that goes from the start menu to the Settings > Information menu that I created where and how should I express it?
read this
07:55
and other
Avatar
ws-client BOT 2024-09-09 07:55
<ChillerDragon> i dont see replies
Avatar
if i want to define a function that goes from the start menu to the Settings > Information menu that I created where and how should I express it? When we click on the setting in the start menu, it will be transferred to the setting section
07:56
Avatar
ws-client BOT 2024-09-09 07:56
<ChillerDragon> are you building a client?
07:56
<ChillerDragon> i also dont see images here
Avatar
going here
Avatar
Avatar
ws-client
<ChillerDragon> are you building a client?
no just edit
Avatar
ws-client BOT 2024-09-09 07:57
<ChillerDragon> @Patiga hmm i would love to annotate my code with twmap defined types but seems like i can not load both the .so file and the type annotations at the same time. So it crashes on the types at runtime :c any ideas?
07:57
<ChillerDragon> def replace_doodads(layer: twmap.Layer, mapping: dict) -> None:
07:57
<ChillerDragon> this would be so nice
07:57
<ChillerDragon> it should be possible i think
07:57
<ChillerDragon> @MAhdiyar which client are you editing?
Avatar
Avatar
ws-client
<ChillerDragon> @MAhdiyar which client are you editing?
ddnet-master
Avatar
ws-client BOT 2024-09-09 07:57
<ChillerDragon> is your project open source?
Avatar
Avatar
ws-client
<ChillerDragon> is your project open source?
bro just i create One more button
Avatar
ws-client BOT 2024-09-09 07:58
<ChillerDragon> just for your self? what do you need the button for i dont get it xd
Avatar
Avatar
ws-client
<ChillerDragon> just for your self? what do you need the button for i dont get it xd
Yes
Avatar
ws-client BOT 2024-09-09 07:58
<ChillerDragon> but yea anyways how far did you get? do you already have the button?
Avatar
Avatar
ws-client
<ChillerDragon> but yea anyways how far did you get? do you already have the button?
Yes
07:59
I just want to know how to define it so that it goes to the setting menu and then information
Avatar
ws-client BOT 2024-09-09 08:00
<ChillerDragon> well look at the settings button code
08:00
<ChillerDragon> how it does it
08:00
<ChillerDragon> there is some page variable that you can set
Avatar
Yes, I did the same, but I did not understand what to do
Avatar
ws-client BOT 2024-09-09 08:00
<ChillerDragon> why not?
08:01
<ChillerDragon> SetMenuPage(PAGE_SETTINGS)
Avatar
I don't need to define something in void?
Avatar
ws-client BOT 2024-09-09 08:02
<ChillerDragon> define that
08:02
<ChillerDragon> define what*
Avatar
Because I made it here (edited)
08:03
Avatar
ws-client BOT 2024-09-09 08:03
<ChillerDragon> i dont see images
Avatar
ok i made on Settings > Information
Avatar
Avatar
ws-client
<ChillerDragon> SetMenuPage(PAGE_SETTINGS)
Where should I write this?
08:04
<ChillerDragon> SetMenuPage(PAGE_SETTINGS)
Avatar
ws-client BOT 2024-09-09 08:04
<ChillerDragon> maybe a separate stubs repo would have been better -.- @Patiga omagawd i thought now everything works fine. But writing a complex twmap script is still super hard because you cant type args
08:04
<ChillerDragon> @MAhdiyar in your button that you already have in the start menu
Avatar
Avatar
ws-client
<ChillerDragon> @MAhdiyar in your button that you already have in the start menu
ok
Avatar
ws-client BOT 2024-09-09 08:05
<ChillerDragon> or better set NewPage =
08:05
<ChillerDragon> idk what you did
08:05
<ChillerDragon> send code
Avatar
Do I need to delete NewPage?
08:06
Menu.HSplitBottom(100.0f, &Menu, 0 ); Menu.HSplitBottom(40.0f, &Menu, &Button); static CButtonContainer s_InformationButton; if(DoButton_Menu(&s_InformationButton, Localize("Information", "Settings"), 0, &Button, g_Config.m_ClShowStartMenuImages ? "local_server" : 0, IGraphics::CORNER_ALL, Rounding, 0.5f, vec4(0.0f, 0.0f, 0.0f, 0.51f))|| CheckHotKey(KEY_I)) { NewPage = PAGE_INFORMATION; }
Avatar
Avatar
ws-client
<ChillerDragon> or better set NewPage =
actually i have
08:08
But it goes to an unknown place
Avatar
ws-client BOT 2024-09-09 08:15
<ChillerDragon> whats a unknown place
Avatar
It goes to a place where there is no writing and nothing is defined for it
08:16
😂
Avatar
ws-client BOT 2024-09-09 08:16
<ChillerDragon> im sure youll figure it out
08:16
<ChillerDragon> just look at the other code
08:17
<ChillerDragon> or send me a link to your repostory then i can have a look but i wont debug without additional context via chat
Avatar
Avatar
ws-client
<ChillerDragon> or send me a link to your repostory then i can have a look but i wont debug without additional context via chat
Ok
Avatar
Avatar
ws-client
<ChillerDragon> or send me a link to your repostory then i can have a look but i wont debug without additional context via chat
Hey I remember this line monkaStop
Avatar
Avatar
ws-client
<ChillerDragon> maybe a separate stubs repo would have been better -.- @Patiga omagawd i thought now everything works fine. But writing a complex twmap script is still super hard because you cant type args
do I only need to expose all the types? -> are you able to annotate the Map type?
09:27
so far I didn't expose them all, as you can't construct them on their own, they are all always a reference to smth in a Map
09:28
but ig a separate crate would be fine, if that way would be sognificantly easier (as long as we can make it a dependency so that it is always installed alongside the real package)
Avatar
ws-client BOT 2024-09-09 09:43
<ChillerDragon> yea the sync including the pipeline that checks updates if its one package is so nice
09:48
<ChillerDragon> @Patiga yea using twmap.Map as a type annotation works because its also directely available
09:48
<ChillerDragon> but for example twmap.Layer works fine in my IDE because it loads it from the typehints but at runtime the typehints are not loaded then it does not know it
Avatar
Avatar
ws-client
<ChillerDragon> but for example twmap.Layer works fine in my IDE because it loads it from the typehints but at runtime the typehints are not loaded then it does not know it
Avatar
Avatar
MilkeeyCat
@Learath2 do you have any ideas for how modules should like, or yoink rust's and call it a day? santatrollet
MilkeeyCat 2024-09-09 10:40
I think I won't go insano style with modules and just implement something similar to include directive from C
Avatar
Avatar
ws-client
<ChillerDragon> but for example twmap.Layer works fine in my IDE because it loads it from the typehints but at runtime the typehints are not loaded then it does not know it
what do type hints do at runtime btw?
Avatar
chillerdragon BOT 2024-09-09 11:02
Not crash the program
Replying to @Patiga what do type hints do at runtime btw?
11:02
There is no type checking at runtime. But if I use types as annotations it does not know it can’t run.
11:03
@heinrich5991 @Jupstar ✪
11:03
QUIC is expected to be a game-changer in improving web application performance. In this paper, we conduct a systematic examination of QUIC's performance over high-speed networks. We find that over fast Internet, the UDP+QUIC+HTTP/3 stack suffers a data rate reduction of up to 45.2% compared to the TCP+TLS+HTTP/2 counterpart. Moreover, the performance gap between QUIC and HTTP/2 grows as the underlying bandwidth increases. We observe this issue on lightweight data transfer clients and major web browsers (Chrome, Edge, Firefox, Opera), on different hosts (desktop, mobile), and over diverse networks (wired broadband, cellular). It affects not only file transfers, but also various applications such as video streaming (up to 9.8% video bitrate reduction) and web browsing. Through rigorous packet trace analysis and kernel- and user-space profiling, we identify the root cause to be high receiver-side processing overhead, in particular, excessive data packets and QUIC's user-space ACKs. We make concrete recommendations for mitigating the observed performance issues.
Avatar
Avatar
Ryozuki
QUIC is expected to be a game-changer in improving web application performance. In this paper, we conduct a systematic examination of QUIC's performance over high-speed networks. We find that over fast Internet, the UDP+QUIC+HTTP/3 stack suffers a data rate reduction of up to 45.2% compared to the TCP+TLS+HTTP/2 counterpart. Moreover, the performance gap between QUIC and HTTP/2 grows as the underlying bandwidth increases. We observe this issue on lightweight data transfer clients and major web browsers (Chrome, Edge, Firefox, Opera), on different hosts (desktop, mobile), and over diverse networks (wired broadband, cellular). It affects not only file transfers, but also various applications such as video streaming (up to 9.8% video bitrate reduction) and web browsing. Through rigorous packet trace analysis and kernel- and user-space profiling, we identify the root cause to be high receiver-side processing overhead, in particular, excessive data packets and QUIC's user-space ACKs. We make concrete recommendations for mitigating the observed performance issues.
Jupstar ✪ 2024-09-09 11:05
45% wtf. directly sounds like scam tbh xD
11:07
QUIC defs isn't perfect. for http it's still very similar to tcp. but QUIC does not need to be used with HTTP.. QUIC on it's own has other advantages. E.g. simplicity for a developer. Generally it will perform worse than some hyper customized UDP stack tho
11:10
"For a small test page of 15KB, HTTP/3 takes an average of 443ms to load compared to 458ms for HTTP/2. However, once we increase the page size to 1MB that advantage disappears: HTTP/3 is just slightly slower than HTTP/2 on our network today, taking 2.33s to load versus 2.30s." "As you can see, HTTP/3 performance still trails HTTP/2 performance, by about 1-4% on average in North America and similar results are seen in Europe, Asia and South America. We suspect this could be due to the difference in congestion algorithms: HTTP/2 on BBR v1 vs. HTTP/3 on CUBIC. In the future, we’ll work to support the same congestion algorithm on both to get a more accurate apples-to-apples comparison."
11:11
and that blog is 4 years old
11:11
i'd be surprised it got worse by 45% in these years xd
Avatar
ws-client BOT 2024-09-09 11:22
<ChillerDragon> i forgot how to do local install xd @Patiga
Avatar
Avatar
Jupstar ✪
i'd be surprised it got worse by 45% in these years xd
From just reading the abstract I think this is just non-comparable data. The issue highlighted in the paper seems to get worse as you increase bandwidth, so I'm guessing the cloudflare blogposts test files are far too small for this to come up
Avatar
Avatar
Learath2
From just reading the abstract I think this is just non-comparable data. The issue highlighted in the paper seems to get worse as you increase bandwidth, so I'm guessing the cloudflare blogposts test files are far too small for this to come up
Jupstar ✪ 2024-09-09 11:38
I thought that too, but this sentence suggests otherwise:
We observe this issue on lightweight data transfer clients and major web browsers (Chrome, Edge, Firefox, Opera), on different hosts (desktop, mobile), and over diverse networks (wired broadband, cellular).
11:38
Except I have a different understanding of lightweight than them
Avatar
(they seem to mean curl-http2, curl-quic and quic_client by "lightweight data transfer clients")
Avatar
Jupstar ✪ 2024-09-09 11:40
If it's not about single huge files, then it should be ovserable with small packets too or not. Like they could initiate separate streams if a single stream is too slow
Avatar
Avatar
Learath2
(they seem to mean curl-http2, curl-quic and quic_client by "lightweight data transfer clients")
Jupstar ✪ 2024-09-09 11:40
ok
Avatar
The file transfer might have to take more than a certain amount of time for this to appear perhaps? Idk I've just started skimming the paper
11:41
This kinda looks absurd. I wonder what reason they came up with
11:41
Almost looks like a misconfiguration 😄
Avatar
Jupstar ✪ 2024-09-09 11:42
But anyways, e.g. one comment on the hackernews page said they did these tests with RTT of 0.2. If that is true then it could also still be a different issue. E.g. the QUIC acks also depend on the RTT time. With higher RTT the acks have more reorder time etc.
Avatar
Seems this testbed is just not strong enough maybe
Avatar
Jupstar ✪ 2024-09-09 11:42
a linux UDP socket reorders quite often
Avatar
ws-client BOT 2024-09-09 11:42
<ChillerDragon> @Patiga ah maturin develop and yes that branch is working wonderfully! I can use twmap.Layer at runtime and for type checking
11:44
<ChillerDragon> if you merge it there should be at least some type hint somewhere in the scripts that run in the CI so the regression can be caught
Avatar
Avatar
ws-client
<ChillerDragon> if you merge it there should be at least some type hint somewhere in the scripts that run in the CI so the regression can be caught
which regression do you mean? types that should be exposed but aren't?
Avatar
chillerdragon BOT 2024-09-09 12:07
yea
12:07
I don't want my typo annotated script to break because you think they do not have to be exposed :p
12:07
"typo annotated"
12:07
gg
Avatar
Avatar
chillerdragon
I don't want my typo annotated script to break because you think they do not have to be exposed :p
the CI is your domain, I got no clue there ^^
12:17
but the CI is successful on that branch, so I see no issue with merging(?)
Avatar
chillerdragon BOT 2024-09-09 12:25
Communication dragon strikes once again
12:27
@Patiga: what I am saying is that I will be using those type hints and if there will be a regression in the future it would break my code. But you potentially don’t catch it because you don’t use type hints. But yes I can open a mr my self. It‘s simple and it’s for me anyways :)
👍 1
Avatar
Avatar
chillerdragon
@Patiga: what I am saying is that I will be using those type hints and if there will be a regression in the future it would break my code. But you potentially don’t catch it because you don’t use type hints. But yes I can open a mr my self. It‘s simple and it’s for me anyways :)
sounds good 👌 I'll merge the branch once I'm home :)
Avatar
MilkeeyCat 2024-09-09 12:49
@Learath2 Here's what I've cooked up. There will be a keyword import which will be followed by a string foo or a/b/c. It will first try to find file relatively, if it wasn't found, then absolute path will be used. Also it will be cool to support libs so there will be some kind of config file(settings.json for example) which will store project/library name and list of other libs it depends on. So when after look at absolute path nothing was found it will look for files in those libs. Thoughts?
Avatar
Avatar
MilkeeyCat
@Learath2 Here's what I've cooked up. There will be a keyword import which will be followed by a string foo or a/b/c. It will first try to find file relatively, if it wasn't found, then absolute path will be used. Also it will be cool to support libs so there will be some kind of config file(settings.json for example) which will store project/library name and list of other libs it depends on. So when after look at absolute path nothing was found it will look for files in those libs. Thoughts?
If I was making a language I would probably leave this up to the os. import <path> or import "path" would just lead to fopen("path", ...) EXCEPT if path[0] == '@' which I'd use as lib_root
Avatar
Jupstar ✪ 2024-09-09 13:00
Make it so that everything is in one big file, but the IDE can still display it as separate tabs.
13:00
Huge LTO inc
Avatar
Avatar
Learath2
If I was making a language I would probably leave this up to the os. import <path> or import "path" would just lead to fopen("path", ...) EXCEPT if path[0] == '@' which I'd use as lib_root
MilkeeyCat 2024-09-09 13:13
im yoinking this
Avatar
im back from a week
14:37
updated 280 gentoo packages
Avatar
lol
15:24

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-addresss...
Avatar
GitHub BOT 2024-09-09 15:57
Would be helpful if the client could show the ban time localized to the time zone of the user instead of requiring them to convert from UTC manually. This would require defining a standardized way of including the ban time in/with the ban message so it can be parsed by the client.
Avatar
GitHub BOT 2024-09-09 16:33
58ce598 Use operator != instead of mem_comp for colors - Robyt3 b5d6626 Merge pull request #8918 from Robyt3/Cleanup-Color-mem_comp - def-
Avatar
Avatar
Learath2
If I was making a language I would probably leave this up to the os. import <path> or import "path" would just lead to fopen("path", ...) EXCEPT if path[0] == '@' which I'd use as lib_root
MilkeeyCat 2024-09-09 17:33
btw, how would it look it you wanted to include code a file from other library
Avatar
Avatar
MilkeeyCat
btw, how would it look it you wanted to include code a file from other library
import "@srs_json/decoder
Avatar
MilkeeyCat 2024-09-09 17:34
ooooooooh
17:34
ok, i get it now
17:35
adding imports seems like a lot of effort :\
Avatar
It is a fair bit of effort. That's why C went with the preprocessor approach
Avatar
MilkeeyCat 2024-09-09 17:36
maybe i should add macros before imports 😬 (edited)
17:36
but again, i don't want C like macors
Avatar
Who is this Marco?
Avatar
MilkeeyCat 2024-09-09 17:36
they are cursed as hell (edited)
Avatar
Avatar
MilkeeyCat
but again, i don't want C like macors
But you can just use the C preprocessor directly if you use them Thonk
Avatar
MilkeeyCat 2024-09-09 17:38
there's a thing i can call to expand macros?
Avatar
cc -E (edited)
Avatar
MilkeeyCat 2024-09-09 17:39
idk what i really want but definitely something a little bit better than C's #define
Avatar
Better in what way? Careful you don't get stuck in having to implement a full interpreter for your language 😄
Avatar
MilkeeyCat 2024-09-09 17:41
interpreter?
Avatar
If you want your preprocessor to share a syntax with your language you'll end up implementing an interpreter
Avatar
MilkeeyCat 2024-09-09 17:43
This Marco guy is everywhere 😬
Avatar
Avatar
MilkeeyCat
but again, i don't want C like macors
Better than Macor tbf
Avatar
Avatar
MilkeeyCat
idk what i really want but definitely something a little bit better than C's #define
MilkeeyCat 2024-09-09 17:49
ill just not require \ in the end of the line, that will be my improvement xd
Avatar
Avatar
MilkeeyCat
ill just not require \ in the end of the line, that will be my improvement xd
Careful, there is oft a reason to what appears stupid in C
Avatar
MilkeeyCat 2024-09-09 17:51
also it would be nice if the programmer could see if this is a macro just by looking at it in the code
Avatar
Avatar
Learath2
Careful, there is oft a reason to what appears stupid in C
MilkeeyCat 2024-09-09 17:51
do you know when it can break?
Avatar
Avatar
MilkeeyCat
do you know when it can break?
Ofc, how will you know when the Marco ends?
Avatar
Avatar
Learath2
Ofc, how will you know when the Marco ends?
MilkeeyCat 2024-09-09 17:53
make syntax like macro name { blah blah }
Avatar
Avatar
MilkeeyCat
make syntax like macro name { blah blah }
There, problem solved, now you can have macors
Avatar
MilkeeyCat 2024-09-09 17:54
and to call macro you have to slap ! in the end of the name (edited)
Avatar
GitHub BOT 2024-09-09 18:50
But manually connecting to e.g. tw-0.7+udp://192.168.0.100:8303 (with respective local IP) works.
Avatar
@Robyt3 could take a look at #8907 if new changes are fine?
Avatar
Fixes #8903 I&#39;m not sure if the 1 frame jump when swapping back to the player can be fixed, as the client needs to be swapped to a dummy for it to be initialized output2....
Avatar
Avatar
kebs
@Robyt3 could take a look at #8907 if new changes are fine?
yeah, I'll review it tomorrow
👍 1
Avatar
Avatar
MilkeeyCat
adding imports seems like a lot of effort :\
it is the most effort, its where i stopped with edlang
19:07
because its where u need to decide how to link and stuff and resolve types
19:07
cross packages
Avatar
MilkeeyCat 2024-09-09 19:07
I don't know half of those words but I agree
19:25
so now it's faster than the java client xD
Avatar
" Upcoming features Ability to view other players"
19:27
a server that doesnt even support multiplayer
Avatar
Jupstar ✪ 2024-09-09 19:28
not getting annoyed by others is a feature
Avatar
Jupstar ✪ 2024-09-09 19:36
now i just need a vps with 32cores to have something from using a highly mutlithreaded minecraft server xdd
Avatar
#3411
Avatar
Jupstar ✪ 2024-09-09 19:50
#9999
Avatar
Woah!
justatest 2
Avatar
where are we on the accounts stuff? this issue hasn't had a comment since june
Avatar
Waiting on QUIC to be more exact I guess
Avatar
GitHub BOT 2024-09-09 22:31
The current way /spec command works is misleading for new players. After using /spec "playername", we are stuck spectating that player until they disconnect, unless we know about the spectator mode selector menu, which isn't mentioned anywhere. Many players, including myself, had the same issue, as seen by searching for "stop spectating" and similar terms on the DDNet discord. The /unspec command feels intuitive, as it follows the same naming conventions as other commands, like /solo ...
Avatar
i remember being stuck entire map spectating someone bcs i didnt know about that
Avatar
Jupstar ✪ 2024-09-09 22:42
I believe you, it's just funny bcs i think new players simply don't know any of them
Avatar
I didn't even know you could /spec someones name
Avatar
Jupstar ✪ 2024-09-09 22:42
xdd
Avatar
i read the commands
Avatar
Jupstar ✪ 2024-09-09 22:43
But tbh I find 6 discord msgs related to ppl being stuck
Avatar
i seen ok i can spec someone makes sense
22:43
and theres no way to unspec
Avatar
Jupstar ✪ 2024-09-09 22:44
I wonder why we even support such non-intuitive chat commands
22:44
Like why do we extend an existing chat cmd by some random feature that is completely unrelated
Avatar
is the spec menu just executing the chat command?
Avatar
Jupstar ✪ 2024-09-09 22:44
that /spec is called /spec is ofc already a problem
Avatar
Avatar
Tater
is the spec menu just executing the chat command?
Jupstar ✪ 2024-09-09 22:45
I don't think so, it probs has a proper network packet
22:45
/spec isn't even for specing someone
Avatar
I'm not so sure
Avatar
Jupstar ✪ 2024-09-09 22:45
It's to remove your tee and go /pause
Avatar
Avatar
Tater
I'm not so sure
Jupstar ✪ 2024-09-09 22:46
But how would that work in vanilla based mods?
Avatar
Avatar
Tater
is the spec menu just executing the chat command?
i think it sends packet "i want to spec someone"
Avatar
with chat command server reads it and gives u spectator
Avatar
it seems weird to have a chat command for something that already has a proper net message
22:47
bad ux (edited)
Avatar
its better that way i guess
22:49
just no way of knowing there is something like the spectator menu selector
22:49
unless u read discord
Avatar
Avatar
kebs
just no way of knowing there is something like the spectator menu selector
bad ux again
Avatar
Jupstar ✪ 2024-09-09 22:51
Not your fault kebs, but WTF is this pause state code bro xD if(-PauseState != CPlayer::PAUSE_NONE && PauseType != CPlayer::PAUSE_NONE)
22:51
Who should be able to understand such stuff without 300 IQ
Avatar
idk i took it from old code
Avatar
Jupstar ✪ 2024-09-09 22:51
Yeah i saw that
Avatar
"-PauseState" is really innovative
Avatar
i had to set breakpoint every time i change spectator mode to see what this even does
Avatar
I've also noticed that the spectator state on the client is a huge mess in other places
Avatar
Avatar
Tater
bad ux again
there should be some message like press middle mouse to select spectator mode
Avatar
just like there is when you open debug mode
22:52
but something less intrusive
Avatar
but people who already know about it will find the text annoying
Avatar
yes thats what i mean
22:53
same for entities toggle
Avatar
I think normal games would just have the text there anyway and ignore those people lol
Avatar
Normal games would display a tip once, probably
Avatar
not true really
Avatar
display a tip popup and make u close it
22:54
league does it
22:54
so u dont miss it
22:54
so until u dont close the popup itll be there every time
Avatar
We do have tips in chat constantly being sent by the server, though they're all in english afaik
Avatar
you often see games with dynamic controls overlay where the graphic changes based on what you have your controls bound to
22:55
many many games have "use {key} to {action}" text appear hundreds/thousands of times during gameplay
22:57
or make it impossible to not learn about the menu by binding it to HOLD spec so it always appears when you enter spectate
Avatar
A window that goes over the controls when you first launch the game could work, have people press the buttons and see the result
Avatar
I'm not a fan of one time popups
22:59
I think that's bad design
Avatar
Could have a button in the menu to redisplay it
Avatar
people don't read them/forget immediately
Avatar
Jupstar ✪ 2024-09-09 23:00
I assume many new players use the ESC ingame menu I'd probably add a spectate button that opens a list of options to choose. Spectator -> [Spectate a player, Freecam]
23:01
There you can also write the bind for this
Avatar
you could have M3: Spectate Menu appear on the bottom right of the screen then fade out after 5 seconds.
23:01
in small text
Avatar
Avatar
Tater
you could have M3: Spectate Menu appear on the bottom right of the screen then fade out after 5 seconds.
quickly checking what's ahead of you would just mean the message is there always
23:05
there's already other hud elements on the screen anyway like chat/death messages
23:05
FPS for many people
Avatar
well so something like current debug mode has
23:07
maybe just bit smaller and transparent i guess
Avatar
"Following X" "Free-View" "Multi-View" is all rather pointless text, replacing it with bind information / how +spectate works would probably be better use of that space
Exported 246 message(s)
Timezone: UTC+0