Summary Introduction Getting Started Concepts State Entity and Component Resource World System System Initialization SystemDesc Derive Implementing the SystemDesc Trait Dispatcher Event Channel Pong Tutorial Setting up the project Drawing the Paddles Moving the Paddles Making a Ball Move and Bounce Winning Rounds and Keeping Score Adding audio Call for Contribution Math Input Handling Input Assets Formats How to Use Assets How to Define Custom Assets How to Define Custom Formats Prefabs Prefabs in Amethyst How to Define Prefabs: Prelude How to Define Prefabs: Simple How to Define Prefabs: Aggregate How to Define Prefabs: Adapter How to Define Prefabs: Asset How to Define Prefabs: Multi-Handle Prefabs Technical Explanation Animation Interpolation Channel Sampler Definition Controlling System Execution Custom GameData State-specific Dispatcher Pausable Systems Sprites Set Up The Render Pass Load The Texture Define The SpriteSheet SpriteRender Component Modify The Texture Orthographic Camera Tiles Setup Features and Render Pass Create a Tile Map User Interface Creating a simple button Interacting with the UI Interacting through a state Testing Test Examples Glossary Appendix A: Config Files Adding an Arena Config Adding a Ball Config Adding Paddle Configs Appendix B: Migration Notes cgmath to nalgebra Rendy Migration Specs Migration Appendix C: Feature Gates