So, I assume discussing game mechanic design is on topic here, right?
I'm trying to figure out how to design a real time overhead 2D game, essentially a twin stick shooter, that allows some implementation of multiple z-levels and flight. Think old JRPG style graphics, not isometric, to save on complexity.
It may be difficult to convey what I'm trying to do without images, so maybe this makes it more clear, based on a quick mockup from an image I found on Google:

I'd like for the player to be able to do things like jump up on that box, or climb the stairs up to the higher area, and for the z-levels to matter somehow. The problems I'm seeing with this are that I can't think of any way to make the projectiles from the player or enemies take it into account in a way that makes sense.
For example, imagine the player was standing behind the box and an enemy shot at them. The player would expect the box to stop the shot, and that they also wouldn't be able to shoot back.
Now, if the player were standing atop the box, the enemies should be able to shoot at them and vice-versa. That's easy to implement by having projectiles just ignore collisions for the box, but... that isn't compatible with also allowing it to provide cover for characters on the same level as it.
There are some ways I can see to implement this, but they're quite complicated, maybe going so far as implementing the collision as 3D shapes with 2D graphics. But even if I went
that far, I can't see how characters would be able to meaningfully select which z-level they're shooting at. NPCs could just silently do it behind the scenes by selecting whatever z-level their target is on, but how would the player do it? I was envisioning mouse aiming so maybe it's just implied to be on the same level as the character unless the mouse hovers over a target on another level, but that feels like it's a bit clunky. Not to mention I can see lots of complications on how that would work in practice when shooting at tall buildings or trees, such as how you get the projectiles to recognize that despite being shot
toward a z-level 5 target for example that it should collide with a 3 z-level high wall on the way if it doesn't have time to reach the needed height.
My hope was to build this all in Godot and leverage as much of its built in systems as possible. I guess anything is possible if you write custom collision code...
Does anyone know of a game that does anything like this? I'd love to review how it works if there is. The only alternative I can envision is making it turn based like X-COM or Fallout, which wouldn't be impossible but isn't the feel I wanted to go for.