Latest commit 36501cf Dec 10, 2018
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
animation Don't panic in application_root_dir and make use of std::path Dec 10, 2018
appendix_a Don't panic in application_root_dir and make use of std::path Dec 10, 2018
arc_ball_camera Don't panic in application_root_dir and make use of std::path Dec 10, 2018
asset_loading Don't panic in application_root_dir and make use of std::path Dec 10, 2018
assets Use better semantic primitives for sprite loading. Nov 29, 2018
custom_game_data Don't panic in application_root_dir and make use of std::path Dec 10, 2018
custom_ui Don't panic in application_root_dir and make use of std::path Dec 10, 2018
debug_lines Don't panic in application_root_dir and make use of std::path Dec 10, 2018
fly_camera Don't panic in application_root_dir and make use of std::path Dec 10, 2018
gltf Don't panic in application_root_dir and make use of std::path Dec 10, 2018
hello_world 2018 migration Dec 6, 2018
locale Don't panic in application_root_dir and make use of std::path Dec 10, 2018
material Don't panic in application_root_dir and make use of std::path Dec 10, 2018
net_client Apply formatting pass Dec 6, 2018
net_server Apply formatting pass Dec 6, 2018
pong Don't panic in application_root_dir and make use of std::path Dec 10, 2018
pong_tutorial_01 Don't panic in application_root_dir and make use of std::path Dec 10, 2018
pong_tutorial_02 Don't panic in application_root_dir and make use of std::path Dec 10, 2018
pong_tutorial_03 Don't panic in application_root_dir and make use of std::path Dec 10, 2018
pong_tutorial_04 Don't panic in application_root_dir and make use of std::path Dec 10, 2018
pong_tutorial_05 Don't panic in application_root_dir and make use of std::path Dec 10, 2018
prefab Don't panic in application_root_dir and make use of std::path Dec 10, 2018
renderable Don't panic in application_root_dir and make use of std::path Dec 10, 2018
separate_sphere Don't panic in application_root_dir and make use of std::path Dec 10, 2018
simple_image Don't panic in application_root_dir and make use of std::path Dec 10, 2018
sphere Don't panic in application_root_dir and make use of std::path Dec 10, 2018
sphere_multisample Don't panic in application_root_dir and make use of std::path Dec 10, 2018
spotlights Don't panic in application_root_dir and make use of std::path Dec 10, 2018
sprite_camera_follow Format everything Dec 10, 2018
sprites_ordered Don't panic in application_root_dir and make use of std::path Dec 10, 2018
state_dispatcher 2018 migration Dec 6, 2018
ui Don't panic in application_root_dir and make use of std::path Dec 10, 2018
window Don't panic in application_root_dir and make use of std::path Dec 10, 2018
README.md Use better semantic primitives for sprite loading. Nov 29, 2018

README.md

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.

window example result

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.

sphere example result

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.

sphere example result

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.

sphere example result

Renderable

Load graphics objects from disc using the asset loader. Also contains a custom system that move the camera and the scene.

renderable example result

Asset loading

Create a custom asset format, and use the asset loader to load assets using the format.

asset loading example result

Material

Render a sphere using a physically based material.

material example result

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 animation
  • R - set rotate to current animation
  • S - set scale to current animation
  • H - run animation at half speed
  • F - run animation at full speed
  • V - run animation at no speed, use stepping keys for controlling the animation
  • Right - step to the next animation keyframe
  • Left - 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.

gltf example result

UI

Render a basic UI.

ui example result

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.

pong example result

Appendix A

From the book, it is a minor update to the Pong example that uses Config files instead of hardcoded constants.

example screenshot

Custom Game Data

Demonstrates how to use custom GameData, with three different states: Loading, Main, Paused.

game_data_example_result

Fly Camera

This example shows how to use the Fly Camera.

Arc ball Camera

This example shows how to use the Arc Ball Camera.

Sprites Ordered

Draws sprites ordered by Z coordinate. Entities with larger Z coordinates will have their sprites drawn in front of entities with smaller Z coordinates.

This example also demonstrates the use of the Transparent component, the depth buffer, and camera depth values.

Keybindings:

  • T - Toggle whether the Transparent component is attached to entities.
  • R - Reverse the Z coordinates of the entities.
  • Up - Increase the Z coordinate of the camera.
  • Down - Decrease the Z coordinate of the camera.
  • Right - Increase the depth (Z distance) that the camera can see.
  • Left - Decrease the depth (Z distance) that the camera can see.

Prefab

Shows how to load data using the Prefab system.