bitinn,
@bitinn@mastodon.gamedev.place avatar

Hi folks, a while back on here we had a discussion on how games budget their frame time (ie. how much ms each feature should cost), I would like to revive that discussion, specifically a few questions, in AAA game space:

  • how do you compromise between different features?

  • besides past experience, what data do you use to justify the compromise?

  • who are usually in charge of this balancing on a team?

#gamedev #techart

macrofacet,

@bitinn Everything everywhere all at once.

Seriously, I find it a bit hard to put content limits, because the overall cost is distributed differently depending on the content.

The only things I'm really tracking are framerate and memory usage, with a handful of locations within each maps.

But we are AA. And so it's mostly me looking at graphs and Pix captures and talking to tech artists.

bitinn,
@bitinn@mastodon.gamedev.place avatar

@macrofacet I am actually surprised you managed to ship those titles without some hard content guidelines, they ran quite well if I recall correctly.

macrofacet,

@bitinn oh well I was much younger when I worked on those AAA, so not at all in charge. 😅

Where I work now, the team is much smaller, so a simpler approach (i.e. talking to people) works fairly well. And sometimes we have to be a bit rough temporarily to go faster prod-wise. We just need to keep in mind that it'll need cleanup later.

longbool,
@longbool@mastodon.gamedev.place avatar

@bitinn
-When limits are hit you can present cost tradeoffs between features and let design/art leadership decide what is most important to the title. You can offer advice but at a certain point it becomes an entirely creative decision.

-Past experience helps, you can also simulate examples of the different trades to provide a better (even visual) picture of what it can look/perform like

-It helps if a representative from each major group is involved, preferably someone enthusiastic

longbool,
@longbool@mastodon.gamedev.place avatar

@bitinn For the particle example, pick a hard upper bound that you know can be comfortably simulated/rendered in (roughly) the frame budget you imagine it having out of your total frame budget.

Then when someone inevitably hits that limit and brings it up, then you have a concrete place to begin the above meaningful discussion. Otherwise I feel like we can theorize forever about different situations

bitinn,
@bitinn@mastodon.gamedev.place avatar

@longbool thx, I think the tough part is to hand-wave an initial budget on less powerful hardware, “comfortable” is really a relative term😀

longbool,
@longbool@mastodon.gamedev.place avatar

@bitinn I agree, it is genuinely difficult! I wonder how possible it even is, early in a project, when people are still figuring out how they want to work and the "game" itself is still being figured out (sequels and stuff aside)

kwramm,
@kwramm@mastodon.gamedev.place avatar

@bitinn expert based impact analysis in regards to player value. e.g. does it enhance immersion? does it enhance gameplay? how? are players likely to turn it off or is it something that's always there? are players going to see this often or is it just for one particular location? it it a gimmick? Put on your gamer hat, and ask everyone else to do the same - this can be the hard part, esp. if people feel they need to "fight" for their team.

bitinn,
@bitinn@mastodon.gamedev.place avatar

@kwramm exactly, this is why I think tech artists shouldn’t cover this alone, otherwise they end up making gameplay decisions for others.

CanadianReset,

@bitinn I'm not sure I really have a general framework for this. Usually the type of game dictates how this issue is approached.

That said VFX systems have been a bit of a culprit lately. Often this is ham-fistedly addressed with hard pool limits where the VFX simply doesn't emit if the pool is full.

Invariably this comes back as a bug from QA and then discussions start around whether or not we can optimize the asset or some aspect of the system if it's a custom system.

CanadianReset,

@bitinn it's usually the art directors who have a lot of final say. I usually present them a few different options and remind them that we have contractual performance requirements.

bitinn,
@bitinn@mastodon.gamedev.place avatar

@CanadianReset good to know, thx!

CanadianReset,

@bitinn thank you as well for starting the conversation :)

Interesting to read all the other replies

aeva,
@aeva@mastodon.gamedev.place avatar

@bitinn easy. the directors tell us what we have to make work, and then we go cry into the unreal engine until the numbers start to even out, and then we do things we're not proud of to get it the rest of the way there.

bitinn,
@bitinn@mastodon.gamedev.place avatar

@aeva been there done that, virtual hugs.

But I do wonder if we can prepare more in early stage then crying less at late stage you know🥹

bitinn, (edited )
@bitinn@mastodon.gamedev.place avatar

Honestly we had problems pricing highly dynamic and situational things like particles:

  • too low, and rendering quality suffers;

  • too high, and it can bring down the whole game;

  • technically we could have different benchmark in different scenarios, but in an open world, anything could happen;

  • so you had to constantly run an estimate on how costly things should be in game, but that in itself is costly?

  • so what do you do? Any tips?

dotstdy,
@dotstdy@mastodon.social avatar

@bitinn generally keeping track of performance shouldn't be costly. For all our production builds we have the profiler enabled at all times. It dumps events into a ring buffer and then you can press a button to create a report for triage.

bitinn,
@bitinn@mastodon.gamedev.place avatar

@dotstdy our situation is a bit different, it is not the reporting tool, which of course we also have; but we have systems that do dynamic scaling of features, like how many particles/overdraw you could have on screen then adjust rendering accordingly, at runtime, that estimate is neither cheap nor 100% fail safe.

dotstdy,
@dotstdy@mastodon.social avatar

@bitinn yeah I don't think we have anything much that scales like that. We mostly end up targeting a fixed limit, then we rely on performance cameras and QC to track down problematic situations and rectify those in content. At least afaik anyway, maybe there's some magic in there too :')

bitinn,
@bitinn@mastodon.gamedev.place avatar

@dotstdy good to know, are the fixed limits mostly obtained via past experience? Our problem is we are dealing with different game genres, and that invalidates some of our prior experience. Like if you are used to fully baked levels but now deal with a dynamic world, then the cost of GI and shadow will inevitably be different.

jon_valdes,
@jon_valdes@mastodon.gamedev.place avatar

@bitinn @dotstdy
On our games it depends a lot on the game risk profile, and the game type.

We have some games where the number of things happening at once is extremely well known in advance. Those games budget things for the worst case of every single system. "Absolute worst case must hit 60fps"

Other games are trickier: "what if every player gets together in a single room and they all throw a grenade at once?". Those go for FPS histogram, and try to keep frame drops <X%.

jon_valdes,
@jon_valdes@mastodon.gamedev.place avatar

@bitinn @dotstdy as for who makes the call for perf vs image quality tradeoffs, I believe it's usually engineers talking to technical artists, and ultimately the technical director bargaining with the art director: "we need to get 0.5ms back. We could do this thing, this thing, or this thing. Are any of these acceptable to you?"

bitinn,
@bitinn@mastodon.gamedev.place avatar

@jon_valdes @dotstdy yeah that’s what we are doing right now, but it seems they all prefer a middle man, which is often tech artists. But few want to be the party pooper telling others to change how they work, right? So I kinda think it needs to be a person with both design and technical chop to move things in the right direction instead of be the guy everyone hate to see😀

bitinn,
@bitinn@mastodon.gamedev.place avatar

@jon_valdes @dotstdy and on the game risks, yeah I fully agree, emergent situations are not fully controllable, especially multiplayers. Too often we end up setting a lower bar to be safe but that’s hurting art side a bit much.

jon_valdes,
@jon_valdes@mastodon.gamedev.place avatar

@bitinn @dotstdy game development is the art of tradeoffs. Every decision you make will have a tech impact, an art impact, and a dev time impact. Decisions that may have a big impact will need to be negotiated by tech, art, and production leadership together.

azonenberg,
@azonenberg@ioc.exchange avatar

@bitinn This is a very interesting concept to me coming from a HPC perspective where my goal is "crunch the numbers as fast as possible, framerate depends on dataset size but faster is better all other things being equal".

2 FPS might be excellent performance if you're looking at gigapoints of data per frame.

bitinn,
@bitinn@mastodon.gamedev.place avatar

@azonenberg yeah in games we have this psychopathic need to have as many things on screen as possible while generating as many frames as possible given the hardware.

TomF,
@TomF@mastodon.gamedev.place avatar

@bitinn To answer your questions specifically:

  • fisticuffs

  • fisticuffs

  • fisticuffs

Have at you, good sir!

bitinn,
@bitinn@mastodon.gamedev.place avatar

@TomF I increasingly believe there needs to be a person fully dedicated to fighting everyone on the team for this delicate balance.

TomF,
@TomF@mastodon.gamedev.place avatar

@bitinn If it's a full-time job, their fists would get sore. Maybe a little gentler? Someone who will... prod you, sir!

bitinn,
@bitinn@mastodon.gamedev.place avatar

@TomF follow up question: do the guy start poking people on performance from day one, or do they stay chill during most of the development and only come out forcefully by the end. asking seriously for a friend😀

TomF,
@TomF@mastodon.gamedev.place avatar

@bitinn People should be thinking about perf at an architectural level from day one, but not a the low-level code level. So don't actually DO the optimization (that's a waste of time - most lines of code will be rewritten), but make sure the system is set up so you will be able to do it. This is a tricky balance and needs experience - usually learned the hard way :-(

  • All
  • Subscribed
  • Moderated
  • Favorites
  • gamedev
  • DreamBathrooms
  • everett
  • InstantRegret
  • magazineikmin
  • thenastyranch
  • rosin
  • GTA5RPClips
  • Durango
  • Youngstown
  • slotface
  • khanakhh
  • kavyap
  • ngwrru68w68
  • tacticalgear
  • JUstTest
  • osvaldo12
  • tester
  • cubers
  • cisconetworking
  • mdbf
  • ethstaker
  • modclub
  • Leos
  • anitta
  • normalnudes
  • megavids
  • provamag3
  • lostlight
  • All magazines