Janssen Marwin Go Rahul Kumar Thakur Dr. Loretta Yi-King Choi COMP7604 Game Design & Development Dept. of Computer Science The University of Hong Kong August, 2015



Color Memory

The complete project including all documentation and design is available at:

github.com/rahul-rkt/ColorMemory


ColorMemory

August 2015

Introduction:

Portrait Orientation —

Our primary goals when starting this project were — • Minimalistic UI/UX • Simple intuitive gameplay • Natural and fluid animations • Unlockable cards and other items • Scoreboard, rewards/achievement system • Above all, a complete, playable and enjoyable game Given the strict timeline, we decided on a simple card based puzzle game where the users match card pairs to complete the game. We choose Android as our platform as the user base of Android is very vast and our game will suit perfectly for handheld devices enabling users to have a quick game anytime. We also had to incorporate the HKU theme to our game and this gave us opportunity to have card faces themes after the HKU logo.

Features: Landscape Orientation —

Design Features — • Intuitive Gestures • 3D Card flip animations • Intent and fragment animations • Layout and asset design for multiple devices and screen sizes Game Features — • Simple and addictive gameplay • SQLite based scoreboard • Multiple card packs – Open and Unlockable • Rewards feature based on combos • Different game modes – Normal, Time Attack and Endless

University of Hong Kong

pg. 2

ColorMemory

August 2015

Gameplay: General Rules — • This is a traditional memory card game. The objective of the game is to match all the cards with their respective counterparts • At every turn, the player needs to open a pair of cards • If the 2 cards match, the cards would stay open and the player get some points • If the cards don't match, the cards will flip back down and the player loses 1 point • For every consecutive match the player makes, more points will be awarded

Time Trial Game Mode — • For the time trial game mode, the player will be given 25 seconds to open as many pairs of cards as he can. If the player opens all the cards and he still has more time, then all the cards will be shuffled and flipped back down to give him a chance to get more points • For every matched cards, the player will be awarded more time • For every consecutive match the player makes, more time will be awarded

University of Hong Kong

pg. 3

ColorMemory

August 2015

Theme Shop — • This is the page where the player can change their current card theme when playing the game • Initially, only 2 themes are unlocked. More themes can be unlocked by playing through the different game modes and achieving the certain conditions needed to unlock them

High Scores — High scores are stored in a SQLite database which makes it available till the application is removed from the device. It is available from both the main menu and in-game.

University of Hong Kong

pg. 4

ColorMemory

August 2015

Challenges: Multiple Screen Sizes — There are hundreds of different android devices in the market currently, each with a different screen size and resolution. Catering to such huge array of screens and making the game look decent in each was really challenging. We did not have any physical android device with us, so this was made even more difficult. We used Genymotion Emulators and distributing among friends / family to test. In the end, we managed to somehow manage to have decent performance and visuals on the generic screen sizes having design 6 different layouts, and asset design for low dpi screens all the way to xxhdpi screens.

University of Hong Kong

pg. 5

ColorMemory

August 2015

Card Flip Animation — Getting this animation to behave as expected and be absolutely smooth was by far the most technically challenging task in this project. We use the android.graphics.Camera class, which is different from the camera class in android.hardware which is used to control the Camera on the android device. The Camera class in the android.graphic package is used to calculate 3D transformations that can then be applied to animations. This Camera class represents a virtual view as if we were looking at our Android views through a camera. As we move our virtual camera to the left, we have the effect of the android view moving to the right, and if we rotate our virtual camera, we have the effect of rotating our Android view. Here the Camera class is used to calculate a rotate transformation about the Y axis, it does this every time the applyTransformation method is called and so gives each incremental transformation that is needed to give a smooth rotation effect. Camera uses transformation matrices to store and calculate transforms. After getting the flip animation behaviour as we intended, another big challenge was to bind the animation with the multithreaded nature of android. Since the graphics and screen drawing aspects related to UI ran in the main thread in the android looper and our code ran in the worker threads, it needed some tweaking before the animations ran in sync when multiple cards were tapped on at once without hindering performance. In the end, we were very happy how the complete animation turned out.

University of Hong Kong

pg. 6

ColorMemory

August 2015

Asset Design — Since we did not want to use pre-made assets, we designed more than 70 different elements ranging from the card design, icon design, logo design, etc for different resolution screens. This was also a difficult and time consuming aspect of our project since both of us were novice in graphics design.

University of Hong Kong

pg. 7

ColorMemory

August 2015

Work Division: Feedback: During the playtesting and the game showcase, we had a mix of different comments and suggestions from different people. First for the game difficulty, mostly players find the normal game mode easy or at most average. This as expected since they had all the time they needed to match the cards. When it came to the time trial game mode, we had split comments. Some of the players say that it is too hard and that it is impossible to finish while the others say that it is average. Because of this, we decided to tweak the game a little and increase the time. From the game showcase, it seems that it was effective because a lot of people were able to get a high score in the game. The next set of comments we got are for the card designs and the UX. Most of them said that the design is good and that the animations are smooth. It re-enforced that we were able to achieve our goals as this was the primary focus of our project. Some people on the other hand made some suggestions why we only rely on the “back” function of the android to get out from ingame or high score page. Since we expect that every android device will have some kind of capacitative or physical buttons, we decided to leave it as it is as it helped in keeping the design minimal.

University of Hong Kong

We managed to keep a well balanced division of work, and both of us were involved in coding, designing and documentation. Coding — Rahul: Initial gameplay, card-flip and fragment animations, layout design. Janssen: Extended gameplay, achievements and theme shop, time-trial mode. Design — Rahul: Logos, main card set, icons. Janssen: 4 card sets. Documentation — Both were equally involved in all the documentation. The content was written by both and formatting was done by Rahul.

Acknowledgement: The HKU logo was taken from the HKU website and the Digimon images were gathered from Google Images. Other than these, everything was built from scratch by studying online articles and tutorials. This flash tutorial helped in clarifying concepts of matrix transformation which was essential for the flip-animation: http:// www.senocular.com/flash/tutorials/ transformmatrix. This android tutorial which helped with creating the fragment slide animations: http://trickyandroid.com/fragmentstranslate-animation.

pg. 8

Final Report.pages - GitHub

COMP7604 Game Design & Development. Dept. of ... as the user base of Android is very vast and our game .... This android tutorial which helped with creating ...

4MB Sizes 2 Downloads 287 Views

Recommend Documents

pdf sponsor final - GitHub
the conference is supported, allowing attendees fees ... conference organisation and other related costs. ... Call for Participation (CFP) Deadline: 3 Sept 2017.

Final Report - GitHub
... user inputs a certain number of TV shows he wants a recommendation for, let's call this set .... Proceedings of the 21st international conference on World Wide.

Final PDF - GitHub
innovative kitchen solution. H. Simply. Write SS-304 ... We are fully equipped for handling bulk orders as per your specifications & Design. "Life time performance ...

final project requirements - GitHub
In the course of the project, we expect you to complete the following tasks: 1) Gather ... The presentations should target a non-technical audience and serve the ...

Speaker Recognition Final Report - GitHub
Telephone banking and telephone reservation services will develop ... The process to extract MFCC feature is demonstrated in Figure.1 .... of the network. ..... //publications.idiap.ch/downloads/papers/2012/Anjos_Bob_ACMMM12.pdf. [2] David ...

FINAL Why You'll Love Ruby On Rails - GitHub
I started my programming career using. Smalltalk, a language in which everything was an object. And here was Ruby with exactly the same thing—everything is ...

Final Report on Parameter Estimation for Nonlinear ... - GitHub
set of measured data that have some degree of randomness. By estimating the .... Available: http://www.math.lsa.umich.edu/ divakar/papers/Viswanath2004.pdf. 8.

puah Final Coursework Introduction to Quantitative Research ... - GitHub
The exam will be posted on Moodle on 15 December 2017, and is due on 8 January 2018. Please follow all designated SPP submission guidelines for online submission as detailed on the. PUBLG100A/B Moodle page. Late submission results in an automatic fai

COMPETITIONS_HANDBOOK_2016 FINAL FINAL FINAL.pdf ...
Ashurst Student Paper 18. Herbert Smith Freehills Negotiation 20. Jackson McDonald First Year Mooting 22. Australia Red Cross International Humanitarian ...

GitHub
domain = meq.domain(10,20,0,10); cells = meq.cells(domain,num_freq=200, num_time=100); ...... This is now contaminator-free. – Observe the ghosts. Optional ...

GitHub
data can only be “corrected” for a single point on the sky. ... sufficient to predict it at the phase center (shifting ... errors (well this is actually good news, isn't it?)

Torsten - GitHub
Metrum Research Group has developed a prototype Pharmacokinetic/Pharmacodynamic (PKPD) model library for use in Stan 2.12. ... Torsten uses a development version of Stan, that follows the 2.12 release, in order to implement the matrix exponential fun

Untitled - GitHub
The next section reviews some approaches adopted for this problem, in astronomy and in computer vision gener- ... cussed below), we would question the sensitivity of a. Delaunay triangulation alone for capturing the .... computation to be improved fr

ECf000172411 - GitHub
Robert. Spec Sr Trading Supt. ENA West Power Fundamental Analysis. Timothy A Heizenrader. 1400 Smith St, Houston, Tx. Yes. Yes. Arnold. John. VP Trading.

Untitled - GitHub
Iwip a man in the middle implementation. TOR. Andrea Marcelli prof. Fulvio Risso. 1859. Page 3. from packets. PEX. CethernetDipo topo data. Private. Execution. Environment to the awareness of a connection. FROG develpment. Cethernet DipD tcpD data. P

BOOM - GitHub
Dec 4, 2016 - 3.2.3 Managing the Global History Register . ..... Put another way, instructions don't need to spend N cycles moving their way through the fetch ...

Supervisor - GitHub
When given an integer, the supervisor terminates the child process using. Process.exit(child, :shutdown) and waits for an exist signal within the time.