|
| 1 | +# [0.6.0] - 2024-11-26 |
| 2 | +All notable changes for version [0.6.0] are documented in this file. |
| 3 | + |
| 4 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 5 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html) since release [0.4.0]. |
| 6 | + |
| 7 | +## Added |
| 8 | + |
| 9 | +- Flow field pathfinder |
| 10 | +- Activity system for controlling the behavior of game entities |
| 11 | +- Drag selection of game entities in the UI |
| 12 | +- `clang-format` comment formatting |
| 13 | +- Log messages for creation of uniform buffers |
| 14 | +- nix flake |
| 15 | +- GDB pretty printers for various internal data types |
| 16 | + - Time types (`time::time_t`) |
| 17 | + - Fixed point values |
| 18 | + - Coordinate types |
| 19 | + - openage arrays (`util::Vector`) |
| 20 | + - Curve keyframes |
| 21 | + - Flow field types |
| 22 | +- Support for multiple meshes per terrain |
| 23 | +- Frustum culling |
| 24 | +- Example screenshots for the renderer demos |
| 25 | +- Check for outdated modpacks on startup |
| 26 | +- Camera boundaries to prevent camera movement outside of the map terrain |
| 27 | +- Creation of temporary files/directories |
| 28 | +- [Windows] Default paths for DLL searching on startup |
| 29 | +- [Windows] DLL manager class in converter to support loading DLLs in multi-threaded conversion |
| 30 | + |
| 31 | +## Changed |
| 32 | + |
| 33 | +- Use multithreading for media export in the converter |
| 34 | +- Rework curve container `Queue` to be more user-friendly |
| 35 | + - `front(t)`/`pop_front(t)` now return the most recently added element before time `t` |
| 36 | + - track lifetime of elements by storing insertion time (`alive` time) and erasure time (`dead` time) |
| 37 | + - queue elements are now sorted by insertion time |
| 38 | +- Curves now use `std::vector` for their keyframe storage to increase performance |
| 39 | +- Window settings are passed as `struct` instead of arguments |
| 40 | +- Sprite scaling is now handled in shader |
| 41 | +- Replace `constexpr` with `consteval` where appropriate |
| 42 | +- Optimize renderer |
| 43 | + - Vectorize shader uniform (buffer) input storage |
| 44 | + - Replace shared pointer usage with references |
| 45 | +- Use raw pointers instead of shared pointers in pairing heap implementation |
| 46 | + |
| 47 | + |
| 48 | +## Deprecated |
| 49 | + |
| 50 | +- Old pathfnder code (`libopenage/pathfinding`) |
| 51 | + |
| 52 | +## Removed |
| 53 | + |
| 54 | +- Exception propagation to Python with `_PyTraceback_Add` |
| 55 | + |
| 56 | +## Fixed |
| 57 | + |
| 58 | +- Bullet point formatting in event system documentation |
| 59 | +- Uniform alignment in uniform buffers |
| 60 | +- Input contexts are now handled in the correct order (top to bottom) |
| 61 | +- Support for GCC 14 |
| 62 | +- Support for Clang 19 |
| 63 | +- DE2 conversion |
| 64 | + - *The Mountain Royals* DLC |
| 65 | + - *Battle for Greece* DLC |
| 66 | +- Thread-safety of render entity |
| 67 | +- Documentation for the single file converter |
| 68 | +- Numerous documentation typos and mistakes |
| 69 | +- [Windows] Order of inclusion for `DbgHelp.h` |
| 70 | +- [Windows] Build instructions |
| 71 | +- [macOS] Build instructions |
| 72 | + |
| 73 | + |
| 74 | +## Full commit log |
| 75 | + |
| 76 | +https://github.com/SFTtech/openage/compare/v0.5.3...v0.6.0 |
0 commit comments