Amethyst 0.9 released

Amethyst 0.9 was just released.  Amethyst is a Rust powered data driven open source game engine built for highly parallel and performant code and implements an Entity Component System.  The 0.9 release included a new way to draw sprites, a new networking system, an experimental runtime editor support and more.

Complete details of the release from the release notes:

Added
  • Added base networking implementation and the amethyst_network crate. (#969)
  • Support for debug lines using DebugLines pass, and DebugLines component or resource. (#917, #957)
  • Added JsonFormat (#950).
  • SpriteRender pass to draw sprites without using Material and Mesh. (#829, #830)
  • Sprite animation uses the SpriteRenderChannel. (#829, #830)
  • State::handle_event can now handle multiple types of events. (#887)
  • Added Named Component. (#879)(#896)
  • Support for progressive jpeg loading. (#877)
  • New application_root_dir() function in amethyst_utils. (#831)
  • Load node names for glTF prefabs. (#905)
  • Added automatic camera matrix resizing to allow clean screen resizes. (#920)
  • Added the Removal component to facilitate manual entity removal and scene cleaning. (#920)
  • Added DestroyAtTime and DestroyInTime components to easily destroy entities. (#920)
  • Support for loading TGA images. (#934)
  • GltfPrefab adds MeshData as a component on loaded entities. This is not configurable until the Prefab rework. (#946)
  • Added implementation of From<Vector3> for Transform which creates a Transform using Vector3 as the translation vector. (#946)
  • New vertices() method on MeshCreator trait. (#946)
  • Support for text alignment (align left, center, right). (#965)
  • Support for multiline text. (#965)
  • Added custom aspect ratio to OrthoCamera. (#983)
  • Added AntiStorage documentation to the book. (#997)
  • You can now stop the rotation of the FreeRotationSystem by setting HideCursor.hide value to false. (#997)
  • Support for logging to file, toggle for logging to stdout. (#976, #994)
  • Added a Hidden Component, that hides a single entity, and a HideHierarchySystem that toggles Hidden on all children when used. (#1001)
  • Documentation for drawing sprites. (#971)
  • Added shadow_update() and shadow_fixed_update() to the State trait. (#1006)
  • Added configurable width for debug lines. (#1016)
  • Added TextureMetadata::srgb_scale() for default texture metadata with nearest filter. (#1023)
  • Added motivation to use Amethyst over gluing the building blocks yourself in the book. (#1057)
Changed
  • Sprites contain their dimensions and offsets to render them with the right size and desired position. (#829, #830)
  • Texture coordinates for sprites are 1.0 at the top of the texture and 0.0 at the bottom. (#829, #830)
  • Made get_camera public. ([#878)]
  • Simplified creating states with SimpleState and EmptyState. (#887)
  • Updated ProgressCounter to show loading errors. (#892)
  • Replaced the imagefmt crate with image. (#877)
  • Optimize Sprite rendering via batching. (#902)
  • Derive Debug and PartialEq for amethyst_input::Axis. (#903, #904)
  • Updated winit to 0.17 (see Winit’s changelog). (#906)
  • Updated glutin to 0.18 (see Glutin’s changelog). (#906)
  • Updated gfx_window_glutin to 0.26. (#906)
  • Updated hetseq to 0.2. (#906)
  • Removed unwraps from StateMachine (#940)
  • Renamed ArcBallMovementSystem to ArcBallRotationSystem. (#946)
  • Moved the ArcBallMovementSystem::get_axis method to amethyst_input/src/utils: get_input_axis_simple (#946)
  • Ui Y axis is now from bottom to top. (#946)
  • Fixed issue with global anchors not actually aligning ui elements and containers properly. (#946)
  • Fixed issue with ui events not triggering at times. (#946)
  • Reduced the complexity of the UiPass and associated shaders. (#946)
  • Added comments to UiPass and shaders explaining what is going on. (#946)
  • The z in UiTransformBuilder now defaults to 1 instead of 0, allowing to skip defining the z in the ui prefabs. (#946)
  • Added comments to ui prefab. (#946)
  • Summarized all use amethyst:: statements to allow collapsing in IDE’s. (#974)
  • Application now uses EventReaders to determine what events to send to the States, more information in the State book chapter (#996)
  • Breaking: Refactor TextureMetadata so filter method and clamping can be configured more easily (#981)
  • Renamed PrefabData functions to be easier to understand (#1008)
Removed
  • LMenu and RMenu key codes, following the winit update. (#906)
Fixed
  • Material ids in GLTF loader caused multiple GLTF files to get incorrect materials applied. (#915)
  • Fix render gamma for most textures. (#868)
  • Joint entities can only be part of a single skin: Materials are not swapped anymore. (#933)
  • Fixed regression in sprite positioning after batching. (#929)
  • Now loading default fonts from the system for UiButton (#964)
  • Fixed single frame animation (#1015)
  • Improved compatibility with older drivers (#1012)
  • Forgotten channel field on examples/ui prefab (#1024)
  • AssetPrefab loaded files at an incorrect time (#1020)
  • Removed unreachable code in TexturePrefab (#1020)
  • Fix OpenGL not rendering on window creation due to glutin bug (#972)
  • Fix debug lines panic when no lines are rendered (#1049)

More information about Amethyst is available here.  The game engine is available under the MIT and Apache licenses on GitHub.

GameDev News


Scroll to Top