gdquest-demos / godot-2d-space-game

A 2D space exploration and mining game made with Godot and our AI framework
MIT License
837 stars 109 forks source link

Add visual effects #25

Closed NathanLovato closed 4 years ago

NathanLovato commented 4 years ago

Add visual effects for:

Razoric480 commented 4 years ago
NathanLovato commented 4 years ago

Definitely. @henriiquecampos would you be available to work on these? @Razoric480 here will be taking care of the shaders (if any is necessary)

NathanLovato commented 4 years ago

For the thrusters I'd definitely add some deformation, and in general for impacts, having some heatwave effect. So shaders would be useful for that at least.

By the way for shaders, you can work either in pure code or using the visual shader editor. Even combine both: the visual editor writes the code for you, you can pick up from there.

henriiquecampos commented 4 years ago

For the lasers, we could go with a laser beam/stream, instead of projectiles with an effect on the cast/shooter and an impact effect on whatever it lands on.

Something like this, but a laser beam instead of a lightning lightning

@Razoric480 can you make a heatwave shader? Something that smoothly displaces the image in a sinoidal way? We can use it to constantly displace the laser stream. I think that with the same shader logic we can do a random displacement that uses time to distort the screen/fragment. This can be used in the "impact" effect.

For landing, what do you think of a ripple effect? We can also reuse it in a way smaller strength tfor when the thrusts are turned on:

  1. Thrust turns on
  2. Ripple effect
  3. Some particles with the heatwave effect
  4. Some after images (particles emitted with the inverse normal of the ship's movement)

Depending on the speed of the ship the after-images' trail can be greater or smaller to give the feeling of acceleration. Megaman after-images

Razoric480 commented 4 years ago

Replacing projectiles with a ray cast laser weapon would necessitate some new game play feature. I don't mind having a laser gun on top and letting players pick which they want to use, but having an effect for the plasma projectile as well would be preferable.

And sure, I can look into coding displacement effects

henriiquecampos commented 4 years ago

Ohh, so we already have the projectiles logic in place. Nevermind then, we can add it as an extra after other stuff is done.

NathanLovato commented 4 years ago

Yes we already have all the prototype in place. But the projectiles could use some love. I was thinking of having thin laser shots as in star wars instead of the current capsules.

For the deformation shaders, I'd recommend going with texture-based shader first. For one it's generic and reusable, and can work well with the noise texture in Godot (or gradients, or others), and you can throw any simple tiling texture in there for tons of effects.

The classic sine shockwave, sure, it's nice too, but you'll want to overlay your sine with some other subtle texture to give it more personality.

NathanLovato commented 4 years ago

We have the plasma balls, explosions, movement trail, animated resource mining, landing, shockwaves... anything else you'd like to close this issue to add or is this task good for now?

Razoric480 commented 4 years ago

I think we're okay for now; new features will call for new VFX, but we'll get there once we have those features.