Assignment 7: Word Game Part 3: Two Player Communication

This is an individual assignment.

This is the first part of an assignment where you enhance your word game to have two player capability (and for 5520 students, some additional sensor capability). Read Assignment 8 now, which describes the ultimate goal. You will need to both design and implement a two-player version of your word game; students registered for 5520 must also use some type of sensing in the game (although the sensing only needs to be included by the next assignment). To do this, you will need to be creative and use some of the rapid design techniques we have discussed and read about in the class. The more you work out your design carefully in advance, the easier the programming will be. Just for emphasis, the more you work out your design carefully in advance, the easier the programming will be. As discussed in class, your app design and the complexity of programming that app are linked.

In this part of the assignment, you will design the game extensions on paper and write the test code you need to make a robust Android program that puts/gets information to the Internet using Firebase and sends notifications to support a multi-player, asynchronous and synchronous game play using Google Cloud Messaging (now known as Firebase Cloud Messaging). Sample code using FCM will be provided (see Piazza).

First, do the fun work of designing a new, great extension to your word game:

In no more than two pages, using text or sketches of screenshots explain how your design for a two player game will work. We should be able to read this description and understand how you plan to design the synchronous and asynchronous two player modes, and what the app will do for various edge conditions. For students in 5520, this design should also clearly explain how sensors will also be used in the two player game.

Next, start programming.

For this assignments, you do not need to work on the graphics or the actual two-player interaction game play. You just need to demonstrate that you have worked out the app-to-app communication strategy and the storage of data remotely, and that it works robustly. As in other assignments, include an Acknowledgements screen.

For storing data in the Cloud, you will use Google's Firebase system. You will need to determine how you will structure that online information, but the focus of your work on this assignment is on the client side (i.e., keep your server-side implementation as simple as you can.)

Important considerations:

Your assignment should be added to your existing alpha app on the Play Store. Add a new button on your apps initial screen, "Communication", which will start your game and have the test code included. As in other assignments, do not add a new icon and launcher, and your previous assignments should still function. Your app should then have 7 buttons: About, Generate Error, Ultimate Tic Tac Toe, Dictionary, Word Game, Communication, and Quit.

As you complete this assignment and have “aha!” moments where you figure out tricky things that might hold other people up, you should help out your classmates on Piazza.


Your app should be available on the Play Store by the assignment deadline, and your Git repository should be up to date with your code (and easily buildable from scratch should we need to download it and compile your project). Your Bitbucket Git repository and feature tracker should show that you are incrementally and effectively using the tools.

If special instructions are needed for us to see how to test your code, please provide them in your write-up.

Email the written part of this assignment with the subject line "Assignment 7: [YourFirstName] [YourLastName]" to the TAs and as a PDF file named [YourFirstName][YourLastName].assign7.pdf by the deadline.


You will be graded based on how well you demonstrate that you have worked out the app communication (testing your code) and evidence that you have thought through all aspects of how to design your two-player modification to the game (reading your write-up).

Although it is subject to tweaking, this table will give you a sense of how you will be assigned points.