Crytek has always been at the forefront of developing games that push the underlying hardware and set new benchmarks for video games graphics. Over the years Crytek has mastered the art of squeezing every bit out of power out of consoles and PCs, whether it be the PS3/Xbox 360 or the new consoles (Xbox One), the German based company surely knows how to push barriers.
With the hype behind PS4 and Xbox One finally settling down, GamingBolt got in touch with Crytek’s US Engine Business Development Manager Sean Tracy to know more about the company’s plan for CryEngine. We were able to ask Sean a wide range questions varying from development optimization to the potential of cloud gaming. Check out Sean’s responses below.
Ravi Sinha: CRYENGINE has seen a significant change since entering the fourth generation. This change was done in order to create an always-evolving engine for developers to use but what else facilitated it? Did competition from the likes of Epic and Unreal Engine 4 spur you on?
Sean Tracy: CRYENGINE did indeed undergo significant changes and improvements when entering the fourth generation. It is a very important direction for us to maintain and deliver an always evolving engine to our own internal developers as well as to our licensees. As we’ve proven over the years, few companies take graphics as seriously as Crytek. Throughout this time we’ve dedicated ourselves to evolving the industry through art, design and engineering, turning our once proprietary CRYENGINE technology into a beast capable of pumping out some of the most convincing visuals ever run through silicon.
As you can see from our own ethos we are less spurred on by any competition and more by our own needs internally. We must, and will continue to, evolve the CRYENGINE to meet the high demands of our own developers and licensees with the principal focus on enabling them to achieve AAA high fidelity gaming experiences that gamers have become accustomed to when playing any game powered by the CRYENGINE.
Ravi Sinha: Crytek has always maintained that CRYENGINE is meant to be scale-able and designed for next gen. Now that both the consoles are out, what are your thoughts on the PS4’s unified and Xbox One’s embedded memory architecture?
Sean Tracy: We are delighted with the updates to the next-gen hardware but of course always want more! The unified architecture of the APU’s allows us to easily leverage massive amounts of resources for all kinds of features including rendering, physics, animation and more. Though the PS4 and Xbox-One don’t offer an enormous jump over the previous generation in terms of raw processing power, the custom AMD APU’s within both platforms represent a huge leap forward in terms of integration and capability.
This seen to us as a thin and very fast intercommunication layer between was used to be dealt with as separate chips, (CPU and GPU). Practically this yields great results when used for re-projection techniques like reflections or occlusion as well as for massive compute shader calculations which we use for all our deferred lighting computation.
Ravi Sinha: We recently interviewed a developer who stated that it will take no time for artists to fill up 8GB of RAM. Are we going to see a shortage of RAM budget [again] in this new console cycle?
Sean Tracy: I would have to agree with the viewpoint that 8 gigs can easily be filled up, but also keep in mind that developers don’t necessarily even have access to all 8 gigs of it. For example the Xbox One retains some of the RAM for OS purposes. Since technology, as Ray Kurweil states, progresses exponentially, we will soon find that the computational requirements of games will quickly hit the ceiling of a few gigs of ram.
We already had to manage quite intensely our memory usage throughout Ryse and this will be one of the limiting factors surely in this generation. As hardware gets stronger the complexity of scenes can be increased and the dynamism within them. However, with that said it’s not the raw power alone that will allow for photorealistic graphics but technology that intelligently scales and utilizes all that the hardware has to offer.
Ravi Sinha: The fourth generation of CRYENGINE was beautifully realized in Ryse: Son of Rome, which Crytek developed internally. However, it seemed to be a bigger leap in terms of cinematic presentation and post-processing rather than the jaw-dropping increase in visuals we saw when going from Far Cry to Crysis (and which currently distinguishes Crysis 3 from the competition). Can this be chalked up to the team still needing time to understand the Xbox One’s architecture or just getting used to what CRYENGINE has to offer?
Sean Tracy: Instead of adding a lot of additional rendering features, which was rampant even for us in the previous generation, we opted to spend most of our efforts on the consistency of the shading and lighting models, trying to unify them under a more physically based framework.
This allowed Ryse to look very different from previous and even competing titles.
The current state of video game rendering results in either strong diffuse at very high contrast to break uniformity, or they have overly glossy surfaces with noisy and sparkling highlights. We wanted to instead achieve a far more believable and realistic CG experience similar to what you would get in film and offline rendering. I would say that the technology and the results of using this type of technology is what you are likely noticing.
Ravi Sinha: What can you tell us about some of CRYENGINE’s newest features, such as the lighting system and tesselation? How does physically based shading and pixel accurate displacement mapping change the overall look and feel of a game?
Sean Tracy: The biggest addition to the CRYENGINE was the introduction of a new rendering system PBS, otherwise known as Physically Based Shading. Our advanced model simulates the interaction between light & materials using real physical laws; the law of conservation of energy and Fresnel equations.
A good way to explain why we would move to something like this is the consideration of what photo real really means when it comes to games. Photoreal has been achievable for quite some time, however, take a photo referenced texture and move it in the world and move lights across it and you’ll see that if it doesn’t react as the material would in the real world then immersion, and photorealism is broken.
To some the benefits to Physically Based Shading are obvious. For the rest of us less technical types it is important to understand what the transition to physically based shading means and why it’s so important.
Replicating how light behaves in the real world leads far more natural and believable results to ensure that materials look plausible regardless of the current lighting conditions (provided those light conditions are within physical bounds); ultimately resulting in a greater consistency across the board.
The first law to discuss is the law of conservation of energy in practice. It should be noted that this significantly simplifies material setup for content creators.
• Smooth Surface reflects light source sharp and clear
• As material roughness increases specular highlight becomes wider and less bright
A Traditional Shading Model would likely have two parameters
However, physical Laws say that these are coupled:
• On rough surfaces light is distributed over larger area
• Must thus be less intense at a single point
Not Trivial Math:
• Results in a factor that be applied to the BRDF of the shader
Roughness is the main factor:
• Controls both size and brightness of the highlight simultaneously.
• Additional to the highlight the roughness has a significant impact on reflectance.
Microscopic irregularities influence several shading aspects:
• Light rays reflected to different angles cause more blurry reflections for rougher surfaces
• CRYENGINE couples surface roughness with per-pixel normal
Conceptually closely related:
• Roughness values stored in normal map alpha
• Normals define surface variation at marco scale
• Roughness define surface variation on mirco scale
The second portion of PBS is Index of Refraction and Fresnel Equations.
The Index of Refraction defines the amount of light reflected vs. refracted
This is typically a commonly known physical number
CRYENGINE converts this IOR to sRGB and stores this as specular color
Artists then pick the appropriate specular color from a table with common values.
The Fresnal equations describe reflection and refraction of light depending on incidence angle. In less sophisticated renderers fresnal bias scale and factor are set per material by the artists. In the CRYENGINE we no longer need to do this as all materials react correctly to Fresnel since the engine calculates this automatically, further implying material setup.
Ravi Sinha: As stated, Ryse was praised for its overall cinematic presentation. Could you break down the integrated cinematic tools that come with the new CRYENGINE and how they helped aid Ryse in achieving a distinct look among other next gen titles?
Sean Tracy: Ryse used some improvements internally developed which focus on film and visualization. Using features like a physically based camera, real values taken from actual cameras used in film productions, is just one of the many things that helped us achieve such a high fidelity cinematic presentation.
Our tools used for cinematics are directly integrated to the CRYENGINE which really facilitates things for our cinematic team as they can iterate, test and iterate directly in engine with all the assets they will use for the final cutscene. As you give these artists more time to work and allow them to spend less time fighting against technology you will get that much higher quality work from them.
Conceptually we’ve maintained the same cinematic toolset that was used in the Crysis games. It was really just a matter of adding some further workflow improvement type features as well as supporting some new techniques including Geom Caching. On that note Geom Caching is one of the more obvious improvements as it allows artists to simulate any type of animation/effect in their DCC tool and it is read from a point cache straight from disk. These are excellent for cutscenes where very complex events are happening and manually adding bones or other real-time simulation requirements is just not feasible.
Ravi Sinha: CRYENGINE supports not only the Xbox One and PC but PS4 and Wii U as well. What are the advantages of developing for such uniform, PC-like architectures these days with regards to next gen consoles?
Sean Tracy: In terms of Xbox One and PS4 we are finding the similarities nice, however, there are still drastic differences. A challenge right now for us is actually supporting all the previous AND Next Gen platforms in a single code base. This is a very difficult thing technically as there are version differences and different requirements for each platform, this includes Wii-U as well. With all that said, however, we are doing very well in this newest generation as we’ve maintained PC parity with the platforms.
Ravi Sinha: What kind of differences does optimizing CRYENGINE for the PS4 offer versus optimizing on the Xbox One or Wii U?
Sean Tracy: As we technically only have a single shipped game on Xbox One and none for PS4 I can’t go too deep in answering this. Optimizing the CRYENGINE for the next-gen really centered around bandwidth allocation and was one of the biggest reason we switched to a new g-buffer layout which allowed all light computations to be done on a compute shader. This significantly improved our performance. Further improvements like pre-calculating sun shadows on some of the large shadow cascasdes made a very big reduction in drawcalls and thus increased performance further.
Rashid Sayed: Furthermore, several developers have been pretty straight forward about the differences between the PS4’s and Xbox One’s GPU. What is Crytek’s take on the same?
Sean Tracy: Again it’s a bit difficult to speak in terms of a comparison between the two platforms as Ryse was never run on a PS4. We have found though that testing the CRYENGINE on PS4 yields similar results.
Ravi Sinha: When Crysis and its subsequent games first debuted, there was concern that the current generation of gaming platforms wouldn’t be able to successfully showcase it. How does it feel now being in a new generation which can cater to all of your engine needs? How will you further push the boundaries of what CRYENGINE is capable of, even on the Xbox One and PS4?
Sean Tracy: I think there is no question that Crysis was ahead of the curve. People still even today use it to benchmark their PC’s. However, let it be noted, that against most people’s expectation we were able to successfully ship the Crysis 1 conversion for the last generation of consoles meaning that we weren’t far from being able to do this. At Crytek we love to push the boundaries of what is possible and we have a saying internally “disrespect the impossible” and having Crysis 1 run on a Xbox 360 was surely something most people thought would be impossible.
The keys for the next gen lie in the fidelity and believability of characters and their animation, the environment and its destructibility and finally physically based rendering and shading.
We also expect to be pioneers in the compute space as truly leveraging the full power of the next-generation platforms will require the mastery of GPGPU (General Purpose computing on GPU). Luckily we’ve been preparing for this and have been “next-generation ” for quite some time and we are well on our way.
Ravi Sinha: The debate is still going on regarding which platform is more suited for outputting to 1080p/60 FPS. How long do you think it will be before more developers can properly exploit the power of next gen consoles, especially with regards to CRYENGINE?
Sean Tracy: CRYENGINE has classically been designed at a 30FPS target. Keep in mind that running at 60FPS means you have to fit your whole game, renderer and all into only 16ms vs 33ms for 30FPS!
Just to give you an idea of what this means practically is that the renderer for Crysis 3 alone required a bit more than 16ms which doesn’t include everything else going that’s happening in the game.
Albeit, you can surely achieve 60 FPS with the CRYENGINE but I can’t say for a certainty that you could retain the amount of scene complexity that games like Ryse and Crysis currently have. As we fight to squeeze every millisecond out from the next gen consoles we usually don’t see a huge value sacrificing 50% of our computational time per frame at least for the types of high fidelity realistic scenes that we include in our games. We leverage every bit of computational time we can get so that we can deliver this directly to the gamer through unrivaled visuals.
Ravi Sinha: With the engine ever-evolving, is there any concern that some features might take longer to properly implement on next-gen hardware?
Sean Tracy: A great observation! This is a very real challenge that we face as an engine. We have a mandate to maintain parity between PC and our console versions. This means that though it might be relatively easy to accomplish something on PC we must find a more sophisticated solution for the console or risk not using the feature.
Thankfully in this generation where a huge amount of research is happening, and continues to happen, is in the compute shader which the platforms do quite well. Thus as long as we keep in mind that all the features we develop must be identical, or at least have equivalanets, for the console platforms.
Rashid Sayed: What are your thoughts on the Xbox One’s eSRAM and the current bottleneck it is posing to developers? Do you think this bottleneck will be patched in the future or will developers still need to produce workarounds?
Sean Tracy: I can’t speak to wether this will be patched or improved in the future, but I wouldn’t expect it as a developer. Game developers are masters at engineering workarounds to hardware limitations and I think you’ll see unique and novel technology developed just for such a purpose.
Rashid Sayed: Having said that, the Xbox One’s eSRAM is definitely suited for tiled textures, which we know has potential. What kind of advantages does CRYENGINE bring when used with tiled textures?
Sean Tracy: CRYENGINE has a unique and novel solution for this and was shipped with Ryse. One of the problems when using Deferred Shading is that it’s very heavy on bandwidth usage/memory traffic. This gets exponentially worse as overlapping lights cause considereable amounts of redundant read and write operations.
In Ryse our graphics engineers created a system called tiled shading to take advantage of the Xbox One. This splits the screen into toles and generates a list of all the lights affective each title using a compute shader. It then cull’s light by min/max extennts of the tile. We then loop over the light list for each tile and apply shading.
In practice this made for the biggest bandwidth save we could have hoped for, as just reading the Gbuffer once and writing shading results once at the end for each pixel. Only a single compute shader was used in Ryse for light culling and executing entire lighting and shading pipelines (with some small exceptions for complex surfaces like skin and hair).
Rashid Sayed: In my opinion, one of the high points of Crysis 3 was the AI. How are you taking it a step above in the latest iteration of CryEngine?
Sean Tracy: The AI in Crysis 3 was indeed quite good. Thus we haven’t massively updated the AI system but rather cleaned and re-factored the current system to make the creation of behaviors and navigation easier for a designer. The underlying system though continues to be very suitable. A recent and somewhat interesting improvement overall for CRYENGINE is the support of that same Crysis 3 AI in a Multiplayer environment allowing for cooperative play opportunities when making games with the CRYENGINE.
Rashid Sayed: Xbox One has on an on board audio processor. How does CRYENGINE utilizes that? Furthermore, How does CRYENGINE tackle a situation where there is no audio processor, for example the PlayStation 4?
Sean Tracy: The xma and now the newer wxma format are proprietary xbox codecs for compressed audio. They basically have audio processing power set aside so that it doesn’t use the CPU for decoding any other platform, such as the PS4 or WiiU, uses software decoding wholly depending on the CPU for decoding. The CRYENGINE technically doesn’t decode the audio as we rely on middleware packages such as FMOD or WWise for this process which are fairly standard across the industry.
Rashid Sayed: Microsoft recently announced DirectX12 and its strong push towards cloud gaming. What are your thoughts on this and what kind of benefits will this give to CryEngine, should you decide to use them?
Sean Tracy: Microsoft’s announcement of DirectX12 is very interesting to us as we are always pushing the boundaries of what is possible on current and even next gen hardware. With cloud gaming and DirectX12 it is still very early days and any of the benefits for developers would just be pure conjecture at this point, however, it should be noted that there will clearly be a benefit to players who will be able to access powerful machines and hardware through the cloud to be able to experience high end PC gaming on much less expensive setups or perhaps even mobile and tablets.
This is a real force multiplier for developers. On DirectX12 any more control that is given to the developers versus relying on manufacturer drivers is in our opinion a good thing so we hope that it brings with it some benefits for leveraging the power of the hardware in new and unique ways.
Rashid Sayed: What is the next stage of improvements/features that the latest iteration of CRYENGINE will offer?
Sean Tracy: I’ve touched on quite a few of the features we continue to elaborate on and we will continue to push the boundaries on the compute side of things. Additionally one of our main directions is getting the CRYENGINE to run on many different platforms.
We’ve got some tricks still up our sleeves that we will reveal in the months and years ahead and I expect that gamers will be delighted with the advancements we are dedicated to bringing to the industry and real time rendering/gaming in general.