{"id":25098161,"url":"https://github.com/tehlers/bevy-introduction","last_synced_at":"2026-04-18T14:03:45.508Z","repository":{"id":276341352,"uuid":"903839469","full_name":"tehlers/bevy-introduction","owner":"tehlers","description":"An introduction to the game engine Bevy made with presenterm.","archived":false,"fork":false,"pushed_at":"2025-10-05T13:31:41.000Z","size":397,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-26T13:47:14.222Z","etag":null,"topics":["bevy","game-development","tutorial"],"latest_commit_sha":null,"homepage":"","language":"Python","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/tehlers.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-15T17:29:28.000Z","updated_at":"2025-10-05T13:31:44.000Z","dependencies_parsed_at":"2025-08-07T07:19:27.002Z","dependency_job_id":"ebbdb8db-8a74-4623-86b5-22954f9dfec3","html_url":"https://github.com/tehlers/bevy-introduction","commit_stats":null,"previous_names":["tehlers/bevy-introduction"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tehlers/bevy-introduction","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tehlers%2Fbevy-introduction","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tehlers%2Fbevy-introduction/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tehlers%2Fbevy-introduction/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tehlers%2Fbevy-introduction/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tehlers","download_url":"https://codeload.github.com/tehlers/bevy-introduction/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tehlers%2Fbevy-introduction/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31971493,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"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":["bevy","game-development","tutorial"],"created_at":"2025-02-07T18:19:53.786Z","updated_at":"2026-04-18T14:03:40.809Z","avatar_url":"https://github.com/tehlers.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bevy introduction\n\nAn introduction to the game engine [Bevy](https://bevyengine.org) made with [presenterm](https://mfontanini.github.io/presenterm/).\nThe core concepts of Bevy are explained using a series of examples that result in a simple breakout game at the end.\n\n## Installation\n\nYou need to install the Rust toolchain to execute the examples.\nFollow the instructions on [Rust's official setup page](https://www.rust-lang.org/learn/get-started).\nIf you are using Linux, you should also check the [official Bevy Linux dependencies page](https://github.com/bevyengine/bevy/blob/main/docs/linux_dependencies.md).\n\n## Execution\n\nOnce you have installed all dependencies, you can run the examples with\n\n    cargo run --example EXAMPLE\n\n[Presenterm](https://mfontanini.github.io/presenterm/) must be installed in order to display the presentation with\n\n    presenterm --enable-snippet-execution --present bevy-introduction.md\n\nThe project contains a [Justfile](https://just.systems/) that provides frequently used commands.\n\n## Development\n\nTo compile and lint all examples and execute the tests call\n\n    just check\n\nUpdate the examples in the presentation with\n\n    just update-example-code\n\n## Examples\n\n### [001-hello_world](examples/001-hello_world/main.rs)\n\n\"Hello, world\" example generated with `cargo init`\n\n    just run 001-hello_world\n\n### [002-bevy_app](examples/002-bevy_app/main.rs)\n\nA Bevy app without any functionality\n\n    just run 002-bevy_app\n\n### [003-bevy_hello_world](examples/003-bevy_hello_world/main.rs)\n\n\"Hello, world\" as a Bevy app\n\n    just run 003-bevy_hello_world\n\n### [004-dog](examples/004-dog/main.rs)\n\nComponent representing a `Dog`\n\n    just run 004-dog\n\n### [005-barking_dog](examples/005-barking_dog/main.rs)\n\nSystem making the `Dog` bark\n\n    just run 005-barking_dog\n\n### [006-barking_dogs](examples/006-barking_dogs/main.rs)\n\nMore `Dog`s\n\n    just run 006-barking_dogs\n\n### [007-dogs_with_names](examples/007-dogs_with_names/main.rs)\n\nAdditional component to assign `Name`s to `Dog`s\n\n    just run 007-dogs_with_names\n\n### [008-cats](examples/008-cats/main.rs)\n\nA new component `Cat` that is used together with a `Name`\n\n    just run 008-cats\n\n### [009-bevy_minimal_plugins](examples/009-bevy_minimal_plugins/main.rs)\n\nThe minimal Bevy plugins to add e.g. schedules\n\n    just run 009-bevy_minimal_plugins\n\n### [010-bevy_default_plugins](examples/010-bevy_default_plugins/main.rs)\n\nThe default plugins to open an empty window\n\n    just run 010-bevy_default_plugins\n\n### [011-sprite](examples/011-sprite/main.rs)\n\nSprite of a ball\n\n    just run 011-sprite\n\n### [012-scale_screen](examples/012-scale_screen/main.rs)\n\nFixed scaling of screen\n\n    just run 012-scale_screen\n\n### [013-move_ball](examples/013-move_ball/main.rs)\n\nMoving sprite\n\n    just run 013-move_ball\n\n### [014-add_walls](examples/014-add_walls/main.rs)\n\nWalls around the playing field\n\n    just run 014-add_walls\n\n### [015-use_command_for_walls](examples/015-use_command_for_walls/main.rs)\n\nSimplified wall creation using a `Command`\n\n    just run 015-use_command_for_walls\n\n### [016-add_collision](examples/016-add_collision/main.rs)\n\nBall is reflected at walls\n\n    just run 016-add_collision\n\n### [017-add_stones](examples/017-add_stones/main.rs)\n\nPlaying field is filled with stones\n\n    just run 017-add_stones\n\n### [018-stone_collision](examples/018-stone_collision/main.rs)\n\nBall collides with stones\n\n    just run 018-stone_collision\n\n### [019-despawn_stones](examples/019-despawn_stones/main.rs)\n\nStones are despawned when hit by the ball\n\n    just run 019-despawn_stones\n\n### [020-animate_despawning](examples/020-animate_despawning/main.rs)\n\nDespawning of stones is animated\n\n    just run 020-animate_despawning\n\n### [021-add_sounds](examples/021-add_sounds/main.rs)\n\nEvent on collision triggers sound effects\n\n    just run 021-add_sounds\n\n### [022-add_bat](examples/022-add_bat/main.rs)\n\nBat that is moved by mouse motions\n\n    just run 022-add_bat\n\n### [023-add_title](examples/023-add_title/main.rs)\n\nInitial game state with title screen\n\n    just run 023-add_title\n\n### [024-despawn_with_state_change](examples/024-despawn_with_state_change/main.rs)\n\nDespawn entities on game state change\n\n    just run 024-despawn_with_state_change\n\n### [025-remove_bottom_wall](examples/025-remove_bottom_wall/main.rs)\n\nGame can be lost\n\n    just run 025-remove_bottom_wall\n\n### [026-add_score](examples/026-add_score/main.rs)\n\nResource containing a score\n\n    just run 026-add_score\n\n### [027-add_test](examples/027-add_test/main.rs)\n\nTest of score event processing\n\n    just run 027-add_test\n\n## Acknowledgements\n\nThe font used is [Allerta Stencil](https://github.com/google/fonts/tree/main/ofl/allertastencil). It was published under the terms and conditions of the [OFL](assets/fonts/OFL.txt).\n\nSound effects were obtained from [Kenney](https://www.kenney.nl) and [Zapsplat](https://www.zapsplat.com).\n\n## License\n\nAll code in this repository is licensed under the [MIT License](LICENSE).\n\nThe assets included in this repository fall under different open licenses.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftehlers%2Fbevy-introduction","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftehlers%2Fbevy-introduction","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftehlers%2Fbevy-introduction/lists"}