Amethyst Amethyst Versions Save

Data-oriented and data-driven game engine written in Rust

v0.15.3

3 years ago

0.15.3 is the new 0.15.2

0.15.2 was published off the wrong commit. As fate would have it, the commit wasn't just trivially wrong, like a typo in a changelog...it was flat out broken. 🤦‍♂️ As we don't want any accidental use of it, 0.15.2 has been yanked from crates.io.

0.15.3 is the new 0.15.2 that actually works. Enjoy!

v0.15.2

3 years ago

Note

Please note that after the 0.15.x series Amethyst will switch from specs to legion for the ECS subsystem. This will be a significant breaking change.

Changed

  • Internal CI improvements
  • Recommend cargo new pong instead of deprecated amethyst new pong in the book tutorial (#2448)

Fixed

  • Fix Camera::screen_ray bug introduced in 0.15.1 (#2447)

v0.15.1

3 years ago

Note

Please note that after the 0.15.x series Amethyst will switch from specs to legion for the ECS subsystem. This will be a significant breaking change.

Added

  • New optional_graphics example demonstrating running an app with and without graphics (#2282)
  • Return a standalone Dispatcher from GameDataBuilder::build_dispatcher instead of using DataInit to build a GameData (#2294)
  • Added User Interface chapter to The Book (#2311, #2346, #2347, #2368, #2373)
  • Support text alignment in UiButton and UiLabel (#2316)
  • You can now bind multiple inputs to a single axis via Axis::Multiple (#2341)
  • Support layer to be set in UiLabelBuilder (#2358)
  • Support line mode to be set in UiLabelBuilder and UiButtonBuilder (#2358)
  • GltfPrefab now also imports lights from a glTF source (#2362)
  • Added Tiles chapter to The Book (#2391)
  • Added SpriteRender::new for cleaner instantiation (#2395, #2419)
  • amethyst_ui::UiButtonActionRetrigger now derives Default and Clone. (#2388)

Changed

  • Removed far plane from perspective projection (#2118)
  • Experimented with CI solutions, selected GitHub Actions. Fixed bors & stalebot. (#2262, #2380, #2382, #2410, #2413, #2414, #2415)
  • amethyst_rendy::shape::Shape::upload takes &ShapeUpload. (#2264)
  • Updated examples, with special attention to the pong example. Improved readmes, updated screenshots, colocated assets with example code (#2248, #2289, #2305, #2201, #2310, #2312, #2349, #2384, [#2396], #2422)
  • UiText now requires 2 more arguments line_mode and align (#2358)
  • Updated the style of The Book (#2355)

Fixed

  • Fix tile example's MapMovementSystem to look for the correct components (#2209)
  • Fix issue where all TileMaps were rendered with the same transformation. (#2210)
  • Fix the bind method for DynamicVertexBuffer::<B,u32> (#2221)
  • Fix examples which would not run due to incorrect system order. (#2213, #2223, #2239, #2243, #2267)
  • Fix Texture asset debugging representation (#2231)
  • Fix fixed updates being tied to time_scale (#2255)
  • Fix incorrect assets being used when asset handles get reused (#2258)
  • Fix bug causing only one TileMap to be rendered (#2296)
  • Fix UiButtonBuilder so buttons it builds get rendered (#2299)
  • Fix Tint so its color is converted from sRGBA to linear RGBA so shader color is correct. Also update various documentation regarding linear RGBA (#2314, #2398)
  • Fix text alignment in UiText (#2316, #2358)
  • Fix release build path resolution on Windows (#2337)
  • Fix textures sometimes showing up incorrectly or not at all. (#2339)

v0.15.0

4 years ago

Added

  • Support settings module log levels from a RON file. (#2115)
  • Export the get_parent_pixel_size functions from the ui module. ([#2128)
  • Export the pixel_width and pixel_height methods on the UiTransform. ([#2128)
  • Support UiEvents targeting multiple overlapping entities. (#2138)
  • "storage-event-control" feature enables the specs "storage-event-control" feature. (#2152)

Changed

  • Re-export TargetedEvent from amethyst_ui. (#2114)
  • amethyst::ui::Anchor is now Copy. (#2148)
  • amethyst::ui::LineMode is now Copy. (#2148)
  • UiButtonBuilder::build takes in &mut UiButtonBuilderResources. (#2148)
  • Breaking: UiBundle depends on InputBundle being registered with the dispatcher first. (#2151)
  • Re-export UiImageLoadPrefab from amethyst_ui. (#2169, #2181)
  • Don't remove HiddenPropagate components set by users manually. (#2155)

Removed

  • "nightly" feature is removed, missing resource panic message includes type name on stable. (#2136)

Fixed

  • Fixed an issue with states_ui example loading items incorrectly. (#2117)
  • Editable text fields now correctly highlight strings containing spaces. (#2108, #2143)
  • Caret for editable text box is drawn in correct position. (#2146, #2149)
  • Caret for editable text box is positioned correctly on first click. (#2151)
  • Editable text is correctly blurred / unfocused when clicking outside its bounds. (#2091, #2151)
  • amethyst_test crate features now map 1-1 to amethyst features. (#2153)

v0.14.0

4 years ago

Added

  • Implement Debug for ProgressCounter and ProgressCounterTracker. (#1973)
  • Added a custom render pass Example. (#1904)
  • Add an entry for examples/tiles to the examples readme. (#1978)
  • Added UI states/menu example. #1986
  • Allow user to specify custom completion function in amethyst_test::WaitForLoad. (#1984)
  • Log warning when amethyst_test::WaitForLoad has not completed in 10 seconds. (#1984)
  • Derive Copy and PartialEq for amethyst::renderer::resources::Tint. (#2033)
  • Derive Hash for amethyst::input::{Button, ControllerButton, ScrollDirection}. (#2041)
  • Added Trans::Replace, Trans::NewStack, and Trans::Sequence to the State Machine Transitions. (#2067,#2071)
  • Add rendy/gfx-backend log verbosity through configuration. (#1652) (#2048)
  • Add Draggable component that can be used with UiTransform to make widgets draggable. (#2080)

Changed

  • Use a premultiplied view_proj matrix in vertex shaders. (#1964)
  • amethyst_network completely rewritten to provide a new baseline with which to build. ([#1917])
  • Cleaned up tiles example. Added rotation and translation tests, fixed raycast debug box. Added default zoom to PROJECT perspective projection since no one knew to zoom out. (#1974)
  • TileMaps to_tile and to_world now take an Option<&Transform> that allows them to work if the entire map in translated. (#1987,#1991)
  • AmethystApplication::with_fn constraint relaxed from Fn to FnOnce. (#1983)
  • ScreenDimensions now consistently reports window size in physical pixels. ([#1988])
  • Config::load now returns an error or failure rather than silently falling back to the default config. Same is true for the from_config_file methods on RenderToWindow, WindowBundle, and WindowSystem (#1989)
  • Adds get methods to the underlying net::transport resources (#2005)
  • Changed SpriteSheetFormat::import_simple to allow importing grid based SpriteSheets (#2023) Migration Note: Rons need to wrap their content in either Grid() or List()
  • TileMap to_tile doesn't panic in debug mode. It instead return Result<Point,TileOutOfBounds>. (#2020,#2070)
  • Added new Error options for NetworkSimulationEvent.
  • Changed amethyst config directory from $HOME/.amethyst to $HOME/.config/amethyst (#2079)
  • Changed world_to_screen camera transformation to match inverse of the one in screen_ray (#2057)
  • amethyst_input::Axis::Mouse now only has a single radius value. One of the two values was guaranteed to be unused. (#2099)

Deprecated

  • Config::load_no_fallback, use Config::load instead (#1989)

Fixed

  • Tilemap rotation was incorrect and not transposed. Fixed and uses component rotation. (#1974)
  • Config types no longer require a Default impl (#1989)
  • Fixed Incorrect path for sprite_camera_follow example (#2004)
  • Run System::setup for pausable systems' delegate. (#2029)
  • Fixed an incorrect dimensions being used in Tile Encoders, causing bad lookups in assymetric maps in any Z-level besides 0 (#2017)
  • Fix encoders dimensional cases and optimize storage space (#2059)
  • Fixed off by one issue in to_tile function (#2103)
  • Fix dragging UI widgets that have ScaleMode::Percent (#2111)

v0.13.2

4 years ago

This release simply fixes a yanked dependency in the amethyst-locale crate.

Fixed

  • Fix fluent and unic-langid alignment (#1966)

v0.13.1

4 years ago

This release fixes some bugs in amethyst_locale and amethyst_tiles.

Added

  • FlatEncoder added to amethyst_tiles for flat linear encoding which is optimized for space. (#1950)

Changed

  • Updated syn, quote, and proc-macro2 to 1.0. (#1952)

Fixed

  • TileMap was not allocating enough space for to compensate for morton encoding alignment. This means that all tilemap allocation must occur on 2^n boundary aligned on all axis (or x-y axis for Morton2D) (#1950)
  • Add missing re-export for HideHierarchySystemDesc (#1945)
  • TileArgs POD had incorrect format for tile_coordinate argument, caused a crash on metal backend. (#1957)

v0.13.0

4 years ago

This release, on top of the changes below, adds the amethyst_tiles crate, which provides utilities that makes handling and drawing stuff in tiles a lot easier! 🎉

Major breaking changes

  • Systems needing initialization with world resources must go through a SystemDesc intermediate builder. (#1780)

Added

  • 'amethyst_tiles' crate added supporting 2d and 3d tile map rendering with sprites. (#1820)
  • SystemDesc proc macro derive to simplify defining SystemDescs. (#1780)
  • UiButtonData is now exported from amethyst_ui and can be used for custom widgets. (#1859)
  • Add an audio subchapter to the pong chapter. (#1842)
  • Add DispatcherOperation to store dispatcher build logic, which can be executed lazily. (#1870)
  • AmethystApplication takes in SystemDescs through with_system_desc. (#1882)
  • AmethystApplication::with_thread_local_desc takes in RunNowDesc. (#1882)
  • Add NineSlice support to UiImage. (#1896)
  • RenderingBundle for full manual control of the rendering pipeline via a custom GraphCreator. (#1839)
  • CameraOrtho::new takes in CameraOrthoWorldCoordinates, which can be set to custom dimensions. (#1916)
  • Camera::screen_ray method added, returning an appropriate Ray structure (#1918).
  • amethyst_test: InMemorySource and WaitForLoad helpers (#1933).
  • Animations are available with UiTransforms. ([#1935])

Changed

  • All -Builder structs in amethyst_ui/prefab.rs are now called -Data. (#1859)
  • AmethystApplication takes in a System instead of a closure for with_system. (#1882)
  • AmethystApplication::with_thread_local constraint relaxed to RunNow (previously System). (#1882)
  • SystemDesc proc macro supports #[system_desc(event_reader_id)] to register event reader. (#1883)
  • SystemDesc proc macro supports #[system_desc(flagged_storage_reader(Component))]. (#1886)
  • Use SystemDesc derive to generate SystemDesc implementations for common case systems. (#1887)
  • DispatcherOperation stores system name and dependencies as Strings. (#1891)
  • TextureProcessor renamed to TextureProcessorSystem. (#1839)
  • MeshProcessor renamed to MeshProcessorSystem. (#1839)
  • AmethystApplication::with_setup now takes in FnOnce(&mut World) + Send + 'static. (#1912)
  • AmethystApplication::with_setup runs the function before the dispatcher. (#1912)
  • UiImage:PartialTexture & UiImage:Sprite texture coordinates are correct. Clarified types. (#1906,#1919)
  • Camera::screen_to_world renamed Camera::screen_to_world_point and its API has changed to a Point3 (#1918).

Fixed

  • RenderingBundle is registered last in all examples. (#1881)

v0.12.0

4 years ago

New release! :tada:

Breaking changes

  • Float newtype removed, moved back to f32 primitive for all values (#1747)
  • TextureProcessor and MeshProcessor systems are now separated from RenderingSystem (#1772)

Added

  • Add a feature flag sentry to disable the sentry dependency. (#1804) (#1825)
  • Fixes and renames regression from ([#1442]) added back position_from_world as screen_to_world. Also added world_to_screen. Also adds Transform::copy_local_to_global()' for debug_assertion` builds (#1733)
  • Add add_rectangle, add_rotated_rectangle, add_box, add_rotated_box, add_circle, add_rotated_circle, add_cylinder, add_rotated_cylinder and add_sphere functions to DebugLinesComponent and the corresponding draw functions to DebugLines, to draw simple shapes with debug lines. (#1766)
  • InputEvent::AxisMoved is sent upon button press / release. (#1512, #1797)
  • UiImage is updated to allow for partial textures and sprites. (#1809,#1811)
  • Added RenderingBundle with a rendering plugin system, making rendering setup easier (#1772)
  • Documentation for Tint component. (#1802)

Changed

  • Splitted the /resources directory of amethyst projects into /assets and /config. ([#1806])
  • Rename FPSCounter, FPSCounterBundle, FPSCounterSystem to FpsCounter, FpsCounterBundle, FpsCounterSystem. (#1719)
  • Add Tint component support for sprites. (#1756)
  • Remove remaining <N: RealField> type parameter on GameDataBuilder, add Debug derive to LoggerConfig (#1758)
  • Inverted mouse wheel scroll direction event. Now using winit's standard. (#1767)
  • Add load_from_data_async to Asset Loader. (#1753)
  • Add SerializableFormat marker trait which is now needed to be implemented for all the formats that are supposed to be serialized. (#1720)
  • Make the GltfSceneOptions field of GltfSceneFormat public. (#1791)
  • Updated fluent to version 0.6. (#1800) InputEvent<T> now takes in the BindingTypes as a type parameter. (#1797)
  • Use crossbeam-queue crate directly. (#1822)

Fixed

  • Fix stack overflow on serializing Box<dyn Format<_>>. (#1720)
  • Fix the steps for enabling the nightly flag in the pong tutorial. (#1805)
  • Fix animation unwrap on missing animated component. (#1773)
  • Fix tangent generation in procedural shapes. (#1807)

v0.11.1

4 years ago

This release does not come with any API changes or additions, it only contains documentation fixes and a fix to make docs.rs build amethyst again.