At CEDEC 2016 in Japan, Square Enix talked about the gradual process of optimizing Final Fantasy XV from the Episode Duscae demo to the final product. The panel was livestreamed on Nico Nico.
As you can see in the slide below, the team made a lot of progress in utilizing the CPU from the Tokyo Game Show 2014 build, passing by Episode Duscae to the final game.
With the TGS 2014 build, CPU load swinged wildly between 41% and 98%. with Episode Duscae, CPU utilization was more consistent, ranging between 65% and 87%. With the current version of the game, it’s almost always close to the maximum, between 87% and 95%, which is much more efficient.
One of the major factors between this improvement was the use of TaskScheduler, that allowed the development team to allocate CPU resources to different tasks more efficiently, avoiding moments in which one or more cores of the CPU were left idle.
TaskScheduler was in its first generation with Episode Duscae, then it was improved with version 2.0 of the demo, and its second generation is used in the final game.
The following slide shows that achieving better CPU parallelism didn’t only improve optimization, but it also increased the objects that could be displayed on screen. In Episode Duscae the CPU was used between 65% and 87% of its potential while handling 6216 objects, while in the final game between 87% and 95% of CPU utilization is achieved while the object count tripled, reaching 19,809.
Another relevant factor for the improving the game’s performance was optimizing the VFX (visual effects). Episode Duscae had problems with drawing load, processing load and updating the processing load.
With the build showcased at E3 2016, the team solved those problems on both the CPU and GPU side, finally achieving 30 FPS on consoles despite having a huge amount of effects on screen.
Below you can see some effects from the current version of the game, including ripples when walking on the water, vegetation moving when hit, and optimization of light emitters.
Please keep in mind that the video is recorded from Nico Nico, so the quality is quite bad, especially since it was showcased in a smaller window of an already low-resolution screen.