Controls are hard to get right. Here is a rather lengthy description of how I developed the scheme for RUBICON:
First, I needed to explicitly see what you DO when playing this kind of game wrote out two overarching objectives: shoot enemies and don’t get shot. The first is accomplished by interacting with those enemies via bullets that come from some yourself at some angle. The second is accomplished by moving out of danger areas. Challenges arise when these two conflict; you need to simultaneously be in a position that does not contain bullets while trying to fill their position with bullets.