Hey all! Sorry for the extended break yet again (This one’s REALLY long I know…), we’ve been hard at work on… a lot of stuff… which I can’t say… I’m sorry… well, anyhow, we will reveal all of them soon, but we’re working towards big things for this game! So look forward to that!
This blog post is about one of the things we’ve been working on which I can actually talk about, weather systems!
What, weather systems?
I hear you ask. Well, yes. Plane games take place in the sky, and the weather is in the sky… so… getting this right was pretty important for me!
I had the idea for this system ever since I implemented cloud cover variation (which was about a year ago now!), and I implemented it… well, actually 4 months ago.
Yeah, I started writing these blogs ever since the last trailer came out, and I never finished them… I’m sorry…
This is actually a rewrite. There is another incomplete blog about the clouds themselves which I wrote first, and halfway through I was like “wait, this is boring as hell”, so I started writing this one instead (which was supposed to be part 2 of the clouds one). I might post the other one later. It is very boring and technical though.
Part 1) Rain?
So a big part about selling rainclouds is… well, rain. So I went ahead and looked into how other games did it, and… huh.
Ace Combat 7 ends up treating rain like speedlines, which is definitely interesting…
From what I can remember (It’s been a while since I did research on this ok?), Project Wingman… doesn’t have rain? Either that, or it was so subtle I just don’t remember it.
Regardless, I wanted to add rain that the player could instantly tell it was rain.
Droplets on the camera
This was actually my 4th attempt at implementing this!
For my first 2 I followed how Ace Combat did it, which I thought was some kind of additive thing which changes color based on light direction? I’m still not sure how exactly it was done, because my implementation was complete and utter dogshit. You can see it in a lot of the older videos where it looks like little bright spots on the camera whenever the player flies through a cloud.
My 3rd attempt was closer to what I have currently, and I feel stupid for even needing it.
Regardless, a big part to making it work (this part is kinda technical so feel free to skip it) was switching from using scene color / opaque buffer based distortion for most things to using a grab pass based distortion taken after transparents are rendered. It means no more ugly distortion which ignores transparency and sees right through them, at the cost of being a little harder to deal with depth stuff… well, not that it matters for raindrops on the camera, which should always be rendered at the very front anyways.
Anyways, lets skip my 3rd attempt, its very embarrassing, you can see it in this video if you really want to…
Here is my current implementation. It’s quite simple really, the shader is just a regular normal-based distortion stuff using a grab pass, and the water streaks are made from… just stretching that shader into a line. I can’t believe it worked as well as it did. Sometimes the simplest solutions really are the best, huh?
Fun part about this… the Ace Combat 8 demos showed a way better implementation of this kind of camera droplets which also responded to the direction the camera is moving… I didn’t even think about that… genuinely getting mogged in real time…
Part 2) Thunder!
Now this was the fun stuff. There’s a lot of graphics stuff which went into making the lightning look the way it is, and the sound design on the thunder is SUPERB, but I won’t be covering them here. Instead, lets talk about the game design of the lightning!
Striking enemies
This one is simple so I won’t spend long talking about it.
When enemies fly underneath a stormcloud, they will be struck periodically.
This doesn’t actually deal much that damage, but it does knock them downwards. While the player could potentiallyuse this downwards knockback to their advantage, the real reason I made it do that (don’t tell the others) is because it will hopefully make players chase them downwards, resulting in combat which will be closer to the ground.
This way, they need to interact with the terrain I spent so long making. Muahaha!
Striking the player
This part however, required a lot more thinking.
See, the way Ace Combat 7did this was, from what I could tell, randomly striking the player when they are below a storm cloud.
This strike caused the player to temporarily lose control and messes with the HUD a little. I mean, it definitely feels like getting struck by lightning, but is it really fun or fair to the player that they get struck randomly out of their control? It kind of punishes the player for no reason, doesn’t it? At least, that’s how I viewed it.
I played around with some ideas with Redline, and we (he) quickly had the idea of thunder striking the player if they stayed under stormclouds for too long. Punishing the player for flying through stormclouds like any other cloud, turning it into an actual massive obstacle in the sky the player will have to deal with!
Early test for lighting ^^
However, as the player grows stronger and gains more defensive tools throughout a run, I was worried that lightning could just be ignored due to its set damage and highly telegraphed timing.
But wait. What about knockback? Lightning already knocks enemies downwards, so why not players?
I wanted to avoid knockback towards the player at first because I felt that it would feel unfair to lose control for no reason, but in this case, is it really for no reason? I mean, the lightning is telegraphed for a whole 2 seconds, it’s really on the player for letting it hit…
Not only could this not be negated using normal defensive modules, but the player could also use this to their advantage, giving themselves a massive velocity boost with the right angle at the cost of some health. So, I went with it!
That’s all for this week!
Very sorry for the… 4 month long break from devblogs… I kind of lost track of time, I suppose. I don’t know if I’ll be able to maintain a devblog a week or a devblog every two weeks or whatever, but I’ll try my best! Over the break, we have quite a few things backlogged for me to write about, though I can’t guarantee that all of them would be interesting to read…
Regardless, stay tuned! We’re working hard on this game and I’ll be sure to keep you guys updated on the stuff I can actually share!