Dalamud icon indicating copy to clipboard operation
Dalamud copied to clipboard

"Streamer mode" or alternate rendering mode

Open mczub opened this issue 2 years ago • 13 comments

With the recent post about third-party tools and a number of streamers being suspended for using Dalamud-based plugins, it may be worth looking into an alternate method of displaying plugin graphics in a separate process or overlay so that they won't be displayed in OBS or any other game window capture for streaming.

mczub avatar May 10 '22 08:05 mczub

Streamers should just not use plugins. It would be much easier. Many plugins integrate with the Game's UI directly now so it would not be feasible anyway

Caraxi avatar May 10 '22 08:05 Caraxi

image Leave this box unchecked???

This checkbox will control's OBS's instructions with DXGI to capture the frames post-overlay presentation, instead going for the buffer that only contains the game's render. In-game overlays are a pain in the ass but it's good that Jim (among others) have this working

As already mentioned that this will have no affect on any changes to the overall game ui itself, this only affects the ImGui hook

Scrxtchy avatar May 11 '22 02:05 Scrxtchy

I'm personally against the idea of including this because of a user seeing it and potentially not understanding it only works to hide ImGui windows. Anything that integrates into the game (e.g. XIVCombo, XIVDeck, DailyDuty, Cactpot/WT solver, Pixel Perfect, Chat Bubbles, anything that uses DTR or context menus) will be visible.

This could be solved with a "disable in streamer mode" flag, but then we're just back to unloading/loading plugins in PvP (and then we have to review every plugin to see if it modifies game UI, and 3PP can't be blessed with it 100% of the time).

The easier solution is to just start the game without Dalamud, which can be solved by right clicking login in XL/disabling it in the XL settings/starting through the official launcher. Perhaps we can add an easy unload button, if we're certain we can unload on the dime cleanly.

NotNite avatar May 11 '22 02:05 NotNite

An optional flag for plugin maintainers to decide if they'd like to adhere to it or not could possibly work, but I wouldn't make that a hard requirement for implementation due to the complexity of such a task and the fact that some plugins cannot be easily unloaded/reloaded in all cases.

Alternatively, perhaps we could add some type of categorization feature to Dalamud like "Streamer Friendly" and plugins could opt to include that category in their manifests. If we wanted to take it one step further, enabling streamer mode would then automatically disable unsafe plugins and then enable them again when streamer mode was disabled.

Naturally, even if we included one or both of these things, we wouldn't have any control or influence over unsupported plugins, many which already skirt our plugin guidelines.

reiichi001 avatar May 11 '22 03:05 reiichi001

I'm personally against the idea of including this because of a user seeing it and potentially not understanding it only works to hide ImGui windows.

We could have a pop-up explaining this, a streamer should be expected to be responsible enough to read warnings.

karashiiro avatar May 11 '22 16:05 karashiiro

I think if individual plugins choose to explain what they do with the UI and which of their visual elements can/can't be concealed onstream, that's genuinely good information that users would appreciate. But there's always the risk that the dev is incorrect or misrepresenting how discreet their plugin actually is. And any tag or icon or special mode that gives even a whiff of an impression that a plugin is certified guaranteed safe seems dicey.

And there's also the bug factor; you could have the most super secret invisible plugin in the world, but if there's an error, it throws a notification, weird stuff happens that obviously isn't a vanilla FFXIV client bug, etc, all bets are off.

ItsBexy avatar May 11 '22 16:05 ItsBexy

A plugin I've considered making (or at least telling someone how to make) is copying the rendered output of the game, prior to the UI being rendered, to a second window so that you could stream that. Of course, this means your viewers won't be able to see the game's UI, which is why I haven't done it... but it might still be of interest to someone? not sure

philpax avatar May 12 '22 18:05 philpax

I've added an /xlui command to the testing branch that can toggle all overlay UI and asks plugins that modify the native UI to remove/readd their modifications.

Hope that's a first step. Currently not really planning to do any more than that.

goaaats avatar May 12 '22 18:05 goaaats

@philpax is it possible to copy imguiless output instead of uiless? That might have more use

Limiana avatar May 13 '22 21:05 Limiana

It is, but that has the same issue of showing potential game UI modifications.

philpax avatar May 14 '22 01:05 philpax

Seeing someone play the entire game in full without a UI is just about as telling as game UI modifications as anything else. Cool cinematic experiance, but if you're pulling all this shit blind someone's going to be asking questions

Scrxtchy avatar May 14 '22 17:05 Scrxtchy

Seeing someone play the entire game in full without a UI is just about as telling as game UI modifications as anything else. Cool cinematic experiance, but if you're pulling all this shit blind someone's going to be asking questions

SE literally does "no HUD" challenges at fanfests. I don't think "disable the HUD" is going to be specifically a "to hide plugins" kinda feature, but it does make for a more engaging watching experience if someone's playing FFXIV in the background.

Goat's /xlui command will probably be a good middleground for streamer-safety.

reiichi001 avatar May 14 '22 17:05 reiichi001

SE literally does "no HUD" challenges at fanfests.

If you limit the feature to your boss instances yes, but once a player starts interacting with an invisible interface such as talking to NPCs that's when the issues are on display. If all you're interacting with is the hotbar and targeting actors then there's nothing at all to question. Even when you hide the ui through the hotkey, it will activate the element, however there is no way to interact with it. It's nice but doing so is an obvious 3rd party tool on display and it's no alternative for a streamer mode

Scrxtchy avatar May 14 '22 17:05 Scrxtchy