2020-01-02 17:44:11 +01:00
|
|
|
---
|
|
|
|
title: A History of FreeCol's Development
|
|
|
|
author: Stian Grenborgen
|
|
|
|
layout: page
|
|
|
|
folder:
|
|
|
|
path: /about.html
|
|
|
|
name: About FreeCol
|
|
|
|
---
|
|
|
|
<p align="justify">
|
|
|
|
<A name="about"></A>FreeCol evolved from a pure C/C++ project into a pure Java project.
|
|
|
|
The first official release of FreeCol was, however, already using Java for the client.
|
|
|
|
FreeCol has been fully Java-based since early 2003.
|
|
|
|
<br/><br/>
|
|
|
|
The game has been developed incrementally without any formal design document. Developers
|
|
|
|
have been working on the features they have chosen for themselves, but major changes
|
|
|
|
have been discussed on the mailing lists first. Naturally, the discussions on the
|
|
|
|
mailing lists have been exceedingly important in order to coordinate our efforts in a
|
|
|
|
common direction.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<br/>
|
|
|
|
|
|
|
|
<div style="text-align: center;"><a href="images/loc-events.png"><img
|
|
|
|
src="images/loc-events_s.png" alt="Lines of Code" border="0" width="588"
|
2022-06-19 09:40:03 +02:00
|
|
|
height="246" style="max-width: 100%;"></a></div>
|
2020-01-02 17:44:11 +01:00
|
|
|
<br/>
|
|
|
|
|
|
|
|
<p align="justify">
|
|
|
|
The graph above depicts the number of lines of code from the start of the project and
|
|
|
|
until some time beyond the release of version 0.7.3. Notice the period of time spent on
|
|
|
|
the first major restructuring of the codebase. We are currently restructuring the
|
|
|
|
codebase for the second time. This time we are working towards making the game more
|
|
|
|
modifiable.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Old Releases</h3>
|
|
|
|
<a href="history.html#freecol-0.1.0" class="cLink">FreeCol 0.1.0</a> - <em>Server written in
|
|
|
|
C++ and the client in Java.</em>
|
|
|
|
<br/><a href="history.html#freecol-0.2.0" class="cLink">FreeCol 0.2.0</a> - <em>Entire
|
|
|
|
application written in Java</em>
|
|
|
|
<br/><a href="history.html#freecol-0.3.0" class="cLink">FreeCol 0.3.0</a> - <em>Codebase
|
|
|
|
heavily restructured. Multiplayer games winnable.</em>
|
|
|
|
<br/><a href="history.html#freecol-0.4.0" class="cLink">FreeCol 0.4.0</a> - <em>AI for Indian
|
|
|
|
players, GUI improments and other new features.</em>
|
|
|
|
<br/><a href="history.html#freecol-0.5.0" class="cLink">FreeCol 0.5.0</a> - <em>Singleplayer
|
|
|
|
games winnable. Lots of new features.</em>
|
|
|
|
<br/><a href="history.html#freecol-0.5.1" class="cLink">FreeCol 0.5.1</a> - <em>Bugfixes.</em>
|
|
|
|
<br/><a href="history.html#freecol-0.5.2" class="cLink">FreeCol 0.5.2</a> - <em>Fixing
|
|
|
|
savegame related problems.</em>
|
|
|
|
<br/><a href="history.html#freecol-0.5.3" class="cLink">FreeCol 0.5.3</a> - <em>FreeCol
|
|
|
|
finally reached a level of stability enabling lasting games.</em>
|
|
|
|
<br/><a href="history.html#freecol-0.6.0" class="cLink">FreeCol 0.6.0</a> - <em>Added more
|
|
|
|
ingame reports. Gameplay and visual improvements.</em>
|
|
|
|
<br/><a href="history.html#freecol-0.6.1" class="cLink">FreeCol 0.6.1</a> -
|
|
|
|
<em>Bugsfixes.</em>
|
|
|
|
<br/><a href="history.html#freecol-0.7.0" class="cLink">FreeCol 0.7.0</a> - <em>Map editor,
|
|
|
|
trade and negotiations and a map of the Americas.</em>
|
|
|
|
<br/><a href="history.html#freecol-0.7.1" class="cLink">FreeCol 0.7.1</a> - <em>Migration
|
|
|
|
from CVS to Subversion.</em>
|
|
|
|
<br/><br/>
|
|
|
|
<hr>
|
|
|
|
<table border="0" width="100%">
|
|
|
|
<tr class="cBody">
|
|
|
|
<td class="cBody">
|
|
|
|
<a href="images/java-shot3.jpg"><img src="images/java-shot3_s.jpg" align="right"
|
|
|
|
border="0" hspace="10" vspace="5"></a>
|
|
|
|
<a name="freecol-0.1.0" style="text-decoration: underline;">FreeCol 0.1.0</a>
|
|
|
|
<br/><br/>
|
|
|
|
Objective: First release of FreeCol
|
|
|
|
<br/>Released: January 2nd, 2003
|
|
|
|
<br/>
|
|
|
|
|
|
|
|
<p align="justify">
|
|
|
|
This release made it possible to explore the map with a ship and a free
|
|
|
|
colonist.
|
|
|
|
<br/><br/>
|
|
|
|
The server was written in C++ and the client in Java.
|
|
|
|
</p>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<hr>
|
|
|
|
<table border="0" width="100%">
|
|
|
|
<tr class="cBody">
|
|
|
|
<td class="cBody">
|
|
|
|
<a href="images/java-shot4.jpg"><img src="images/java-shot4_s.jpg" align="right"
|
|
|
|
border="0" hspace="10" vspace="5"></a>
|
|
|
|
<a name="freecol-0.2.0" style="text-decoration: underline;">FreeCol 0.2.0</a>
|
|
|
|
<br/><br/>
|
|
|
|
Objective: Port the server to Java
|
|
|
|
<br/>Released: March 26th, 2003
|
|
|
|
<br/>
|
|
|
|
<p align="justify">
|
|
|
|
This was the first release completely written in Java. Aside from that
|
|
|
|
a first implementation of 'Europe', some GUI improvements and more
|
|
|
|
performant screen drawing were added.
|
|
|
|
</p>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<hr>
|
|
|
|
<table border="0" width="100%">
|
|
|
|
<tr class="cBody">
|
|
|
|
<td class="cBody">
|
|
|
|
<a href="images/java-shot10.jpg"><img src="images/java-shot10_s.jpg"
|
|
|
|
align="right" border="0" hspace="10"
|
|
|
|
vspace="5"></a>
|
|
|
|
<a name="freecol-0.3.0" style="text-decoration: underline;">FreeCol 0.3.0</a>
|
|
|
|
<br/><br/>
|
|
|
|
Objective: Making code modifications simpler
|
|
|
|
<br/>Released: September 30th, 2004
|
|
|
|
<br/>
|
|
|
|
<p align="justify">
|
|
|
|
The code had been redesigned and restructured in order to make the ongoing
|
|
|
|
development easier. Prior to this, the codebase bore clear markings of
|
|
|
|
originally having been seperated in client and server implementations
|
|
|
|
programmed in Java and C++ respectively. New features were added more
|
|
|
|
frequently after the restructuring, as evident by the Lines of Code graph
|
|
|
|
displayed on this page.
|
|
|
|
<br/><br/>
|
|
|
|
It was also the first release of FreeCol in which it was possible to play
|
|
|
|
and win a multiplayer game. Several new features were added - such as colonies,
|
|
|
|
founding fathers, immigration, combat, trade, terrain improvements,
|
|
|
|
save/load, sound and many GUI improvements.
|
|
|
|
</p>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<hr>
|
|
|
|
<table border="0" width="100%">
|
|
|
|
<tr class="cBody">
|
|
|
|
<td class="cBody">
|
|
|
|
<a href="images/java-shot11.jpg"><img src="images/java-shot11_s.jpg"
|
|
|
|
align="right" border="0" hspace="10"
|
|
|
|
vspace="5"></a>
|
|
|
|
<a name="freecol-0.4.0" style="text-decoration: underline;">FreeCol 0.4.0</a>
|
|
|
|
<br/><br/>
|
|
|
|
Objective: Adding more features
|
|
|
|
<br/>Released: June 23rd, 2005
|
|
|
|
<br/>
|
|
|
|
<ul>
|
|
|
|
<li>Compatability with J2SE 5.0</li>
|
|
|
|
<li>AI for indian players</li>
|
|
|
|
<li>Visiting indian villages (colonist, missionary and scout)</li>
|
|
|
|
<li>Trade with indians.</li>
|
|
|
|
<li>Graphical updates and Colopedia framework</li>
|
|
|
|
</ul>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<hr>
|
|
|
|
<table border="0" width="100%">
|
|
|
|
<tr class="cBody">
|
|
|
|
<td class="cBody">
|
|
|
|
<!-- <a href="images/java-shot11.jpg"><img src="images/java-shot11_s.jpg" align="right" border="0" hspace="10" vspace="5"></a> -->
|
|
|
|
<a name="freecol-0.5.0" style="text-decoration: underline;">FreeCol 0.5.0</a>
|
|
|
|
<br/><br/>
|
|
|
|
Objective: Possible to win a singleplayer game
|
|
|
|
<br/>Released: July 23rd, 2006
|
|
|
|
<br/>
|
|
|
|
|
|
|
|
<p align="justify">
|
|
|
|
In this release we added Artificial Intelligence (AI) to the computer
|
|
|
|
players, and thereby enabled single player games. The framework for the AI-code was added,
|
|
|
|
but the computer players were not very advanced.
|
|
|
|
</p>
|
|
|
|
<ul>
|
|
|
|
<li>Tax.</li>
|
|
|
|
<li>The custom house.</li>
|
|
|
|
<li>Capturing of goods.</li>
|
|
|
|
<li>Lost city rumours.</li>
|
|
|
|
<li>AI for the european players and the royal expeditionary force.</li>
|
|
|
|
<li>Fight the war of independence.</li>
|
|
|
|
<li>Separate graphics for each type of forest.</li>
|
|
|
|
<li>Get a list of public game servers on the Internet.</li>
|
|
|
|
<li>Join a running multi-player game.</li>
|
|
|
|
<li>A user friendly installer.</li>
|
|
|
|
</ul>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<hr>
|
|
|
|
<table border="0" width="100%">
|
|
|
|
<tr class="cBody">
|
|
|
|
<td class="cBody">
|
|
|
|
<!-- <a href="images/java-shot11.jpg"><img src="images/java-shot11_s.jpg" align="right" border="0" hspace="10" vspace="5"></a> -->
|
|
|
|
<a name="freecol-0.5.1" style="text-decoration: underline;">FreeCol 0.5.1</a>
|
|
|
|
<br/><br/>
|
|
|
|
Objective: Making the game more stable
|
|
|
|
<br/>Released: September 22nd, 2006
|
|
|
|
<br/>
|
|
|
|
<ul>
|
|
|
|
<li>The installer now adds a shortcut for starting the game in windowed
|
|
|
|
mode.
|
|
|
|
</li>
|
|
|
|
<li>New graphics for displaying unit paths.</li>
|
|
|
|
<li>Borders for the main menu.</li>
|
|
|
|
<li>Some of the panels have been improved.</li>
|
|
|
|
<li>Lots of bugfixes.</li>
|
|
|
|
</ul>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<hr>
|
|
|
|
<table border="0" width="100%">
|
|
|
|
<tr class="cBody">
|
|
|
|
<td class="cBody">
|
|
|
|
<a href="images/java-shot13.jpg"><img src="images/java-shot13_s.jpg"
|
|
|
|
align="right" border="0" hspace="10"
|
|
|
|
vspace="5"></a>
|
|
|
|
<a name="freecol-0.5.2" style="text-decoration: underline;">FreeCol 0.5.2</a>
|
|
|
|
<br/><br/>
|
|
|
|
Objective: Fixing savegame related problems
|
|
|
|
<br/>Released: November 26th, 2006
|
|
|
|
<br/>
|
|
|
|
<ul>
|
|
|
|
<li>The time and memory required for loading/saving a game have been reduced.</li>
|
|
|
|
<li>More efficient transmissions of large network messages.</li>
|
|
|
|
<li>Savegame sizes have been reduced.</li>
|
|
|
|
<li>Many other savegame related bugs have been fixed.</li>
|
|
|
|
<li>Autosaving has been added as an optional feature.</li>
|
|
|
|
<li>A new menubar border has been added.</li>
|
|
|
|
</ul>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<hr>
|
|
|
|
<table border="0" width="100%">
|
|
|
|
<tr class="cBody">
|
|
|
|
<td class="cBody">
|
|
|
|
<!-- <a href="images/java-shot13.jpg"><img src="images/java-shot13_s.jpg" align="right" border="0" hspace="10" vspace="5"></a> -->
|
|
|
|
<a name="freecol-0.5.3" style="text-decoration: underline;">FreeCol 0.5.3</a>
|
|
|
|
<br/><br/>
|
|
|
|
Objective: Making the game more stable
|
|
|
|
<br/>Released: December 5th, 2006
|
|
|
|
<br/>
|
|
|
|
|
|
|
|
<p align="justify">
|
|
|
|
FreeCol finally reached a level of stability enabling lasting games with
|
|
|
|
this release. This was also the release when people really started playing
|
|
|
|
the game and when we were chosen for SourceForge.net's:
|
|
|
|
<br/><br/>
|
|
|
|
<a href="http://sourceforge.net/potm/potm-2007-02.php"><img src="images/upload/sf-potm.png" alt="POTM"/></a>
|
|
|
|
<a href="http://sourceforge.net/potm/potm-2007-02.php">Project of the Month, February 2007</a>
|
|
|
|
</p>
|
|
|
|
Changes:
|
|
|
|
<ul>
|
|
|
|
<li>The map size can now be chosen when starting a new game.</li>
|
|
|
|
<li>It is now possible to give units goto orders when it is not your turn (multiplayer).</li>
|
|
|
|
<li>The non-admin players are now able to view the current options (multiplayer).</li>
|
|
|
|
<li>Chatting is now working properly.</li>
|
|
|
|
<li>Lots of other bugfixes.</li>
|
|
|
|
</ul>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<hr>
|
|
|
|
<table border="0" width="100%">
|
|
|
|
<tr class="cBody">
|
|
|
|
<td class="cBody">
|
|
|
|
<!-- <a href="images/java-shot13.jpg"><img src="images/java-shot13_s.jpg" align="right" border="0" hspace="10" vspace="5"></a> -->
|
|
|
|
<a name="freecol-0.6.0" style="text-decoration: underline;">FreeCol 0.6.0</a>
|
|
|
|
<br/><br/>
|
|
|
|
Objective: Improve gameplay and visual appearance.
|
|
|
|
<br/>Released: April 16th, 2007
|
|
|
|
<br/>
|
|
|
|
<ul>
|
|
|
|
<li>Improve the user interface.</li>
|
|
|
|
<li>Add reports for simplifying the gameplay.</li>
|
|
|
|
<li>Enable moving and resizing of dialogs.</li>
|
|
|
|
<li>Lots of other new features and bugfixes</li>
|
|
|
|
<li>Requires use of Java 1.5</li>
|
|
|
|
</ul>
|
|
|
|
Complete lists of: <a
|
|
|
|
href="https://sourceforge.net/p/freecol/pending-features-for-freecol/search/?q=status%3Aclose*"
|
|
|
|
class="cLink">new features</a> and <a
|
|
|
|
href="https://sourceforge.net/p/freecol/bugs/milestone/Fixed_0.6.0/"
|
|
|
|
class="cLink">bugfixes</a>.
|
|
|
|
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<hr>
|
|
|
|
<table border="0" width="100%">
|
|
|
|
<tr class="cBody">
|
|
|
|
<td class="cBody">
|
|
|
|
<!-- <a href="images/java-shot13.jpg"><img src="images/java-shot13_s.jpg" align="right" border="0" hspace="10" vspace="5"></a> -->
|
|
|
|
<a name="freecol-0.6.1" style="text-decoration: underline;">FreeCol 0.6.1</a>
|
|
|
|
<br/><br/>
|
|
|
|
Objective: Making the game more stable
|
|
|
|
<br/>Released: April 30th, 2007
|
|
|
|
<br/>
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
<li>Clicking a colony name on the Turn Report will now display that Colony.</li>
|
|
|
|
<li>A panel for displaying the requirements of the colonies has now been added.</li>
|
|
|
|
<li>The bug causing the game to deadlock after displaying the emigration panel has been fixed.</li>
|
|
|
|
<li>Multiplayer games should now be stable after fixing two critical bugs.</li>
|
|
|
|
</ul>
|
|
|
|
Complete lists of: <a
|
|
|
|
href="https://sourceforge.net/p/freecol/bugs/milestone/Fixed_0.6.1/"
|
|
|
|
class="cLink">bugfixes</a>.
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<hr>
|
|
|
|
<table border="0" width="100%">
|
|
|
|
<tr class="cBody">
|
|
|
|
<td class="cBody">
|
|
|
|
<a href="images/java-shot15.jpg"><img src="images/java-shot15_s.jpg"
|
|
|
|
align="right" border="0" hspace="10"
|
|
|
|
vspace="5"></a>
|
|
|
|
<a name="freecol-0.7.0" style="text-decoration: underline;">FreeCol 0.7.0</a>
|
|
|
|
<br/><br/>
|
|
|
|
Objective: Map editor, trade and negotiations
|
|
|
|
<br/>Released: July 13th, 2007
|
|
|
|
<br/>
|
|
|
|
<ul>
|
|
|
|
<li>Trade and negotiations between human players.</li>
|
|
|
|
<li>A simple map editor has been created.</li>
|
|
|
|
<li>The in-game user documentation has been improved.</li>
|
|
|
|
<li>Map of the Americas added.</li>
|
|
|
|
<li>Automated trade routes.</li>
|
|
|
|
<li>Lots of other new features and bugfixes.</li>
|
|
|
|
</ul>
|
|
|
|
Complete lists of: <a
|
|
|
|
href="https://sourceforge.net/p/freecol/pending-features-for-freecol/search/?q=status%3Aclose*"
|
|
|
|
class="cLink">new features</a> and <a
|
|
|
|
href="https://sourceforge.net/p/freecol/bugs/milestone/Fixed_0.7.0/"
|
|
|
|
class="cLink">bugfixes</a>.
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<hr>
|
|
|
|
<table border="0" width="100%">
|
|
|
|
<tr class="cBody">
|
|
|
|
<td class="cBody">
|
|
|
|
<a name="freecol-0.7.1" style="text-decoration: underline;">FreeCol 0.7.1</a>
|
|
|
|
<br/><br/>
|
|
|
|
Objective: Bugfixes<br/>
|
|
|
|
Released: August 13th, 2007<br/>
|
|
|
|
|
|
|
|
<p align="justify">We migrated from CVS to Subversion immediately after making this release.</p>
|
|
|
|
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<hr>
|
|
|
|
<table border="0" width="100%">
|
|
|
|
<tr class="cBody">
|
|
|
|
<td class="cBody">
|
|
|
|
<a name="freecol-0.7.2" style="text-decoration: underline;">FreeCol 0.7.2</a>
|
|
|
|
<br/><br/>
|
|
|
|
Objective: GUI improvements, bug fixes<br/>
|
|
|
|
Released: September 19th, 2007
|
|
|
|
<p>New Feautures and Improvements</p>
|
|
|
|
<ul>
|
|
|
|
<li>Zooming on the mapboard implemented.</li>
|
|
|
|
<li>Make switching between fullscreen and windowed mode possible.</li>
|
|
|
|
<li>Implement application window resizing.</li>
|
|
|
|
</ul>
|
|
|
|
<p>Bug Fixes:</p>
|
|
|
|
<ul>
|
|
|
|
<li><a href="https://sourceforge.net/p/freecol/bugs/725/"><b>#725:</b></a> Fixed a bug that disallowed building colonies under certain conditions</li>
|
|
|
|
<li><a href="https://sourceforge.net/p/freecol/bugs/731/"><b>#731:</b></a> Fixed a bug that prevented FreeCol Score from showing</li>
|
|
|
|
<li><a href="https://sourceforge.net/p/freecol/bugs/727/"><b>#727:</b></a> Fixed a bug where unit images did not display under certain conditions</li>
|
|
|
|
<li><a href="https://sourceforge.net/p/freecol/bugs/638/"><b>#638:</b></a> Fixed a bug where a unit image would override the bonus image on a tile</li>
|
|
|
|
</ul>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|