Skip to content

More complex game examples #1248

@alice-i-cecile

Description

@alice-i-cecile

What problem does this solve or what need does it fill?

  1. More complex code bases to allow us to better reason about the ergonomics of ECS features.
  2. Better integration testing. This can also be used to help inform change lists and upgrade guides from Bevy versions.
  3. More examples to show off and learn from :)

What solution would you like?

Extend the sample games from Breakout to include a larger variety of more complex games.

What alternative(s) have you considered?

  1. We could use community example games for this, but they won't be as discoverable for beginners (use 3) or as useful for bikeshedding (1) or integration testing (2). A canonical list helps set the terms of discussion in a more concrete way.
  2. We could put these examples in another official Bevy repo, which relies on bevy master as a dependency. This hurts discoverability, and won't block PRs being merged (I think this is probably net good), and risks falling out of sync.

Additional context

When adding games, we'll want to be mindful that their value is proportional to their upkeep cost. While there's a lot of possible use cases that would be nice to cover, we'll want to minimize overlap between examples to avoid duplication of effort. Demonstrations of specific features should be in minimal examples like we already have, while domain-specific tricks probably belong in awesome-bevy.

Upgrading the games as they break is also very easily delegated to community members: it's a fun task, their correctness is important but not critical and doing so requires no knowledge of the internal code base.

As is hopefully already the case, we'll want to avoid packaging these more complex examples (and any assets they use) as part of the standard cargo release of Bevy to avoid pointless bloat. Hopefully we can have each of these in their own dedicated subfolder within examples/games, with breakout as the first one.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-ExamplesAn addition or correction to our examplesC-FeatureA new feature, making something new possible

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions