Kickshot

KickShot is an app based on the board game of the same name by Aziz Makhani. The game is split into three levels of play, aptly named Level 1, Level 2, and Level 3. Each successive level introduces additional complexity to the game. Level 1 was completed during the Fall 2014 semester. This semester's team has been tasked with implementing Level 2.
== Problem Definition ==
=== Background ===
KickShot is a soccer board game conceptualized by Aziz Makhani, a local soccer referee. KickShot includes three levels of play and the iteration being implemented this semester is Level 2. Level 2 builds off Level 1 by adding cards, new rules, several ways to score a goal, and two halves of play. Eventually, Level 3 will add even more cards, along with additional rules and a difficult AI opponent.
=== Deliverables ===
This semester's team aims to deliver a finished Level 2 version of KickShot that includes:
*7 playable cards
*New Rules that provide more options for offense and defense
*Several ways to score 
**Shooting left or right, which can be blocked with the correct card
**Passing into a goal
**Direct free kicking into a goal
*2 halves of play that end when the players run out of cards to play
=== Specifications ===
There are several important requirements for KickShot. The most obvious requirements are that it be bug free and fun to play. Ideally, KiskShot should also be intuitive, requiring little explanation of mechanics. Lastly, KickShot must be cross platform. KickShot is currently being implemented in Unity3D, to allow for 3D graphics and cross platform compatibility. The first semester the Panda.js game engine was used. Kickshot can be played in a web browser, as well as on smartphones, tablets, or computers.
=== Challenges === 
This semester's team chose to roll back last semester's changes in favor of writing clearer, more easily extensible code. 
Other considerations of implementing the board game include:
*Adding cards to the game
**Data structure 
***Manage multiple decks of cards and hands 
**Graphics and animations
***Drawing cards
***Playing cards
***Viewing cards in hand 
*New set of rules
**Redesign turns 
***Able to pick a card and play it
***Cards have unique rules
****Roll-offs between players
****Goal scoring attempts
****Goal blocking attempts
****Intercept attempts
****Pass attempts
**Rule enforcement
***Cards can only be used a appropriate times
***The player can only have so many cards at a time
*Artificial Intelligence
**Needs to calculate possible moves
**Better AI will compare moves and choose the best one.
== Project Learning ==
Over the course of the semester, our team has learned more about the Unity3D engine we are using for development, c#, control flow, and version control.
===Design===
This semester the game was largely redesigned from the ground up. A key part of this was the use of 3D assets and how they would be implemented. The main goal of the design was to keep the game visually similar to physical counter part. The dice had to be modeled in a 3D editor and they rolling simulated using Unity's physics engine. 
==Team Information==
	 	
	Jason Alves-Foss 	Interests: Games
	Computer Science 	Interests: Games
	Hometown: Moscow, Idaho 	Interests: Games
	Email: alve6656@vandals.uidaho.edu	Interests: Games
	 	
	Tessa Saul 	Interests: Gaming, Graphics, Security, Databases
	Computer Science 	Interests: Gaming, Graphics, Security, Databases
	Hometown: Moscow, Idaho 	Interests: Gaming, Graphics, Security, Databases
	Email: saul7812@vandals.uidaho.edu	Interests: Gaming, Graphics, Security, Databases
	 	
	Carson Stauffer 	Interests: Gaming, Computer Graphics, Artificial Intelligence
	Computer Science 	Interests: Gaming, Computer Graphics, Artificial Intelligence
	Hometown: Boise, Idaho 	Interests: Gaming, Computer Graphics, Artificial Intelligence
	Email: stau2921@vandals.uidaho.edu	Interests: Gaming, Computer Graphics, Artificial Intelligence
==Documents Archive==
Current work can be viewed on Github here: https://github.com/RedCardDev/KickShotUnity
Here is a schedule for development:
Date 	Goal 	Results
9/22 	Client Interview 	
Move to Unity Cleared
9/24 	Initial Conversion 	
Foundations set in place
10/1 	Dice Rolling 	
Dice rolling
10/8 	Work towards snapshot day 	
Movable parts (Dice, token and cards) implemented
10/15	Start implementing card rules 	
Pass and intercept cards working
10/22	Work on player hand and card rules 	
Goal Shot and Goal Block cards working
10/29	Work on shuffling and turns 	
Shuffling and turns implemented
11/5 	Combining code 	
Code combined
11/17	Choosing cards and AI 	
Player can choose cards and AI can pass and intercept
12/3 	Work on poster 	
Poster completed
12/4 	Snapshot day and work on project as time allows	
Level 2 fully implemented
12/8 	Work on Documentation 	
Documentation finished
Our poster from EXPO :