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