ec- / Quake3e

Improved Quake III Arena engine
GNU General Public License v2.0
1.22k stars 153 forks source link

Tabbing to view scores and scores screen gets stuck (new release issue only). #205

Closed Kr3m closed 1 year ago

Kr3m commented 1 year ago

I tried out the new release yesterday, and when I go to view scores, a lot of times they wind up sticking and you can't disable them by releasing tab or even hitting tab again. So, you're basically trying to play the game with no crosshair and a scores screen impeding your view. This is true on both the standard and vulkan Windows builds. I haven't tested this on a Linux machine yet, but if I do and the same bug occurs, I'll update this issue.

https://ibb.co/YypyG5x

ensiform commented 1 year ago

What's the bind set to?

Kr3m commented 1 year ago

What's the bind set to?

The tab key? It's set to +scores. It works fine if I revert back to the previous release. It's just this release that has the issue.

Kr3m commented 1 year ago

I just double checked to make sure it was the previous release that was working and yes the 10-14 release works great. The last release does not.

ensiform commented 1 year ago

vq3 (baseq3) and team arena (missionpack) have zero issues with latest release on scores key (+scores) unless you can show there is certain conditions must be met while playing.

Kr3m commented 1 year ago

I've only tested with q3plus which is a pretty popular mod right now. I'll see if I have the same issues with baseq3 or missionpack.

ensiform commented 1 year ago

It only happens in q3plus mod when spectating, seems like the crosshair appears so its a faulty mod. Doesn't happen when live player for me.

Kr3m commented 1 year ago

It's not just when spectating. It's when you're playing the game as well. Not all the time. If you hit tab a few times or hold tab it should trigger it.

ensiform commented 1 year ago

I'm running around right now and only happens when spectating. Also issuing -scores removes it.

It only ever is sticky when it was open during spectating.

Live (non-waiting for players/warmup) the delay before it goes away is slower than it is while in "waiting for players" state but it still always closes after releasing the key. I have tried pressing and holding and pressing about 500 times in one session with no inability to close it while active as a player.

Mind you the scoreboard code is 100% cgame.qvm (client mod specific code). The only possible intrusion here is https://github.com/ec-/Quake3e/commit/5ca022a4dcc155b1d626a76260a43e37f5b08d4e though not sure exactly why it would as it is only a single bind.

Is this mod's source code available even? Is it actually a new mod or just renamed excessive plus qvms?

Kr3m commented 1 year ago

It's a new mod based on excessive. I'm not sure that the source code is available, but I'll see what I can find out. Might actually have some luck given it's new and pretty popular right now.

But yeah, if this was only happening to me while I was spectating, that wouldn't be a huge issue. For now, I have to make sure the community uses the 10-14 release of Quake3e to avoid issues. I wonder if server type matters and maybe that's why you're not experiencing it in game? You could test this by going to /connect dayentech.net since that is one of the servers I have it running on if you want to and have a moment to try it.

ensiform commented 1 year ago

Shouldn't make a difference, the scoreboard button and displaying is entirely handled on the client side. But maybe I'll try it when I get a chance or cyrax may have other thoughts eventually.

Kr3m commented 1 year ago

Shouldn't make a difference, the scoreboard button and displaying is entirely handled on the client side. But maybe I'll try it when I get a chance or cyrax may have other thoughts eventually.

Do you have any suggestions on any client-side logging features that might make it easier to figure out what is going on? I was thinking of doing some more testing with the current release, but without any useful debugging info or logging, I'm at a loss.

ensiform commented 1 year ago

Shouldn't make a difference, the scoreboard button and displaying is entirely handled on the client side. But maybe I'll try it when I get a chance or cyrax may have other thoughts eventually.

Do you have any suggestions on any client-side logging features that might make it easier to figure out what is going on? I was thinking of doing some more testing with the current release, but without any useful debugging info or logging, I'm at a loss.

Such logging would need to be part of the mod itself. Hence why needing to know if its a new mod or just repackaged excessive plus. Turning on \developer shows the scores command being communicated which is what polls for the score data from the server. But nothing else.

Kr3m commented 1 year ago

Meh. I'm at a loss then. It's great that baseq3 and missionpack are working. I doubt we're going to find too many mod creators still around that want to patch their mods to get them working when something breaks with an update though if they were working fine before. sigh

ensiform commented 1 year ago

You're comparing months of changes between 10-14 and the last one though? Can you git checkout the one before the last and compile to compare specifically that it was at fault? The "latest" always overwrites. Only way to know for sure it was the identified change above by triage.

Kr3m commented 1 year ago

You're comparing months of changes between 10-14 and the last one though? Can you git checkout the one before the last and compile to compare specifically that it was at fault? The "latest" always overwrites. Only way to know for sure it was the identified change above by triage.

I was just talking about releases, but yes. I would totally be willing to do that if it would help. I don't want you to think I don't appreciate the efforts you guys are making to keep this game alive and fresh. I do. I don't have a lot of time to contribute anything myself, but if this would help, absolutely.

Kr3m commented 1 year ago

You're comparing months of changes between 10-14 and the last one though? Can you git checkout the one before the last and compile to compare specifically that it was at fault? The "latest" always overwrites. Only way to know for sure it was the identified change above by triage.

Not sure if you saw my message earlier, but I was wrong. This is when it happened:

I tested this with the 32 and 64-bit Windows executables and the 64-bit Linux binary. They all have this bug.

ensiform commented 1 year ago

Alright, that commit definitely looks promising since the scores bind is a + bind

Particularly the mention in log, * fixed spurious bound action on +vstr key releases

Note for @ec-, now that I know it might be related to that particular commit, I got a report that some issues with such binds in ETe as well. cc @Aciz can possibly add more details when have time.

Kr3m commented 1 year ago

Alright, that commit definitely looks promising since the scores bind is a + bind

Particularly the mention in log, * fixed spurious bound action on +vstr key releases

Note for @ec-, now that I know it might be related to that particular commit, I got a report that some issues with such binds in ETe as well. cc @Aciz can possibly add more details when have time.

Good stuff man. I noticed last night that you're on the ETe project which I didn't even know existed. Loved that game back in the day. Got a question about that one, but more appropriate for Discord. :)

Aciz commented 1 year ago

I am not sure exactly how to reproduce the issues described here, so I can't verify that the recent commits (https://github.com/ec-/Quake3e/commit/f599d68b54e01b10bc31388a2bf90aef484b4fe2, https://github.com/etfdevs/ETe/commit/6151876d0c5b89818e267422a62ef24de90c8693) actually fixed things, but I have indeed experienced something similar with ETe lately and I can share some details.

I've experienced this only with +vstr binds. I use a bit of weird script for movement, which basically uses bunch of +vstr scripts to automatically let go of opposite movement keys.

set forwardOn "-back; +forward; set forwarding +forward"
set forwardOff "-forward; vstr backing; set forwarding set cl_noTaunt 0"
set backOn "-forward; +back; set backing +back"
set backOff "-back; vstr forwarding; set backing set cl_noTaunt 0"
set moveleftOn "-moveright; +moveleft; set lefting +moveleft"
set moveleftOff "-moveleft; vstr righting; set lefting set cl_noTaunt 0"
set moverightOn "-moveleft; +moveright; set righting +moveright"
set moverightOff "-moveright; vstr lefting; set righting set cl_noTaunt 0"
set jumpOn "-movedown; +moveup; set upping +moveup"
set jumpOff "-moveup; vstr downing; set upping set cl_noTaunt 0"
set crouchOn "-moveup; +movedown; set downing +movedown"
set crouchOff "-movedown; vstr upping; set downing set cl_notaunt 0"

bind w "+vstr forwardon forwardoff"
bind a "+vstr movelefton moveleftoff"
bind s "+vstr backon backoff"
bind d "+vstr moverighton moverightoff"
bind SPACE "+vstr jumpon jumpoff"
bind MOUSE1 "+vstr crouchon crouchoff"

Basically the issues I've experienced are that sometimes my jump is stuck, this is usually after I've been tabbed and come back to game. Sometimes I also cannot crouch - when this happens, my console tells me Unknown command 178 whenever I try to crouch. I haven't experienced other keys getting stuck at all, only these two +vstr binds.

ec- commented 1 year ago

Issue (non-fixed) can be reprodiced when flying as spectator in E+ and pressing TAB to show scoreboard

Kr3m commented 1 year ago

Issue (non-fixed) can be reprodiced when flying as spectator in E+ and pressing TAB to show scoreboard

I've also had it happen in game when not spectating which is brutal since you can't see your crosshair or much of anything else.