A Treatise on Touch
I’m increasingly of the opinion that onscreen buttons are not the way forward. Overlays are a poor substitute for a physical d-pad or buttons; it’s too easy for fingers to drift while attention is focused elsewhere onscreen or to obstruct immediate threats to the player resulting in unfair deaths.
They create the expectation of familiar behaviors that they can’t deliver. When you use a gamepad your fingers don’t hover over the buttons waiting to touch each individually. Your thumbs rest on the buttons, then depress and/or pivot to adjacent buttons as needed. On a touch screen it is impossible to distinguish between a resting touch and a touch with intention. (Hold and slide might effectively simulate an analog stick but I’m primarily interested in 2D games where an analog stick offers little benefit.)
If an action is triggered immediately at the beginning of a touch (the press) that’s the only action that touch can trigger leaving you to rely on separate onscreen buttons to provide multiple distinct actions. But, if you delay triggering the primary action to the release, a single touch can be overloaded with at least three distinct actions.
In The Last Rocket, the press triggers a crouching state. From there the player can release to launch (like releasing a spring) or swipe to step in the direction of the swipe. Three distinct actions, zero buttons. While airborne, the press prepares to land in a crouching state, release reverses direction, and when snared by a fan or vent, a swipe chooses a direction. Again, three distinct actions, no buttons.
If Flip launched or reversed on the press then additional onscreen buttons would be required to support the additional actions. This new approach may at first seem contrary to past experience with gamepads and their physical buttons but is intuitive and easily grasped in the new context of a touch screen.
I can imagine a fairly traditional platformer that uses this buttonless approach (there may already be one, I’m not the most voracious iOS gamer): The screen is split down the middle into two equal, invisible regions representing left and right. A press starts the character running in one direction or the other, depeding on which side of the screen is touched (which the player intuitively understands as run towards the touch). A release triggers a jump that maintains the previous forward momentum. A quick tap from a standstill would be a straight jump up. A release after a period of running would be a leap forward. Maybe another touch on the same side cancels vertical momentum, limiting the height of the jump (which the player intuitively understands as the duration their finger is off the screen). A tap in the opposite direction could cease forward momentum without triggering a forward jump.
Definitely something I plan to explore further after submitting The Last Rocket 1.1 to the App Store and porting Data Entry Sentry to iOS.