Amethyst Amethyst Versions Save

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

v0.11.0

4 years ago

Added

  • Introduce application_dir utility (#1213)
  • Derive Copy, PartialEq, Eq, Serialize, Deserialize for Flipped component. (#1237)
  • A way to change the default Source using set_default_source and with_default_source. (#1256)
  • "How To" guides for using assets and defining custom assets. (#1251)
  • Explanation on how prefabs function in Amethyst. (#1114)
  • amethyst_renderer::Rgba is now a Component that changes the color and transparency of the entity it is attached to. (#1282)
  • AutoFov and AutoFovSystem to adjust horizontal FOV to screen aspect ratio. (#1281)
  • Add icon to DisplayConfig to set a window icon using a path to a file (#1373)
  • Added setting to control gfx_device_gl logging level separately, and set it to Warn by default. (#1404)
  • Add loaded_icon to DisplayConfig to set a window icon programatically (#1405)
  • Added optional feature gates which will reduce compilation times when used. (#1412)
  • Several passes got with_transparency_settings which changes the transparency settings for the pass. (#1419)
  • Add SpriteRenderPrefab. (#1435)
  • Add ScreenSpace component. Draws entities using the screen coordinates. (#1424)
  • Add add_removal_to_entity function. (#1445)
  • Add position_from_screen to Camera. Transforms position from screen space to camera space. (#1442)
  • Add SpriteScenePrefab. Allows load sprites from a grid and add them to the SpriteRenderer. (#1469)
  • Add Widgets resource. Allows keeping track of UI entities and their components and iterating over them. (#1390)
  • AmethystApplication takes in application name using with_app_name(..). (#1499)
  • Add NetEvent::Reliable variant. When added to NetConnection, these events will eventually reach the target. (#1513)
  • "How To" guides for defining state-specific dispatchers. (#1498)
  • Adding support for AMETHYST_NUM_THREADS environment variable to control size of the threads pool used by thread_pool_builder.
  • Add Input variant to StateEvent. (#1478)
  • Support type parameters in EventReader derive. (#1478)
  • Derive Debug, PartialEq, Eq for Source. (#1591)
  • Added events example which demonstrates working even reader and writer in action. (#1538)
  • Implement builder like functionality for AnimationSet and AnimationControlSet (#1568)
  • Add get_mouse_button and is_mouse_button_down utility functions to amethyst_input. (#1582)
  • Add amethyst_input::Axis::MouseWheel (#1642)
  • Add amethyst_input::BindingError::MouseWheelAlreadyBound (#1642)
  • Add amethyst_input::InputHandler::send_frame_begin (#1642)
  • Add amethyst_input::InputHandler::mouse_wheel_value (#1642)
  • Added Float::from_f32 and Float::from_f64 const fns so Float can be used as const. (#1687)
  • Add debug_lines_ortho example. (#1703)

Changed

  • #[derive(PrefabData)] now supports enums as well as structs
  • Make frame_limiter::do_sleep calculate the amount of time to sleep instead of calling sleep(0) (#1446)
  • Make application_root_dir return a Result<Path> instead of a String (#1213)
  • Remove unnecessary texture coordinates offset in Sprite::from_pixel_values (#1267)
  • Changed ActiveCamera to have the Option inside. (#1280)
  • AudioBundle::new() no longer exists, as AudioBundle is now a unit type. It also no longer initializes the DjSystem (#1356)
  • Convert everything to use err-derive and amethyst_error (#1365)
  • Removed redundant code in renderer.rs (#1375)
  • Refactored audio initialization to be more bundle-centric (#1388)
  • Changed argument types of exec_removal to allow use of both Read and Write Storages. (#1397)
  • Changed default log level to Info. (#1404)
  • Remove unnecessary mut from AnimationControlSet::has_animation (#1408)
  • Moved amethyst_gltf from development workspace to be like the other amethyst_* subcrates. (#1411)
  • Re-exported amethyst_gltf by amethyst as amethyst::gltf. (#1411)
  • Default::default now returns a pass with transparency enabled for all applicable passes. (#1419)
  • Several passes had a function named with_transparency changed to accept a boolean. (#1419)
  • FrameRateLimitConfig has a new constructor, and its fields are made public. (#1436)
  • Derive Deserialize, Serialize for MaterialPrimitive and SpriteRenderPrimitive, remove extra bounds from AnimatablePrefab and AnimationSetPrefab (#1435)
  • Renamed amethyst_core::specs to amethyst_core::ecs and amethyst_core::nalgebra to amethyst_core::math. (#1410)
  • Simplified some of the conditionals in the Pong tutorial. (#1439)
  • Changed the names of many Transform functions to better reflect their actual function and reduce potential semantic confusion (#1451)
  • ProgressCounter#num_loading() no longer includes failed assets. (#1452)
  • SpriteSheetFormat field renamed from spritesheet_* to texture_*. (#1469)
  • Add new keep_aspect_ratio field to Stretch::XY. (#1480)
  • Renamed Text UI Prefab to Label in preparation for full widget integration in prefabs. (#1390)
  • amethyst_test includes the application name of a failing test. (#1499)
  • amethyst_test returns the panic message of a failed execution. (#1499)
  • Rename NetEvent::Custom variant to NetEvent::Unreliable. (#1513)
  • Updated laminar to 0.2.0. (#1502)
  • Large binary files in examples are now tracked with git-lfs. (#1509)
  • Allowed the user to arrange with laminar. (#1523)
  • Removed NetEvent::Custom and added NetEvent::Packet(NetPacket) (#1523)
  • Fixed update is no longer frame rate dependent ([#1516])
  • Display the syntax error when failing to parse sprite sheets (#1526)
  • Added generic parameter type to Transform to configure floating point precision (then removed). (#1334) (#1584)
  • NetConnection is automatically created when client starts sends data to server. (#1539)
  • User will receive NetEvent::Connected on new connection and NetEvent::Disconnected on disconnect. (#1539)
  • Added a pivot field to UiTransform. (#1571)
  • Fix fly_camera example initial camera and cube position. (#1582)
  • Add to fly_camera example code to release and capture back mouse input, and to show and hide cursor. (#1582)
  • Updated rodio to 0.9. (#1683)

Rendy support

  • Brand new way to define rendering pipelines.
  • OpenGL support temporarily dropped, Vulkan and Metal support added.
  • Normalized texel coordinates are now in Vulkan convention (top-left 0.0, bottom-right 1.0), mirrored vertically compared to old one.
  • World space is now Y-up consistently for all projections (2D and 3D).
  • Format type no longer has associated Options and is now object-safe. It is expected to carry required options itself.
  • Format now supports tag-based deserialization, it is no longer required to provide specific format to prefab type.
  • Combined input axis/action generics into single type.
  • Material is now an asset. Must be turned into handle before putting on an entity.
  • Removed Flipped component. Use flip_horizontal and flip_vertical sprite property instead.
  • Added Rendy migration guide. (#1626)

Removed

  • Removed all NetEvent's because they were not used. (#1539)
  • Removed filter logic, because it didn't do anything, will be added back in a later version (NetFilter, FilterConnected). (#1539)

Fixed

  • Optimize loading of wavefront obj mesh assets by getting rid of unnecessary allocations. (#1454)
  • Fixed the "json" feature for amethyst_assets. (#1302)
  • Fixed default system font loading to accept uppercase extension ("TTF"). (#1328)
  • Set width and height of Pong Paddles (#1363)
  • Fix omission in PosNormTangTex documentation. (#1371)
  • Fix division by zero in vertex data building (#1481)
  • Fix tuple index generation on PrefabData and EventReader proc macros. (#1501)
  • Avoid segmentation fault on Windows when using AudioBundle in amethyst_test. (#1595, #1599)

v0.10.0

5 years ago

Added

  • Derive PrefabData for CameraOrtho component (#1188)
  • Partially migrate the project to Rust 2018. Full migration will be completed at some point after 2019-01-31 (#1098)
  • SystemExt::pausable for better ergonomics when pausing systems for specific states (#1146).
  • amethyst_test test framework for ergonomic testing of Amethyst applications (#1000)
  • combinations of buttons triggering actions (#1043)
  • UiPrefab field hidden: bool to hide entities (#1051)
  • PrefabData can now be derived for many situations, see the book for more information (#1035)
  • Support for DirectionalLight and SpotLight in PBM pass. (#1074, #1081)
  • UiWidget variant Custom for custom composited widgets (#1112)
  • AssetLoaderSystemData abstracts resources needed from World to do asset loading (#1090)
  • amethyst_ui::get_default_font supports loading system font from Path. (#1108)
  • Added Callback and CallbackQueue for use in asynchronous contexts. (#1125)
  • Added Trans event queue. Used to trigger state transitions from systems. Also used to trigger multiple state transitions at once. (For example, to Trans::Pop two states.) (#1069)
  • sprite_camera_follow example showing how to use a Camera that has a sprite Parent (#1099)
  • Added capabilities for the DrawFlat2D pass to draw TextureHandles by themselves. Also added a simple example for this. (#1153)
  • Added a Flipped component which allows flipping sprites or images horizontally and vertically. (#1153)
  • Added transform constructor function Transform::new(). (#1187)

Changed

  • Minimum Rust version is now 1.31.0 – Rust 2018. (#1224)
  • Transform::look_at renamed to Transform::face_towards and behavior fixed. (#1142)
  • Material animations now directly use Handle<Texture> instead of using indirection. (#1089)
  • SpriteRenderPrimitive::SpriteSheet now takes Handle<SpriteSheet> instead of a u64 ID. (#1089)
  • nalgebra is now the math library used by the engine. (#1066)
  • The amethyst::renderer::Projection::orthographic function has had its parameter order changed to match that of nalgebra (#1066)
  • SpriteSheet now use TextureHandle directly instead of a u64 ID coupled with MaterialTextureSet. (#1117)
  • Updated specs to 0.14 and specs-hierarchy to 0.3. (#1122)
  • Updated winit to 0.18 (see Winit's changelog). (#1131)
  • Updated glutin to 0.19 (see Glutin's changelog). (#1131)
  • Renamed the DrawSprite pass to DrawFlat2D as it now handles both sprites and images without spritesheets. (#1153)
  • BasicScenePrefab deserialization now returns an error on invalid fields. (#1164)
  • Reordered arguments for Transform::set_rotation_euler to match nalgebra's Euler angles. (#1052)
  • Remove lifetimes from SimpleState (#1198)

Removed

  • SpriteSheetSet is removed as it is no longer needed. (#1089)
  • MaterialTextureSet is removed as it is no longer needed. (#1117)
  • amethyst::core::Orientation has been removed because of limited use. (#1066)
  • TimedDestroySystem has been split into DestroyAtTimeSystem and DestroyInTimeSystem. (#1129)
  • Reverted [MacOS OpenGL workaround][#972] in favor of the upstream fix in glutin. (#1184)

Fixed

  • SpriteSheetFormat converts pixel coordinates to texture coordinates on load. (#1181)

v0.9.0

5 years ago

Welcome to a new Amethyst edition! See all the changes of this version here: https://www.amethyst.rs/blog/release-0-9/

v0.8.0

5 years ago

Huge update. See all changes here: https://www.amethyst.rs/blog/release-0-8/

The source code is available in the release-0.8 branch, as well as on the master branch for a limited time (until 0.9).

v0.7.0

5 years ago

[0.7.0] - 2018-05

Added

  • Documentation for Animation crate (#631).
  • Support for rendering sprites (#638).
  • Fly Camera (#578).
  • UI Layouts (#591).
  • UI Events (#580).
  • Introduce a generic animation system, with support for both transform and texture animation (#558), (#566), (#567), (#569), (#570), (#611), (#641), (#644)
  • Add transparency support to core passes (#543), (#574), (#584)
  • Add vertex skinning (#545), (#619)
  • Expose a basic visibility ordering system, with the ability to swap in better replacement systems (#595)
  • Audio Output is now added directly rather than as an Option, should now be fetched with Option<Read<'a, Output>> (#679)
  • New nightly feature that enables shreds nightly feature (#689)
  • Transform refactored, and added lots of utility functions (#660)
  • Add new raw mouse events for use with camera rotation (#699)
  • Add UiButtons and UiButtonBuilder (#613)
  • Add arc ball camera (#700)

Changed

  • Update dependencies to the newest versions: cgmath, winit, glutin, gfx, gfx_glyph (#527), (#572), (#648)
  • Rodio updated to 0.7 (#676)
  • Refactored bundles to only contain Systems (#675)
  • Refactor to use new specs, major breakage! (#674), (#679), (#683), (#662).
  • Upgrade to winit 1.13.1 (#698)
  • Refactor game data, permit greater extensibility (#691)
  • Disable multisampling on all examples, and add a single example with multisampling on (#671)

Fixed

  • Asset loading tolerates paths constructed using back slashes (#623).
  • Pong text alignment (#621).
  • Updated book introduction (#588).
  • Renderable runtime crash (#586).

v0.6.0

6 years ago
  • Too much to list! Check out the PRs here

v0.5.1

6 years ago
  • Update documentation in crate root
  • Fix syntax highlighting in documentation.

v0.5.0

6 years ago

Added

  • Add audio support (#265)

Changed

  • Asset management rewrite (pull request #244).
  • Use RON as config format (#269)
  • Overhaul input system (#247), (#261), and (#274)
  • Total overhaul of the game renderer (#285)

v0.4.3

6 years ago

Added

  • Add mouse button events to InputHandler (pull request #181).
  • Built-in application profiler using thread_profiler (pull request #212).
  • Screenshots for all in-repo examples (pull request #213).
  • Pre-commit hook to automate local testing for commits (pull request #228).

Changed

  • Changes to CONTRIBUTING.md (pull requests #206, #226).
  • Update to specs 0.8.1 (pull request #219).

Fixed

  • Fix deferred rendering in renderable example (pull request #211).
  • Fix AppVeyor curl command (pull request #217).
  • Ignore IntelliJ IDEA project files (pull request #218).
  • Fix InputHandler key press bug (pull request #227).
  • Fix CRLF normalization on extensionless files (pull request #207).
  • Update code to latest template (pull request #215).

v0.4.2

7 years ago

Added

  • Allow loading configuration files directly from strings.
  • Add #[derive(Default)] for some types in ECS module.
  • Add Ilya Bogdanov, Konstantin Zverev, and Scott Corbeil to AUTHORS.md.

Changed

  • Implement some clippy suggestions.
  • Use FnvHasher instead of Rust's default SipHash implementation for better performance.

Fixed

  • Correct the quick example given in README.md.
  • Replace constant paddle width with actual value in Pong example.
  • Minor fix of line numbers in link in CONTRIBUTING.md.
  • Add backticks around word in doc comment within input.rs.
  • Match Stopwatch behavior to API documentation.
  • Fix AppVeyor build failures due to timing.rs test failure.