[0.3.0-alpha] - 2019-06-12¶
All notable changes for version [v0.3.0-alpha] are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning since release [v0.4.0].
Added¶
Add OpenSAGE to the list of related projects
Check if cython modules were built and imported correctly
Add new technical overview to README
Add instructions to reproduce ‘evolution video’ on Youtube channel
Add logo version optimized for printing
Use GNU gold linker by default
Add information in
stemplet-dat.md
Use C++17 as new code standard
Out-of-source-tree builds
Add proton/steam play as a way to obtain assets
Support for building openage under a virtualenv
Lazy log message formatting
Add support for unpatched Age of Empires 2: The Conquerors
Parallel cythonization for build process
Initial implementation of new core simulation
Add
readwrite
andappend
modes for opening filesAdd quit button
Add donation button to README
Option for automatic correction of copyright years
Add new SLP draw commands to converter
Show known compiler versions in CMake error message
Bunch of new gameplay ideas
Adapt converter to support all Genie Engine games
Add Debian build instructions
Link to nyan library
Remember previous asset location
Resource capacities
Buildings limits
Windows installer package
Introduce interactive conversion shell
Add convenience options for using ccache in CMake
Support debugging with gdbgui
Add Gentoo build instructions
Troubleshooting guide
Break into debugger on throwing an exception
Add Windows documentation and build instructions
Windows native support using MSVC - Visual Studio 2017
Add FreeBSD build instructions
Add FreeBSD support
Add python profiling helper class
New renderer (initial abstraction implementation)
Add researching (aka technologies)
Implement mouse controlled game window movement
More enhanced filter options for converter:
--no-graphics
and--no-scripts
Buildsystem benchmarks
Allow customization of config and asset dir in buildysystem
Prefix-matching for tests
Documentation of blending mask lookup table (AoE2)
Ignore compiled QML in
.gitignore
Obfuscation for Email addresses in
copying.md
Introduce Mac-specific shims for
utimenstat()
and forstat.st_mtim
Tau as math constant
Unit life cycle management
Scores (AoE2)
separate-shared-context
mode in GUIImplement siphash
Qualified QML imports for the openage objects
Population logic
Quaternion
Log Qt version
Add codecompliance check for Markdown
Use multiprocessing with pylint
Implement market pricing
Documentation of original gameplay features
Accuracy formulas
Market prices
Monks
Rams
Alarm
Town Bell
Waypoints
Pathfinding
Villagers
Formations
AoE1 civilization/unit stats
Multiplayer chat messsaging in AoC
Multiplayer communication protocol
Selection mechanics
Better damage formula
Number of projectiles per garrisoned unit
Caching of gamedata files
Convert AoE2: African Kingdoms expansion
Resource bundles
Repair action
Option to start game after assets have loaded
Instructions for developing with Qt Creator
Player teams
Inform about the
gl-debug
option whengl error
is detectedSwitch to other player via hotkey
Build menus
Keep building after finishing a building
Check for .qml files for legal headers
Add documentation about resuming construction of buildings
GL debug option for better OpenGL backtrace
Render the GUI into an FBO
Selection box actions
Show the color of the active player in building menu icons
multiarch installdir and version for packaging
Add documentation for openage nyan usage
Optional FPS limiter
Unit command queue
GUI dynamic middle part of the HUD
Adding CVar subsystem
Dynamic key bindings
Documentation updates to gamedata structs in converter logic
Documentation for damage calculations in AoE2
ENSURE
macro for assertionsSupport for kevin CI
GUI ingame background assets adaptation
Add guide to download assets with SteamCMD
Add asset downloading guide for Steam version to
media_convert.md
Option to convert a single SLP file from a DRS archive
Draw all available hotkeys in the right corner
Add QtQuick ingame GUI
Introduce
GameVersion
enum for better game version checksAdded OpenRCT2 as a likeminded project
Villagers bring their resources to the correct buildings
Support clang on Mac OS X
Matrix class with artihmetics
Vector class with arithmetics
Text renderer with support for colors
Ingame console UTF-8 backspace support
Engine profiler
New official logo
Converter parses terrain blobs
Source media versioning and simple diffing
Media conversion for AoE2: HD Edition version 4.0
Changed¶
Consistently use
openage::util::hash_combine()
Convert source directory finding improvements
Rearrange pyobject
pxd
annotations to enforce consistent styleC++14 logic for
constexpr
functionsLet converter use memoryviews in visgrep
Register files generated by buildsystem as byproducts
New simpler
Enum
implementation that also works on WindowsCoordinate system rewrite
Require C++ compiler to support C++17 features
Rename mentions of “Mac OS X” to macOS
Directly use
CMAKE_DL_LIBS
CMake variable for linked librariesAdd the default Steam Linux AoE2 path to the media conversion examples
free_memory()
inutil/system.py
has single exit point nowUse binary mode for files in C++
Include other Genie Engine games (AoE1, SWGB) in README
Test compilation in release mode too
Use libpng directly to create screenshots
Update C-style cast to
static_cast
inprogram.cpp
Update DRS file format conversion
Move contact table to the top of README
Logo SVG improvements
Save alpha channel in screenshots
Add hint about restarting Steam for SteamCMD conversion
Euclidean distance optimization
Use libopus instead of opusenc binary for audio conversion
Cleanup color logic in old renderer
Update doxyfile with doxywizard
Blacklist pythontex in buildsystem
Check for A_S_D_F in codecompliance
Require cython 0.25
Surround
engine::run
with try catch blockDoxygen generation improvements
Make audio system optional
Set verbosity level of spammy runtime messages to
debug
orspam
Force colored CMake output in kevin builds
Textfiles code compliance improvements
Attributes system improvements
Codestyle simplifications and extensions
Handle pep8 module renaming to pycodestyle
pylint is now imported, not invoked
Rebind
STOP_GAME
toSHIFT
+ESC
Cleanup Python
include
sPropose paths for conversion
source_dir
, including Wine prefixesDepend on a newer cython 0.23 version
Append selection with SHIFT key instead of CTRL
Apply asset path expansion in both
AGE2DIR
var and input pathSwitch to
#pragma once
header guard instead of constructed unique preprocessor variablesCythonize rgba matrix calculation for converter palette lookups
Use typedef
sighandler_t
for WIN32Use C++11 chrono for crossplatform timing
Tweaks for configuring via cmake on MSYS2
Use
math::PI
instead ofM_PI
Expanded the critical section in logger to include
init()
Texture bin packing improvements in SLP converter
Optimize texture frame merging in SLP converter
Change copyright dates to 2016
Enable backtrace collection by default
Expand environment variables and ~ in asset path of converter
Let build steps depend on each other
Better graphics handling for unit data
Improvments to the team colors shader
Do not enforce
release
ordebug
build in buildysystemText rendering using HarfBuzz and vbo’s, removing
FTGL
Clean up buildsystem
Gameplay ideas restructured and extended with ideas from r/aoe2
Gamemain
split across several classesSeperate existing map rendering code into
GameRenderer
Input handling and UI rendering now done in
GameControl
GameControl
splits existing input code intoEditorMode
andActionMode
DataManager
renamed toGameSpec
File loading for
Terrain
now done byGameSpec
so it only needs loading onceConstruct
Terrain
objects by just using meta dataUpdate Ubuntu instructions
Update openSUSE build instructions
Update Fedora build instructions for Fedora 22
Update macOS build instructions
Update Arch Linux build instructions
Deprecated¶
Complete engine rewrite in progress
Old lockstep gamestate will be replaced with curve-based event system
Data storage will change from CSV files to storage in
nyan
formatData management will be replaced with a nyan database
Old OpenGL renderer due to being replaced with more efficient renderer using Vulkan and OpenGL
Removed¶
Remove
DoublyLinkedList
implementationRemove
--data=assets
argument from.desktop
file commandRemove user input (file path) from regular expression extension check
Remove Travis CI support (replaced with kevin)
Network and binary compatibility with original game as project goals
Remove crossplatform folder and move everything to
util
subfolderRemove unsused lambda captures
Remove usage of deprecated
std::hash::result_type
Remove deprecated
std::unary_function
usageGet rid of pylint workarounds
No more transitive linking of internally used libraries
Fixed¶
Fix
path.relative_to
usage for pxdgenFix mingw Windows build
Fix cyclic dependency on unnecessary timefile in buildsystem
Fix reference to openage directory to represent canonical form
Fix table formatting in
terrain.md
Add missing
<algorithm>
inclusions forstd::min
andstd::max
Fix cythonization for cython 0.29
Fix codegen error during cmake/configure phase
Support directories that are symlinks for building
Fix overly specific headerguard regex in buildsystem
Ignore merge commit dates for copyright year
Let automoc depend on codegen
Fix case-ignoring-dir-test for caseignoring filesystems
Fix font glyph memory allocations
Fix cython calling static member method in C++
Fix units getting stuck when dropsite is not found
Fix a cvar python type
Fix
ConstMap
type errorsFix python loglevels
Fix older compiler invocations
Fix build on macOS computers that don’t have Sierra && XCode 8
Build cython generated files with reduced warnings
Fix building with GCC7
Fix RGB endianness used in pixel transfer
Fix missing braces warnings for subobject initialization
Fix codegen path in comments
Fix ownerless projectlies causing crash
Fix broken audio log messages
Fix pylint complaining about kevin
Fix build with libbacktrace, clean up log includes
Do not show version numbers if the gamespec hash changes
Purge engine singleton
noexcept
annotation for all move constructors/assignment operators in GUIFix wrong priority handling for union in
util
moduleAdd
/usr/bin/env python3
toFindPython.cmake
Limit building completion to 100%
Set
cxx_standard
to fix qt bugFix encoding error in data formatter of converter
Drop invalid interpreters when finding Python
Fix Mac OS X clang compile errors
Add missing source reference in CMakeLists.txt
Fix building placement segfault
Added a missing call to call in the C++ examples
Fix failure of automatic doc creation, if a parent directory has a white space
Correct graphic for idle gathering villager carrying zero amount
Fix missing
DEVMODE = True
line in config.pyCheck if executable of build dependencies was found
Reset the amount gathered upon switching resource type
Find language file location for AoE2: HD Edition version 3.X
Fix runtime dependency check
Fix python library dir finding
Fix villagers not holding ressources when idle
Fix dead units receiving damage
Suppress false positives for pylint 1.5.1
Check for compiler’s
thread_local
supportFix villagers not stopping to gather resources when moved away
Add missing dependencies
python-pygments
,python-pylint
andcython
under Arch LinuxFix broken link to
building.md
incopying.md
Include
-L<dir>
flag for linking against pythonFix confusion of AoE2: HD Edition with AoC 1.0c
Remove deadlock in
JobManager
/Worker
Fix SLP conversion issues from [v0.3.0] release
Stub some unused/unimplemented stuff on WIN32, so it can compile
Various horrible typos (#453, #496, #507, #639, #713, #757, #801, #823, #861, #925, #960, #1020, #1106)
Full commit log¶
https://github.com/SFTtech/openage/compare/v0.3.0…v0.3.0-alpha