Assignment 5: Word Game Part 2: Addictive Word Game
This is an individual assignment.
Note: This assignment will be VERY time consuming for those completely new to Android, and especially for those also brushing up on Java. Please start early!
The purpose of this assignment is to help you learn more of the basics of creating Android apps and to move you towards an interesting project. To make that simpler, you are starting with the Sudoku example from your textbook and turning it into a different, fully-functional, addictive word game that we will call WordFade. WordFade will be an unusual twist on a game called Bananagrams, which is itself a variation on Scrabble (see http://www.marblesthebrainstore.com/files/rules/Bananagrams_Rules.pdf and http://www.wikihow.com/Play-Bananagrams).
The Sudoku game is similar to your new game in some respects.
All the basic components that you need to create a WordFade game are in your prior Dictionary assignment or used in the Sudoku game, such as use of 2d graphics. Your goal is to study the Sudoku code (reading the chapters in the text related to it) and figure out how to modify the Sudoku game into a functioning single-player WordFade game. The game can have a simple look and feel, but it needs to work robustly.
In this assignment, you will both design the details of the WordFade game and program the single-player version. In later assignments, you will make the game multi-player. Word games can be simple to master yet, for many people, totally addictive. Small variations in game design can make the games more or less fun to play. Scrabble, Boggle, Letris, and Bananagrams are all hugely popular. Now it is your turn to design and program a new, creative variation. In addition to programming the game, you will need to develop a unique design spin on the interaction and game play. You are not duplicating the any particular word game app, but instead creating your own unique and interesting (and hopefully addictive) variation.
To get started, study and play Letris, Boggle, Dabble and some other similar word games. A search for Boggle and Word Games on the Android Play Store will turn up many great ones. In particular, look for the Boggle and Scrabble variants because you can see how small twists on a similar game concept can lead to different gameplay experiences. See ICED (Lite), BoggleDroid Lite, Dropwords, WordTwist Lite, etc. Please do not skip this, because you will see how small changes in the game design (and in the GUI design) can impact overall experience. Bananagrams is the game most similar to WordFade, so you should play that as well. The best way would be to play it with the physical parts. If you don't have the game, cut out letters and play with some friends. Watch a video or two of people playing Bananagrams. Make notes about what you and your friends like or don't like about game design and interaction.
Now, you need to consider WordFade and it's unique gameplay. WordFade is not a game that exists today, at least to our knowledge (if you find a variation of this game on an app store, please let us know). WordFade is Bananagrams, but with a special twist, which is that once a valid word is placed on the board, the word will gradually fade away. When the word completely fades away, it is gone from the board forever. Here are the rules you must have. Note that you will have to fill in the details with your own design.
In short, the goal is to create as many connected words as possible, without having a negative score, and without having words disappear that were connecting other words, leaving orphaned words. As words fade, each on their own schedule, the player must think of new words to attach to those words, in order to firm them up again (i.e., resetting their timers). If players cannot use the letters they are given, they must pay a penalty, dumping the letters to get new ones.
Here is an example. A player, Bob, starts off with 21 letters in his rack, selected from the distribution above. He has the letters L I B M O E among them and puts the first word "MOBILE" on the grid horizontally, earning 9 points. Bob then uses P, N, E, and H letters in his rack to add the word "PHONE" to the board vertically, connecting it through the O. This would add 8 points, for a total of 17. The MOBILE word resets to full strength when PHONE is completed. As Bob continues to play the game, he adds more words, connecting them through PHONE. He splits to get new letters as he runs low, trying to use as many letters as he can before he does, and he occasionally dumps letters he can't use, paying a penalty. All the words are fading at different stages. At some point, he can't find a way to connect any new words to MOBILE, but he has an I in his rack, so he places it on the MOBILE I and MOBILE resets. Later, MOBILE totally fades out (he was unable to save it) which strands the word PHONE, which is no longer connected to the rest of the words on the board. The game ends.
This is a new word game, it may be necessary to slightly modify or extend these rules to make the game work. You may have ideas for ways that you can make the game more fun and distinctive, and you are encourage to include them.
Your game must have the following:
You should use the same word list from Assignment 3.
For extra credit, your game could have one or more of following additional features:
You are building this game for educational purposes only, not for actual release, so feel free to grab graphics from any source and use them in your game if you want. Do NOT grab them from any Bananagrams app, however. You must also clearly specify on your Acknowledgements screen where you obtained all content and help. As in Assignment 3, we expect that you will be very detailed in your acknowledgements so that we can find the source of all images, sound, content, and code snippets you used, and who provided you with tips/ideas/help.
(Important: For an actual game that was being released you would need to design the graphics yourself or get permission to use all graphics you incorporate, therefore, if you do want to use this app outside of class someday, you might want to design your own graphics or find graphics that you know do not have copyright restrictions. If you design your own graphics/sounds/content, you can list this in the acknowledgements.).
Your game should be added to your existing app on the Play Store (alpha testers). Add a new button on your apps initial screen, "Word Game" that will start your game. Your main app on the Play Store will then have these 6 buttons: About (with your info), Generate Error (generates error), Sudoku (runs Sudoku from Assignment 1), Dictionary (runs Assignment 3), Word Game (runs this assignment), and Quit (exits). Do not add a new icon and launcher for this game ... your single NUMAD15S-[FirstName][LastName] will launch the menu of buttons, and Word Game will launch this app. Your prior assignments should still function as they did when you turned them in (or fixed them, thereafter).
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.
This is an individual assignment. You should not be working with a partner, and you should not be sharing code. You may ask high-level questions about how to accomplish goals on Piazza, but you should not be copying ANY code from classmates.
Your app should be available on the Play Store (alpha version, not open release) 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). You Git repository should show that you did incremental commits as you went along. We do NOT want to see a single commit right before the due date. We want to see commits incrementally as you work on this assignment, usually multiple in a single work session. Your Bitbucket feature tracker should have evidence that you are using it to plan your work and track bug fixing as you go.Evaluation/feedback:
You will be graded based on how well you follow the instructions above using the app that is downloaded from the Play Store at the time we grade it. What this means is that if you find a bug in your app, you should fix it and update the app, because you may get lucky and do this before your assignment is graded! Your application will be tested on an actual Android phone, not the emulator.
Although it is subject to some tweaking, this table will give you a sense of how you will be assigned points. Crashes will be reported to your Google Play development console, when possible, and some comments will be entered directly in Bitbucket.