Know Your Movie

21
Know Your Movie Team Name : Syntax Err0r Team Members : Student Name Year of Study Branch Gaurav Roy Second TE Sindhu B Manjunath Second EC Mohit Surana First CS Susheel Suresh First CS STUDENT NOKIA DEVELOPER NOKIA LAB SUMMER INTERNSHIP (09/06/2014 to 19/06/2014)

Transcript of Know Your Movie

Page 1: Know Your Movie

Know Your Movie

Team Name : Syntax Err0r

Team Members :

Student Name Year of Study BranchGaurav Roy Second TESindhu B Manjunath Second ECMohit Surana First CSSusheel Suresh First CS

STUDENT NOKIA DEVELOPER

NOKIA LAB SUMMER INTERNSHIP (09/06/2014 to 19/06/2014)

PES Institute of Technology, Bangalore (Autonomous Institute under VTU, Belgaum)

100 feet Ring Road, BSK 3rd stage, Bangalore-560085

Page 2: Know Your Movie

Know Your Movie

Manager : Mayank B A Lab Head : Dr. A. SrinivasSignature : Signature :

PES Institute of Technology, Bangalore (Autonomous Institute under VTU, Belgaum)

100 feet Ring Road, BSK 3rd stage, Bangalore-560085

Page 3: Know Your Movie

INDEX SHEET

1. Project Description

Page 4: Know Your Movie

Know Your Movie is essentially a Quiz game testing the user’s ability to identify the movie by hearing a famous dialogue taken from that movie. The user competes with another random user and they are taken through five thrilling rounds. Time is of the essence as your score depends on how fast you answer the questions. Targeted at Windows Phones running Windows 8.0+, our app is one of a kind as other similar apps display static, uninteresting text offering only single player gaming. Social integration and leaderboard services ensure that our game is engaging and competitive.

2. Scope Deliverables

2.1 Project Deliverables Screen Design : 1. Panorama (LoginPage)

2. Pivot (MainPage) Online interaction with Database (App42 and Appwarp) Appwarp account creation Social Integration with Facebook Results XP and Player Level Leaderboard

Page 5: Know Your Movie

3. Design

3.1 User Interface Design

General Approach

The process of finalizing this product contained several steps. First, four low-fidelity prototypes were designed. From these prototypes, the high-fidelity prototype was generated. This high-fidelity prototype was tested by users. Based on the usability test feedback on the high-fidelity prototype, it was modified. In addition to user feedback, additional modifications were made after re-evaluating some organizational and functionality issues of the game. Through this process of evaluation and re-design, the high-fidelity prototype transformed into the final product. The final design was made in Visual Studio 2013 and contains seven different page types. These pages include Instructions, Login, Registration, file loading, quiz page, and result.

Page Transitions

Figure 1: Transition Diagram for game interface

On game entry, the user is provided with the general instructions of the game. Then he must log in. There are two ways of logging in: by registering as a new user or by logging in as a returning player. After a successful login, the user is brought to the main page where he can enter the quiz, view his profile or the game leaderboard.

On clicking on one of the given categories (Bollywood/ Hollywood), the user is brought to the loading screen where he waits till he is connected to another opponent and his audio clips are loaded. Then he enters the game.

Page 6: Know Your Movie

The user has to play five rounds with the opponent and the player with the higher score is declared the winner.

Page Descriptions

Figure 2: Instructions Page

The start screen is the instructions page (Figure 2) where the user gets a basic gist of the gameplay. This page has five screens (Panorama items) for five instructions.

Once the user has gone through these, he can proceed to the login page by clicking the “Let’s get started” button.

Page 7: Know Your Movie

Figure 3: Login/ Register Page

On the sign in page (left image), the user must sign in with his Appwarp username to play the game. If the user is new to the app, he can create his own username and password combo (right image). Usernames must be unique.

On successful registration, the user is redirected to the sign in page where he has to log in with his newly created username.

On successful login, the user is redirected to the main page.

Page 8: Know Your Movie

Figure 4: Main Page

On the main page, clicking either the “BOLLYWOOD” or the “HOLLYWOOD” button (left image) will take the user to the loading page where he is matched with a random opponent and the appropriate clips are loaded.

The image on the center shows the profile page of the user where he can view his stats.

The image on the right is the leaderboard where the user can see the masters of the game and their respective levels.

Page 9: Know Your Movie

Figure 5: Loading page

The loading page is where the user waits while he is matched with a random opponent and all the audio clips, required for the game rounds, is loaded. For the user’s leisure, we have also put a trivia on the page.

Once the loading is done, the user gets redirected to the Questions page where he will play the game real-time with the opponent.

Page 10: Know Your Movie

Figure 6: Question page

Figure 6 shows the questions page where the user plays five rounds with the opponent.

The left image shows the basic layout of the page and the right image shows how the page will look in-game. In order to win, the user must get more points than his opponent. Each round has two timers.

The first is the BONUS timer, which starts when the audio clip is first played and has the same duration as the length of the clip. While this time is ticking down, the user can answer to get bonus points (2x). But, if he guesses the wrong option, then he is penalized with negative points.

The second time is the MAIN timer, which starts ticking after the BONUS timer expires, and has duration of 5 seconds. The user may answer without worries during this timer tick as there is no negative marking here. However, he will be awarded a maximum of 20 points during this timer tick, as opposed to a maximum of 30 points in the BONUS timer tick.

Once, 5 rounds are over, the user gets redirected to the Results page, where he can see the final score and the outcome of the match.

Page 11: Know Your Movie

Figure 7: Results page

The Results page is where the user can see the final outcome of the game and navigate back to the main page.

On “Back” button click, he is disconnected from the current instance of the game and taken back to the Main page where he may play another game.

Page 12: Know Your Movie

4. Tools And TechniquesSince our game was developed for the Windows Phone, we made use of the following tools based on C# and .NET framework:

Microsoft Visual Studio 2013 Windows Phone 8 SDK SQLite Plugin for Windows Phone

For Design purposes, we used:

Adobe Photoshop Google Picasa Microsoft Paint

For Social Integration: Facebook Client SDK

And for extracting and compressing the clips: Audacity

For team collaboration: http://www.collabedit.com Google Drive

Majority of the Backend code simplification and Server facilities were provided to us by ShepHertz Technologies Pvt. Ltd. (http://www.shephertz.com/). We have extensively used their external libraries through API calls originating from our app.

Page 13: Know Your Movie

5. Implementation Notes5.1 Code Layout

Page 14: Know Your Movie
Page 15: Know Your Movie

5.2 Libraries

The following libraries were referenced:

.NET for Windows Phone App42 Windows Phone SDK AppWarp Windows Phone SDK Facebook and Facebook Client Microsoft.Phone.Controls.Toolkit Newtonsoft.Json.WindowsPhone SQLite for Windows Phone

Page 16: Know Your Movie

6. Test Cases and Results

For testing the application we used a WVGA 512MB Emulator on a Windows 8.1 Pro computer and a Nokia Lumia 820 phone.

Sl. No.

Test Description

Input Expected Output Pass/Fail

1 User Sign in Username & Password Authenticated server message & Session Id.

Pass

Invalid username/passwordUsername does not exist.

Fail

2 Create user Username, E-mail & Password

Authenticated server message

Pass

Username already exists

Fail

3 File Upload Service(for AUDIO Files)

File Name, File Path, File Type, File description

On Success message from server & File URL

Pass

File not found Fail4 NoSQL Storage

ServiceDatabase name, Collection name, Document Type(i.e. JSON)

On Success message from server and JSON document.

Pass

JSON file not found or JSON parsing error

Fail

5 SQLite Local Storage

Database path, Database Connection, Query

Successfully retrieve values like Username, No of Wins, Game Score/XP, E-mail etc.

Pass

Table not created/invalid query

Fail

6 Leaderboard Service(Save User Score)

Game Name, Username, Game Score

On Success message from server and Score Id

Pass

7 Leaderboard Service(Get Top N Rankers)

Game Name, Maximum number of records to be fetched

All usernames, scores & ranks of top n rankers in that game

Pass

Page 17: Know Your Movie

8 Achievement Service(Earn Achievement)

Username, Achievement Name, Game Name, Description

On Success message from server.

Pass

9 Achievement Service (Get user achievements)

Username Achievements, Game Name of all cases

Pass

10 Connection Check(Try connecting to app warp servers)

n/a On success – Call Join room

Pass

Retry Connection Fail

11 Join Room Room Properties <Bollywood/Hollywood>

Subscribe to room Pass

Create Room Fail12 Create Room Room

Properties<Question id’s, Available users >

Creates and joins the user to a new room

Pass

13 Connection Error(recoverable)

n/a Reconnect Pass

14 Connection Error(non recoverable)

n/a Forfeit game due to network issues.

Pass

Page 18: Know Your Movie

7. Conclusion and Scope for Future WorkDuring the course of six weeks of our intensive internship, we have grown both in terms of knowledge and team dynamics. Being paired up with new people has taught us how to gel with people of various age groups and skill sets.

When we were first given the task of developing a game for Windows Phone, we were filled with a plethora of feelings – predominantly excitement. Brainstorming sessions and thorough research gave birth to the foundation of our application project.

In our project, we combined various features like Social Integration, Leaderboard Services, User Accounts, Timers, Media Playback and most importantly Multiplayer Gaming and Matchmaking.

By the help of Shephertz App42 and AppWarp services, we were able to reduce focus on starting the backend code from scratch and were able to concentrate on the game mechanics instead.

Currently, we have successfully finished a minimalistic albeit fully functional version of our game. It has Multiplayer Matchmaking with Random Opponents to reduce wait time, Leaderboard to make it more competitive Facebook Sign in and Sharing to make it more socially engaging and Achievements as milestones.

Collectively we have decided to not leave this project here and to continually work on expanding this game. Plans for the future include:

Extracting friends from Facebook. Challenging a particular person. Expansion and subcategorisation of clip database. Matchmaking based on Player Level. Optimisation for better gameplay in 2G networks. Further Beautification and publishing onto the Windows Phone App Store.

The road to our success was not a walk in the park. Various bugs hampered our progress setting us back by a couple of days per bug. Setting up the external API, buffering multiple clips and semantic glitches were few of the numerous bugs we encountered. Fortunately, we were able to complete our project on time as we had accounted for such setbacks by providing two weeks for backlog in our schedule.

We are sure that this internship has taught us a great deal and will serve as a foundation towards the never ending growth of our skills. And we, as developers, sincerely promise to always try to quench our insatiable thirst for knowledge.

We would like to thank Mr. Srinivas for providing us with this opportunity. And a special mention to Kanishka Jaiswal, Mayank and all the other mentors who have continually provided us with suggestions, encouragement and support.