FANDOM


Roadmap: Coding

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

Next milestones are Network Protocol Freeze (npf) Task #656467 followed by alpha4 light-weight release Task #851229

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)

Alio tileset

We've got just enough alio-specific gfx to tell if alio is in use instead of amplio2.

freeciv-ruledit

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.

Action Enablers

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"

Icu

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.

Profiling

First profiling runs with S3_0 being run.

MSYS2

Using MSYS2 based system as Windows Installer build environment. This has now been used for regular snapshot builds for some time.

installer_cross

Cross-compiling experimental Windows Installers. This is in testing.

Spaceship part placing UI

Will be postponed to 3.1

AI fixing

Ongoing

Postponed to 3.1 Edit

Generalized actions

Transition from xxx_Possible effects to Action Enablers

Map object

Unit transportation rule changes

Gettext contexts

Ruleset item obsolescense

Gui for generalized extras

Achievement visibility

Community content is available under CC-BY-SA unless otherwise noted.

Fandom may earn an affiliate commission on sales made from links on this page.

Stream the best stories.

Fandom may earn an affiliate commission on sales made from links on this page.

Get Disney+