Examples
All these can be run with
cargo run --example name_of_an_example
Hello world
Shows the basics of the state machine in amethyst.
This example just prints:
Begin!
Hello from Amethyst!
End!
Window
Open a window, and create a render context. Also shows basic raw input handling.
Sphere
Render a basic 3D scene, with a camera, lights and a 3D object, a sphere in this scenario. This example use a single vertex buffer with all attributes interleaved.
Separate sphere
Render a basic 3D scene, with a camera, lights and a 3D object, a sphere in this scenario. This example use vertex buffers per attribute.
Multisample sphere
Render a basic 3D scene, with a camera, lights and a 3D object, a sphere in this scenario. This example use vertex buffers per attribute. Only difference here is that multisampling is enabled in the options.
Renderable
Load graphics objects from disc using the asset loader. Also contains a custom system that move the camera and the scene.
Asset loading
Create a custom asset format, and use the asset loader to load assets using the format.
Material
Render a sphere using a physically based material.
Animation
Animate a sphere using a custom built animation sampler sequence. Keybindings:
Space- start/pause/unpause the currentanimation(default is translational animation)D- demonstrate deferred start, translate will run first, then rotate when translate ends, and last scale animation will start after rotation has run for 0.66s.T- set translate to current animationR- set rotate to current animationS- set scale to current animationH- run animation at half speedF- run animation at full speedV- run animation at no speed, use stepping keys for controlling the animationRight- step to the next animation keyframeLeft- step to the previous animation keyframe
Gltf
Load a GLTF asset, attach it to an entity, and animate the asset. Press Space to start/pause the animation.
UI
Render a basic UI.
Pong
Amethyst based Pong clone. In addition to using most of the features used by the other examples it also demonstrates:
- Input handling using
InputHandler - Background music and sound effects
- A more interesting UI example
- A bigger project with more than a single source file.
Appendix A
From the book, it is a minor update to the Pong example that uses Config files instead of hardcoded constants.
Custom Game Data
Demonstrates how to use custom GameData, with three different states: Loading, Main, Paused.








