In this project, you will have to create a 2D sidescroller game. You will be using for the first time an external SDK to compile your game: the Android SDK Tool for Unreal Engine, which allows you to create a [.apk file](https://fileinfo.com/extension/apk) that can be installed and played on any Android devices.
In this game for Android, the player will control a character in a similar game than the Google Chrome Running Dinosaur but with coins or gems. So the game will have buttons on screen and that will be bound to character actions like jumping, ducking, etc... Another goal of this project is the sprite and [flipbook](https://docs.unrealengine.com/en-US/AnimatingObjects/Paper2D/Flipbooks/index.html) creation that is used to animate 2D art.
The basic assets you will need for this project can be found in the ["Jumpo.zip"](https://assets.01-edu.org/Unreal-Engine-Projects/Jumpo/Jumpo.zip) file.
### Instructions
The following are the requirements for this project:
- This game should have a main menu that must have a:
- Stats button, that shows you how many coins you have collected overall, how many times you died, the number of games done and the highest score. You can add more information if you want to.
- You are free to choose which character you want to use in your game. You can use the resource ones or you can check [this website](https://www.spriters-resource.com/) for more characters and sprites.
- The character should be "running" from left to right, so the character must be headed right.
- The character should actually be static in relation to the background and only the background is moving from right to left, giving the illusion that the character is the one moving.
- If the character does not die, the map should be infinite.
- Each action (running, jumping, ducking and dying) should play a different animation (a different flipbook).
- Use the .png or .tga files to extract and create a flipbook.
- While running, obstacles should appear on the character path.
- The character can either jump or roll under obstacles to survive.
- When the character hits an obstacle, it dies and the die flipbook animation gets played.
- When the character dies, a score screen is displayed and the player needs to enter 3 characters to save his score in the Leaderboard (a sort of nickname).
- The more time the character survives, the more points he earns.
- The character can collect coins/gems to load an invincibility bar.
- The number of coins collected during that run should appear on the screen as well as the progress of the invincibility bar.
- Once the invincibility bar is loaded up, the player can press it and the character becomes invincible for a short period of time.
- When the invincibility bar gets emptied, the character comes back to normal.
- The jump and roll button should be accessible using thumbs when holding the phone (in the lower corners).
- During the game, the highest ever score should appear on the top middle of the screen and the current score right below it.
In order to complete this project you are going to need to run your game in Android devices. For that you will need to install an Android SDK. Here is the Unreal Engine [documentation](https://docs.unrealengine.com/en-US/SharingAndReleasing/Mobile/Android/Setup/AndroidStudio/index.html) for that and a [video](https://www.youtube.com/watch?v=q-mAEnqZb0M) that could also help you.
- You could use your own android device or you could use an emulator to install the app on it and run the app to confirm that everything is working properly on Android devices.
### Hints
If you want a good example of how a 2D game is created you can try the [Tappy Chicken](https://assets.01-edu.org/Unreal-Engine-Projects/Jumpo/TappyChicken.zip) game provided. Or you can create an empty project and choose "2D Sidescroller Game" template which contains a lot of info that will be helpful for this project.
> Do not forget to zip up the project compile and save everything for peer correction.
> If it is not possible to upload files to Gitea due to their size, use GitHub instead and have a look at [Git LSF](https://docs.github.com/en/repositories/working-with-files/managing-large-files/about-large-files-on-github)