Ingnomia Patch Notes — October 3, 2020
Aggregated from Steam, cross-tracked with Battle.net coverage on GamePatchNote.
I haven't really posted patch notes for a long time. The GUI replacement took place in an extra branch not visible for most people and shook up thing in such a big way that I didn't really bother keeping up with change notes. But of course change notes are a thing people look for and if there are none questions arise if the game continues being developed. So even though the GUI replacement isn't entirely finished regrettably I give it a version number now so the small things that are still missing and all the future changes can have proper change notes again.
### Fixed
- Isolated simulation thread from UI thread, so they don't share data.
UI components are now split into a UI controller living in t he UI thread and a data aggregation component living in the simulation thread.
Both parts are connected via the Qt message system, but are not allowed to access state owned by the other thread.
- Prevent errors in sprite mapping from cascading. The errors themselves are not resolved yet, but will no longer corrupt an entire save game.
- Always resolve all assets relative to the main executable.
### Added
- Added Noesis based UI, replacing the existing UI from scratch. (Work in progress.)
- Added "Hunting" behavior, in addition to legacy "defend" behavior.
Squads can actively seek out enemies all over the map as they become visible, without user involvement.
- Added Linux support.
### Changed
- Relicense code under (LICENSE) and publish as open source.
- Switch to CMake build system.
- Switch from C++11 with MSVC legacy extensions to pure C++17.
- Update Qt to 5.14.1.
- Refactored rendering.
- Cull empty tiles in vertex rather than fragment shader.
- Split opaque and transparent tiles into distinct render passes.
- Upload data to GPU via compute shader rahter than direct mapping.
- Render dark areas desaturated.
- Improve visibility of designations.
- Cull tiles down to minimal screen space size in order to minimize overdraw.
- Increase required OpenGL version to 4.3.
- Add depth buffer to rendering.
- Replace explicit squad target control by behavior settings for Squad.
- Move Uniform assignment from squad position to individual gnome.
Gnomes can now have a uniform without being assigned to a squad, but they still need a squad to control their combat behavior.
- Allow arbitrarily sized squads, up from only 5 slots.
- Speed up high level pathability tests.
- Speed up A* pathfinding.
- Speed up liquid simulation.
- Speed up spatial item lookup.
- Switch from file based SQLite DB to pure in-memory SQLite DB.
- Load SQLite DB from human readable SQL file instead of binary representation.
- Run as "native Windows 10 application" under Windows 10, rather than running in compatibility mode.
### Removed
- Removed old Qt based UI.
- Removed RapidJSON from JSON parsing and dependencies. Comments in JSON files are no longer supported.
- Removed Quazip from dependencies.
- Removed zLib from dependencies.