Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Holopad Megaissue #33986

Open
6 of 9 tasks
ElectroJr opened this issue Dec 21, 2024 · 9 comments
Open
6 of 9 tasks

Holopad Megaissue #33986

ElectroJr opened this issue Dec 21, 2024 · 9 comments
Assignees
Labels
A: Silicons Area: Relates to Silicon roles, including AI. D2: Medium Difficulty: A good amount of codebase knowledge required. P2: Raised Priority: Item has a raised priority, indicating it might get increased maintainer attention. S: Requires Content PR Status: Requires a change to SS14, for which there is no open PR currently. T: Bugfix Type: Bugs and/or bugfixes

Comments

@ElectroJr
Copy link
Member

ElectroJr commented Dec 21, 2024

Megaissue for any holopad bugs/issues that need to be fixed. This is related to #33954. Maybe the issues should be merged, but I wanted to separate issues & bugs from future features.

  • Holopad networking needs to be reworked (fixed in Holopad networking rework #34112)
    • Holopads are client-authoritative. Modified clients can make their holopads appear however they want.
    • Holopads likely don't play nicely with replays, the appearance data should be part of a component state, not a networked event.
    • The easiest fix for this is likely to use PVS overrides to directly send the viewed entity and their children, and then having the client copy the data. If we eventually get sprite nesting (using an entity as a layer in another entity's sprite), it should use that.
  • Holopad holograms do not support displacement maps. Other sprite modifications will also be unsupported (fixed in Holopad networking rework #34112)
  • Holopad broadcasts result in a large amount of chat spam for ghost and observers as they will receive duplicated messages from all the linked holopads (temporary fix in Holopads no longer log broadcasted speech and emotes in the chat #34114)
    • Solving this issue properly will need to wait for the chat refactor freeze to be lifted
  • Unanchoring a holopad that the AI is currently broadcasting from can leave the AI player stuck in place (fixed by Bugfix for the AI player's eye getting stuck when their broadcast is interrupted #34093)
  • Newly spawned/constructed holopads do not display the current broadcast cooldown on them (fixed by Bugfix to sync emergency broadcast cooldowns on holopad UIs #34115)
  • Mute players have some difficultly using holopads because they do not support custom emotes, and they cannot force the holopad to refocus on them if someone else (e.g., their PAI) starts talking nearby
    • This problem can be be solved by having it so that when a speaking player is in the inventory of another the holopad focuses on the parent player and by making emotes refocus the holopads attention on that player, just like talking
    • Custom emotes will need to wait for the chat refactor
  • If more than one AI core is present in the game, AI player's may not be able to hear local speech when projecting from a holopad (fixed by [HOTFIX] fix holopads with multiple ai cores dying #34289)
    • This issue stems from a pair of erroneous return statements, instead of continue statements, in a query for loop in Server.StationAISystem.OnExpandICChatRecipients
  • Unanchored holopads can be pushed under walls (fixed by Fix holopads phasing through walls. #34300)
  • There are number of inefficiencies and persistence issues that need to be addressed, see HolopadSystem needs work #34873
@ElectroJr ElectroJr added T: Bugfix Type: Bugs and/or bugfixes P2: Raised Priority: Item has a raised priority, indicating it might get increased maintainer attention. D2: Medium Difficulty: A good amount of codebase knowledge required. A: Silicons Area: Relates to Silicon roles, including AI. S: Requires Content PR Status: Requires a change to SS14, for which there is no open PR currently. labels Dec 21, 2024
@Errant-4
Copy link
Member

Errant-4 commented Dec 21, 2024

Holopads absolutely spam the chat of observers/aghosts when they are broadcasting, because you hear the speech of every last one of them

@chromiumboy
Copy link
Contributor

I actually originally used PVS overrides for this, and it worked just fine, but I got worried about how every client was getting holopad users data and that cheaters might exploit this. But if you don't think it will be problematic, I'll make the switch back

@ElectroJr
Copy link
Member Author

I actually originally used PVS overrides for this, and it worked just fine, but I got worried about how every client was getting holopad users data and that cheaters might exploit this. But if you don't think it will be problematic, I'll make the switch back

Yeah, It's also not a great solution, and also kind of sucks for performance, but having it be client authoritative feels pretty icky as well. The same problem more or less also exists for the round end lobby (#29160). But I also don't really know of a good way to fix either one aside from just sending the entities.

@TGRCdev
Copy link
Contributor

TGRCdev commented Dec 22, 2024

Holopads don't work with displacement maps, which cause vox to be warped into human proportions.

image

@chromiumboy
Copy link
Contributor

I actually originally used PVS overrides for this, and it worked just fine, but I got worried about how every client was getting holopad users data and that cheaters might exploit this. But if you don't think it will be problematic, I'll make the switch back

Yeah, It's also not a great solution, and also kind of sucks for performance, but having it be client authoritative feels pretty icky as well. The same problem more or less also exists for the round end lobby (#29160). But I also don't really know of a good way to fix either one aside from just sending the entities.

At least we'd only be adding a much smaller number of players to the PVS at a time, up to two per call in progress. Even if multiple people speak into a the same holopad, the holopad on the other end only displays one person at a time, so one one will be added to the PVS override. It'll also fix issues like the displacement maps cos I don't have worry about applying all the sprites by hand

@LordEclipse
Copy link
Member

LordEclipse commented Dec 23, 2024

If an A.I. is using a holopad and its unanchored or depowered, it breaks the A.I. eye, which can only be fixed by the A.I. returning to core. It may or may not break emergency broadcasting for the A.I. as well in this instance.

@slarticodefast
Copy link
Member

Newly spawned holopads do not show the coundown for the broadcast option when it is running. The button does not work until the cooldown is over, so this is visual only.

@ilovehans10
Copy link

Another thing that might be intended but feels wrong is that mute players are absolutely fucked if they have a PAI or anything else that talks near them. This feels like it could be intentional, but at the same time holopads feel like the ultimate accessability option for communication. A simple fix for this would be to have a "Gain Focus" button in the holopads UI when on a call, so if my PAI makes a glib remark it won't prevent me from being able to gesture over the call.

Another thing to build on this idea would be to have a "Lock Focus" option that requires extra ID access. That way if I'm mute and plan on using holopads I can go to HOP round start and give them my Holopad Focus Lock request form, and no longer have to worry about a mouse screaming near me. Also department heads should probably have this access too as being CE and having a Technical Assistant budge into a holocall can be undesired.

@chromiumboy
Copy link
Contributor

The focusing issue with PAIs can be partly solved by having it so that when a speaking player is in the inventory of another the holopad focuses on the parent player

The second part is to have emoting bring the focus back to the player in adddtion to speaking. Then there would be no need to have focus buttons

@chromiumboy chromiumboy self-assigned this Dec 23, 2024
@chromiumboy chromiumboy added S: Approved Status: Reviewed and approved by at least one maintainer; a PR may require another approval. S: Requires Content PR Status: Requires a change to SS14, for which there is no open PR currently. and removed S: Requires Content PR Status: Requires a change to SS14, for which there is no open PR currently. S: Approved Status: Reviewed and approved by at least one maintainer; a PR may require another approval. labels Dec 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A: Silicons Area: Relates to Silicon roles, including AI. D2: Medium Difficulty: A good amount of codebase knowledge required. P2: Raised Priority: Item has a raised priority, indicating it might get increased maintainer attention. S: Requires Content PR Status: Requires a change to SS14, for which there is no open PR currently. T: Bugfix Type: Bugs and/or bugfixes
Projects
None yet
Development

No branches or pull requests

7 participants