But despite the undoubted technical achievement, not everything the developer wanted to include could make it into the final version of Crysis 2.
CryEngine 3 operates with a real-time global illumination system that provides phenomenal lighting of the environments, all calculated as the game plays as opposed to using the more traditional "pre-baked" lighting and shadowing techniques used in most games. However, despite being initially mooted for all three platforms, the shipping version of Crysis 2 didn't implement it fully on Xbox 360 and PlayStation 3.
"Our innovative real-time GI solution was not fully complete/robust on consoles yet, it still had visible issues/artefacts which we ran out of time to address," Sousa confirms, going on to explain that as development on Crysis 2 came to end, console resources really were being pushed to breaking point, and something had to give.
"On consoles all milliseconds and memory counts, so at end of this project we made the tough decision to disable it for consoles. We still have a very simple and coarse GI approximation on consoles, where our art department fully controls the look, meaning we pay couple of milliseconds on areas where it is actually making a significant visual contribution."
Where the developer really was able to save a significant amount of GPU resources was in its implementation of what it calls PostMSAA, its bespoke anti-aliasing solution deployed across all three platforms. We called it a form of temporal anti-aliasing, but Crytek takes issue with that.
"If we want to be technically accurate, TAA is actually what is commonly known as motion blur. But TAA in gamer language is the naive denomination for the simplest form of amortisation of super-sampling cost: a simple linear blending between current and previous frames subsamples and which looks very similar to the old-school cheap 'motion blur' trick seen in many older games," Tiago Sousa explains.
"There is no re-projection involved. At 60FPS or more, this is OK and not easily perceptible, but it's not really useable for 30 or less FPS. PostMSAA 1.0 relies on previous frames re-projection and it's prone to artefacts when there are un-occluded pixels, most noticeable when camera is panning fast. Although both techniques rely on amortising cost across frames, the end result and implementation is quite different."
While traditional hardware-based multi-sampling is still used frequently, the costs in terms of memory and bandwidth, and its lack of compatibility with the increasingly common implementations of deferred rendering, are making it less attractive to developers.
However, anti-aliasing remains a key element in visual quality, so developers are frequently coming up with their own solutions. Morphological anti-aliasing is gathering pace on PS3, for example, backed by a robust implementation supplied by SCEE's Advanced Technology Group (ATG). Crytek appraised them all before going their own way with PostMSAA.
"MLAA costs around 3.5ms on current consoles GPUs and still lacks sub-pixel accuracy like any other post processed approach. The Microsoft XDK edge blur solution is not useable at all on real world scenarios - except for a relatively graphically limited game," assesses Tiago Sousa.
"MSAA, besides additional memory requirements, is not supported by PS3 hardware at all on alpha blended surfaces when rendering in HDR, like we do on CryEngine 3. And more globally it doesn't support alpha-tested surfaces, without relying on ATOC, performs 0 shader anti-aliasing, plus final resolve needs to be done before tone-mapping, which leads to incorrect results in high-contrast areas.
"With PostMSAA 1.0, although this shipped version was far from perfect, all previous drawbacks are addressed and the cost was 1ms on console hardware, while on PC hardware the cost was irrelevant, in order of 0.2 ms at 1080p."
Custom anti-aliasing technologies are in a constant state of flux, forever being retooled and improved by developers looking to increase image quality and reduce processing time. Crytek aims to improve the overall quality of PostMSAA and its competitors are surely doing the same with their own anti-aliasing implementations.
"I believe in future, for the current console hardware generation, we'll be seeing improved hybrids of our approach, allowing subpixel accuracy, with faster post-processed techniques. NVIDIA's FXAA 2 for example looks quite promising and from what I've seen, was already 2x faster than MLAA," concludes Sousa.
CryEngine 3 is being mooted as a technology that crosses the next generation divide. Crytek says that it's ready for the new wave of consoles that are coming in the next few years, and the firm has an exciting vision for the kinds of visuals we should be looking forward to.
"I'm a strong believer that we should already be at Avatar quality in real-time, but the mass market (not everyone has the highest end cards or CPUs for example) is significantly delaying this next step," observes Tiago Sousa.
"The transition to a new console generation that is far less memory-bound, will allow for less painful QA/maintenance of PC assets versus console assets from an art perspective. Ideally, you want to have the same asset everywhere and not have artists making custom assets, or even levels, for specific platforms."
But in the here and now, the developmental focus for all major games developers remains with the Xbox 360 and PlayStation 3, and Crytek believes that all the lessons it learned creating Crysis 2 will be invaluable in further refining its engine.
"I think we already tapped a large part of the consoles' resources and hardware potential. But there is still quite some potential to push it further, especially from art side, since it was their first game with this engine iteration," Sousa observes, suggesting that it's not just the tools that will be improved, but also in how they are used.
"I'm quite confident they will learn to push our engine to its limits by carefully using their resources. From the tech side we will of course keep optimising and improving further, there is no such thing as the best optimisation/approach - performance and quality is always a moving target. There were also some areas we wanted to push further, for example minimising memory transfers, but we just lacked the time to make it happen."