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
- S3_0 datafile formats were frozen 10-Oct-19
S3_0 d3f happened three years and seven months after S2_6 d3f.
- Next milestone: Network Protocol Freeze
- S2_6 network protocol frozen 15-Aug-16 -> 3.5 years later would be 15-Feb-20 (Currently planned 08-Feb-20)
- 2.6.0-beta1 released 16-Sep-17 -> 3.5 years later would be 16-Mar-21
- 2.6.0 released 21-Jul-18 -> 3.5 years later would be 21-Jan-22
Changes to Development Edit
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.
Next Milestone Edit
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:
- 26-Dec-19: 572 issues (524 closed — 48 open)
- 25-Feb-18: 318 issues (255 closed — 63 open)
- 31-Jul-18: 405 issues (347 closed - 58 open)
Features in Development Edit
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. 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 has now been used for regular snapshot builds for some time.
- Cross-compiling experimental Windows Installers. This is in testing.
Spaceship part placing UI
- Will be postponed to 3.1
Postponed to 3.1 Edit
Transition from xxx_Possible effects to Action Enablers
Unit transportation rule changes
Ruleset item obsolescense
Gui for generalized extras