{"id":16209374,"url":"https://github.com/deadlykam/jumprace3d","last_synced_at":"2026-01-21T17:35:10.452Z","repository":{"id":81398075,"uuid":"267648959","full_name":"deadlykam/JumpRace3D","owner":"deadlykam","description":"A small jump race game.","archived":false,"fork":false,"pushed_at":"2021-05-11T19:25:31.000Z","size":16859,"stargazers_count":3,"open_issues_count":4,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-13T21:18:43.467Z","etag":null,"topics":["3rd-person","android","game","jump-game","kamran","kamran-wali","unity","unity3d","wali"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deadlykam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-28T17:08:33.000Z","updated_at":"2024-03-21T01:43:42.000Z","dependencies_parsed_at":"2023-03-03T03:16:08.281Z","dependency_job_id":null,"html_url":"https://github.com/deadlykam/JumpRace3D","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deadlykam%2FJumpRace3D","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deadlykam%2FJumpRace3D/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deadlykam%2FJumpRace3D/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deadlykam%2FJumpRace3D/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deadlykam","download_url":"https://codeload.github.com/deadlykam/JumpRace3D/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247721774,"owners_count":20985078,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3rd-person","android","game","jump-game","kamran","kamran-wali","unity","unity3d","wali"],"created_at":"2024-10-10T10:29:22.556Z","updated_at":"2026-01-21T17:35:10.417Z","avatar_url":"https://github.com/deadlykam.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"https://imgur.com/f26jBTU.png\"\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003ca href=\"https://youtu.be/_pXDbUC8cTo\" target=\"_blank\"\u003e\u003cimg src=\"https://imgur.com/odDfqeD.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n# JumpRace3D\n\n### Introduction of the game:\nThis is a mobile game where the player races with other AI by jump on floating stages.\n\n## Gameplay:\nThe main objective is to get to the final floating stage which is green in colour and looks different from other stages. On the way there will be other AI racers that will try to reach the final stage before the player. The AI racers can be killed by colliding with them or by breaking some stages. The player dies when falling into the water or colliding with the big floating windmill fan obstacle. There is a booster pick up which helps the player to travel further. Once the player reachs the final stage a new random stage will be generated.\n\n## Table of Contents:\n- [Prerequisites](#prerequisites)\n- [Stable Build](#stable-build)\n- [Controls](#controls)\n- [Stage](#stage)\n- [UML](#uml)\n  - [Character UML](#1-character-uml-this-structure-shows-how-the-game-characters-functionalities-are-handled)\n  - [Platform UML](#2-platform-uml-this-structure-shows-how-the-games-platform-system-funtions)\n  - [Menu UML](#3-menu-uml-this-structure-shows-how-the-games-menu-system-functions)\n  - [UI UML](#4-ui-element-uml-this-structure-shows-how-the-games-ui-element-system-functions)\n- [Versioning](#versioning)\n- [Authors](#authors)\n- [License](#license)\n\n## Prerequisites\n#### Unity Game Engine\nUnity version of the build is **2019.3.15f1**. Install Unity game engine from version **2019.3.15f1** or above. Install [Unity Hub (recommended)](https://store.unity.com/download?ref=personal) and add Unity version **2019.3.15f1**. Once installed then open the latest stable build.\n***\n## Stable Build\n[Stable-v1.0.0](https://github.com/deadlykam/JumpRace3D/releases/tag/stable-v1.0.0) is the latest stable build of the game. The apk file can also be found there for running the game in android.\n***\n## Controls\n1. Unity Editor: Press and hold the left mouse button to move the player forward. Press and hold the left mouse button and move the mouse in x-axis to rotate the player.\n\n2. Android: Press and hold the screen to move the player forward. Swipe left or right to rotate the player left or right respectively.\n***\n## Stage\nThe **[StageGenerator](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/Obstacles/StageGenerator.cs)** is responsible for generating a stage. Every stage is randomly generated so no two stages are alike. Everytime before a stage starts it generates a new random stage. Below are previews showing how the stages are being generated.\n\n![](https://imgur.com/COkOkbu.gif)\n\n![](https://imgur.com/XqJwFUF.gif)\n***\n## UML\nSharing some UML diagram to show the hierarchy of some classes and system and a brief description.\n\n##### 1. Character UML: This structure shows how the game character's functionalities are handled.\n\u003cimg src=\"https://imgur.com/4byzjvQ.png\" alt=\"Character UML\"\u003e\n\n   - **[BasicCharacter](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/Characters/BasicCharacter.cs):** Handles the movement, rotation, jumping, falling and auto rotation functions of a character.\n   - **[BasicAnimation](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/Characters/BasicAnimation.cs):** Handles all the animation functions of a character. Also enables/disables the ragdoll.\n   - **[Player](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/Characters/Player/Player.cs):** Makes the player character move forward or rotate by taking input from the user.\n   - **[Enemy](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/Characters/NPC/Enemy.cs):** Makes the enemy character move towards the next stage and also rotates the enemy to face the next stage. Colliding with the player kills the enemy character.\n\n##### 2. Platform UML: This structure shows how the game's platform system funtions.\n\u003cimg src=\"https://imgur.com/kkjLamS.png\" alt=\"Platform UML\"\u003e\n\n   - **[BasicStage](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/Obstacles/BasicStage.cs):** This class sets the type of particle effect to show for the platform when the methods **void StageAction()** or **void StageAction(bool)** are called.\n   - **[BouncyStageLong](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/Obstacles/BouncyStageLong.cs):** This class starts the hide countdown process of the platform. Once the countdown process is done the platform is hidden and disabled from the game world. The method **void StageAction()** starts the countdown process and calls the parent's virtual method as well.\n   - **[BouncyStage](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/Obstacles/BouncyStage.cs):** This class handles the animation of the platform. It also shows/hides the booster pickup of a platform and stores the 3D text when the platform is activated. The method **void StageAction()** plays the animation of the platform if the property **bool \\_hasAnimation** is true and calls the parent's virtual method as well.\n   - **[BouncyStageMove](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/Obstacles/BouncyStageMove.cs):** This class moves the platform sideways within a limit. The method **void StageAction()** calls the parent's virtual method.\n   - **[BouncyStageBreakable](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/Obstacles/BouncyStageBreakable.cs):** This class starts the breaking up process of a platform. The method **void StageAction()** instantly starts the breaking process of the platform and calls the parent's virtual method. The method **void StageAction(bool)** checks if the platform's break up process should be activated or not depending on the **bool** value and also calls the parent's virtual method.\n   \n##### 3. Menu UML: This structure shows how the game's menu system functions.\n\u003cimg src=\"https://imgur.com/8adDLE5.png\" alt=\"Platform UML\"\u003e\n\n   - **[BasicUI](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/UIs/BasicUI.cs):** This class shows the menu by calling the method **void ShowUI()** and hides the menu by calling the method **void HideUI()**. It shows/hides menus by activating/deactivating the Canvases stored in the field **Canvas[] \\_canvases**.\n   - **[EndScreenUI](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/UIs/EndScreenUI.cs):** This class shows the end menu which is the final result of the race. The menu is shown by calling the parent's virtual method **void ShowUI()** and hidden by calling the method **void HideUI()** which resets the end menu and calls parent's virtual method.\n   - **[MoveUI](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/UIs/MoveUI.cs):** This class slides in/out a menu. The menu is slid in when the method **void ShowUI()** is called, this also calls the parent's virtual method. The menu is hidden when the method **void HideUI()** is called but the parent's virtual method is not called from here. This is done so that once the slide out effect is done only then will the menu be hidden.\n   - **[PlayerUI](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/UIs/PlayerUI.cs):** This class shows the current race position of the player and other racers. It also shows how far the player is in the race. The parent's virtual method **void ShowUI()** shows the player menu and the parent's virtual method **void HideUI()** hides the player menu.\n\n##### 4. UI Element UML: This structure shows how the game's UI element system functions.\n\u003cimg src=\"https://imgur.com/3ZUewpW.png\" alt=\"Platform UML\"\u003e\n\n   - **[BasicUIEffect](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/UIs/BasicUIEffect.cs):** This class calculates and stores the accurate value of Time.deltaTime. The value is stored in the field **float \\_fps** and accessed by the property **float fps**. This value is used by the child classes to get accurate calculations.\n   - **[ToggleUI](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/UIs/ToggleUI.cs):** This class shows and hides an UI element in a given time interval. The class uses parent's **float fps** value to calculate the time change.\n   - **[BasicUISpeedEffect](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/UIs/BasicUISpeedEffect.cs):** This class calculates and stores the step value which is needed by the child classes for lerpnig. The step value is stored in the field **float \\_step** and accessed by the property **float step**. The accurate calculation of the step value is done by using the parent's field **float fps** value.\n   - **[TextSizeUI](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/UIs/TextSizeUI.cs):** This class continuously changes the size of a text UI element. The class uses the parent's **float step** property to lerp between the minimum(**float \\_sizeMin**) and maximum(**float \\_sizeMax**) size of the text.\n   - **[PopupUI](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/UIs/PopupUI.cs):** This class gives a popup effect to an UI element. The class uses the parent's **float step** property to change the size of the element once by lerping which is from minimum to maximum to minimum and then hide.\n   - **[SideMoveUI](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/UIs/SideMoveUI.cs):** This class moves an UI element from side to side. The class uses the parent's **float step** property to lerp the UI from the left target(**Transform \\_leftTarget**) to the right target(**Trnasform \\_rightTarget**). This gives a nice smooth effect of the movement.\n   - **[LoadUI](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/UIs/LoadUI.cs):** This class moves the UI element towards its final destination which means it is moved only in one direction. The class uses the parent's **float step** property to lerp the UI from target1(parent's **Transform leftTarget**) to target2(parent's **Transform rightTarget**).\n   - **[SizeUI](https://github.com/deadlykam/JumpRace3D/blob/f4f84a42352ad65a2cbdfcc2519d5df0d2ed0b15/Assets/JumpRace3D/Scripts/UIs/SizeUI.cs):** This class changes the size of an UI element continuously. The class uses the parent's **float step** property to lerp between the minimum size(**float \\_minSize**) and the maximum size(**float \\_maxSize**).\n***\n## Versioning\nThe project uses [Semantic Versioning](https://semver.org/). Available versions can be seen in [tags on this repository](https://github.com/deadlykam/JumpRace3D/tags).\n***\n## Authors\n- Syed Shaiyan Kamran Waliullah \n  - [Kamran Wali Github](https://github.com/deadlykam)\n  - [Kamran Wali Twitter](https://twitter.com/KamranWaliDev)\n  - [Kamran Wali Youtube](https://www.youtube.com/channel/UCkm-BgvswLViigPWrMo8pjg)\n  - [Kamran Wali Website](https://deadlykam.github.io/)\n***\n## License\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeadlykam%2Fjumprace3d","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeadlykam%2Fjumprace3d","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeadlykam%2Fjumprace3d/lists"}