Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/richelbilderbeek/bevy_tdd_book
'Developing Bevy games using TDD' book
https://github.com/richelbilderbeek/bevy_tdd_book
bevy bevy-engine rust rust-lang tdd testdrivendevlopment
Last synced: 2 months ago
JSON representation
'Developing Bevy games using TDD' book
- Host: GitHub
- URL: https://github.com/richelbilderbeek/bevy_tdd_book
- Owner: richelbilderbeek
- License: gpl-3.0
- Created: 2024-06-28T09:25:53.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2024-09-23T17:13:08.000Z (3 months ago)
- Last Synced: 2024-09-27T07:03:29.289Z (3 months ago)
- Topics: bevy, bevy-engine, rust, rust-lang, tdd, testdrivendevlopment
- Language: R
- Homepage: https://richelbilderbeek.github.io/bevy_tdd_book/
- Size: 2.55 MB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# bevy_tdd_book
[![Check chapters](https://github.com/richelbilderbeek/bevy_tdd_book/actions/workflows/check_chapters.yaml/badge.svg?branch=master)](https://github.com/richelbilderbeek/bevy_tdd_book/actions/workflows/check_chapters.yaml)
[![Check links](https://github.com/richelbilderbeek/bevy_tdd_book/actions/workflows/check_links.yaml/badge.svg?branch=master)](https://github.com/richelbilderbeek/bevy_tdd_book/actions/workflows/check_links.yaml)
[![Check markdown](https://github.com/richelbilderbeek/bevy_tdd_book/actions/workflows/check_markdown.yaml/badge.svg?branch=master)](https://github.com/richelbilderbeek/bevy_tdd_book/actions/workflows/check_markdown.yaml)
[![Check spelling](https://github.com/richelbilderbeek/bevy_tdd_book/actions/workflows/check_spelling.yaml/badge.svg?branch=master)](https://github.com/richelbilderbeek/bevy_tdd_book/actions/workflows/check_spelling.yaml)Start of a book [1] called 'Developing Bevy games using TDD'.
The goal is to demonstrate how to do Test-Driven Development with Bevy.- [Contributing](CONTRIBUTING.md)
- [Contributors](docs/misc/contributors.md)
- [FAQ](docs/misc/faq.md)## Chapters
### Section 1: introduction
- [1.1. Introduction](docs/introduction/introduction.md)
### Section 2: basics
- [2.1. Introduction](docs/misc/basic_introduction.md)
Code |Code coverage |Chapter |Description |Concepts
----------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------|-----------------------------------------|------------------
[code](https://github.com/richelbilderbeek/bevy_tdd_book_hello_world) |[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_hello_world/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_hello_world) |[hello_world.md](docs/chapters/hello_world.md) |Hello world |A minimal `App`
[code](https://github.com/richelbilderbeek/bevy_tdd_book_add_player) |[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_add_player/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_add_player) |[add_player.md](docs/chapters/add_player.md) |Adding a player |Using a marker Component, using a `Query`
[code](https://github.com/richelbilderbeek/bevy_tdd_book_add_player_sprite) |[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_add_player_sprite/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_add_player_sprite) |[add_player_sprite.md](docs/chapters/add_player_sprite.md) |Adding a player sprite |Using closures and `SpriteBundles`
[code](https://github.com/richelbilderbeek/bevy_tdd_book_add_player_sprite_with_texture)|[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_add_player_sprite_with_texture/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_add_player_sprite_with_texture)|[add_player_sprite_with_texture.md](docs/chapters/add_player_sprite_with_texture.md)|Adding a player sprite with a texture |Using a texture
[code](https://github.com/richelbilderbeek/bevy_tdd_book_add_text) |[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_add_text/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_add_text) |[add_text.md](docs/chapters/add_text.md) |Adding text on screen |Using `Text2dBundle`
[code](https://github.com/richelbilderbeek/bevy_tdd_book_add_camera) |[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_add_camera/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_add_camera) |[add_camera.md](docs/chapters/add_camera.md) |Adding a camera |Using `Camera2dBundle`
[code](https://github.com/richelbilderbeek/bevy_tdd_book_move_player) |[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_move_player/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_move_player) |[move_player.md](docs/chapters/move_player.md) |Move the player |Extending a Component### Section 3: user input
- [3.1. Introduction](docs/misc/respond_to_input_introduction.md)
Code |Code coverage |Chapter [2] |Description |Concepts
----------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------|-----------------------------------------|------------------
[code](https://github.com/richelbilderbeek/bevy_tdd_book_respond_to_window_resize) |[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_respond_to_window_resize/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_respond_to_window_resize) |[respond_to_window_resize.md](docs/chapters/respond_to_window_resize.md) |Respond to window resize, minimal example|Minimal example, mouse wheel press
[code](https://github.com/richelbilderbeek/bevy_tdd_book_respond_to_key_press) |[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_respond_to_key_press/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_respond_to_key_press) |[respond_to_key_press.md](docs/chapters/respond_to_key_press.md) |Respond to keyboard, minimal example |Minimal example, key press
[code](https://github.com/richelbilderbeek/bevy_tdd_book_respond_to_just_key_pressed) |[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_respond_to_just_key_pressed/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_respond_to_just_key_pressed) |[respond_to_just_key_pressed.md](docs/chapters/respond_to_just_key_pressed.md) |Respond to keyboard, minimal example |Minimal example, key just being pressed
[code](https://github.com/richelbilderbeek/bevy_tdd_book_respond_to_mouse_move) |[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_respond_to_mouse_move/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_respond_to_mouse_move) |[respond_to_mouse_move.md](docs/chapters/respond_to_mouse_move.md) |Respond to mouse, minimal example |Minimal example, mouse move
[code](https://github.com/richelbilderbeek/bevy_tdd_book_respond_to_mouse_button_press) |[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_respond_to_mouse_button_press/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_respond_to_mouse_button_press) |[respond_to_mouse_button_press.md](docs/chapters/respond_to_mouse_button_press.md) |Respond to mouse, minimal example |Minimal example, mouse button press
[code](https://github.com/richelbilderbeek/bevy_tdd_book_respond_to_mouse_wheel_turn) |[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_respond_to_mouse_wheel_turn/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_respond_to_mouse_wheel_turn) |[respond_to_mouse_wheel_turn.md](docs/chapters/respond_to_mouse_wheel_turn.md) |Respond to mouse, minimal example |Minimal example, mouse wheel turn
[code](https://github.com/richelbilderbeek/bevy_tdd_book_respond_to_mouse_wheel_press) |[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_respond_to_mouse_wheel_press/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_respond_to_mouse_wheel_press) |[respond_to_mouse_wheel_press.md](docs/chapters/respond_to_mouse_wheel_press.md) |Respond to mouse, minimal example |Minimal example, mouse wheel press- gamepad
### Section 4: media
- Adding a 3D player with a texture
- 3D models
- drawing
- animations
- sounds
- other suggestions from feedback### Section 99: Graphical user interface testing
- Testing for a key press to close the game
### Section for possible chapters
Code |Code coverage |Chapter [2] |Description |Concepts
----------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------|-----------------------------------------|------------------
[code](https://github.com/richelbilderbeek/bevy_tdd_book_use_game_state) |[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_use_game_state/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_use_game_state) |. |Use Bevy states |Minimal example, state, States
[code](https://github.com/richelbilderbeek/bevy_tdd_book_use_resources) |[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_use_resources/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_use_resources) |. |Use Bevy resources |Minimal example, resources### Appendix
Code |Code coverage |Chapter [2] |Description |Concepts
----------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------|-----------------------------------------|------------------
[code](https://github.com/richelbilderbeek/bevy_tdd_book_move_camera) |[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_move_camera/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_move_camera) |[move_camera.md](docs/chapters/move_camera.md) |Move the camera |Extending a Component
[code](https://github.com/richelbilderbeek/bevy_tdd_book_move_camera_with_keyboard) |[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_move_camera_with_keyboard/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_move_camera_with_keyboard) |[move_camera_with_keyboard.md](docs/chapters/move_camera_with_keyboard.md) |Respond to keyboard |.
[code](https://github.com/richelbilderbeek/bevy_tdd_book_move_player_with_keyboard) |[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_move_player_with_keyboard/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_move_player_with_keyboard) |[move_player_with_keyboard.md](docs/chapters/move_player_with_keyboard.md) |Respond to keyboard |.
[code](https://github.com/richelbilderbeek/bevy_tdd_book_move_camera_with_mouse) |[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_move_camera_with_mouse/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_move_camera_with_mouse) |[move_camera_with_mouse.md](docs/chapters/move_camera_with_mouse.md) |Respond to mouse |.
[code](https://github.com/richelbilderbeek/bevy_tdd_book_move_player_with_mouse) |[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_move_player_with_mouse/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_move_player_with_mouse) |[move_player_with_mouse.md](docs/chapters/move_player_with_mouse.md) |Respond to mouse |.
[code](https://github.com/richelbilderbeek/bevy_tdd_book_show_2d_coordinate_systems) |[![codecov](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_show_2d_coordinate_systems/graph/badge.svg?token=XAVFZYDQKZ)](https://codecov.io/gh/richelbilderbeek/bevy_tdd_book_show_2d_coordinate_systems) |[show_2d_coordinate_systems.md](docs/chapters/show_2d_coordinate_systems.md) |Show 2D coordinate systems |2D coordinate systems## Files used by continuous integration scripts
Filename |Descriptions
------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------
[mlc_config.json](mlc_config.json) |Configuration of the link checker, use `markdown-link-check --config mlc_config.json --quiet docs/**/*.md` to do link checking locally
[.spellcheck.yml](.spellcheck.yml) |Configuration of the spell checker, use `pyspelling -c .spellcheck.yml` to do spellcheck locally
[.wordlist.txt](.wordlist.txt) |Whitelisted words for the spell checker, use `pyspelling -c .spellcheck.yml` to do spellcheck locally
[.markdownlint.jsonc](.markdownlint.jsonc)|Configuration of the markdown linter, use `markdownlint "**/*.md"` to do markdown linting locally. The name of this file is a default name.
[.markdownlintignore](.markdownlintignore)|Files ignored by the markdown linter, use `markdownlint "**/*.md"` to do markdown linting locally. The name of this file is a default name.## Links
- [Blog post 'Test-Driven Development in Rust Game Development with Bevy' by Edgardo Carreras](https://edgardocarreras.com/blog/tdd-in-rust-game-engine-bevy/)