Pages

Friday, December 14, 2012

The Friday Project - Update 7

Last Friday's Progress

As I write this, it's Friday morning. I have the day off, but my daughter is unwell so it is difficult to give the game the attention it needs. However, it does give me an opportunity to talk about last Friday's progress.

Controllers

Over the weeks I have posted versions of the game with different controllers. Sometimes the control method has been tilt-based, using the accelerometer to steer. And other times it has been touch-based, using the control method from Very Angry Robots. But the game has never allowed the player to choose the control method, until now.

Here's an overview of the control methods that the game supports:

Drag

The drag controller implements the touch-based control method from Very Angry Robots. With this control method, the initial touch point becomes the centre of an invisible virtual joystick. The player controls the direction of travel by moving their finger on the screen relative to that initial touch point. It works well enough once you understand what is going on, and it allows for very fine control over movement, but some players don't like it because it is a little unorthodox and unfamiliar. And then they leave comments such as, "the controls suck". However, I'm not throwing it away, because when I explain how it works then people get it. At some point I need to go back to Very Angry Robots and allow some different control options.

Update: I've implemented Mario Zechner's suggestion of drawing something at the initial touch point. It needs a little tweaking, but it works very well. I've changed the link at the bottom of this post to point to that version. Thanks Mario!

Thumbstick

The thumbstick controller uses a visible, virtual joystick, using libgdx's Touchpad class. It probably needs very little introduction as controllers like this are very common in phone-based games, and it looks like a real thumbstick. However, unlike the real thing, it snaps directly into position based on the location that the player touches. This behaviour makes it a little twitchy, so it's probably one to avoid if you've had too much coffee.

Tilt

With the tilt controller, the player controls the direction of travel by tilting their device. For some games this is an awful control method, but I think it is my personal favourite for Whirling Frenzy as it really lets you zip through the levels.

Collision Response

Sometimes something can bug you about a game, and you just can't quite put your finger on why. For me, I was really pleased with most aspects of Whirling Frenzy, but I wasn't happy with the way in which it handled collisions. When the spinning stick hit an obstacle, the controls would be disabled for a fraction of a second, and the stick would bounce away from the obstacle and start spinning in the opposite direction. This worked, up to a point, but certain collisions just looked wrong, and my repeated attempts to tune it didn't help.

This was frustrating, until I hit upon the idea of changing the collision response depending on how the stick collided with an obstacle. When the stick is spinning, it has two leading edges and two trailing edges. It seemed to me that the collision response always looked good following a leading edge collision, and was always less than satisfying following a trailing edge collision. This can be broken down as follows:

When the leading edge hits a wall then:
  • the controls are disabled for a fraction of a second.
  • the stick is pushed away from the wall.
  • the spin is reversed while the controls are disabled, but then resumes its normal spin.

When the leading edge hits a reverser (there's one in Level 7) then:
  • the controls are disabled for a fraction of a second.
  • the stick is pushed away from the reverser.
  • the spin is reversed permanently.

When the trailing edge hits a wall or reverser then:
  • the controls are disabled for a fraction of a second.
  • the stick is pushed away from the wall.
  • the spin is not reversed.

Playable Snapshot

Here's the latest playable snapshot. Choose this link to download it to your Android device, or scan the QR code if you prefer.

Request for Feedback

All feedback is welcome. What do you think of the control methods? How could they be improved?

No comments:

Post a Comment