CST 401 Spring 2014 Adviser: Dr. Kate Lockwood 5/15/14
Table of Contents 1 Abstract...1 2 Executive Summary..2 3 Introduction....3 3.1 Background / Problem Statement...3 3.2 Target Audience....4 3.3 Literature Survey...4 4 Solution Description.....6 4.1 Project Description....6 4.2 Goals and Solution....7 4.3 Other Possible Solutions and their differences.7 5 Deliverables8 6 Methodology......9 6.1 Implementation...9 6.2 Resources.10 6.3 Skills...10 7 Changes to Project.11 8 Budget.........................................................................................................................12 9 Timeline.......................................................................................................................13 10 Evaluation.14 10.1 Test Plan....14 10.2 Results of Testing.14 10.3 Changes Resulting from Testing14 11 Collaboration Statement..15 11.1 Special Thanks..15 11.2 Work Breakdown...15 1 CST 401 5/15/14 Tank-Me-On 1 Abstract In recent years, there has been a significant jump in the number of people who possess smart phones. As a result, there has also been an increase in the popularity of mobile games, particularly ones that allow people to play with their friends. People always have short periods of time while on the go where they want to kill some time and with the increase in the number of smart phones, more people are turning to mobile games to fill these time gaps.
However, there has been a slight problem in the mobile game market, however. Many of the games that are developed are either strictly multiplayer or strictly computer based. This limits the functionality of the game and can hinder the playability of the application overall due to this division. Players usually become bored of games where they can learn how the computer acts while becoming frustrated when they are unable to play against their friends because they are not able to take their turn.
On top of this, many of the multiplayer games that exist are word based games, and while these games can be fun, can become monotonous when the market is flooded with these games. This paper will discuss the problem as well as our possible solution to the problem with our mobile game called Tank-Me-On.
2 CST 401 5/15/14 Tank-Me-On 2 Executive Summary There are currently little to no mobile games that allow users the choice to play against a human or AI opponent. This limits the versatility of the game and prevents users from experiencing different styles of gameplay. Players who are only allowed to play against a computer opponent soon become accustomed to how the computer acts and can respond accordingly. While the game may offer harder difficulties that have the computer act differently, eventually a player will be able to learn all and react to any of the difficulties.
The other problem occurs when the player is only allowed to play against human opponents, the problem arises when their opponent does not take their turn in a timely manner. Since people have different schedules and events in their lives, there is no way to predict how quickly the players will take their turn, and as a result, predicting the duration of a game is impossible. Players may be waiting for extended amounts of time when looking to get a quick game in.
This project will design a mobile game application that allows a user to start a match versus a computer or human opponent. On top of this, the project will attempt to allow users to create a locally saved branch game from an existing human opponent game where the user will be able to have the AI take over for their opponent. The original game will be stored on the server, thus unaffecting their game with the opponent, while allowing more playability for the user. The user will be able to return to their original game with the opponent at any time or once the opponent has made their move to continue with the game. With this functionality, this game aims to end the monotony associated with other PvP games as well as to give users a more dynamic gaming experience. This document will cover the information, processes, and projections for the prototype application.
3 CST 401 5/15/14 Tank-Me-On 3 Introduction / Problem Statement 3.1 Background and Problem Statement Entertainment is one of the biggest, if not the biggest, industries in the economic market today. While classifications within the entertainment widely varies, the gaming industry is one of the larger sections of entertainment. Console and PC gaming has dominated this industry for decades, but with the development of mobile technology, there is now a shifting trend towards a new realm: mobile gaming.
Mobile gaming has introduced users who normally would not sit down for extended periods of time, as with console and PC gaming, to the gaming market with the functionality and design of being playable for short increments of time, such as everyday scenarios like waiting at a bus stop or sitting in a waiting room at the doctors office.
Due to this quick play model, mobile games have been designed and developed in ways that will allow a player to just pick up and play for periods of 15 minutes or less. To compensate for this time constraint in PvP games, most games follow a system that allows players to play the game at their own leisure. When the game is started, the first player takes their turn, the updated game is then sent to the server, send a push statement to the second player, and await the move from the second player.
This is a great system for gaming, but because these games are focused on this method of development, it limits the functionality and playability of the game. The player is restricted to only being able to play against other players, therefore, if they have no possible turns left to make against their opponent(s), they can no longer play the game. This is especially true when their opponents do not take their turn on a timely basis due to outside influences. Another issue that results from this model is that the genre is limited. Many of the games are focused old games like Scabble (Words with Friends), Boggle (Scramble with Friends), and Hangman (Hanging with Friends). These are all good games, but are all along the same general concept, which some people may 4 CST 401 5/15/14 Tank-Me-On consider a bit stagnant. These two issues can make games become less appealing during continued usage, or lack there of.
3.2 Target Audience The target audience of this project is all mobile game users, both potential and current. The game that is being developed will be developed so that users will still be able to play a casual game with other users at their own leisure, but at the same time, adding more functionality that will allow players to play without needing a human opponent to have taken their turn. The concept is also a homage to an early Nintendo game series called Advance Wars (formerly Famicom Wars), which people have heard/played before and will add a new variation to the games that are currently on the market.
3.3 Literature Survey For the first issue of playability restrictions, there are games available that are played against NPCs (non-player character), however, these games do not include multiplayer functionality at all, or if they do, they are not the play at your own leisure multiplayer systems. Examples are games like Army of Darkness, Lux Touch, Temple Run, or Jetpack Joyride. Games that use multiplayer functionality, but no computer option, include games like the withFriends series, Zynga Poker, and Draw Something.
For the second issue of the lack of genre, there are several possible games out there on the mobile platform, including action, shooters, card, and others. Examples of these games can be Gems with Friends, Chicken Revolution Warrior, EA Hunting, and Rock Band.
In terms of games that address both issues, they are currently limited. One example of this game would be Rock Band, where players may work in cooperation with friends to play to songs. This is different to the current limitation of word or tetris based games, however, there is no PvP functionality other than leaderboards. There has been one popular game that somewhat falls into the category of this project, Clash of Clans. This 5 CST 401 5/15/14 Tank-Me-On game allows players to play against the computer as well as against other people, but the game play for the multiplayer is not necessarily PvP because it involves raiding an offline persons village and based off of numbers from equipment, weapons, allies, etc, produces a result. There is no interaction with this style of gameplay from these battles other than having the option to raid them back. However, the style of this game makes it so that one player may have an overwhelming advantage, and thus, will not be able to successfully attack back. This is also not a turn-based strategy game, and thus, is different from this project.
6 CST 401 5/15/14 Tank-Me-On 4 Solution Description 4.1 Project Description This project will provide Android phone users a turn-based strategy game that can be played against an opponent, an A.I., or both. The game will feature a number of different units each player can deploy as well as territories that can be captured. At the beginning of the players turn, they are allotted money based on the number of territories they have captured, the more territories owned, the more money gained. The game is over when either all of an opponent's units are destroyed or territories get captured.
If the user chooses to start a game against another person (PvP), they have the option, at any time, to branch that game off to continue the fight against an A.I. Branching a PvP game to play with an A.I. will not affect the original PvP game and when returned to, all units and territories will be just as the player left them before the branching.
7 CST 401 5/15/14 Tank-Me-On 4.2 Project goals and Solution The primary goals of this project are to have a working prototype version of the game with PvP and A.I. implemented. The secondary goals of the game are to get the branching feature working where a user can split their PvP game off at any time to play against the A.I. Some other extra goals include game art, having three to four player functionality, extra game mechanics, and having multiple maps.
This project solves the problem of online player versus player mobile games that make you wait for your opponent to make their move by giving you a new type of online game with gameplay that can start out against a player, but be finished against an A.I. All current online mobile games against people restrict you from continuing a PvP against and A.I. So if one player does not take their turn, the game is locked down until they do or eventually the game is lost.
4.3 Other Possible Solutions and Their Differences Other PvP mobile games do offer both PvP and player versus A.I. capabilities but fail to integrate both of them. Either a game is created against an A.I. and must be finished against the A.I. or the game is created versus a player and finished against the same player. None of the games currently allow you to take a single match against a player and switch between playing the A.I. and your human opponent.
8 CST 401 5/15/14 Tank-Me-On 5 Deliverables The Tank-Me-On application which will include: o PvP game play where the user can challenge and play against another person o AI implementation for skirmish where the player may play against the AI Sprite sheets; Very basic designs that will be replaced later if continued; These are included in the program itself.
9 CST 401 5/15/14 Tank-Me-On 6 Methodology 6.1 Implementation The first phase of this project was establishing the game pieces and the environment for them to live in i.e. map/terrain. The units needed to be able to move around the map and engage in battles against other units. The map/terrain will need to have different types of terrain like rivers, roads, forests etc. that will affect the defensive powers of the units as they battle.
Adversely, certain terrain should prohibit certain units from going on it. For example, tank units should not be allowed to traverse into the ocean. In addition to limiting terrain, units should be limited to who they are allowed to attack i.e. certain ground troops should not have the ability to attack air units.
The next phase was implementing the two critical functionalities for this application. The first being the PvP functionality between two Android devices and the second being the implementation of the AI. Using the basic resources created in the first phase, testing worked out some of the bugs that existed in the code and allowed for further development.
While time did not fully allow for completing the third phase which was the branching of the saved game to a local copy controled by the AI, the functionality is partially written, it just needs a little more testing for full implementation.
Time did not allow for the completion of the extra goals, functionalities such as 3-4 player battle, tag team matches with all human players or a mix of human and AI players, new and improved game art, more maps, game mechanics, and game modes.
10 CST 401 5/15/14 Tank-Me-On
6.2 Resources Hardware Computers Server 2 Android devices o Samsung Galaxy o Samsung Nexus 7 Software Unity3D Gimp/Paint/Pixlr
6.3 Skills The skills for this project came from classes, previous and current, experience, and brainstorming. This also includes researching skills for searching online documentations and libraries written for the development of Unity and Android applications. While we did not necessarily have the current skills at the beginning of the project, we have made a lot of progress and have learned a lot about programming in C# and Unity3D as well as logical thinking and AI programming.
11 CST 401 5/15/14 Tank-Me-On 7 Changes in the Project Originally, the project had projected the possibility of multiple AI behaviors. The project was going to try and introduce variations to the game AI behavior to include more defensive, aggressive, and balanced behaviors to add some variation to the game. Unfortunately, time did not allow for this implementation because of some unexpected debugging errors that took up too much time to fix.
Another change to the project is that the game was going to have a fully functional graphical user interface that would allow the user to navigate the application easier. Currently, there is only a basic interface that plots out the basic functionality of the application.
One last change is that originally, deliverables listed were map designs, gameplay concept charts, and an in game manual on how to play. Currently, there is only one map (the testing map), no real gameplay charts, and no manual has been made.
13 CST 401 5/15/14 Tank-Me-On 9 Timeline Task Time Completing Unit List 1 Day Creating basic map for testing 7 Days Programming unit list and functions 10 Days Getting units onto screen in Unity 3 Days Units able to move over terrain 1 Day Unit movement restriction 1 Day Enable battle functionality 3 Days Saving games locally 3 Days Saving games to database 7 Days Creating game AI 10 Days Implement game AI (includes testing) 7 Days Creating user interface and login 5 Days Debugging and testing 18 Days
14 CST 401 5/15/14 Tank-Me-On 10 Evaluation 10.1 Test Plan The testing for this project was a very methodical process. While the code overall was written in advance due to unforeseen circumstances, when the code was implemented into the project, each function was added one at a time. When the function was added, all other functionalities were tested to ensure that nothing broke the previously implemented code. Whenever the implementations did not work right, the code was examined and research was done in order to fix the problem. When there was a lack of information, trial and error processes were used.
10.2 Results of Testing There were two primary forms of testing that were used: unit and functionality. While no automated unit testing was implemented, as each portion of the code was implemented, the code was thoroughly tested to ensure that the code was working for all of the predicted cases. The second form of testing, regression testing, was done concurrently with the unit testing. When each portion of the code was implemented, tests were done to ensure that the rest of the application was still fully functional. While testing, there was one problem that was encountered that we were not fully able to solve involving the use of recursive functions.
10.3 Changes Resulting from Testing As a result of the recursion bug freezing Unity, we removed the recursion function from the project temporarily. That being said, we made a change to the gameplay where all land units are now able to traverse mountain and river tiles. The recursion may be implemented again later.
15 CST 401 5/15/14 Tank-Me-On 11 Collaboration Statement 11.1 Special Thanks Moises Melano Created the name for our application
Maggie Corrales Gave advice in how to create our poster and other graphical ideas
Kate Lockwood Giving advice and keeping us on top of our project
11.2 Work Breakdown This project was a collaboration between the two members Taber Shimono and John Wesolowski. Even with the introduction of unforeseen circumstances, the project work was very well divided. Taber Shimono was in charge of working on the majority of the game logic and back end code while John Wesolowski was in charge of working on the majority of the front end code such as the user interface and the graphical implementations of the game. Both worked on the implementation and debugging of the code through pair programming.