7
\$\begingroup\$

I am working on a split screen game with one camera per player. It appears that the number of draw calls is multiplied by the number of cameras I have, which makes perfect sense. More cameras means more drawing means more draw calls.

So for every player, there is effectively a new instance of the game that must be rendered.

What do developers do when presented this problem? Do they scale down their game? Or are there practices I am unaware of to where this should not be an issue?

(I am using Unity, if it is relevant.)

How can I improve rendering performance in a split screen game?

Example:

enter image description here

\$\endgroup\$
2
  • \$\begingroup\$ good question, but for more clarity, can you please post a screenshot? That would make us understand more easily. Actually there are more than on scenarios come in mind, that's why. \$\endgroup\$ Mar 28, 2016 at 11:46
  • \$\begingroup\$ @HamzaHasan unfortunately, i cannot. but the scenerio i am thinking of is local multiplayer like goldeneye for the 64. i cannot think of any other scenerios, actually \$\endgroup\$
    – Evorlor
    Mar 28, 2016 at 15:54

1 Answer 1

5
\$\begingroup\$

What do developers do when presented this problem? Do they scale down their game?

Yes, it's not unusual for a game running splitscreen to use simpler LOD (level-of-detail) versions of some assets & effects, or even omit certain decorative props/non-essential lights to keep the game running smoothly - particularly if the game was made to push the platform's rendering capabilities as far as they'd go in single-player mode. Sometimes the only way to make multiple views fit in your time budget is to leave some things out.

Usually the developers will do everything they can to optimize the rendering in each view to stave off cutting back on detail (and this helps both single-player and split screen efficiency). If you can combine 5 draw calls in single player (saving 4), then you've saved 8 in 2-player splitscreen, 16 in 4-player, etc. Every little saving for one view stacks up, so this is probably the first place you should look for efficiency.

Unfortunately there's relatively little heavy-lifting work that can be shared when rendering two completely separate views of the scene. We could potentially have a completely different subset of the geometry, textures, lights, and effects visible in each view.

One thing to consider is that in splitscreen, while the number of passes you do over your objects may multiply, the total pixel count you need to fill remains constant. That means the work done by screenspace effects scales somewhat more gradually as you increase the number of views. You may find deferred rendering helps you take advantage of this (especially tiled rendering approaches, if your tiles align with the splitscreen bounds) by partly decoupling your lighting complexity from the number of distinct views shown.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .