Pipe Layer - A Multiplayer phone-to-phone game for Android

AttachmentSize
gameplay.png26.78 KB

Pipe Layer is a puzzle game for Android devices.  It is an Android version of a classic pencil-and-paper game from your youth (well, my youth, anyway).  In this game, players draws lines to complete a path from one side of the board to the opposite side.  Whoever succeeds first wins.  Here are some of the features of the game:

  1. Play against the computer or against your friends.
  2. Play against your friends phone-to-phone.  The game uses SMS messages (aka "text messages") to send moves back and forth.  There is no central server that sees your moves.  There are therefore no connectivity or privacy issues.
  3. When playing against your friends, there are no limits on the number of simultaneous games you can play, or the frequency of moves, as there are with some other multiplayer games.

How to Play

Each player draws lines to complete a path from one side of the board to the opposite side.  You try to complete a path between the top and bottom of the board, while your opponent tries to complete a path between the left and right sides of the board.

Game Playing Area

You can draw lines only between blue dots and your opponent can draw lines only between green dots.  You can't cross your opponent's lines and they can't cross yours, so you can block your opponent's progress with your lines and they can block your progress with theirs.  There's no need to start at one end of the board and go in sequence to the other.  You can draw your lines anywhere.  You will win if some of your lines eventually link up to make a complete path between the bottom and top of the board and lose if your opponent completes their path first.

The latest move is shown with a thin red line drawn on top of it.  You can choose what move to make by touching the area of the screen between two dots you would like to connect.  You can also use the directional pad keys or a trackball.  You can change your mind as often as you like before actually making the move.  Once you are satisfied with your move, press the "Make Move" button, if playing against the computer, or "Send Move" button, if playing against another person.  When using the directional key pad to select a move, press the center button to toggle the direction of the line from vertical to horizontal.

Multiplayer Games

It's particularly fun to compete against your friends.  You play on your phone and they play on theirs.  Note that each player must have the Pipe Layer game installed on their Android device.  If you invite somebody to play and they don't already have the game installed, they will receive a text message saying that you'd like to play and telling them how to install Pipe Layer on their phone.  When you send an invitation or make a move, if it's your turn, the other player sees a notification indicating that there is an invitation to accept or reject, or that it is now their turn to move.  There is no time limit to a game.  Play over the course of a few minutes or a few months.

SMS Messages

Pipe Layer exchanges invitations, moves, and responses with other players using SMS messages (aka, "text messages").  On the receiving side, Pipe Layer receives these messages and performs game operations, notifying the user when their opponent has made a move or invited them to play a game, for example.  Some plans charge extra for SMS messages, so be aware of the SMS usage.  Pipe Layer sents one SMS message for any of the following:

  • An invitation.
  • An invitation response.
  • A new move.
  • If a player quits the game.
  • If a player reminds the other to move.  How often you can remind your opponent to move is limited.  Your first reminder cannot be sent for at least an hour after you've moved.  After that, you can send at most one reminder per 24 hours, for that game.
  • A game probe.  If you invite somebody to play and you've never played with them before, a "probe" is sent to see if they have Pipe Layer installed.  This is a normally-formatted text message that will be readable to somebody if the game is not installed.  A probe is sent to a user only once, when you first invite that user to play.  On subsequent invitations, there is no need to send a probe.
  • A probe response.

Single-Player Games

You can practice your technique by playing against the computer.  The default difficulty is "moderate" and can be changed using the "Settings" menu item.  Note when using the higher difficulties, it may take a noticeable amount of time for the computer to choose a move.  You can change the difficulty of a game in progress by changing the difficulty setting at any time.  The computer is not a particularly strong player, so you'll probably prefer multiplayer games against your friends!

Unlimited Simultaneous Games

You can have several games running at the same time, some against the computer if you wish, and against various friends.  You can even
play multiple simultaneous games against the same friend.  All of your active games are shown on the first "introduction" screen.

Introduction List

Permissions

We think it's important that developers disclose what their applications are doing with certain permissions, so here is our description for this application.  The following standard Android permissions are needed for the game.  This is an explanation of each permission and a description of what it is used for:

  • SEND_SMS, RECEIVE_SMS -- The program sends and receives SMS messages to exchange invitations and move information.
  • READ_CONTACTS - This permission is needed to translate a phone number into a display name from your contacts list, and to fetch an image thumbnail of the contact to display on the screen that contains a list of in-progress games.  This permission is also needed to launch the "contact picker" activity, to let you easily choose your opponent from among your contacts.
  • WAKE_LOCK - This permission is used to briefly prevent the device from going into a low-power sleep mode.  When an SMS message destined for the program is received, an Android "service" is created to process it.  The service parse the message, updates the game information, and raises a notification.  A "wake lock" is used during this time to prevent the phone from sleeping.  Rest assured the wake lock is held for as brief a period of time as possible, and the service does not run all the time.
  • VIBRATE - This permission is needed to provide haptic feedback indicating you have touched a part of the playing area, but that it is not valid to place a move there.
  • RECEIVE_BOOT_COMPLETED - When you make a move or invite a friend to play, there's a chance that you don't have phone service at that time.  In a case like that, the program periodically retries sending the message.  This permission allows the program to run when the device has finished booting up to check if there are outgoing messages that need to be sent.  If the outgoing queue is empty, very little code runs at bootup, and
    service that performs this check completes immediately so there will be no unnecessary memory usage on your device.
  • WRITE_EXTERNAL_STORAGE - This permission is used to export the program's database to the SD card for offline debugging.  If this proves to be not very useful, this code will be deleted and this permission will no longer be required.

Content Rating

The Android Market recently introduced a content-rating system for applications.  This application is rated "Low Maturity".  According to Google's guidelines, it cannot be labelled "Everyone" since it enables "communication between users".  Our application can send game moves and such to another user and even allows the user to include a short text message with the move.  We assume this communication falls into the definition of that phrase.

Install Pipe Layer on your Phone

Go to the Android Market page for Pipe Layer to install the application from a browser.  Alternatively, if you have a program like Barcode Scanner installed on your phone, you can scan this barcode to direct the Android Market application on your phone to view the Pipe Layer application.  You can then download it if you wish.

QR code

Version History

If you are interested in the evolution of Pipe Layer, here is the version history so far.