Hi there, I'm Roman ✋
When I was writing web games in javaScript, I had the idea that it would be great to create a standalone game that is not connected to the Internet. At this point, I decided to learn the new kotlin programming language and android application development. So I got excited to write my own game.
Creating this project was a challenge for me to create a game in a new language. The goal of this project was to create a simple, ad-free logic game aimed at the average player. At the same time, it is not loaded logically and allows you to spend time comfortably.
The game has two modes, adventure and survival. In survival mode, you need to hold out for the maximum number of moves. In adventure mode, you will have to open 200 scrolls, each of which represents a level where you need to complete the tasks. The next level opens after completing the previous one. By collecting combinations of colored crystals, you score points. When the required number of points is reached, the level is considered completed successfully. To do this, you have a limited number of moves, and there are obstacles on the playgrounds that need to be overcome. Among other things, your achievements are saved in the player's card. You can create as many players as you need, but each player has their own game progress.The game supports flipping the screen. as well as tablet screens and devices with Fold type screens. The game supports translation into different languages using its own localization mechanics. The project is implemented using the Single Activity Application pattern. In the game, I use elements from my engine to calculate collisions of objects on the stage. The visual design is implemented on Jetpack Compose. I use Hilt for dependencies. The database is based on Room. I am deploying json files using the libs.gson library. To animate the winning and losing levels libs.coil.gif. The game implements the logic of launching sprites without using any libraries and Kotlin Coroutines. I use navigation compose to navigate the game. The audio was played using MediaPlayer. The table storage is implemented on the server, the game receives and updates it using Retrofit.
The main menu is the main component of the entrance to the application
Player menu - here we create and select players in the game
Survival mode - you need to hold out for the maximum number of moves
Adventure is the main story mode of the game
Records - information about the author and links to his works
Information - information about the author and links to his works
