|
| 1 | +# [0.5.0] - 2023-10-03 |
| 2 | +All notable changes for version [0.5.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 | +- New converter to create nyan modpacks |
| 9 | +- Support conversion for all game releases: |
| 10 | + - Age of Empires 1 (1997) |
| 11 | + - Age of Empires 1: Definitive Edition |
| 12 | + - Age of Empires 2 (1999) |
| 13 | + - Age of Empires 2: HD Edition |
| 14 | + - Age of Empires 2: Definitive Edition |
| 15 | + - Star Wars Galactic Battlegrounds |
| 16 | + - *Age of Empires 2 (Trial Version)* for demoing the engine |
| 17 | +- Support for AoE1:DE and AoE2:DE graphic assets formats and documentation |
| 18 | + - SLP v4.2 (converter) |
| 19 | + - SMP |
| 20 | + - SMX |
| 21 | + - SLD |
| 22 | +- Pattern files for decoding AoE graphic assets with imHex |
| 23 | + - SLP |
| 24 | + - SLD |
| 25 | +- openage internal media formats documentation |
| 26 | + - modpack definition |
| 27 | + - sprite files (for animations) |
| 28 | + - texture files (for spritesheet textures) |
| 29 | + - palette files (for palette tables) |
| 30 | + - terrain files (for terrain graphics) |
| 31 | + - blendmask files (for terrain blending) |
| 32 | + - blendtable files (for terrain blending) |
| 33 | +- Instructions for using vscode IDE |
| 34 | +- New engine subsystem implementations |
| 35 | + - Presenter |
| 36 | + - Input System |
| 37 | + - Game Simulation |
| 38 | +- Demos for showcasing new engine subsystems |
| 39 | + - 5 new renderer demos |
| 40 | + - 1 new presenter demo |
| 41 | + - 1 new input system demo |
| 42 | + - 2 new game simulation demos |
| 43 | +- CI build status badges in README |
| 44 | +- New dependencies |
| 45 | + - toml11 (C++) |
| 46 | + - include-what-you-use (CMake, optional) |
| 47 | + - lz4 (Python) |
| 48 | + - mako (Python) |
| 49 | + - toml (Python) |
| 50 | +- Type hints for Python code |
| 51 | +- NixOS packaging |
| 52 | +- Python log messages support lazy evaluation of strings |
| 53 | +- Add Ubuntu to optional CI build pipeline |
| 54 | +- Progress bar for converter media conversion |
| 55 | +- Integrate new renderer subsystem |
| 56 | + - Parsers for openage media formats |
| 57 | + - Game entity rendering |
| 58 | + - Terrain rendering (in 3D!) |
| 59 | + - Camera |
| 60 | + - Simulation clock |
| 61 | +- New event-driven game simulation |
| 62 | + - Simulation with event system |
| 63 | + - generic game entities for objects in the game |
| 64 | + - components for game entity attributes |
| 65 | + - Idle |
| 66 | + - Live |
| 67 | + - Move |
| 68 | + - Turn |
| 69 | + - Activity |
| 70 | + - CommandQueue |
| 71 | + - Ownership |
| 72 | + - Position |
| 73 | + - systems for game logic |
| 74 | + - idle |
| 75 | + - move |
| 76 | + - activity implementation for game entity control flow |
| 77 | + - simulation event handlers |
| 78 | + - spawn entity |
| 79 | + - process command |
| 80 | + - send command |
| 81 | + - wait |
| 82 | +- New input management |
| 83 | + - low level input handling from Qt |
| 84 | + - high-level controllers for processing inputs |
| 85 | + - game simulation controller |
| 86 | + - camera controller |
| 87 | +- Coordinate system improvements |
| 88 | + - new `scene` coordinate type for usage in renderer |
| 89 | +- nyan API interface |
| 90 | +- Documentation overhaul |
| 91 | + - Documentation for new subsystems |
| 92 | + - renderer |
| 93 | + - GUI |
| 94 | + - game simulation |
| 95 | + - input system |
| 96 | + - time management |
| 97 | + - more guides |
| 98 | + - running the engine |
| 99 | + - optimizing code |
| 100 | + |
| 101 | +## Changed |
| 102 | + |
| 103 | +- Mark old game simulation implementation to legacy |
| 104 | +- Update macOS build instructions |
| 105 | +- Update dependencies |
| 106 | + - Python >=3.9 |
| 107 | + - Cython >=0.29.32 |
| 108 | + - gcc >= 10 |
| 109 | + - clang >=10 |
| 110 | + - qt6 >= 6.2 |
| 111 | +- Use Github Actions v3 |
| 112 | +- Exported PNG files are created in-memory |
| 113 | +- Replace `unlikely`/`likely` macros with C++20 attributes `[[unlikely]]`/`[[likely]]` |
| 114 | +- Integrate new renderer subsystem |
| 115 | + - Use presenter as main interface for graphical display |
| 116 | + - GUI code using Qt6 and new renderer |
| 117 | +- Coordinate system improvements |
| 118 | + - deprecate unused coordinate types |
| 119 | + - CoordManager (replaced by camera class) |
| 120 | + - camgame_delta (replaced by camera class) |
| 121 | + - camgame (replaced by camera class) |
| 122 | + - deprecated forbidden coordinate transformations |
| 123 | +- Update architecture documentation to reflect new engine architecture |
| 124 | + |
| 125 | +## Removed |
| 126 | + |
| 127 | +- Game simulation code generation from game data (replaced by nyan modpacks) |
| 128 | +- Remove unusued dependencies |
| 129 | + - jinja2 |
| 130 | + - pyreadline |
| 131 | +- Integrate new renderer subsystem |
| 132 | + - Remove dependencies to SDL2 in renderer |
| 133 | +- Remove Qt->SDL keybinding transformation from input system |
| 134 | +- Obsolete documentation |
| 135 | + - milestones |
| 136 | + - pathfinding |
| 137 | + |
| 138 | +## Fixed |
| 139 | + |
| 140 | +- macOS build on ARM architecture |
| 141 | +- Python version detection for Python>=3.10 |
| 142 | +- Replace Python `distutils` with something that isn't deprecated |
| 143 | +- Compatibility with Cython 3.0 |
| 144 | +- Fix a lot of horrible typos as usual |
| 145 | + |
| 146 | +## Full commit log |
| 147 | + |
| 148 | +https://github.com/SFTtech/openage/compare/v0.4.1...v0.5.0 |
0 commit comments