For dynamic controls, when the player initially touches the screen, the VJR is typically drawn as a circle centered around the point of contact (there are exceptions; we'll come to those later).
The player can then make a sliding gesture to direct movement (or shoot) in the desired direction.
However, as long as the player does not lift their finger off the screen, it is common in most (but not all) games to be able to continue to use the controls outside of the VJR.
This means that the controls will continue to work until the player's finger is lifted, e.g. dragging left will move their character left etc, however when lifted, they will have to start again by touching within the VJR.
Impact on static controls. For static controls, this means that it is only the initial touch that is required to be within the VJR, after that it's possible that the player's thumb could drift across the screen.
For static controls, the downside of controls being active outside the VJR is that if (when) the player lifts their thumb from the screen, they have to shuffle their hand back to the VJR in the corner of the screen.
Impact on dynamic controls. For dynamic controls, this hand position "drift" has less of an effect on the player, as if their thumb loses contact with the screen, they can simply reapply it anywhere on the screen and the VJR will be redrawn at that point.
Players can move their thumb outside of the VJR and still have control.
As we were saying earlier, for dynamic controls the VJR is drawn with its centre point located where the player's thumb makes contact with the screen. However there is one exception to this: border cases.
Border cases. In most circumstances, when the player's thumb makes contact with the screen, there will be enough space such that the entire VJR can be drawn so that it fits on-screen.
But what happens if the player's thumb makes contact close to the edge of the screen? In these cases there is not enough space to draw the full VJR, so the designer must make a decision between two approaches, Fit and Centre.
If the player touches the screen near to the border, draw the VJR such that it always fits entirely on the screen.
This approach has the disadvantage that if the player makes contact close to the left hand edge (for example) their character will move left, whereas it's possible that they were just making contact with the screen and had intended to go in another direction or simply wanted to stand still.
Ultimately, this approach can lead to unintentional player movement.
Centre the VJR at the point of contact, regardless of whether it's near an edge or not.
This approach is probably the better design decision as it more closely matches what the player will expect from the controls. In other words, it is more intuitive.
It also has the advantage that the character will never move off in an unintended direction as the VJR is guaranteed to be centred around the point of contact i.e. the centre point is a null input, a 'do nothing' instruction.
Now that we've detailed the four main components that affect the controls of a twin stick shooter, let's take a look at how these have been implemented in iOS games.
Each game will use a combination of the four components, but as we'll see, some combinations lead to a better gameplay experience than others.
We'll now compare five of the most popular twin stick shooters on the iOS platform. All comments relate to the iPad versions.
Quite a few complaints on the App Store relating to the controls of this game.
From our viewpoint, the static controls make it difficult to control the character smoothly, also causing frequent camera judder.
Changing to dynamic controls would certainly have improved the user experience.
Although the comments on the App Store do not criticize the controls, there are two design decisions here that could lead to unintentional player movement.
1. Play to border is not used, so if the player touches near an edge they will move in that direction, even if they wanted to stand still.
2. The game makes the somewhat unusual decision of using dynamic controls but permanently visible. This means that if the player lifts their thumb but makes contact within the VJR (i.e. a small movement), it will likely result in unintentional player movement. Hiding the controls on lift would have solved this issue.