Uploaded by keepers.sludges.0d

Dream Games - Software Engineering Study

advertisement
Dream Games
Software Engineering Study
In this study, you are expected to create a simple, level-based, mobile game called “Row Match”.
Implementation should be done in Unity and C#.
Flow
-
-
-
When the user launches the game, s/he will see a LevelsButton in the MainScene.
After tapping the button, LevelsPopup should appear and list all the available levels.
Each row (which represents the level) should show this information
- The level number and moves count
- Highest score of the level
- Green “Play” button to enter the LevelScene (if the level is playable) or Gray
“Locked” button which shows that previous levels should be played first.
After tapping the PlayButton, LevelScene should be loaded according to the level. (You
can find gameplay details in the Gameplay section)
When a user finishes the level with a new highest score
- MainScene should be loaded
- Celebration particles and animation should be shown to the user
- After the celebration, LevelsPopup appears automatically
- After the popup, the unlocked level should be displayed as the button changed from
a gray locked button to a green play button.
When a user finishes the level without a new highest score
- MainScene should be loaded
- And LevelsPopup appears automatically
Screenshots
MainScene
LevelsPopup
Celebration
Gameplay
The goal in Row Match is to create the maximum number of rows that have the same type of game
items with limited moves.
Mechanics
-
There are four types (colors) of items.
There is a rectangular grid, where each cell can have one item. The grid can have a width
and height of four to nine cells.
Any adjacent item in a grid can be swapped by swiping.
There is a predefined limited number of moves for each level. A move is spent after a swipe
operation. The user should see the count of remaining moves in the scene.
When all cells in a row have the same type of item, the row gets completed automatically
and the user earns a score for each completed item.
Red: 100 - Green: 150 - Blue: 200 - Yellow: 250 points. The user should see the current
score and highest score in the scene.
No swap operation can be performed with a completed cell.
If there is no possible row match to gain more score, the game should automatically end
without requiring the user to finish the remaining moves.
Screenshots
5 x 7 Grid
1. and 3. rows aligned
1. and 3. rows completed
Notes
-
Unity 2019.4.14 and C# should be used in the implementation.
You can use third-party tween libraries for animations.
You are expected to implement the required UI components (Button, Popup, Scroll) from
scratch without using Unity UI (You can’t use Canvas component).
The game should support portrait (9:16) and landscape (4:3) orientations
Given screenshots are just samples, you are free to use any kind of image assets.
Try to make nice animations as best as you can. You can analyze Royal Match for Scroll,
Swipe, Button and Celebration animations.
Levels
Row Match can be playable online or offline. The first 10 levels should be included in the project to
make them available to users for initial launch even without internet connection. As soon as
possible, rest of the levels should be downloaded once from the given URLs and should be saved
to persistent storage to be available for later launches.
The level file structure is:
-
level_number: number of the level
grid_width: width of the grid
grid_height: height of the grid
move_count: given move count for the level
grid: a list of colors (r: Red, g: Green, b: Blue, y: Yellow) starts from the bottom left of the
grid, ends at the top right of the grid.
You can find level files from the below URLs:
Level
URL
1
https://row-match.s3.amazonaws.com/levels/RM_A1
2
https://row-match.s3.amazonaws.com/levels/RM_A2
3
https://row-match.s3.amazonaws.com/levels/RM_A3
4
https://row-match.s3.amazonaws.com/levels/RM_A4
5
https://row-match.s3.amazonaws.com/levels/RM_A5
6
https://row-match.s3.amazonaws.com/levels/RM_A6
7
https://row-match.s3.amazonaws.com/levels/RM_A7
8
https://row-match.s3.amazonaws.com/levels/RM_A8
9
https://row-match.s3.amazonaws.com/levels/RM_A9
10
https://row-match.s3.amazonaws.com/levels/RM_A10
11
https://row-match.s3.amazonaws.com/levels/RM_A11
12
https://row-match.s3.amazonaws.com/levels/RM_A12
13
https://row-match.s3.amazonaws.com/levels/RM_A13
14
https://row-match.s3.amazonaws.com/levels/RM_A14
15
https://row-match.s3.amazonaws.com/levels/RM_A15
16
https://row-match.s3.amazonaws.com/levels/RM_B1
17
https://row-match.s3.amazonaws.com/levels/RM_B2
18
https://row-match.s3.amazonaws.com/levels/RM_B3
19
https://row-match.s3.amazonaws.com/levels/RM_B4
20
https://row-match.s3.amazonaws.com/levels/RM_B5
21
https://row-match.s3.amazonaws.com/levels/RM_B6
22
https://row-match.s3.amazonaws.com/levels/RM_B7
23
https://row-match.s3.amazonaws.com/levels/RM_B8
24
https://row-match.s3.amazonaws.com/levels/RM_B9
25
https://row-match.s3.amazonaws.com/levels/RM_B10
Download