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 9 now, which describes the ultimate goal. You will need to both design and implement a two-player version of your word game; students regisered 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 and sends notifications to support a multi-player, asynchronous and synchronous game play using Google Cloud Messaging. Sample code using GCM 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.

You are free to store data on the web using whatever method you wish, but we have sample code to help you use a service called Parse. Information will be posted on Piazza. You can save simple key-value information similar to you would on a SharedPreference object.

You may not use any third-party service or API other than Parse, and that should only be used for the remote data saving, not for the push notification.

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, Sudoku, 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.

Hand-in:

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 repostiory 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" to the TAs and ...@neu.edu as a PDF file named [YourFirstName][YourLastName].assign7.pdf by the deadline.

Evaluation/feedback:

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.