This project is an Elements game developed as part of a test job for a Unity developer position. The game mechanics resemble the classic match3 genre, but with unique features such as the ability to move blocks in any direction in a single turn and a system to normalize the field after shifting and destroying blocks.
Startup instructions:
- Clone the repository using the command: git clone https://github.com/your_username/elements_game.git
- Open the project in Unity.
- Launch the MainScene.
- Enjoy the game!)
Controls: Use the swipe gesture to move the blocks in one of the four directions: top, bottom, right, left.
Game Objective: Destroy all the blocks on the field in the minimum number of moves. The player who reaches this goal wins.
Adding new blocks:
- Create a new ScriptableObject "Block".
- Add data to ScriptableObject "Block" - "Id" and "Animation".
- If the ScriptableObject "BlocksContainer" has not been created, then create it.
- Add data to ScriptableObject "BlockContainer".
Adding new levels:
- If the ScriptableObject "LevelsContainer" has not been created, then create it.
- Add data to ScriptableObject "LevelsContainer":
- "Level" - level index;
- "Columns" - columns count;
- "Rows" - rows count;
- "Block Datas" - block ScriptableObject !!!Enter an array of values starting at the lower left corner and moving upward.!!!
Desired refinements:
- Now the work with resources is realized through the folder "Resources". The "Addressables" would be better for working with resources.
- Write a service to work with resources and control them.
- Develop a tool for creating new levels and adding new blocks.
- Write a service for working with animations.
- Add block drop animation.
- Infuse CI/CD.
- Write unit and integration tests.