Skip to content

v3.0

Compare
Choose a tag to compare
@jwrober jwrober released this 03 Apr 16:51
· 81 commits to stable since this release

Freeciv21 v3.0

Welcome to Freeciv21 stable v3.0 release notes page. This page will give the specific commits between rc.3 and final stable as well as documented the journey over the past few years on how we got here!

Changes Between v3.0-rc.3 and v3.0

  • Remove spurious git diff in the release scripts -- 29af73b
  • Update Game Menu Options -- 94b999b #1874
  • Fix installing dependent modpacks with relative URLs -- bb357ba
  • Fix military upkeep tooltip -- d59f6e2

We have been working on this for effectively 3 years now. If interested, expand the section below to see what happened.

The Journey to v3.0

The Journey to v3.0

It has been a long road on the way to Freeciv21 v3.0. We should celebrate and look back at the history to date.

Lets get out the way back machine and look at May 2020! This is when we took a copy of legacy Freeciv 3.0 beta and forked it into Freeciv21. The project was born. At this time the decision was made to only have a single game client and we chose the Qt client. There were a few reasons: The Qt framework supports much more than GUI giving us lots of options to modernize both the server and client code, the primary community developers at this stage also were well versed in coding with Qt, and Qt supports a very robust build system called cmake.

The first year was simply removing old/dead client code and moving away from autotools for the build system towards cmake.

The First Version - Alpha.1

Right after the project's first birthday, in June 2021, we finally had a stable build system and published v3.0-alpha.1

Important Changes:

  • Update the license to GPL v3+.
  • The code is now compiled as C++ using CMake.
  • Qt is used internally in the server and shared code, with KArchive for compression.
  • The FCDB component is enabled by default: compiling your own server is no longer needed for advanced authentication.
  • A Windows installer package is available.

Alpha.2 and Alpha.3

A month later in July 2021 we put out v3.0-alpha.2 and v3.0-alpha.3

Important Changes:

  • The legacy Freeciv WYSIWYG patch of Longturn has been integrated. What you see in the city dialog should match exactly what you get in the next turn, no matter what happens during turn change (except for a few corner cases). This feature was not included in the mainline Freeciv clients, so adding it here was a big deal and leveled the playing field for players not able to "roll their own" client.
  • Lua 5.3 was required as a dependency.
  • As one would expect from an alpha release, a collection of nasty bugs also got fixed.

Alpha.4

In August 2021, we rolled v3.0-alpha.4. At this point a few things had changed not in code, but how we reviewed and accepted code. The project had picked up some new contributors, so we needed to control and manage merges. From this point onwards, all pull requests had to have a positive review submitted using a GitHub feature that is available.

Important Changes:

  • The game now shows unit IDs in various places.
  • To aid privacy, the game no longer shows host names and ping times, and the server will no longer send them.
  • We launched a documentation website using Sphinx and ReadTheDocs (RTD).

Alpha.5, Alpha.6, and Alpha.7

In September 2021 we rolled out v3.0-alpha.5, v3.0-alpha.6, and v3.0-alpha.7

Important Changes:

  • Added Freeciv21 Menu Music for a more immersive experience.
  • A tileset debugger was added, reducing the pain of developing new tilesets (or porting old ones over).
  • A rewrite of the way the game draws the map was started.
  • The in game help got a major overhaul in the static text.

Alpha.8, Alpha.9, and Alpha.10

October, November 2021 and January 2022 saw v3.0-alpha.8, v3.0-alpha.9, and v3.0-alpha.10. This was the end of the "Alpha Era".

Important Changes:

  • The documentation website was starting to take shape and already had a lot of content.
  • We dramatically improved the tutorial scenario.
  • We started providing a .deb package to install on Debian Linux and its many variants.
  • We added build support for WebAssembly through Emscripten (which is in technology preview for v3.0).
  • And of course, bug fixes!

Beta.1

In March 2022, we rolled out the first beta -- v3.0-beta.1

Important Changes:

  • Added QtSVG as a dependency. This is to support SVG graphics files in the game, especially icons.
  • We start providing a .dmg package to install on macOS. All major operating systems are now supported with native packages.
  • The CI/CD build system is becoming much more robust and is automatically building the varying installer packages (instead of by hand as before). The build system also handles version changes based on the release tag automatically.
  • Many more bugs were fixed. The game started getting much more stable and usable.

Beta.2, Beta.3, and Beta.4

June 2022 saw v3.0-beta.2, bringing Freeciv21 to its second birthday! v3.0-beta.3 came in July 2022, with v3.0-beta.4 arriving in August 2022.

Important Changes:

  • Freeciv21 got a shiny new logo designed by @hugomflavio!
  • We moved the side controls bar to the top, freeing up screen real estate and modernizing the look and feel of the game.
  • Merged the turn done button with the mini-map in the lower right.
  • Many game interface improvements, things starting to look much more polished.
  • Added vision layer support for rulesets.
  • Lots of code refactoring to take advantage of C++ 17.
  • Legacy code kept being replaced with Qt features.
  • Microsoft Visual Studio became a first class development environment.
  • We added support for 32-bit Windows.

Beta.5, Beta.6, and Beta.7

In October, November, and December 2022 we released v3.0-beta.5, v3.0-beta.6, and v3.0-beta.7. This is the end of the "Beta Era".

Important Changes:

  • To improve the look and feel of the text in the game, we bundled the Libertinus font. Default settings were changed to use the font. The documentation website was updated to match.
  • We ported the Longturn server Unit Wait Time code and other custom features. Setting us up to start to host multiplayer Longturn games on Freeciv21 instead of legacy Freeciv.
  • Added support for fc21:// links on Linux, Windows, and macOS.
  • The Classic and NightStalker themes were improved and standardized.
  • The top bar became much more polished with updated SVG icons

The Final Release Candidates

In December 2022 we moved to the Release Candidate phase. v3.0-rc.1, January 2023 brought us v3.0-rc.3 and v3.0-rc.3 arrived in March 2023.

We slowed down releases during this period as we had to work on a lot of CI/CD fixes to support two managed branches master and stable.

Important Changes:

  • Lots of polish and other fixes to bring a final round a stability to the game. No crazy crashes!
  • More SVG icons to add more polish to the game.
  • As mentioned, many CI/CD changes to support two managed branches with documentation updates.
  • Removed all themes except for NightStalker (dark) and Classic (light). Standardized across all platforms for enhanced look and feel.

We hope you enjoy Freeciv21 v3.0 as much as we have enjoyed creating it.

What does the future hold? We are already working on v3.1 and a v3.1-alpha.1 is due soon. We will work to have more v3.0.x stable and v3.1 un-stable releases per our typical release cadence. Hopefully, it won't be another 3 years to the v3.1 stable release. Cheers.

The Dev Team
@lmoureaux @jwrober @hugomflavio @psampathkumar @daavko @mir3x @Corbeau-1 @ec429

NOTE: Community members wishing to download the source code. You will notice that there are two sets of source code in the assets section below. One set will have a label of "Source Code (zip)" and "Source Code (tar.gz)" and the other set will be a tar.gz and zip file with the name of the tagged release and a file size shown. Please download and use the files with the name of the tagged release and file size shown. The other two will not compile properly.