Skip to content

Instantly share code, notes, and snippets.

@khionu
Created July 17, 2020 01:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save khionu/6a46519645a4e6dc9506326cbd2596c3 to your computer and use it in GitHub Desktop.
Save khionu/6a46519645a4e6dc9506326cbd2596c3 to your computer and use it in GitHub Desktop.
# New Amethyst Structure
- `amethyst` - Primary import
- No longer wrapper crate
- Enough for simple examples
- Include ECS, renderer, input, and bare essentials
- ECS: raw re-export of Legion
- Renderer
- Split into 2D and 3D APIs w/ feature flags
- Compat between 2D/3D. 2D should be able to write to a mesh that 3D can control, without codependency
- Not Rendy based. See viability of `wgpu-rs` in multithreading, otherwise GFX-HAL
- Input
- Keyboard and Mouse
- Feature flag for controller support
- Thin adapter for other sources
- Probably close to what we have now
- Bare essentials
- No stages, "helpful" utilities.
- Minimal to remove boilerplate for Hello World
- `amethyst_window`, `amethyst_error`
- `amethyst_ext` - Wrapper crate around "high demand" utilities
- Should not wrap larger crates, like `amethyst_assets`
- Should wrap smaller, less-opinionated crates like `amethyst_locale`
- Should not wrap contextually sensative crates, like `amethyst_networking` and `amethyst_tiles`
- Introduce utilties from `amethyst_utils`, `amethyst_core`, and old `amethyst`, possibly new ones
- Ie Stages, background executor
- Other crates should not depend on other Amethyst crates aside from `amethyst`
- Crates to deprecate:
- `amethyst_config` - No strong features, limited to RON.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment