Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Need control scheme advice for a mobile cave flyer

Discussion in 'Game Design' started by JoeStrout, Jul 2, 2016.

  1. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,840
    My boys and I have been working on a little side project to showcase PixelSurface, and just because it's so darn fun. It's inspired by a classic (yet little-known) game called Spout, in which you fly a tiny rocket through an cavern, and your exhaust destroys the rocks around you. This will be a mobile game, optimized for phones held in portrait mode.

    So we need basically two control inputs: a way to control which way the ship is facing, and a way to control when the engine is turned on. In this prototype, we use the mouse: just click and hold where you want to go. The ship will rotate to face the mouse, and burn as long as the mouse button is held down.


    Give it a WebGL try here.

    This is very easy to fly (almost too easy, compared to the classic arrow-key controls we tried first!). But when we put on an iPhone, it doesn't work so well. Your finger is frequently in the way of stuff you need to see.

    This is a game that really does require quite tight control, because it's a dangerous environment and you're moving fast. So, any ideas on a control scheme for mobile that will be intuitive, yet easy to fly?

    Thanks,
    - Joe
     
    GarBenjamin likes this.
  2. RockoDyne

    RockoDyne

    Joined:
    Apr 10, 2014
    Posts:
    2,234
    I don't imagine you're going to find a control scheme that's precise enough, but also make the full 360 range of movement comfortable. A virtual joystick and another tap for gas is probably the best solution, but I could see precision being a problem.
     
    JoeStrout likes this.
  3. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,840
    Another option I'm considering is a ring-shaped control area. Touching anywhere in (or beyond) the ring both sets direction, and activates thrust; touching within the ring sets direction but without thrust. This way, you could still play it with one hand, which I think is a plus for a phone game.
     
  4. DroidifyDevs

    DroidifyDevs

    Joined:
    Jun 24, 2015
    Posts:
    1,724
    Joystick, anyone?

    You could even do a joystick to control movement with the right hand. The left hand could do speed control.

    However currently I have my own question asking people for advice on controls for a spaceship so don't take this answer too seriously.
     
  5. deathbydragon

    deathbydragon

    Joined:
    Mar 4, 2016
    Posts:
    54
    Perhaps tilting the device to change direction, tap anywhere for gas. I don't know, that feels fairly rudimentary but honestly a better option than one that requires two hands on the screen like a virtual joystick and gas button, especially since the rocket sometimes must utilize the lower areas of the screen in order to make maneuvers.

    I would suggest hooking the camera more tightly onto the rocket in order to reduce the amount of disruption having hands on the screen causes, but of course dying when you move down is (at least currently) a major mechanic. It might not ultimately be that important though. Since the player is likely to find only empty space down there, and it will be a waste of fuel, I don't think they will be doing much below the intended area anyway. You could also use a system similar to the one found in games like Mega Jump, in which areas below the camera can be accessed, but not indefinitely. Eventually the "death zone" moves upward so that it is always a certain distance away from the highest point the player has yet reached.

    Another thought:
    X axis direction is controlled by tilting, such that if the player tilts their device right, the ship tilts right to a maximum of 90 degrees.
    Y axis direction is controlled by a button, such that when the player taps the button, the ship's direction mirrors across the x axis
    Gas is controlled by a button such that the gas is on when the button is pressed and off else

    helping.png

    Of course this would require that the rocket remain more centered than it is currently able to.

    Just an idea, best of luck
     
  6. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    5,981
    I'm not so sure that the accelerometer would work too well, since the way it affects the ship will be inverted when the ship is facing or pointing away - same goes for virtual joystick.

    I would actually 'tap for waypoint' and program the ship to turn toward wherever you tapped and move there. As for the gas, I would probably try using swipe (as soon as a swipe is detected, fade in a slider somewhere above the swipe position and move the slider as the swipe continues. Then fade out the slider when the swipe touch is removed).
     
  7. Scofod

    Scofod

    Joined:
    Mar 31, 2015
    Posts:
    47
    I've actually played spout on Android and loved it. However I only play the game mode where you constantly have thrust and steering is done by tapping left or right, as in general I really don't like on screen buttons.
    If you want to not have thrust all the time, maybe have left side of screen be turn left and thrust, right side be right and thrust and then both be straight up and thrust?
     
    JoeStrout likes this.
  8. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,433
    Fun game! 2050 is the best I managed after a few tries. :)
    I haven't read the whole thread, but if it's still up for discussion, I'd try this control scheme on a touch device: touch anywhere on the screen to accelerate, and the horizontal position of the touch controls the turn speed. If you touch in the middle you have 0% turn speed, if you touch far left you spin left with maximum turnspeed. Same principle for turning right of course. That should be pretty flexible for different ways to hold/use the device, give fine control, and not cover up vital information. I'd experiment with making the "center" for 0% turn speed a certain width, like 10% of total screen width or so, and maybe let the user tweak a sensitivity value for applying a curve that gives you finer control near the center.
     
    JoeStrout likes this.
  9. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,840
    We're currently using a control dial, which is pretty intuitive since it boils down to "shove your thumb in the direction you want the ship to go." It works pretty well, but you do sometimes have to look to see where the center of the dial is, and occasionally your ship is still under that (I'm not willing to reduce play area to avoid it).

    But your left/right rotation scheme is intriguing, and I'll give it a try to see how it feels. Thanks for the suggestion!
     
    Martin_H likes this.
  10. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    9,840
    That's worth a try too. Thanks!
     
  11. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    I'm not sure what the 'game' is... to me its a novel toy whose novelty will wear off in 5 minutes. What else are you going to offer for gameplay? Take a look at some of the old two-player cave games like Gravity Force on the Amiga, for example.. various weapons and a place to land and combat action and all that.. lots of fun. Control scheme.. not sure, cus accurate action-oriented controls don't gel well with touch interfaces. Maybe the user can just touch in one place to 'orient' then take your finger away, rather than hold?
     
    theANMATOR2b likes this.