I currently have a number of small side projects which are for all intents and purposes simple design tests. My current focus is with establishing new, reliable and aesthetically satisfying ways to have the player interact with the game.
Basic control – Touch, slide and first-touch free movement
Initially with Wizard Wars I stuck to the basics and the game centered around tapping the screen to direct the wizard.
Subsequent games have seen simple slide left and right controls implemented to steer cars and star ships.
More recent games have seen me register the first touch and allow free movement in all directions. I like this approach and generally find it to be the most satisfying to play. Games like Crossfire (my homage to the C64’s shoot ’em up heyday) and Desert Rescue really benefit from this style.
So for the most part all of my games exclusively feature one of those three methods of controlling the on-screen character.
The only time I veered from this simplicity was with Dungeon Adventure. With hindsight I’d perhaps concede it didn’t work out so well and the control system took a lot out of what was a potentially enjoyable game.
Feedback and limitations
With mobile game development – HTML5 or otherwise – it’s vital that the game’s design is wrapped around the limitations of the touch screen control. I have never implemented on-screen buttons and don’t have any plans to. It just doesn’t work for me. The whole point of pressing buttons to affect the action is in the touch > tactile response > on-screen action dynamic.
For example the process of a ships laser firing in response to a button being pressed is empty without that central bit – the tactile response to the player.
Feedback in games is important to me, as is the management of player expectation. In many cases it makes a lot of sense to automate basic actions. e.g. your on-screen character automatically runs and you simply tap the screen to have him jump.
With Danger Ranger I desperately wanted a platform game experience. To achieve this I placed a jump pad at the base of the screen. As the player’s on-screen character walked in to the jump pad he was thrust high in to the air. The player’s only control was in sliding their finger left and right to control the character’s movement.
So there are several genres that can be achieved even with the limitations of a touch screen. We just need to consider these limitations and design the game around them.
Classically of course ports of great arcade games have failed to deliver since they were designed for different interfaces. Defender springs to mind. A proper spaghetti control system if ever there was one. Not a great game to try and play on a sheet of glass.
Fusing a couple of ideas together
So moving forward with some new design ideas I’d like to try and fuse some of these touch styles together.
Initially I considered Bomb Jack as a project.
I’d always loved the game in the arcades and figured it was colourful and lively enough to translate in to a good casual / mobile game. Better still it could quite easily be shoe-horned in to my Danger Ranger code base.
The issue of course was in the control of “Jack” (I assume that’s his name).
Bomb Jack (Arcade version)
So what is Bomb Jack ?
Well essentially you play the game by directing Jack around the screen with the joystick. and hitting a button to have him jump in the air. He only jumps when he’s on solid ground be it the base of the screen or one of the floating platforms.
This makes things quite easy in that I will always know when he’s NOT flying or falling. So if the guy is on terra firma any tap above him on the screen could be an instruction to launch him skyward.
Of course whilst he’s in flight the side swiping controls still work to control him albeit at a slower rate.
For this to work there would have to be a threshold set around the character since the simple act of tapping the screen with the intention of moving him left or right is also going to fire touchStart().
Jump vs movement
A B <-- Any touch here results in a jump
------------- <-- Slide control threshold
<-- Any touch in this region moves Jack left and right
J <-- Jack's position
============= <-- Solid ground
Hopefully the crude illustration above makes some sense.
J is relative to Jack’s position and the dashed line above him marks the uppermost region for touch events that result in his walking left and right.
Tapping in the A or B region will send Jack skyward to the left or the right respectively. In reality I would aim Jack to the point that the touch was registered to give greater granularity of movement.
Whilst Jack is in flight the illustration isn’t relevant and any touch on the screen will drift him left or right until he finds solid ground.
Pure theory right now but so far I’m happy with it. In fact if it works I’d be happy to consider more complex platform games.