Games should have “optimise for streaming” option
mcraiha.github.io
mcraiha.github.io
In fact, hardware encoders have excellent built in denoising (and other postprocessing) functions. But they are so obscure that less than a dozen streamers on the planet are probably using them... I cant even remember the syntax now, I would have to go look it up in Staxrip and then see if it even works in OBS :/
And as the blog mentions, noise "tricks" the encoder into blowing its bitrate budget on preserving noise that looks like detail, instead of something more useful.
And the HBO intro is a nightmare.
It seems like removing the elements will ensure bits aren’t wasted on those elements.
Almost every MTGA streamer I've seen uses Untapped (https://articles.mtga.untapped.gg/set-up-twitch-extension-fo...) which solves issues 2 and 3 since you can in fact just mouse over cards to see what they are as well as get detailed info on the deck being run and game state.
And a "noise buffer" is an interesting concept. I dunno if any other applications try to do this with AV1, or if thats even possible without major hacks (as its noise synthesis is basically designed for internal use).
If you prioritize streamability you end up deprioritizing something else.
I also think we can take this further - games should be setting up their pipelines to offer a "compression friendly" version of the frame as an interstitial product before producing the final render. That way the game produces two native frame streams: one that's extremely compressible and one that's got all the bells and whistles. Obviously that takes more horsepower but the point is moving towards games engines as a broadcast-aware medium.
This is going to be a huge part of what makes a game accessible and successful going forward and the people who make tools for games will benefit from taking that seriously.
I suspect that it should be possible for at least the streaming platforms that have native applications to tie into the OS's screen-reading APIs to grab text and provide it out-of-band, e.g. by streaming rectangles of the background color and render text over it on the viewer's client. Then it'd be copy-pastable by the viewer too, and their own assistive technologies could work on it.
Come to think of it, it's a little bonkers that sharing a desktop over a meeting doesn't leverage any of the stuff that is in remote desktop and similar protocols - why send screenshots of text when viewer's PCs are capable of rendering the same text? I suppose the status quo is easier to implement but there'd be a measurable improvement in text quality and bandwidth usage if a different approach were taken.
I think it's because applications are rendering their own text directly to the GPU these days. Back in the day, you used to use standard OS controls for everything which allow you to do exactly this without any direct attachment to the underlying rendering layers, but these days most applications are either Chromium with an icon or something rendered to a GPU canvas (Flutter style) to get easy animations for cheap, each with their own GPU acceleration system.
RDP has several modes (block updates, video streams, you name it) and switches between them on the fly. Windows especially uses the win32 render hooks to significantly reduce bandwidth necessary to run native applications, integrating in the window event loop mechanism.
I don't think browsers or streaming tools can leverage that tech as easily and even if they could I expect the benefit to be diminishing over the coming years. This understated use case for natice applications is often forgotten and at this point I don't expect the industry to move back to the old way of writing applications.
One of the bigger issues for text is 4:2:0 subsampling... not really sure how to work around that, as higher levels of subsampling are extremely expensive.
Because in general, how do you verify that the two PCs or Mac or Linux or iPhone or Android have the same fonts installed?Game streaming as a service hasn't worked out well. It's too expensive a service to provide, since each user needs a rackmount gamer PC in the data center when on . Most of the streaming services of a few years ago went bust. Vortex closed in 2022 and Google Stadia closed recently. Shadow PC pivoted to B2B. NVidia GeForce Now doubled their prices.
Technically, it works fine, but doing it profitably seems to require pricing around $30/month, and that's not selling.
Should film grain should be removed from streaming movies, too? Some systems do that, and re-insert it in the player.
Especially since they're already paying the streamers to play their games, it makes sense to provide an optimized game rendering mode for this.
Yes! I hate film grain in Blu Rays, but it looks particularly awful in streams. And there are far better ways to fix banding if thats the goal of adding grain.
I dont think many are leveraging AV1's grain synthesis yet.
This seems like it should be solved by streaming services, not game developers.
Many games rely on streamers as a kind of marketing.
Adding effect tweaks into streamer mode isn't a bad idea.
What would not be cool would be the huge expense of needing to do two ui/Ux passes on user interface and qa that entire process and bugs thereof. The piece is also talking of vfx creating issues and these are wholly unfixable unless at enormous expense. At that point they would instead need to be disabled which would make the game look overall worse and as a less appealing product and as an art director I would *not* want my game to be streamed under said circumstances
That said there are some good takeaways from it, a setting to disable film grain or improve font/ui readability
Similar to how pop music production values changed as kids started listening to music over phone speakers.
Or how failing to account for how some images handle compression led to HBO shipping those unwatchably dark Game of Thrones episodes. I guess directors targeting streaming nowadays know not to do that?
But I don’t think this passes as normative advice for all game developers. If as a game dev you value how your game looks on Twitch, you might want to think about some of the graphical flourishes you include.
On the other hand if, as a game dev, you want people to experience your game personally and you want to discourage streaming consumption, maybe you crank these features up to the max so your game looks terrible streaming. Entirely up to you how you use this knowledge, really.
Saying games “should” optimize for this is like saying back in the 80s/90s that movie directors “should” frame their shots so they can be cropped down to 4:3 because otherwise their movie will look bad on VHS and TV. Sure, some directors followed that approach; others went ‘screw that’ and framed shots wide so they were basically impossible to pan and scan without losing content.
That blame lies on the service encoders. They should be allocating more bitrate to dark scenes, and gently debanding them, rather than relying on decades-old x264 defaults.
But to be fair this wasn't well known back in early GoT days.
More like "Free to play" if you're ok with getting creamed by people shoving cash into the game for packs and drafts. MTGA is as rigged as every other game is these days: power for money.
Game developers don't want this. Gamers generally don't prefer it either, or they can be sold on the idea but consistently reject the experience. Why is this such a thing? It's because business people know that if they can convert game buyers into people who pay for streaming service they can play gate keeper and extract all the surplus value. That's not a priority for me!
Hell, why not include the ability to render locally, like a halo/StarCraft (and many other series of course, these are just the two I remember) replay.
But the problem is fundamentally the same, as they are both using GPU hardware encoders to stream a game to a client.
Streaming is big. Making your game look good when streamed is probably worthwhile. Arguably some game genres and trends wouldn't even exist if not for streaming.
Battle Royale games were based on a little known ARMA mod that was popularized by streamers like Lirik which lead to more people playing them which lead to more games like that being made.
So, for example, with some card games viewers can mouse over a card in the stream video and get tooltips/card text/information.
It only works for some live content and not vods though. I imagine storing all the required information for vods would be challenging.
Anything story-driven and/or single-player with even a pretense of artistic integrity should stay as far away from wasting man-hours behind optimizing the graphics, UI and general aesthetic to please the h.264 overlords.
Some of those viewers may have accessibility needs. All of them benefit from clear text on text heavy games.
Streaming optimization is missing the forest for the trees, namely that in a world with better internet connections not only would streaming quality be solved but also every other problem with slow internet would be too
Literally millions of people watch streamers play games. There are, at the time of me writing this comment, 4,800,000 people watching twitch right now (according to TwitchTracker) - that excludes Youtube Live, Facebook Live, Steam, etc. Many games (Five nights at Freddy's, Minecraft, Fall Guys) owe their extreme popularity to streamers. The issues here apply even to recordings of your game.
If you are ignoring streamers, you are ignoring a major part of your base, and an extremely public part of your base at that. You're also actively telling your players who need accessibility tools that you don't value them enough to invest some time over basic settings tweaks (that you should probably have anyways...).
Like TloU (Both) or Some Assasins Creed Games I did eventually buy most of those games, and maybe in a future I shall play them, but in the mean time they got a sale out of me, and to care more for future releases (Or even merchandise)
But, considering the lengths most streamers go to have everything on ultra because more quality really doesn't really hurt either, it doesn't seem like it'd be an unwelcome change
I'd love some of the things sugested here, like a separate stream so text doesn't get lost to compression or changes like that
And games look better if other high frequency effects, like texture shimmering or shadow flicker, are denoised away.