Current significant features relative to freeciv-2.6: FEATURES-3.0.txt
- S2_6 branched 02-Jan-15. 3.0 development started at that point.
- S3_0 branched 02-Jan-17
- Next milestone: Alpha1 light-weight release
S3_0 branching happened two years after S2_6 branching.
- S2_6 datafile formats frozen 12-Mar-16 -> two years later would be 12-Mar-18 (Currently planned 02-Jan-19)
- S2_6 network protocol frozen 15-Aug-16 -> two years later would be 15-Aug-18
- 2.6.0-beta1 released 16-Sep-17 -> two years later would be 16-Sep-19
Changes to Development
Ruleset backward compatibility
- Freeciv-3.0 must be able to load freeciv-2.6 compatible rulesets. Do not introduce ruleset format changes without providing migration from 2.6 format. There's some hard problems to solve, such as how to make sure mixed-version rulesets, resulting from usage of include-directive, load ok. Another problem is knowing whether something has not been defined in the old ruleset is because it was not needed at the time ruleset was saved (and should now be added), or because it has left out to disable the feature (and should not be added now). Action enablers are a good example of the latter - earlier version may have had hardcoded rule that action is enabled and new version would need action enabler without any requirements to do that.
Changes to ruleset comments should be made to data/ruledit/comments.txt too. That file tells ruledit what kind of comments to save to the ruleset files it writes. Not all comments are there yet, adding them is Work In Progress.
Database may still contain tickets that have no target at all, while they should be targeted to 3.0.
Tickets against version 3.0.0:
- 25-Feb-18: 318 issues (255 closed — 63 open)
Features in Development
Help System Updates for 3.0
Documentation updates for 3.0 (Feature #698198)
Alien ruleset (Alien_World)
- We've got just enough alio-specific gfx to tell if alio is in use instead of amplio2.
- The main new feature in development for ruledit is that saved rulesets should be more human readable - especially they should contain the standard documentation comments. This way rulesets that have once been edited with ruledit are more practical to be edited by hand again (for edits that ruledit does not yet support).
- It also should serve for the use-case of easily updating 2.6 ruleset to one that can be used in 3.0. Just load the 2.6 ruleset to ruledit (that uses compatibility loading mode, and converts the ruleset) and save it again, in 3.0 format. -> This is now separated to an standalone utility freeciv-ruleup.
- Requirements editing is being worked on.
- In 2.6 Action Enablers are used for Diplomat and Caravan actions only. This has been extended to many more activities in 3.0.
Json network protocol
- Freeciv-web client and patches server communicate with json protocol. The goal is to remove the need of heavy patching of freeciv networking code when producing server for freeciv-web use.
- First phase completed - freeciv can be built so that the server and client communicate with json protocol.
- As this serves mainly freeciv-web, and freeciv-web follows master anyway, continuation happens in 3.1.
Compatibility mode for Ruleset loading
- See "Changes to Development"
- Libicu is now an freeciv requirement, but the code does not take advantage of it much yet. We may even decide to revert it from S3_0, i.e. , postpone to 3.1. One alternative is also making it optional dependency in S3_0.
Scenarios usable with multiple rulesets
- Simplified version from the original plan has been implemented. Not likely to get any better in 3.0 timeline.
Threaded AI autosettlers
- Not much further changes in S3_0 expected. Threaded AI is built in by default, and as such should not get disruptive changes. Development happens with tex module in master.
Compilation to work with tcc (tiny c compiler)
- It turned out non-trivial in S2_6, so we need to re-evaluate it in full release cycle of 3.0.
Memory leak fixes
- Regular checking with valgrind to start soon.
- First profiling runs with S3_0 being run.
- Using MSYS2 based system as Windows Installer build environment. This is in testing.
- Cross-compiling experimental Windows Installers. This is in testing.
Spaceship part placing UI
- In planning
Postponed to 3.1
Transition from xxx_Possible effects to Action Enablers
Unit transportation rule changes
Ruleset item obsolescense
Gui for generalized extras