← Back to context

Comment by atomicnumber3

1 day ago

Was it a scandal at the time? My understanding of how per-game card-driver optimizations work today is:

1. AAAA Game Studio shits out another unoptimized clunker

2. nvidia considers it a reputational risk if games run at 30 FPS on a 5090

3. They go in, look at the perverse ways the game misuses rendering primitives, and then hacks shit in to make whatever bad things they're doing less bad.

As a gamer, this seems fine to me and i generally blame the AAAA devs for being bad at their jobs or AAAA studio leads for being ok shipping unoptimized messes.

> As a gamer, this seems fine to me

As a software developer, it almost certainly has a bad effect on the ecosystem long term. "Hacks shit in" is the very definition of technical debt, and that has a cost that someone, somewhere is going to have to pay in some form.

  • I can't reply to the person that replied to you, so

    > You’re looking as a dev, but the reality is that a consumer cannot see technical debt.

    The consumer can't _see_ technical debt, but they sure as heck can be impacted by it.

    - Technical debt means the code base is harder to work with later. So fixes/enhancements take longer to make it into the code (and sometimes never can)

    - This particular type of technical debt means the code by the game developers sets precedent, and the next developer may us it as an example. So the amount of code incorrectly using the api grows faster over time

    • For some reason HN sometimes hides the reply button on leaf comments. I think this only happens for very new comments.

      You can click the timestamp ("X minutes ago") to view the comment without context, and reply from there.

      1 reply →

  • > technical debt, and that has a cost that someone, somewhere is going to have to pay in some form

    There is no reason anyone has to pay each and every iota of technical debt. Plenty of things with technical debt hit end of life and no one ever looks in that code again. I suspect most technical debt goes this way - in program, program never updates (or minor updates), then dies.

    Your claim would require every piece of technical debt in anything ever (code, buildings, cars, anywhere) has to be removed before the thing goes end of life or goes into a mode where it never is changed. That seems ludicrous to me.

  • Does anyone talk about how technical debt often just gets thrown into the garbage so we can buy fancy new technical crap, and its what pays for most of yalls jobs.

  • You’re looking as a dev, but the reality is that a consumer cannot see technical debt. If the studio churns out a game, the vendor sprinkles on some optimizations, people play it and move on, then the tech debt just vaporizes into the void. It’s not real at that point.

    • Just because a consumer can't see technical debt doesn't mean they aren't paying for it. Most game studios continue to re-use code, so it doesn't just "vaporize" into the void.

      1 reply →

A friend of mine developed his own game engine, and what he said is you need to bargain with the nVidia driver, because hardware doesn't perform at its peak when you write everything honoring the spec, and driver feels free to ignore your commands about how you want to do some things (e.g. memory transfers).

Like board manufacturers, the game developers also need to please the drivers and do the way driver silently dictates to them (regardless of what DirectX, OpenGL or Vulkan says), otherwise all bets are off.

I believe the driver silently swapped the textures to lower quality ones that looked worse but gave a performance boost.

> Was it a scandal at the time?

Yes. My understanding was it was optimized by reducing precision or something to a visibly apparent degree.

It's different if the driver changes things in ways such that rendered output is the same or at least imperceptibly different. I think there's also a lot more communication between gpu makers and game/engine developers these days; plus a lot more frequent updates.

  • > My understanding was it was optimized by reducing precision or something to a visibly apparent degree.

    If only we had that sort of a control over rendering for every game ourselves - since projects like OptiScaler at least let us claw back control over sometimes proprietary upscaling and even framegen, but it's not quite enough: https://github.com/optiscaler/OptiScaler

    I'd also mention Lossless Scaling here, though it still only works on upscaling and framegen and with worse methods, but at least works for most games out there: https://store.steampowered.com/app/993090/Lossless_Scaling/

    I want to be able to freely toggle between different types of AA and SSAO and reflections and lighting and LOD systems and various shader effects (especially things like chromatic aberration or motion blur) and ray tracing and all that, instead of having to hope that the console port that's offered to me has those abilities in the graphics menu and that whoever is making the decisions hasn't decided that actually "low" graphics (that would at least run smoothly) would look too bad for the game's brand image or something.

I was surprised to see “AAAA”. I didn’t know there were 4 As now.

“AAAA Game Studio shits out another unoptimized clunker” seems a paradoxical statement to me. I would have thought “AAAA” meant “highly resourced” game company. Does it just mean high revenue? Lots of players?

  • AAAA isn't a real thing, it's a memey joke based on a press release by a microsoft studio that was closed before ever releasing a single game

  • AAA/AAAA just means "how much money was spent developing the game". High cost doesn't automatically equal high quality. In fact, it seems after a certain point to mean the opposite.

  • The more money you throw at an effort, the more gets flushed out as waste, and the harder it is to maintain quality. Pretty universal across business.

it rendered in lower quality, IIRC lower textures / much more aggressive mipmapping and/or LOD

Except that if a developer has that kind of market pull, nVidida will gladly help those devs with getting it right. They are excellent at maintaining developer relations.