v1 - Release Notes
We’ve added EnTT integration to Aether Engine meaning you can now make use of it’s Entity Component System in your Aether Engine simulations.
- The message buffering API is now implemented outside of the ECS, you may need to make changes to existing Aether Engine ECS code, read migrating existing Aether ECS code for details
- Fixed an issues causing Aether Engine to fail to start simulation without providing any information
- Prometheus output is now conformant to the official standard
- Visual Studio extension can now be updated without uninstalling first
- Creating a new project with ''aether new'' works as expected
- Fixed a problem causing Visual Studio Extension 1.3.0 to not install correctly
- Including Boost no longer makes build fail
- C shared libraries no longer cause build failures
- Metric aether_time_elapsed_sec no longer returns current time instead of time elapsed
- Metrics are now written to the correct location on remote runs
- Web portal not reporting bandwidth used by a cluster
- User interaction not working in the demos
- Aether Engine version selector defaults to latest on the portal.
- werror enabled for simulation builds.
- VS Extension now lists debuggable processes.
- Worker messaging counter added to engine metrics.
- Added docs for prometheus.
- Metrics names and labels rationalised.
- Version of Boost bumped to 1.72.
- Fixed warnings when compiling Physics demo with cross compiler.
- Installer works when invalid directories are part of PATH
- Cross compiler now works with non-default install paths.
- Temporary files properly cleaned up after simulation run ends.
- Aether Hunt 2 demo now provides error on incorrect input of endpoint.
- Rollback installation after failed installation of Virtual Machine.
- Fixed build errors in Aether Engine headers for cross compiler.
Now you can keep track of what’s happening in your simulation with Prometheus. Get started with metrics now.
The cross compiler greatly speeds up the build process, meaning you can code, build and debug faster. Read the docs to boost your workflow.
- Added new member functions: “sqr_magnitude” to vec2f and vec3f.
- Added new member functions “sqr_magnitude” and “closer_than” to geometry.
- Unity version 2019.4 is now recommended for the Unity Plugin.
- Generic netcode: Entities can include a field to determine if net relevancy should be performed.
- Clean build can now be performed from Visual Studio.
- The Physics demo now has example collision metrics.
- Installation no longer requires BMI2.
- Fix “spawn_cell_level_offset” being ignored.
- Account phase barrier time in the correct phase.
- Install crash handler earlier in initialisation, before user code is called.
- More reliable detection of SSH in the installer.
- More comprehensive logging in the installer.
- Fixed broken documentation links.
You can now debug a running simulation with the familiar tools of Visual Studio. Individual workers within a simulation can be paused, enabling you to inspect variables, step through code and assign values. See the debugging documentation to get started.
Using C# bindings, Unity clients can connect to Aether Engine simulations to receive and send messages. This is demonstrated in an example Unity PhysX project, which shows bouncing PhysX cubes in Unity, with user interaction using FlatBuffers to share protocol definitions between C++ and C# code bases. See the Unity documentation to get started.
- The generic netcode will now emit a warning when no updates are sent to a player because no user-controlled entity is found.
- The decode function of
demarshallernow returns a
interror code instead of a
- The installer now supports installing the Visual Studio extension and the Unity plugin.
aether runhas a new
--debugflag that will start a simulation with debugging enabled.
aether list-paused-processesis a new command that will provide the list of Hadean PIDs that are currently paused on a
aether continue-allwill continue any processes that have been paused at either a
hadean::stop()call or breakpoint and are not currently being debugged.
aether statuswill now indicate if the simulation being inspected was run with debugging enabled, and if there is currently a debugger attached.
- The repclient is now default constructable.
- The unmaintained MPI support has been removed.
- The Physics demo now includes a Unity client.
code_position_2fhas been renamed to
net_decode_position_2fto fix an accidental rename.
tl::optionalis now exposed in the
- Preprocessor logic has been fixed so that
std::optionalfor C++17 and above.
- Preprocessor logic has been fixed so that
std::monostatefor C++17 and above.
common/io/byteorder.hhheader has been added which contains the
aether::io::byte_order::endian_bufferclass along with typedefs for buffers which hold unsigned integers in little and big-endian representations.
- The logging framework has been updated to prevent race conditions in initialisation which could lead to crashes.
aether::morton::AABBhas been modified not to use the range-v3 library.
- Serialization support has been added to
- All headers and source files have been updated not to include C++17 headers.
intervalnow asserts that the end is after the start during construction.
region::clear()has been added.
mpl::uint_exacthas been added which maps bit-widths to unsigned integer types.
- Aether Engine's random number generation functions are moved to the
last_error_is_would_blockfunction is added to
tcp.hhwhich enables checking if the last socket operation would have blocked on Posix and Windows.
- Cloning an ECS component from an existing one no longer leads to undefined behaviour.
- A bug is fixed where simulations using the global state and not using the external storage writer could not shutdown cleanly.
- All non-default repclient constructors are marked as deprecated (since they would assert on failure)
connect_playbackfunctions are added to the repclient to initiate connections and interact with dump files.
- The repclient now correctly interprets an EOF during send or receive as a disconnect.
- The repclient now interprets an error or EOF while reading a dump file as a disconnect.
- The repclient now correctly handles "would block" errors during sends and receives.