Summary: Recently we had the chance to chat with CryTek's Cevat Yerli about a wide range of subjects related to Far Cry and CryTek's upcoming plans for their groundbreaking game. Topics discussed include high dynamic range lighting and when it's coming to Far Cry as well as ATI's 3Dc, more on shader model 3.0, and AMD-64 support. See which features CryTek plans on adding and when it's all coming right here!
Since then the company has continued to push the state-of-the-art, quietly working on their own game engine, CryENGINE, which they planned to feature in their upcoming game which also featured the same working title: X-Isle: Dinosaur Island (the name was later changed to Far Cry in 2002) and license their CryENGINE to other game developers.
CryENGINE supports 2.0, and now 3.0 pixel and vertex shaders, rag doll physics, AMD-64, and an advanced team-based AI system; basically everything you’d want in a modern game engine.
But fortunately Far Cry didn’t turn out like other games that have been transformed from technology demos to shipping titles that were light on gameplay such as Incoming or DroneZ; Far Cry has a good storyline and compelling gameplay. When combined with the game’s excellent graphics, you’ve got a AAA title that has consistently been one of the top-selling PC games since it was released. We wouldn’t have written two 3D Performance articles featuring it if it were just another average first-person shooter.
After publishing the 3rd installment in this series on Friday, which examines Far Cry’s performance with the new 3.0 pixel and vertex shaders added in Far Cry 1.2, we were given the opportunity to speak with Cevat Yerli, President and CEO of CryTek and one of the founders of the company. We were curious about CryTek’s future plans for shader model 3.0, and other topics such as high dynamic range lighting (HDR), AMD-64 support, and ATI’s recently announced 3Dc technology, which provides 3D compression for normal maps. Let’s see what Cevat had to say!
FiringSquad: Which aspects of shader model 3.0 are you taking advantage of?
Cevat Yerli: We’re using looping and branching mainly. We’re using the floating point FP16 FP 32 of course. But mainly we’re using the aspect of making sure that more lighting can be accomplished with flow control and branching so we can encode for example 4 lights in one pass, which is speeding up the rendering. Our utilization of 3.0 shader model is essentially tied to performance improvements. So for example we can render, previously with 2.0 we were rendering one light per pass and now we’re rendering up to four lights per pass.
Second aspect is that we’re using geometry instancing which is a big performance gainer, mostly for outdoors but also for indoors. On the outdoors we’re using for example to reduce the draw calls from trees, grass, and other vegetation objects, we’re using the same or similar object meshes in different positions and orientations. They’re rendered in one draw call with different attributes in the vertex shader. That reduces the draw calls.
FiringSquad: Are you using dynamic branching for the lighting or static branching?
Cevat Yerli: We’re using static branching. We’re using static because [with dynamic] there were a few performance problems there so we decided to use static branching ultimately to utilize the best features of 3.0. I was telling people previously at the launch event that the 3.0 shader model itself is great and all that but you have to use it [dynamic branching] wisely because it’s a very powerful subset and you can very easily get into a situation where branching is great but it will slow down your technology, and since that’s the case we’re using static branching to still get the performance up with our technology.
FiringSquad: How long did it take to integrate SM 3.0 into Far Cry?
Cevat Yerli: The first version of it was pretty much done in 2 weeks up and running, but overall we spent approximately four weeks with two guys.
FiringSquad: One new feature NVIDIA has added to GeForce 6800 is support for HDR. How does NVIDIA’s solution differ from ATI’s?
Cevat Yerli: It’s more about the FP16 versus FP32 format. We’re using it [FP32] for HDR, which is not supported by ATI. That is to deliver very high image quality. But, I have to tell you HDR isn’t officially going to be part of the 1.2 patch.
FiringSquad: Do you plan on adding high dynamic range lighting (HDR) in the future?
Cevat Yerli: Yes definitely. It’s going to be officially supported in 1.3. Which will be coming out hopefully soon. [laughs] The reason why it’s not enabled now is because there are quality issues we have to check, we have to go back and look at it because it's a content-specific application. The technology works but it requires the content to be adapted to it, otherwise you have overexposure, you have too many objects on the screen glowing and things like that. And while that looks cool on screenshots, when you’re playing that’s not as cool. So we need to tweak it and make sure it matches the content.
FiringSquad: So that’s what you guys are playing with right now, just tweaking it until it looks just right?
Cevat Yerli: Yes but we couldn’t do it in such a short amount of time, so we plan to launch it in the next patch. What will be part of patch 1.2 will be the performance gains.
FiringSquad: So basically your requirement for HDR is FP32?
Cevat Yerli: Yes FP32 blending.
FiringSquad: Well, the 5900 series also supports FP32, so will those cards support HDR as well or will it be a feature unique to the 6800 cards?
FiringSquad: Are there any plans to incorporate 3Dc into Far Cry?
Cevat Yerli: In fact yes. In the next patch, 1.3.
FiringSquad: Oh that’s going to be in 1.3?
Cevat Yerli: Yeah, we have the technology support for it now, but also here, it’s content-sensitive. Wherever there’s something content-specific we first have to take the time to make sure the entire game looks good with it, that it’s high quality. So the QA process takes longer. But we’re planning to add it with 1.3.
FiringSquad: Okay so 1.2 is your performance patch and 1.3 is your content-sensitive quality [Cevat interrupts]
Cevat Yerli: No, I wouldn’t say it like that because there will also be performance improvements in 1.3. Well I can’t say everything because 1.3 isn’t outlined yet, but 3Dc support, which is normal map compression, performance improvements, and content improvements like HDR will be in 1.3. That’s the plan right now but more than this, we don’t know yet. But 1.2 right now, it’s definitely the performance and bug fixes and tuning mainly.
FiringSquad What kind of additional performance do you think you’ll be able to get out of 1.3? Will it just be more cases of instancing and more branching?
Cevat Yerli: Uh, let me think. I think we have pretty much a peak on enhancing performance via shader model 3.0. If we get more performance it will be related to maybe fill rate raising, compression (we assume Cavet was referring to normal map compression (3Dc) here – Brandon), and other techniques. But it’s too early to say just yet [inaudible]
Fill rate can be used to essentially achieve less passes, we may find ways, for example to do less passes with 3.0 even more, but not with geometry instancing or looping with the lights, it will be with other techniques. But it’s still early, we’re only at the beginning in this area.
FiringSquad: What is your ETA for the 1.3 patch?
Cevat Yerli: I can’t say for sure right now.
FiringSquad: In addition to SM 3.0, Far Cry will also be patched to take advantage of AMD’s 64-bit architecture in the future – what changes are you implementing in the 64-bit version of Far Cry?
Cevat Yerli: We’ve done it mainly for content development creators and mod creators, there will be huge benefits from it. For the gameplay it will be more beneficial to the environment, you will have some specific content for 64-bit. There will be a 64-bit version of Far Cry, a separate one eventually. That will be essentially content-wise slightly improved over the 32-bit version but it’s not something which, I mean people with the 32-bit version can still compare to the 64-bit version, but it’s optimized for the 64-bit experience. And the user of course will benefit from the 64-bit CPU architecture, which is more registers, better memory controller, but also more addressable memory.
FiringSquad: Will it look any better, or are you just going to use 64-bit to enhance performance?
Cevat Yerli: Well you will have a better experience, not necessarily “the look”; well you will have more environmental objects. If you consider that a better “look”, then yes, but the experience will be better because more things will be happening on screen.
FiringSquad: How many 2.0 instructions are you using in Far Cry today with the 1.2 patch? How many 3.0? When do you think games will begin to hit 3.0’s current maximums?
Cevat Yerli: 2.0 maximum or 3.0 maxium?
FiringSquad: 3.0 maximum.
Cevat Yerli: I think we’re far away from that, but we’re actually hitting the 2.0 maximums now. For 3.0 we don’t really use the amount of instructions really. Our instructions are 96 instructions tops right now.
FiringSquad: Oh really, you’re at 96 instructions with 2.0 now?
Cevat Yerli: Yes, and we’re not using more because we don’t need more. If you look at the image quality you can achieve with 2.0 – with 2.0 you can achieve pretty much any quality you want for right now. And the key benefit between 3.0 and 2.0 is performance really and so we’re using 3.0 for performance gains, not an image quality gain. The image quality you can achieve with 2.0 is good for now so there won’t be any real technology differences other than the performance difference.
As good as Far Cry is now, it’s about to get even better in the near future. With AMD-64, 3Dc, HDR, and additional performance improvements all on the way in upcoming patches, Far Cry will continue to push the state-of-the-art in gaming technology. This should not only make it popular among gamers, but game developers as well, who could potentially license the CryENGINE for use in games well into next year.
|© Copyright 2003 FS Media, Inc.|