TL;DRThe VFX team says it covers particle effects like sparks, fire, smoke, explosions and dynamic thruster trails, plus gameplay-readable effects, but not geometry or main level lighting, sitting between art and design.
I guess I can start that one off. To state the obvious ones: when the ship explodes, you've got what we call the death mask. That's all particles, that is VFX. So all of the particle system stuff, that's all VFX. Oh man, there's so many things. VFX isn't just a case of adding sparks to a level, although that's part of it. There's also implementation, gameplay implementation as well, using VFX to give the player readability on gameplay inputs and things like that.
Yeah, but essentially if you're looking at a game and you're thinking whether it's VFX or not, probably if it's not a character and it's kind of like a sprite thingy, it's VFX. So for example, sparks obviously are VFX.
If it's stuff, but not geometry, it's probably VFX. But at the same time, behind all the VFX there is some graphics programming involved. Even putting a spark on screen starts with someone programming all that stuff, and then we have a tool that allows us to control all of it, and we literally have a list of parameters to control the movement of stuff. That's what we do, more or less.
It's also dynamic as well, isn't it? Especially in our game, the VFX are dynamically controlled. The thruster effects, which is something that I've talked about in the past, the engine trails falling off from that, and the Coil presentation that we did, all of that is dynamic VFX. So it's sometimes used in our game to add extra detail to environments as well and give life to environments. It kind of touches a lot of things really, doesn't it?
Yeah, but one thing that it's not is lighting. I see it very often. People think if there is a light, it's VFX, but we have dedicated people putting lights in a level. So if you're thinking, okay, there is too much light, there is strobing, that's not VFX. We do fire, we do smoke, we do sparks. We also do some more systemic effects that show gameplay: what's the boundary of this effect? For example, in real-time strategy games, very often you get very clear visuals, a shockwave that ends at this specific region. That's all coming from VFX, but not the light, not the general mood of the room or a space. That doesn't come from VFX, but VFX do add on top of it.
We're serving both, aren't we? We're trying to make the environments look more alive, but equally we're trying to sell gameplay as well. Even for things like a muzzle flash on a gun, we help the feel of it as well.
TL;DRThe VFX team does the particle effects on planets, such as dust and pollen, and is excited about eventually tackling weather effects like rain, lightning and odd space weather, though nothing is promised.
No, we actually are. Ben is talking specifically about the gas cloud stuff. My team does all the particle effects on planets, so all the dust that you see on the desert biomes and the pollen that you see in the air on the, I can't think what it's called, where all the forested part is. Yeah, we do all the effects in my team. Caleb in Frankfurt actually does a lot of the planetary effects.
So this is the thing. Clouds is an interesting one, but for me, I'm really excited about tackling the weather effects. And you can't have rain without clouds, or maybe you can, but in my head you can't. But yeah, there's lots and lots of scope for really cool stuff to do with effects with the weather.
TL;DRGas cloud tech doesn't directly produce weather effects, but the VFX systems can take weather parameters as input to drive visuals, and the same tools such as lightning in clouds could be reused elsewhere, like dust storms.
Sounds like a wrong question, really, because gas cloud tech has nothing to do with it. Well, it has, but not directly. It doesn't directly do weather effects.
Well, yeah, you do the cloud, but weather effects are VFX, so they don't come from the gas cloud tech. We can drive some of the particles through the clouds.
Yeah, we can use the same systems. The input for the particles could be weather parameters, or whatever those parameters would be. We'll use those parameters to drive visuals for sure. I think there's a lot of similarities, at least from our side of things.
Yeah, of course. And that's the point. When we make these kinds of systems, we're trying to make them in such a way that we get maximum usage throughout the game. It's not like this can only work with gas clouds. As long as it's got the input, whatever that input is, we can provide the output with the visuals.
In terms of using the gas cloud for other environmental effects, I don't know, if we had dust storms or something. That would be an interesting one, in that you'd probably want the gas cloud in some ways because it's quite good at filling a space. So that can provide that kind of volume. But we don't really have the ability to update it every frame, so it couldn't be boiling away. But then when we go back to VFX, you guys could make the outer edge of it boil.
This is exactly what we're doing with the gas clouds, isn't it? That's essentially a static thing, but we're using velocity fields to push those particles along the surface. You mentioned a dust storm. I know I've had conversations about that, and that's something we could definitely do.
TL;DRThe core gas cloud can't swirl because its voxels are far bigger than a ship, but contrails exist and particles may react as ships pass, with a physics-effector approach something they'd like but haven't committed to.
I think this comes back to that again, doesn't it? The actual core gas cloud tech couldn't swirl. For a start, its voxels are quite a lot bigger than a ship. I don't know how big one of them ended up being, but I remember that you managed to lose a Caterpillar. You put a Caterpillar in the level and then you lost it just by flying away from it.
Yeah, it's just there for like a pixel, isn't it? You couldn't even see it. We had a test video before we finished the whole trailer, and someone asked me, I think it was you, if we could have a derelict somewhere, just to sell the scale. And I had four or five Cats. They are actually in the video, but you don't see them because they're so tiny. But the point is, like what you're saying, a single voxel of the gas cloud is way bigger than the vehicle. So if that moved, you would essentially get a Minecraft type of effect where a block just moves.
We do have gas cloud contrails. They were seen in the video. That's one of the things: the gas cloud itself has a bunch of data that we can use. So I don't think we're going to get swirls, but we do have contrails. So there are visuals. You're going to see something happening with the vehicle as you fly through the gas cloud, and possibly when you exit, while you're still in that transitioning area.
Do you have physics effectors on particles? Some sort of entities or markup or something. If you've got some smoke coming up, you can wave a thing through it and it'll...
Ah, yeah, there was this video someone made with vector fields. Vector fields for the helicopter blades, and it was pushing the rocket trails. Everyone's looking at that because it's so cool.
TL;DRThey say empty gas clouds are fine and intentional, since contrast between dense, busy areas and empty ones matters, and the packed engine room shown was only a demo of their tools.
That's a really good question. Actually, I think some people might find it boring, and maybe we've used the word boring, but there's nothing. In our game it's going to be really nice to have the contrast. I think I might have even said this in the presentation, but there might be times when you go into a gas cloud, say in the PU, and there's nothing there. It's just the VDB as it was, and there's nothing wrong with that. That's just going to be pretty. There's not going to be any kind of event with that.
I've seen people on the internet, after seeing the gas cloud demo we showed, saying that maybe we want to fill every single area with all this stuff, which is not entirely true, as you mentioned. We want that contrast where you see a very dense area, like in real life. For example, you can have a very rich storm with wind and debris flying. We want that. But we also want empty places, so we can enjoy these areas with all this stuff. You need contrast to appreciate what you're seeing. If you don't have it, then it's all the same, so it's not really good.
That one specific room had so many things. It just felt right to have so many things in one engine room, but you would go to the following corridor and it's pretty empty, really.
TL;DRSmall creatures like insects already exist in the game, and fish or similar might become possible with particles or a boids system once geometry runs on the GPU particle system, though they stress nothing is promised.
Yeah, Caleb did some. And I know it's been talked about, I don't know if it's ever been mentioned, but there's a boids system, which technically isn't particles. I think there'll be some crossover, with particles on a much smaller scale and then boids for, probably not particles for, electric eels.
I do think that once we get geometry on the GPU particle system, we might do more animals. I've seen this example from, what was it, inFAMOUS Second Son, I think. They actually had fish driven by particles, and they did something very simple where they passed the position of the player to that particle system. So whenever you were close to the fish, they were pushed away. I think that's doable. Not saying we'll get to it, but why not?
That's the same tech that makes the sparks that fall in the Hammerhead engine room when it's damaged, hit the geometry and bounce off it. The same tech, but make the particles fish so that they swim around.
Yeah, we've got a bunch of different options to do different sorts of movements, and I believe we can mimic the movement of fish, especially since we've got curl noise, which essentially means that lines can never cross each other. That means you can spawn a bunch of fish and they're never going to go through another fish. I can't believe we're talking about fish so much. Which is cool. I like fish. I have an aquarium.
TL;DRThere are different fire types tied to the technology level and manufacturer, varying in color, smoke, light and sparks, and future hazard-zone work may link fire behavior to oxygen in rooms, though not setting the world ablaze.
Yeah. The first part of the question is what types of fire we have. We actually do have our internal style guide. We know that we should have classic fire, which is orange or red, and you get smoke and such, but we obviously also have other technologies, such as Xi'an, Vanduul or whatever. And these, as a race, as a technology that comes from a different kind of source, use different materials. And as in real life, different materials produce different colors and flames. For example, your hob in the kitchen will give you a certain flame color, and if you burn a torch, it's going to give you orange stuff. So we do have different varieties of fire, and it's not only about the color, but also about the amount of smoke, how quickly the smoke dissipates, how thick it is, how much light we emit, what textures we use, what it looks like, how many sparks we have, if any, stuff like that.
Yeah, we loosely tie that in with what we describe as the efficiency of the thing that's burning. A low-tech ship would be the oily, classic, smoky fire, as Michal just described. And then if there was a high-tech equivalent, well, it's kind of sci-fi. I think I'd describe it as sci-fi blue, classic. Far less smoke, in fact no smoke, much more lens flare style. So when we start to tackle a specific thing, like a specific ship, we know that the manufacturer, per our internal style guide, is a certain tech type, and that helps us define what those visuals look like. And even if that's not something that's totally obvious to people playing the game, I think it gives us a consistent visual language throughout the game, and it gives us our initial cues about what this thing is going to look like. I think another part of that question is quite interesting, because we're going to be working on hazard zones in the future, and we're going to be looking at the behavior of fire in the game as well. So with the room system itself, if there's oxygen, then it should burn more. The fire itself could contribute to removing oxygen from that room, propagating fire. I'm not saying that we'll be able to just set fire to the world, because that would be a stretch too far. But we've got a lot of plans in terms of the functionality of the fire as well.
I think it ties in a bit with what you were asking before, Jared, about the balance between completely realistic and pure Hollywood. I know that there'll be people saying, well, why have you got a fireball in space? Because it's not technically possible. We straddle the line between Hollywood and real life.
We haven't yet. People who've experienced the water in the game will know that there's no impact effects yet, and that's primarily because, again, the planet team have worked on that core tech. And yeah, for sure, we're going to be looking to add impacts to that. Bubbles, probably. Maybe even fish.
Yeah, I mean, that is them, really, isn't it? We've got a whole bunch of hazards that we want to put in there. I think we've skewed away from the gas cloud itself damaging the ship. Flying into it slows you down. Indirectly, it could damage you.
So the answer is yes. The lights are where the lightning comes from and where it hits. We don't have every individual zigzag of it emitting light individually, because...
Yeah, honestly, you don't even need to have it, because we can increase the radius of these lights so you still get some shininess in between. And from a visual point of view, first of all, it's so fast you don't even see that there is light missing in between. Second, you see the impact and the destruction happening after. So two lights are good enough.
TL;DRThey have many weather ideas such as tornadoes, dust storms and rain, but are waiting on some key planet-team work first, and rain also needs shader, graphics and volumetric work beyond VFX alone.
It's going to sound like the same answer, really. There's things that the planet team are working on. There's a couple of things that are going to get done and finished that will then open the floodgates for us to do our thing, if that makes sense. We've got tons and tons of cool ideas for weather. It's one of the things that really excited me about planets in the first place. When I first talked to the guys in Frankfurt, I was like, oh wow, we could do tornadoes and dust storms and rain showers and all that kind of thing. So we've totally got plans to do all that. We're just waiting on a few key things first before we can really go for it.
So the thing about that is, it's not purely a particles thing, because we could make a rain effect easily. We need to have rain affecting how the shaders look on the visor and the canopy and things like that. It's not something that the VFX team alone are going to be solving.
It'll be the graphics guys. It's a big, complex system, really: getting the wetness, getting puddles and such, maybe even changes to the flight model during rain or storms, and possibly, if the storm's happening next to water, fish flying out of it.
Not to mention that you can do particle rain close up, but if you're looking at a rainstorm coming in on the horizon, you can always see that there's rain. You can see this volumetric block of rain, and that eventually turns into actual rain. So we'd need something to do that. The thing that excites me, actually, is that it's volumetric, so it's probably going to be me.
But imagine being up in space and seeing the rainstorm below you as you're going towards that planet. That's what excites me, seeing that storm happening while you're safe from it in space.
Well, everything does in our game. That's the exciting and challenging thing, isn't it? It's real. It's like, oh, that's a storm in the distance, and now I've flown in and I'm in the storm. Lots of stuff to get our heads around.
TL;DRSolar flare and similar effects are on the VFX backlog and one speaker says they are doing them, but close-up stars pose big graphical problems, and gameplay implications were left to design, apart from the guess that getting too close kills you.
We weren't doing that up close. I think this is well outside. Going close to a star is a huge technical task but doesn't give you a lot of gameplay. But I know it tends to be on people's lists to do regardless, just from the point of view of the effects themselves.
Yeah, it's definitely on our backlog. And I've chatted briefly to Todd regarding gameplay permutations for that, but I'm not going to speak for Todd. I'm not going to speak for design on what the gameplay implications are. But logically, you'd think the gameplay implication is that if you go towards it and get too close, you die.
Yeah. Graphics-wise, there are many issues, but one of the significant ones is that we tend to treat the sun as a small ball in the distance. There are various equations that fairly reasonably approximate what that's going to do to the lighting. When you start flying right up to it, for a start, you have to dim it down, because the exposure adaptation on the camera isn't able to handle the brightness of landing on the sun. So you end up having to dim it down to what photos of the sun tend to look like. But then you're also landing on the surface of this ball, and some of those equations take shortcuts that don't really handle something bigger than the Earth that you're touching.
Yeah, I was going to say that we can do all that VFX, but technically the sun is so bright that you should not be able to see anything happening on the surface. So is it worth it? It depends on what we want to show.
TL;DRPre-simulated velocity fields for swirling gas clouds aren't feasible because offset texture reads in ray marching slowed a test by roughly five times and pre-calculated shadows wouldn't update, so static clouds with swirling particles outside are more likely.
No. The exact technical reasons for that being difficult: we did a test that had something similar, for different reasons. We were trying to break up pixel edge detail. When we're ray marching, we have this big texture and we're reading through it, taking tons and tons of samples. If you introduce something where you have to read one thing to offset where you're going to read another thing, it introduces a small delay on the GPU. And if you do hundreds and hundreds of samples, and each one of them has a separate offset that has to be calculated from another texture, I think it did something ridiculous like multiplying the time it took to draw by about five. So in theory, you could have a vector field that we moved along each frame, kind of like the vector field stuff we do on particles. It's just probably not going to be feasible. Also, things like the shadows that we pre-calculate for those wouldn't update. So it's more likely that we'd use something static and then put particles on the outside. Maybe those particles have the swirls.