Updated roadmap:
0. Fixing bugs (unrelated and related to the rewrite)
As I mentioned earlier, I will fix all bugs in develop based on the new code. Unlike usually, I will try to address issues in reverse order, starting with recent ones. This way I can hopefully address problems that come from the recent changes immediately.
1. Clean up and improve autoplay
The current code for autoplay is more complicated than it needs to be, and I would also like some additional functionality, like:
1.1. Minimal autoplay code
1.2. Easy functionality to enable autoplay for n turns even after spawn (for testing AI only games)
1.3. Maybe even an observer mode that does not require to pick a specific civ to run AI only games
2. Clean up and improve Rise And Fall code
I've talked about this a lot before, essentially throwing out all the old rules and implement them as needed from scratch, including:
2.1. Remove unit defections, replace with other mechanics to protect new civs from easy conquest
2.2. Additional mechanics to help some civs on spawn, e.g. when you want them to expand quickly
2.3. Greater differentiation around spawn situations based on historical circumstances
2.4. Consolidated and more generalist code for conditional spawns
2.5. Consolidated and more generalist code for civ specific pre-spawn preparations and advantages on spawn
3. Transition from scenarios to custom games and improve tooling for multiple start dates
3.1. Game starts from Play Now / Custom Game instead of Scenarios
3.2. Start date becomes a game setting instead of a consequence of the scenario you pick
3.3. Only one file describing the initial state of the map
3.4. Differences between the initial map and later start dates implemented in separate files with scenario infos or via Resources.py etc.
4. (Optional) Rewrite of Victory.py where victory goals are decoupled from civs but instead goals themselves are a proper unit, e.g.:
4.1. The goal check itself, hook for the event handler, texts, progress display etc. are grouped in goal classes/objects
4.2. Mechanism to group multiple subgoals into one goal
4.3. State of the goal is self contained and does not need to be tracked separately
As usual, the goals here are long term: code easier to maintain, more consistency, easier to add or change civs, goals, start dates, and so on. The Rise and Fall changes are the exception in that they would actually change how the game behaves.