Pull request Compare This branch is 3 commits ahead, 200 commits behind develop.
Permalink
..
Failed to load latest commit information.
animation Update formatting to rustfmt 0.4.1-stable May 16, 2018
appendix_a Update formatting to rustfmt 0.4.1-stable May 16, 2018
arc_ball_camera Update formatting to rustfmt 0.4.1-stable May 16, 2018
asset_loading Update formatting to rustfmt 0.4.1-stable May 16, 2018
assets Add known licenses May 11, 2018
custom_game_data Update formatting to rustfmt 0.4.1-stable May 16, 2018
fly_camera Update formatting to rustfmt 0.4.1-stable May 16, 2018
gltf refactor: Breaking Dispatcher out from the core Application, and maki… May 14, 2018
hello_world refactor: Breaking Dispatcher out from the core Application, and maki… May 14, 2018
material Update formatting to rustfmt 0.4.1-stable May 16, 2018
pong Update formatting to rustfmt 0.4.1-stable May 16, 2018
pong_tutorial_01 refactor: Breaking Dispatcher out from the core Application, and maki… May 14, 2018
pong_tutorial_02 refactor: Breaking Dispatcher out from the core Application, and maki… May 14, 2018
pong_tutorial_03 refactor: Breaking Dispatcher out from the core Application, and maki… May 14, 2018
renderable Update formatting to rustfmt 0.4.1-stable May 16, 2018
separate_sphere Update formatting to rustfmt 0.4.1-stable May 16, 2018
sphere Update formatting to rustfmt 0.4.1-stable May 16, 2018
sphere_multisample Update formatting to rustfmt 0.4.1-stable May 16, 2018
sprites refactor: Breaking Dispatcher out from the core Application, and maki… May 14, 2018
ui Update formatting to rustfmt 0.4.1-stable May 16, 2018
window refactor: Breaking Dispatcher out from the core Application, and maki… May 14, 2018
README.md Adding a more advanced example with custom GameData May 14, 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.

Custom Game Data

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

game_data_example_result