Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Merged by Bors] - Do not panic on failed setting of GameOver state in AlienCakeAddict #3411

Closed

Conversation

alice-i-cecile
Copy link
Member

Objective

Solution

  • The panic seems to occur when the game-over state occurs nearly instantly.
  • Discard the Result, rather than panicking. We could probably handle this better, but I want to see if this works first. Ping @qarmin.

@github-actions github-actions bot added the S-Needs-Triage This issue needs to be labelled label Dec 21, 2021
@rparrett
Copy link
Contributor

Might be more correct game-wise to use overwrite_set.

@cart
Copy link
Member

cart commented Dec 22, 2021

bors r+

bors bot pushed a commit that referenced this pull request Dec 22, 2021
…3411)

# Objective

- Tentatively fixes #2525.

## Solution

- The panic seems to occur when the game-over state occurs nearly instantly.
- Discard the `Result`, rather than panicking. We could probably handle this better, but I want to see if this works first. Ping @qarmin.
@bors bors bot changed the title Do not panic on failed setting of GameOver state in AlienCakeAddict [Merged by Bors] - Do not panic on failed setting of GameOver state in AlienCakeAddict Dec 22, 2021
@bors bors bot closed this Dec 22, 2021
@mockersf mockersf added C-Bug An unexpected or incorrect behavior C-Examples An addition or correction to our examples and removed S-Needs-Triage This issue needs to be labelled labels Dec 29, 2021
bors bot pushed a commit that referenced this pull request Sep 30, 2022
# Objective

Examples should use the correct tools for the job.

## Solution

A fixed timestep, by design, can step multiple times consecutively in a single update.

That property used to crash the `alien_cake_addict` example (#2525), which was "fixed" in #3411 (by just not panicking). The proper fix is to use a timer instead, since the system is supposed to spawn a cake every 5 seconds. 

---

A timer guarantees a minimum duration. A fixed timestep guarantees a fixed number of steps per second.
Each one works by essentially sacrificing the other's guarantee.

You can use them together, but no other systems are timestep-based in this example, so the timer is enough.
james7132 pushed a commit to james7132/bevy that referenced this pull request Oct 19, 2022
…yengine#5760)

# Objective

Examples should use the correct tools for the job.

## Solution

A fixed timestep, by design, can step multiple times consecutively in a single update.

That property used to crash the `alien_cake_addict` example (bevyengine#2525), which was "fixed" in bevyengine#3411 (by just not panicking). The proper fix is to use a timer instead, since the system is supposed to spawn a cake every 5 seconds. 

---

A timer guarantees a minimum duration. A fixed timestep guarantees a fixed number of steps per second.
Each one works by essentially sacrificing the other's guarantee.

You can use them together, but no other systems are timestep-based in this example, so the timer is enough.
james7132 pushed a commit to james7132/bevy that referenced this pull request Oct 28, 2022
…yengine#5760)

# Objective

Examples should use the correct tools for the job.

## Solution

A fixed timestep, by design, can step multiple times consecutively in a single update.

That property used to crash the `alien_cake_addict` example (bevyengine#2525), which was "fixed" in bevyengine#3411 (by just not panicking). The proper fix is to use a timer instead, since the system is supposed to spawn a cake every 5 seconds. 

---

A timer guarantees a minimum duration. A fixed timestep guarantees a fixed number of steps per second.
Each one works by essentially sacrificing the other's guarantee.

You can use them together, but no other systems are timestep-based in this example, so the timer is enough.
ItsDoot pushed a commit to ItsDoot/bevy that referenced this pull request Feb 1, 2023
…yengine#5760)

# Objective

Examples should use the correct tools for the job.

## Solution

A fixed timestep, by design, can step multiple times consecutively in a single update.

That property used to crash the `alien_cake_addict` example (bevyengine#2525), which was "fixed" in bevyengine#3411 (by just not panicking). The proper fix is to use a timer instead, since the system is supposed to spawn a cake every 5 seconds. 

---

A timer guarantees a minimum duration. A fixed timestep guarantees a fixed number of steps per second.
Each one works by essentially sacrificing the other's guarantee.

You can use them together, but no other systems are timestep-based in this example, so the timer is enough.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-Bug An unexpected or incorrect behavior C-Examples An addition or correction to our examples
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Crash when running alien_cake_addictexample in valgrind
4 participants