Chris Angelini And Johan Andersson Talk Battlefield 4 And Frostbite 3
Last week I sat down with Johan Andersson, who you know as a rendering architect in the Frostbite engine team at DICE, to talk about Battlefield 4, Frostbite 3, next-gen consoles, and AMD's Mantle initiative. Of course, if you've been enjoying Battlefield 4 in the weeks since its launch, then you're already familiar with his work.
Back when Battlefield 3 was first introduced, I spent several days playing through the single-player campaign and tooling around in the multi-player component, benchmarking the latest graphics cards and CPUs. Johan helped provide feedback on bottlenecks, graphics features, and testing. Two years later, it was good to catch up with him again.
Chris Angelini: Great talking to you again Johan, and congratulations on Battlefield 4. Played through the entire campaign on launch night to come up with a benchmark for my GTX 780 Ti review.
Johan Andersson: Yeah, it's good talking to you, too.
Chris: So, I've been thinking about the new game, Frostbite 3, consoles, and Mantle. To start, you've clearly doing a lot with AMD. Is DICE using middleware for Battlefield 4's audio, or it an in-house solution? Are there any plans to incorporate TrueAudio support?
Johan: We’re using our own audio solutions essentially that we have here in-house. Currently there's no plans on using TrueAudio. All of that came quite late for us and we were pretty happy with what we had. In the future, we're probably going to investigate this. Not for BF4 specifically, but for Frostbite in general. We haven’t really had time to fully evaluate it and what it could mean.
Chris: Alright. So, what feature of Battlefield 4 excited you the most to see implemented successfully?
Johan: That's a good question. I'm not really sure. I guess it may sound like marketing thing, but I'll say Levolution. We've had dynamic radiosity in our engine for quite some time. And we've extended the engine to be quite a bit more flexible now with Frostbite 3, but just seeing artists playing around with the entire Frostbite toolbox of various types of lighting changes and weather changes and effects, and using that in practice. Like Paracel Storm for example in BF4 when you see that the entire level becomes stormy and you see the water changing and it starts to rain. The sky is changing. Actually the lighting change is quite significant on the level, and also we added a lot of dynamic wind simulation on trees and various types of foliage. Just seeing that all sort of come together, and then of course we added the marketing name Levolution for it. I think that's really cool and actually impacts gameplay quite a bit, which is fun.
Chris: Yeah and I'd agree. Levolution and what it means for destruction is one of my favorite things about the game as well. What technically needed to be done to make that happen? Why haven’t more games gone that route of adding more destructible terrain?
Johan: It's a little bit difficult to say. All games have different constraints, right? If you're building a single-player campaign, it may not really make sense to do that. Though, for Battlefield and its multi-player game, it's always been quite large-scale and quite a lot of different things going on in the levels and just getting more and more dynamic things in there made sense for us. It's also something that sort of signifies a little bit that its become more of a mature engine. When you're not just working on your low-level systems or you're focusing on just building your renderer you're actually having the content creators knowing how to utilize the engine and extending that requires quite a lot of work. And then to have the artists that are very used to working with your engine; it requires a lot of flexibility to be honest, inside the engine also, being able to control all of these systems and making sure they play nicely together. It can also be quite heavy from a performance point of view, just simulating wind and doing all of the water simulation that we’re doing. That requires massive amounts of parallelism and compute, especially trying to do that at 60 FPS on the consoles.
Johan: It requires a lot of effort for us there. I don’t think there's probably not that many other studios or game teams out there that have all of those things together to be able to accomplish something like that.
Chris: Yeah, sure, okay. I believe you're already using a compute shader for tile-based deferred shading in Frostbite 2 right?
Chris: How does Frostbite 3 build on what you're doing with DirectCompute?
Johan: We have support for the compute shader; that's essentially our most important part. We’ve significantly optimized the lighting compute shader since BF3, also of doing more optimizations on that which is quite nice. We've also done some work of doing some of our blurring and post-processes inside it. Oh, and our sprite depth of field actually uses a compute shader. We use this on Ultra detail settings for the PC to get sort of the bokeh shape for our depth of field. The compute shader sort of orchestrates of all that to make sure it routes a really good performance. Then we render it using the graphics pipeline. We've sort of gotten our feet wet in quite a few different places with DirectCompute and going forward I think it will be really important for us to optimize performance further with it.