Height Changes in 3D Twin Stick Shooter

Hi Everyone. I’ve been scouring around the web for a elegant way to handle height changes in a 3D twin stick shooter and need some direction on how best to implement this in UE4 or if it is even a good idea to do.

Currently a great game I’m aware of that does this is Valve’s Alien Swarm though I haven’t been able to dig in to find how they do it. Basically if there’s an alien on terrain below or above, one can aim with the cross-hairs, and the shots automatically angles to reflect this. In most other cases, the shots continue on the same plane as the actor like any twin stick shooter.

Now I see two potential options here though perhaps there’s more:

  1. Shooting only angles if the cross-hair is over the enemy.
  • This means aim has to be accurate and no real chance for suppression or environment destruction of objects.
  • I think Alien Swarm uses this method.
  1. If the cross-hair is over a different plane, the shots auto-angle towards that plane.
  • I can’t think of the downsides of this one but perhaps I’m overlooking something from a coding perspective.

A major downside to any of this is collision challenges with the angle shots so height always gets the advantage from a cover perspective. Are there any other thoughts on this topic?

I think opening up the height changes add needed dynamism to a 3D twin stick shooter and so I’d like to get some feedback from the community. Thanks!