Hot Pursuit cuts pad lag to new lows

Is NFS the most responsive game this gen?

"So, 30Hz... it'll be really interesting to see what your latency measurements come out as. We think latency is pretty good... We think we might be 83ms... or 100ms."

Back in July, Digital Foundry interviewed the Criterion tech team about their latest game, Need for Speed: Hot Pursuit, released in the UK and Europe yesterday. Engineering gurus Alex Fry and Richard Parr discussed the challenges in dropping down to 30 frames per second after the 60FPS loveliness of Burnout Paradise, concentrating in particular on the issue of maintaining their trademark low-latency, crisp controls.

Today's Face-Off feature doesn't just tackle the differences between the Xbox 360, PlayStation 3 and PC versions of Hot Pursuit - we also benchmark controller response, pitting the new Need for Speed up against the 66ms input latency of Paradise. In all of our tests thus far, we've yet to find a 30Hz game able to beat the 100ms threshold, while the only 50ms response we've seen has come from the PS3 XMB.

The result? For the Xbox 360 version, we have a confirmed 83ms, meaning that despite halving the frame-rate, controller response is diminished by just one frame when compared to Burnout Paradise. Better still, for PC owners running the game at 60FPS, latency is cut down to just 50ms, making it the fastest pad response we've measured in any of the games we've looked at.

We took our findings back to Alex Fry at Criterion, who replied with this in-depth technical explanation of how the game engine works, specifically in how the controller code fits in.

"The way the architecture works is to run the game simulation internally at 60FPS, and it's polling the controller once for every simulation step so you get as up-to-date inputs as possible," Fry explained.

"The render code (building display lists for the GPU to consume the next frame) immediately follows the two controller poll/simulate loops, and then it waits for v-sync. Thus on CPU we get two 60FPS updates and one 30Hz render in a total of 33ms.

"When the CPU is done and v-sync is hit, the GPU kicks off and renders the scene while the next simulate/render frame happens in parallel on CPU. Once done the GPU also waits for v-sync (which also syncs it to the CPU), thus adding another 33ms. Then TV scan-out happens to get the final image to screen, which adds a final 16.6ms."

The total of all of this is 83ms, and theoretically this is the absolute fastest controller response we're likely to see from a 30FPS title. But the 50ms measurement from the PC version also demonstrates that the approach Criterion has taken yields dividends running at 60FPS too.

"On the PC version, it's obviously able to go to 60FPS so we don't clamp it to two simulate loops per render," Fry continued.

"So, if both the CPU and GPU are fast enough, we only do one controller poll/simulate loop before we need to render, thus achieving 60FPS with only 50ms latency (16ms controller poll/simulate then render, 16ms GPU, then 16ms scan-out)."

So having reached the theoretical limit for controller response on a 30FPS title, could Criterion do the same for in a 60FPS console game?

"In theory, if we were able to achieve 60FPS on console, this architecture would get to 50ms latency on console... but we're not at 60FPS, so we can't. You can test it in the Autolog menus though, since they do run at 60FPS (as long as you're not in the car select screen which runs at 30 again)."

Sometimes we include links to online retail stores. If you click on one and make a purchase we may receive a small commission. For more information, go here.

Jump to comments (33)

About the author

Richard Leadbetter

Richard Leadbetter

Technology Editor, Digital Foundry

Rich has been a games journalist since the days of 16-bit and specialises in technical analysis. He's commonly known around Eurogamer as the Blacksmith of the Future.

Related

You may also enjoy...

Comments (33)

Comments for this article are now closed. Thanks for taking part!

Hide low-scoring comments
Order
Threading