Performance Analysis: Assassin's Creed Unity
UPDATE: Ubisoft recommends running offline to 'potentially improve frame-rate' but does it actually change anything?
UPDATE 14/11/14 2:52pm: Ubisoft itself now suggests players turn off the internet connection while playing Assassin's Creed: Unity on all systems, saying doing so "it could potentially improve frame-rate". We decided to put it to the test, capturing a few problematic missions with our PS4 online, then comparing it to our existing offline captures.
UPDATE 13/11/14 2:48pm: An interesting thread has emerged on Reddit, suggesting that taking the PlayStation 4 version of Assassin's Creed Unity offline "fixes the frame-rate issue". We're going to look into whether being online or offline has any impact on performance, and we're also going to test co-op gameplay on both Xbox One and PS4 for the upcoming Face-Off, but in the here and now, we can confirm that both performance analysis tests on this page were carried out with the day one patch installed but with both consoles running offline.
Original story: As we approach the first anniversary of the new wave of consoles, it seems that the relative processing capabilities of the PlayStation 4 and Xbox One are a known quantity. The majority of multi-platform tests we've conducted so far point to a scenario where the Sony console matches Microsoft's offering point-for-point, with the added benefit of an extra-generous portion of additional GPU power, often allowing for higher resolutions. However, our tests with Assassin's Creed Unity reveal something very different from the multi-platform norm. Visually it appears identical on both consoles, but in the majority of scenarios that challenge the game's 30fps cap, our tests reveal that it is the Xbox One that takes the lead.
Ubisoft stoked controversy when it revealed that both console versions of Unity would operate at a native resolution of 1600x900 - a state of affairs quite unlike the vast majority of pixel-bound sub-1080p multi-platform titles, including Watch Dogs and Battlefield 4, where PlayStation 4 has always enjoyed a resolution advantage.
"We decided to lock them at the same specs to avoid all the debates and stuff," Unity producer Vincent Pontbriand told Videogamer. "Technically we're CPU-bound. The GPUs are really powerful, obviously the graphics look pretty good, but it's the CPU [that] has to process the AI, the number of NPCs we have on screen, all these systems running in parallel.
"We were quickly bottlenecked by that and it was a bit frustrating," he continued, "because we thought that this was going to be a ten-fold improvement over everything AI-wise, and we realised it was going to be pretty hard. It's not the number of polygons that affect the frame-rate. We could be running at 100fps if it was just graphics, but because of AI, we're still limited to 30 frames per second."
Certainly, from a visual perspective, Assassin's Creed Unity finally brings the series into the new generation, and the results are stunning. The new engine delivers a massive upgrade over last year's instalment, boasting significant improvements in levels of geometry detail on the characters and environments, more complex texturing, and new lighting and shader models that work beautifully in helping to create an almost photo-realistic look to the game - although the characters often break the illusion, appearing distinctly stylised but encroaching into the uncanny valley at the same time. One of the biggest upgrades comes in the form of a dramatic increase in the amount of NPCs present in the game world, which can go into the low hundreds under specific conditions. It's an ambitious vision - but it comes at the expense of raw performance.
Assassin's Creed Unity falls short of the performance standard set by last year's Black Flag, featuring considerably more variable frame-rates under load on both consoles. Given the immense graphical upgrade on offer, this isn't so surprising, but what comes as a bit of a shock is that the Xbox One version frequently out-performs the PS4 game in more detail-rich areas, such as locations littered with NPCs in the packed Parisian streets. The opening clip in our video below perfectly demonstrates the difference between the two consoles. Wading through dozens of NPCs in a crowded square, performance drops down to around 20fps for a sustained duration on the PS4 while the Xbox One achieves a 5fps lead. In a later gameplay test traversing the rooftops, we see frame rates regularly fluctuate between 25-30fps across both consoles, but here the Xbox One game sticks more closely to the upper end of that spectrum than its Sony equivalent.
It's worth pointing out that performance is still a major issue on Microsoft's system in busy scenes loaded with NPCs and environmental detail, but the less severe drops in frame-rate mean that the gameplay isn't impacted to the same degree as it is on the PS4. Controls feel tangibly more responsive, and the judder - although still a problem - isn't quite as jarring.
Outside of more open areas, Assassin's Creed Unity manages to deliver a consistent 30fps on both consoles for prolonged periods of time, adding a welcome degree of smoothness that complements the generally excellent next-generation graphical upgrade. Scripted sequences taking place in restricted environments allow the engine to display dynamic scenery that is ripped apart before your eyes, along with a range of particle effects, alpha, and post-processing that blends together into a consistent presentation without unwanted judder. Combat is also mostly solid too, although some scenes see frame-rates slightly impacted on the Xbox One while remaining stable on the PS4 - a curious about-turn on the busier exterior scenes. Cut-scenes are the one area where the Sony platform hands in a consistent performance advantage over its counterpart when the game fails to hit its 30fps target.
The results are certainly interesting, and totally unexpected - enough for us to double-check that the day one patch is installed (it is) and to try the game on another PlayStation 4 (the results are much the same). Barring a few glitches here and there, overall image quality looks like a match between both PS4 and Xbox One. A 900p resolution is confirmed, while anti-aliasing, NPC count and other factors that may impact performance appear to be a complete match. We're especially curious to check out the PC version of the game (not in our hands yet) which may offer some more clues about Unity's overall performance profile.
In the meantime, the reasons behind the resolution parity and Xbox One's performance advantage remain something of a mystery. We know that the Microsoft hardware has more CPU time available, and that animation and AI tend to stress processor hardware heavily. The sheer volume of objects on-screen means that the CPU is working overtime in order to prepare the draw-call data for the graphics hardware. There's also the possibility that the Microsoft compiler may be producing more efficient code than its Sony equivalent, though it's hard to believe that even this combination of potential factors could explain the performance differential we see here in many places. Quite why PS4 isn't rendering at a higher resolution is certainly a bit of a puzzler - in addition to GPU resources, it is worth bearing in mind that memory could be a factor too, especially bearing in mind the complexity of Assassin's Creed Unity's next-gen renderer. Of course, the reality may be rather more mundane: we may simply be looking at a game where the developers ran out of time - there's certainly the sense that both console versions of the game aren't running at their best.
It's early days with the code yet, and we'll report back with our full analysis later in the week.