Is your game dynamic enough?

This is a guest column from Intel.
Intel

At a few talks recently, including at the UK’s Develop Conference and Game Developers Conference in the US and Germany, Doug Binks from Intel has been championing a new concept in games software design: dynamic resolution rendering.

The basic idea is that the resolution is dynamically changed to strike a balance between performance and quality. For example: you might drop the resolution quality when a game player is moving quickly through a scene because they wouldn’t notice at that time, and the additional performance would help to make the movement fluid. Alternatively, if the player is stood still, speed of rendering is less of an issue, and resolution can be increased to create the most immersive environment for the player to look at. The idea is that instead of asking users to set a screen resolution that’s fixed for the duration of the game, the resolution is adapted automatically to what the software and the player require at any given time.

Binks gives four reasons to use dynamic resolution rendering:

  • Firstly, to make sure the user interface is as clear as possible. The text needs to be rendered at the resolution of the screen. Sometimes you might want to step down the 3D scene quality so the user can focus on the user interface in the foreground, especially where the interface is extremely busy, as in World of Warcraft.
  • Secondly, you can use dynamic resolution rendering to hit your performance objective. Games spend up to 30% of their time in post processing so performance can be improved by decreasing resolution.
  • Thirdly, you can adjust the resolution to ensure the gameplay is fluid and smooth, whatever PC hardware is being used to play it. When performance is sufficient, you can use anti-aliasing and super-sampling to improve quality. The wide range of PC platforms in use for games is a huge challenge for developers, and Binks believes that dynamic resolution rendering is the natural solution.
  • Finally, dynamic resolution rendering can help to optimise power consumption, which matters particularly for mobile platforms. Performance settings on the hardware might throttle the processor frequency, which means games need to be able to adapt to that if they are to remain playable.

If you want to experiment with dynamic resolution rendering, see Intel’s demonstration, which you can now download here. Although the demo scene has over a million polygons in most of the scenes, real games with lots of postprocessing and particle physics are likely to see better results than the demo. You can use the demo to play with the effects of motion blur, temporal antialiasing (where odd and even frames are offset slightly to increase the number of pixels available), and supersampling (where the render target is larger than the screen and the resolution is scaled to match the performance criteria).

It’s also possible to use complex resolution schemes, such as keeping a laser beam pin-sharp, but when the scene explodes and the fill rate goes up, using dynamic rendering to achieve the desired performance. Occasional glitches are possible when the frame rate changes, such as on-screen artifacts moving on the edges of static objects, but this is unlikely to be a serious problem in real games.

If you’d like more information on this idea and how you can use it, read the slides from the presentation here, find Doug Binks’s blog here, and download the demo here. Feel free to leave us a comment to let us know how you get on with it!

ISVs who develop software on Intel technology can get development support from The Intel Software Partner Program (ISPP). Members of ISPP can access great tools and resources, e.g. Software Assessment Tools (SATs), to shorten the development time for their applications. Please visit the ISPP websitefor more details.for more details.

You might also like...

Comments

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.” - Donald Knuth