{"id":17040992,"url":"https://github.com/uggla/rock_run","last_synced_at":"2025-07-30T02:10:59.443Z","repository":{"id":209750226,"uuid":"724862151","full_name":"uggla/rock_run","owner":"uggla","description":"A 2D old-school platformer","archived":false,"fork":false,"pushed_at":"2025-07-19T16:19:22.000Z","size":10022,"stargazers_count":37,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-24T23:28:59.953Z","etag":null,"topics":["2d","bevy","platformer","prehistoric","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uggla.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.md","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":"2023-11-29T00:04:09.000Z","updated_at":"2025-07-24T11:33:50.000Z","dependencies_parsed_at":"2023-11-29T01:27:28.107Z","dependency_job_id":"e6f43ef1-8aee-4715-b52c-a40b770609da","html_url":"https://github.com/uggla/rock_run","commit_stats":{"total_commits":65,"total_committers":1,"mean_commits":65.0,"dds":0.0,"last_synced_commit":"2b9f4beafbc5fc7f0b51f003c237741a5698850d"},"previous_names":["uggla/my_bevy_game","uggla/rock_run"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/uggla/rock_run","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uggla%2Frock_run","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uggla%2Frock_run/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uggla%2Frock_run/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uggla%2Frock_run/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uggla","download_url":"https://codeload.github.com/uggla/rock_run/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uggla%2Frock_run/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267797645,"owners_count":24145709,"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","status":"online","status_checked_at":"2025-07-30T02:00:09.044Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["2d","bevy","platformer","prehistoric","rust"],"created_at":"2024-10-14T09:11:04.021Z","updated_at":"2025-07-30T02:10:59.422Z","avatar_url":"https://github.com/uggla.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# Rock Run Rose's odyssey\n\n## TLDR I want to play !\n\n[https://uggla.itch.io/rockrun](https://uggla.itch.io/rockrun).\n\n## Overview\n\nRock Run Rose's Odyssey is a 2D old-school platformer game.\n\nIn this game, you play as Rose, a young girl with green eyes living in\nprehistoric times. She ventured far from home in search of food, but\ndusk is approaching, and the night is dangerous, especially because of\npredators. Your mission is to help her avoid dangers and solve puzzles so\nshe can return home safely.\n\nIt is aimed at children around 8 years old, with the objective of enhancing\nreading skills through story following and mathematics (addition, subtraction,\ndoubling, etc.) for puzzle solving while playing.\n\nThe game is programmed in Rust and serves as an experiment with the Bevy\nframework.\n\nAll assets are under CC0 license, most of them coming from the repository\n[https://github.com/sparklinlabs/superpowers-asset-packs](https://github.com/sparklinlabs/superpowers-asset-packs)\nand [https://kenney.nl/](https://kenney.nl/).\nConsider supporting Kenney with a donation, as his work is fantastic and\ngreatly aids hobbyists in game development.\n\n[https://github.com/BorisBoutillier/Kataster](https://github.com/BorisBoutillier/Kataster)\nis a great example of using Bevy, and the game draws inspiration and uses\nparts of the code from this repository.\n\nYou can modify levels using [Tiled](https://www.mapeditor.org/), an excellent tool for this purpose.\n\n## Project status\n\n[![CI](https://github.com/uggla/rock_run/actions/workflows/ci.yaml/badge.svg)](https://github.com/uggla/rock_run/actions/workflows/ci.yaml)\n[![Release](https://github.com/uggla/rock_run/actions/workflows/release.yaml/badge.svg)](https://github.com/uggla/rock_run/actions/workflows/release.yaml)\n\nThe project is currently in development, and the first release is now\navailable, although there are still some known bugs (such as collision\nissues and the player sliding on horizontally moving platforms). You\ncan find the binaries on [GitHub](https://github.com/uggla/rock_run) and\nitch.io. Additionally, **an online WebAssembly (WASM) version** is available at\n[https://uggla.itch.io/rockrun](https://uggla.itch.io/rockrun).\n\nPlease note that the code in this project is far from clean or\noptimized. I am currently learning Bevy, and I've primarily focused\non progressing the development of the game rather than on the quality\nof the code. Additionally, there isn't a predefined plan for this\nproject, which is growing organically as it evolves. This lack of\nstructure also contributes to the code's messiness. This project is\nmainly a hobby for me, and while I strive to improve my skills and\nadopt best practices, my main goal is to create and enjoy the process,\neven if the code suffers as a result.\n\nAdditionally, this game is being created for my daughter to help her with\nreading and calculating. It's important for me to complete the game before\nshe gets too old for these learning activities.\n\n## Authors\n\n- [@Uggla](https://www.github.com/Uggla)\n\n## Screenshots\n\n![screenshot](images/screenshot-01.png)\n\n![screenshot](images/screenshot-02.png)\n\n## Game controls\n\nUse ⌨️ or 🎮 (left stick) to play.\n\n- ⬅️ and ➡️ move left and right.\n- ⬆️ climb ladders, activate stories (❓️) or exit.\n- ⬇️ descend ladders.\n- 🟢 or **space**, jump or validate.\n- ▶️ or **Esc** pause the game.\n- ◀️ or **Backspace** go back or exit the game.\n\n## Storage\n\nThe game uses the [bevy_pkv](https://docs.rs/bevy_pkv/0.11.1/bevy_pkv)\ncrate to store language preferences. On native systems, this creates a\n`bevy_pkv.redb` database in the system's application data directory. For\nWebAssembly (Wasm), it uses local storage.\n\n## Run Locally (mainly for development purposes)\n\n1. Clone the project\n\n```bash\n  git clone https://github.com/uggla/rock_run.git\n```\n\n2. Go to the project directory\n\n```bash\n  cd rock_run\n```\n\n### Native\n\n1. Install Rust following the instructions [here](https://www.rust-lang.org/fr/learn/get-started).\n\n   _Tips: the rustup method is the simplest one._\n\n2. Install required library for Bevy\n\nLook at https://bevyengine.org/learn/quick-start/getting-started/setup\n\n3. Run\n\n```bash\ncargo rd\n\nor\n\ncargo rr  # for release mode\n```\n\n### Wasm32\n\n1. Follow the above instruction of the native build.\n\n2. Add the wasm32 compilation target\n\n```bash\nrustup target add wasm32-unknown-unknown\n```\n\n3. Run\n\n```bash\ncargo rwd\n\nor\n\ncargo rwr  # for release mode\n```\n\n## Debugging environment variables\n\n- `RUST_LOG=\"rock_run=debug\"`: Enable debug logs.\n- `ROCKRUN_LEVEL`: Select the level to play.\n- `ROCKRUN_START_POSITION`: Sets the player's start position.\n- `ROCKRUN_GOD_MODE`: Disables deadly collisions.\n\n## Debugging keys\n\nThese controls are only available in debug mode.\n\n- F12 display perf ui (https://github.com/IyesGames/iyes_perf_ui).\n- W zoom out.\n- Z zoom in.\n\n## Known bug\n\n1- Bad framerate and high cpu usage.\n\nThis can be due to a driver with incomplete Vulkan support as show below.\n\n```bash\n2024-06-16T14:30:01.931071Z  INFO bevy_winit::system: Creating new window \"RockRun: Rose's Odyssey\" (0v1)\n2024-06-16T14:30:01.931597Z  INFO log: Guessed window scale factor: 1\nMESA-INTEL: warning: Haswell Vulkan support is incomplete\n2024-06-16T14:30:02.213994Z  INFO bevy_render::renderer: AdapterInfo { name: \"llvmpipe (LLVM 18.1.6, 256 bits)\", vendor: 65541, device: 0, device_type: Cpu, driver: \"llvmpipe\", driver_info: \"Mesa 24.1.1 (LLVM 18.1.6)\", backend: Vulkan }\n```\n\nThis can be fixed by changing the backend from Vulkan to Gl using the following environment variable\n\n```bash\nexport WGPU_BACKEND=gl\n```\n\n2- Log spam from wgpu_hal\n\n```bash\n2024-08-15T16:14:27.750208Z ERROR wgpu_hal::gles: wgpu-hal heuristics assumed that the view dimension will be equal to `Cube` rather than `CubeArray`.\n`D2` textures with `depth_or_array_layers == 1` are assumed to have view dimension `D2`\n`D2` textures with `depth_or_array_layers \u003e 1` are assumed to have view dimension `D2Array`\n`D2` textures with `depth_or_array_layers == 6` are assumed to have view dimension `Cube`\n`D2` textures with `depth_or_array_layers \u003e 6 \u0026\u0026 depth_or_array_layers % 6 == 0` are assumed to have view dimension `CubeArray`\n```\n\nhttps://github.com/bevyengine/bevy/issues/13115\n\nAt the moment writting this documentation, the issue is still open, but it can be mitigated by filtering out logs.\n\n```bash\nRUST_LOG=none,rock_run=info cargo rr\n```\n\n3- Menu UI is not rendered well.\n\n![screenshot](images/menu-failure-01.png)\n\nThis is not fixed yet.\n\nTODO: create a environment variable to change the UI settings.\n\n4- Configuration file not updated\n\n```\nthread 'main' panicked at /home/rribaud/rust/registry/src/index.crates.io-6f17d22bba15001f/bevy_pkv-0.12.0/src/redb_store.rs:82:44:\nFailed to init key value store: UpgradeRequired(1)\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n```\n\n.local/share/rockrun/bevy_pkv.redb\n\nTODO: Update that part of documentation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuggla%2Frock_run","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuggla%2Frock_run","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuggla%2Frock_run/lists"}