Releases: astog/BTS
Fall 2017 Update
Minor bug fixes for the Fall 2017 update
2017 Summer Patch Update
Changelog
- Ports all changes made in Summer Patch update into BTS.
- Fixes issues brought about by the patch.
- Adds sorting by name (origin or destination) in TradeOverview
- Sorts the cities in TradeOriginChooser alphabetically.
- Significantly improves sorting performance, especially in TradeOverview with a group setting.
- Improves the performance in displaying routes in TradeOverview.
- Other minor performance improvements.
- Minor UI changes in trade screens. Better highlights selected routes.
- Adds a divider between groups to visually separate them.
- Bug fixes with how the screens were opened/closed
- Crash fix when cycling between traders.
Sorting performance tests
Huge map ~1200 routes, grouped routes by destination. Time in seconds
Yield | Before | After |
---|---|---|
Food | 10.45 | 0.09 |
Production | 8.41 | 0.011 |
Gold | 5.76 | 0.01 |
Science | 10.55 | 0.099 |
Culture | 8.37 | 0.01 |
Faith | 8.48 | 0.099 |
Again this is with sorting specifically after the routes table was built. Next patch aims to improve how the routes are built, since that is the slowest part now.
Bug fixes, translations and optimizations
Changelog
- Fixed the bug with the routes not repeating in some cases.
- Fixed issue with Destination City yields not updating correctly in Make Trade Route screen.
- Performance improvements in getting yields for routes.
- Performance improvements in building possible trade routes.
- Added various translations from CQUI. Big thanks to all the translators (names in Credits).
Better Trade Screen - v3.1 Release
Changelog
Performance
- Implemented caching to greatly improve performance. Details here. Note: If playing on a huge map, late game you will have a noticeable delay, but significantly better than v3.0.
- Routes will not sort/group/filter unless absolutely needed. Collapsing and expanding routes should be really fast.
- Increased animation speed of opening trade panels.
- Automation checks improvements.
- In Trade Overview screen, sort settings and tab setting is reset. This is to prevent the time delay when first opening the Trade Overview Panel.
Other Changes
- When grouped by destination or origin, the sort settings for groups are cloned (with ascending turns) to sort settings within each group. Example: if you sort by gold, the groups themselves are sorted by gold, and routes within each group is sorted by gold and then ascending turns.
- Added collapse all button
- Expanded the Make Trade Route screen to show both the origin city and destination city yields.
- Fixed alignment of sort bar in Make Trade Route.
- When a group is collapsed, the tooltip shows the top route.
- Trade routes automated info is tracked across saves. You no longer have to renew trade routes when you load a save.
- In Trade Overview screen, routes don't sort until shift is released.
- When selecting a destination in Make Trade Route screen, the route path only to that city is shown.
- Fixed some tooltip ambiguity.
- Fixed issue with Make Trade Route screen opening when not needed when clicking on a route in Trade Overview screen.
BTS v3.1-beta.2
Changes
These are the changes from the previous beta
- Added button hookups. You can select a free trader, or cycle between free traders. Auto opens the relevant screen.
- Optimizations in automation checks
- Fixed issue with Make Trade Route screen opening when it shouldn't
BTS v3.1-beta
Thank You
With over 16,000+ downloads total, this has been the most popular mod I have ever made! Thank you to all who downloaded, reported bugs, and gave feature requests. This mod would not have been what it is without all of you.
Issues till now
This version of the mod is meant to address the main issue I, and all of you, have with this mod - the performance. Sometimes this has been so bad that Trade Overview panel is unusable. This version is hopefully going to fix all of that. To see what has changed we first need to see how bad the previous version was.
Performance Measurements
Prerequisites
Before we begin, some disclaimers needs to made.
- I made all these measurements in my own computer running Intel i5-6500 + GTX 1060 + 16GB RAM. So exact numbers might vary depending upon your PC.
- More importantly, the minimum time step in LUA is one second. Hence all measurements are rounded down to a whole number. This means 0.9 seconds gets rounded down to 0, which is obviously not representative. That is why next to each time that has 0 secs, I will give what I felt the time was (instant vs small delay vs noticable delay)
- The performance is measured in Trade Overview panel, since that will have higher number of trade routes and we need a bigger delay to measure the performance because of the reasons mentioned above. The optimization improvements are also in Make Trade Route screen.
- Continuing the reasons of above, I am testing this in Standard Islands Map. Save file linked below (in downloads).
- Tests for v3.0 were done with this commit (with a minor bug fix)
Now with that out of the way lets see the results
Performance
Test, done in order, total routes = 268 | v3.0 (secs) | v3.1-beta (secs) |
---|---|---|
Opening Trade Overview panel, with tab Available Routes | 9 | 1 |
Sorting by Production | 7 | 0 (small delay) |
Sorting by Gold + Science + Culture + Faith | 14 | 1 |
With the above sort settings, expand all groups | 15 | 1 |
With the above sort settings, collapse all groups | 15 | 0 (instant) |
With the above sort settings, expand a single group (first one) | 11 | 0 (instant) |
Change group setting to None (shows all 268 routes) | 16 | 0 (small delay) |
HOW??
One word - caching. I got this idea when I was playing Hearthstone of all things (yes, it was when I saw the Hidden Cache card). That night I implemented cache for trade route yields and the result was remarkable. After that, I spent the next few days caching other info (like icons, route turns, etc), optimizing loops, simplifying sort functions, reusing tables, and finally not re-sorting and re-filtering unless absolutely needed.
Why not just release it?
Because of the amount of code changed, and the number of people using this mod I don't want to release something without proper testing. I am quite excited about this version, and that is why I am releasing it as a beta.
Other changes in v3.1-beta
- When grouped by destination or origin, the sort settings for groups are cloned (with ascending turns) to sort settings within each group. Example: if you sort by gold, the groups themselves are sorted by gold, and routes within each group is sorted by gold and then ascending turns.
- Added collapse all button
- Expanded the Make Trade Route screen to show both the origin city and destination city yields.
- Fixed alignment of sort bar in Make Trade Route.
- When a group is collapsed, the tooltip shows the top route.
- Trade routes automated info is tracked across saves. You no longer have to renew trade routes when you load a save.
- In Trade Overview screen, routes don't sort until shift is released.
- When selecting a destination in Make Trade Route screen, the route path only to that city is shown.
- Fixed some tooltip ambiguity.
- Increased animation speed of opening trade panels.
Leaving notes
- The beta attached here does not have button hookups for route instance. This will be added back in final release.
- If you notice a bug, please report it. Include how you can reproduce the bug, attach the save file and the LUA log file.
- Finally, keep hitting that next turn button!
Better Trade Screen - v3.0
Identical to the release found here
Changelog
- Fixed issue, when you had multiple trade routes being sent on the same turn, some routes would go missing in the trade overview screen.
- Blocked the trade overview panel from opening, in between turns. Can be re-enabled from the settings, within the TradeOverview.lua.
- Minor color tweaks to make Kongo's header more readable.
- Added option to repeat a trade route.
- Added option to that the route repeated is top one from the sort settings.
- Added tooltips.
- Moved almost all the hardcoded text to a Localized Text.xml file, making it a lot easier to add new languages. Side effect, introduces the Firaxis bug of not loading the localized text.
- Added option to cancel the repeated route from the My Routes tab, in the Trade Overview panel.
- Added international filter, removed Other Major Civs filter.
- Made filters between Trade Overview panel, and Make Trade Route panel consistent with each other.
- Make trade route screen, when opened, has the last destination automatically picked.
- Tracking info about my running trade routes, is tracked across sessions. You should not be seeing "<30 Turn Remaining" anymore.
- Once all sort settings are used, and two routes are still equal, it compares their net yield.