Upload
gaurav-roy
View
98
Download
0
Embed Size (px)
Citation preview
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
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
INDEX SHEET
1. Project Description
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
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.
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.
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.
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.
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.
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.
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.
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.
5. Implementation Notes5.1 Code Layout
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
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
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
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.