Development

Development

FAR Colony is developed on my free time since 2009, meaning that schedule of updates is pretty irregular. Because of that I decided, some time ago at about the start of the alpha 10, to stop adding half-implemented features and working on the completion of what is already in the game.
Then it is why the current alpha 10 has so many iterations, and it will finally reach its term when the iteration number 10 will be done, I hope next year. The goal is to provide a playable basis, if somehow barren, to expand on it.

In this page is displayed the list of features, changes and fixes of the current iteration. Before this, I was posting small status about what is done and/or in progress, but the problem is that such information is lost in the void, like ancient deep space lights.The items in the list below can be have one color among 3, meaning different status:

  • [NOT DEV] Feature, change and bugfix not worked yet.
  • [WIP] Feature, change and bugfix partially done (work-in-progress)
  • [DONE] Feature, change and bugfix completed. Will be present at the time of the release.

===//TEMPLATE

Added / Modified @XX NN:

  • NN:
    • [WIP => DONE] X.
    • [NOT DEV => DONE] X.
    • [NOT DEV => WIP] X.
    • [New: DONE] X.
    • [New: WIP] X.
    • [NOT DEV] X.

===//END-TEMPLATE

Alpha 10 – Final Iteration Development

  • 3D
    • [DONE] fix: pre-generate the satellites in the same manner as the non-sattelites are pre-generated. It prevents a big memory leak when the scene is refresh with a new set of data.
    • [DONE] add an icon to serve as HUD button to display the orbits panel.
    • [DONE] when an asteroids belt is focused, certains useless parts of information are hidden now.
    • [DONE] the OpenGL third-party framework GLScene is fully updated with 9 years of updates.
    • [DONE] custom objects aren’t loaded anymore via the old lib3ds.dll but directly now via the framework. The dll and code dependencies are removed and modified.
    • [DONE] fix: clicking many time on the view doesn’t freeze/break FARC anymore.
    • [DONE] the code to orbit space units in 3D is deprecated and removed.
    • [DONE] all the code to load / generate 3D space units in the main view is removed.
    • [DONE] complete calculation of 3D coordinates of space units (even if there are no more 3D objects) when those are on low and geosynchronous orbits. Before there were given through the 3D objects presents in the main view, but now the positions are extrapolated by calculating their position on orbit (variable in low orbit, fixed and depending of the locked range of latitudes in geosynchronous orbit).
    • [DONE] the hints for the following HUD buttons are implemented: all the end-of-turn buttons + the orbits button.
    • [DONE] fix: focus view to a non-satellite orbital object; force to set a zero selection of satellite, to prevent any possible bug.
    • [DONE] fix: focus view to a satellite orbital object; bring back the use of the satellite index #, it was deactivated for no reason…
    • [DONE] the FCGLSHUDcolplyr HUD button is refactored Local Surface and behave like a button the player can access to.
    • [DONE] addition of a HUD button, with its complete behavior to open the Population panel.
    • [DONE] addition of a HUD button, with its complete behavior to open the Settlements panel.
    • [DONE] addition of a HUD button, with its complete behavior to open the Industry panel.
    • [DONE] addition of a HUD button, with its complete behavior to open the CSM Events panel.
    • [DONE] addition of a HUD button, with its complete behavior to browse the satellites (if any) of a focused orbital object.
    • [DONE] implementation of code to move the orbital objects on their respective orbits.
  • Factions
    • Expeditions & Backstories
      • Starting Space Units:
        • [DONE] modifiy the enumerations to specify generic attitude for space units starting in orbit.
  • FARC Universe Generator (FUG)
    • [WIP] changes in the calculations of the Main Travel Distance for the regions of an orbital object. The reason was that calculation of polar (north-south) distance was biased and not reflected 100% reality.
    • [DONE] remove the GravSphereCoef, used for low orbit. It is ridiculous and useless. Don’t ask me why I used such synthetic modifier in the calculation of the low orbit.
    • [DONE] remove the radius switch for geosynchronous orbits. It is irrelevant by the nature of the formula used.
    • [DONE] low orbit calculations are now totally independent from geosynchronous orbit calculations. It uses now a simple proportional calculation.
    • [DONE] when an orbital object has a rotation period of zero (no rotation / like tidally locked), no geosynchronous orbit can exists, then no calculations are made for it. Such orbital object has only a low orbit.
    • [DONE] fix: prevent the case when a geosynchronous orbit is lower than the low orbit. No geosynchronous orbit exists in this case.
    • [DONE] fix: prevent a diameter of zero for asteroids.
    • [DONE] fix: mass calculation; prevent a zero value (especially for asteroids) to be returned.
    • [DONE] fix: escape velocity calculation; prevent a zero value to be returned.
    • [DONE] calculate the deltaV for low and geosynchronous orbits.
    • [NOT DEV] small core modifications on how wind speed is calculated.
  • Game Saving/Loading
    • [DONE] better saving and loading of universe data. Includes the integration of all the seasonal changes.
    • [DONE] the current seasonal data for each region (temperature, rainfall and windspeed), are now saved. It prevents useless calculations when a game is loaded.
    • [DONE] the initialization and calculation for each orbital object, of the revolution period data + climate, is removed since all these data are now stored in the XML file.
    • [DONE] the angle of the first day of the revolution period is saved to insure a consistency when a game is loaded again.
  • Graphics
    • [DONE] creation of standard / hovered-selected icon for the orbits HUD button.
    • [DONE] creation of stylized surfaces with their regions to show the configuration of ranges of latitudes and longitudes, and how latitudes are linked to each other in a 360 degrees orbit. There are English and French versions of these pictures.
    • [DONE] the icons for the capabilities of the space units are loaded in advance when the graphics of the game are initialized.
    • [DONE] import/modification of two icons to illustrate the content of the Star Systems Browser.
    • [DONE] import/modification of 24 icons to illustrate the local surface HUD button when there is no colony and when there is one.
    • [DONE] import/modification of 4 icons to illustrate the Population, Settlements, Industry, and CSM Events HUD buttons.
    • [DONE] creation of 1 icon to illustrate the Satellites Browsing HUD button.
  • Infrastructures (database)
    • [NOT DEV] add two data related with staff members; hours of work and services by day. These data will affect the production of an infrastructure for each standard day by defining the hourly working period. They also affect the volume of staff members by design.
      These working periods will be also affected according to the type of race / ethnic groups working for an infrastructure (only effective if 100% occupied by the same race/ethnic group). Ex; NSAIs (Non-Sentient AIs) occupied infrastructures will have longer working hours than if occupied by baseline humans.
    • New Infrastructures:
      • [NOT DEV] Ice Crusher.
      • [NOT DEV] Ore Smelter.
      • [DONE] Nuclear Lab.
      • [NOT DEV] Vacuum Induction Furnace.
  • Infrastructures (in-game)
    • Staff Members:
      • [NOT DEV] the rule to pick staff members among the population is now fully multiracial and multiethnic. So the game can take a different race/ethnic group for each category to fulfill, according to certain sets of equivalence.
  • Interface – Action Menu
    • [DONE] this element of interface is completely removed since it isn’t really satisfying. Its functions are being replaced by the the Planetary System List and a few OpenGL HUD buttons.
  • Interface – General
    • [DONE] mass update of the third-party addon, TMS Components Pack, used in most of the 2D interface of the game.
    • [DONE] addition of a dynamic popup menu for the space units.
    • [DONE] CTRL + W now close the current panel (no more the escape key).
    • [DONE] new shortcut key B to display/hide the Star Systems Browser.
    • [DONE] full modifications/additions of shortcut keys.
    • [DONE] changed the French translation of Nuclear Pellets into a better one (thanks Wikipedia).
    • [NOT DEV] the hints of the HUD buttons display now the keyboard shortcuts for each of them.
  • Interface – Help & Knowledge Base
    • [DONE] the Knowledge Base is in its own window now.
    • [DONE] the Help Panel is removed entirely. The description of keyboard shortcuts is directly integrated into the Knowledge Base.
  • Interface – HTML Hints
    • [DONE] full parallelization of the core process of interconnection of hints. Since they grow over the time I implement them, I decided to connection to the right hint for the right element of interface in parallel. I hope it will speed up the process, especially when there will be more bigger in the future.
  • Interface – Mission Setup
    • Colonization
      • [DONE] fix the location of the Orbital Object panel regarding the location of the Mission Setup panel.
      • [DONE] the bring- to-front of the Mission Setup and Orbital Object panels is fully fixed.
  • Interface – Orbital Object

    • [NOT DEV] Region’s Data: indication of the correct current real season.
  • Interface – Orbits Panel
    • [DONE] full panel creation. It contains 2 lists, one for each orbit (low and geosynchronous). Lists creation is made in parallel code to speed up the process.
    • [DONE] a picture of the surface of the selected orbital object, containing the full setup of latitudes and longitudes ranges, is displayed.
    • [DONE] right clicking on a space unit shows the popup menu to acces certain data and set a mission.
    • [DONE] the ex Docked Panel / Carrying List Panel is removed and the list itself is fully integrated into the Orbits Panel and its popup menu. A duplicate is created for geosynchronous orbit too. Parallel code is used to build the list.
    • [DONE] basic implementation of the basic data sheet for the selected space unit. It includes the display of the capabilities of the space unit (if any), the same infos than those displayed in the 3D view before the removal of the 3D space units.
  • Interface – Settlements
    • [NOT DEV] a new information is added, when an available infrastructure is selected, indicating the power consumption of this one when fully enabled. So it includes the consumed base power of the infrastructure itself (for its power grid, electrical equipment and so on) and also the power used by all its production if any. The power consumption of custom effects are already integrated into the base power by design.
  • Interface – Star Systems Browser

    • [DONE] full window creation, including a HTML Tree list which contain the full list of star systems with their stars, orbital objects and their possible satellites.
  • Language System
    • [DONE] a skeleton of language system is implemented, and a list of the general words is added in the data structure.
    • [DONE] for now generic words, and articles are supported.
    • [DONE] basic general rules for naming the space units are implemented.
    • [DONE] addition of rule that prevents to chose a word already taken.
  • Misc
    • [DONE] FAR Colony is now fully 64bits.
    • [DONE] basic configuration of the default threadpool for all parallel code in FARC.
  • Missions
    • [DONE] change how the CMC_baseDistance is determined, since there is no more 3D presence of space units.
    • [DONE] take into account if the space unit(s) are in low or geosynchronous orbits.
  • Music & Sound System (MSS)
    • [DONE] the BASS library is now initialized with the correct default device set on the host computer.
  • New Game Setup
    • [DONE] establish a better logic for the FCVogldIs3DViewAfterRenderProcess boolean.
    • [DONE] fix: fix a crash when a new game is proceed during an actual play.
    • [DONE] fix: process correctly the initialization of the interface for a new game. I forogot to re-enable this before the release of the 0.6.16…
  • Population
    • [NOT DEV] add a new category of Posthumans; Mutant Soldier (human heavily modified in more or less horrible ways for military purposes).
  • Production System
    • Production Modes:
      • [NOT DEV] Carbonaceous Ore Refining: full implementation.
      • [DONE] Uranium Ore Refining: full implementation.
  • Products
    • addition of energy product:
      • [DONE] Deuterium-Tritium (DT).
    • addition of materials product:
      • [DONE] Depleted Uranium (DU).
    • modification of energy product:
      • [DONE] Nuclear Pellets: put the right mass/unit, the one in the data was for Depleted Uranium…
    • modification of materials:
      • [DONE] Aluminium: adjusted technoscience affect w/ tensile strength.
      • [DONE] Carbon Composites: adjusted technoscience affect w/ tensile strength.
      • [DONE] Concrete: adjusted technoscience affect w/ tensile strength.
      • [DONE] Multi-Walled Nanotubes (MWNT): adjusted technoscience affect w/ tensile strength. Removed also two old and deprecated data.
      • [DONE] Nanocomposites: adjusted technoscience affect w/ tensile strength. Removed also two old and deprecated data.
      • [DONE] Plastics: added the Environment Hazards tag.
      • [DONE] Single-Walled Nanotubes (SWNT): adjusted technoscience affect w/ tensile strength.
      • [DONE] Steel: adjusted base tensile strength. Adjusted technoscience affect w/ tensile strength.
      • [DONE] Titanium: adjusted base tensile strength. Adjusted technoscience affect w/ tensile strength and young modulus.
  • Space Units (in-game)
    • [DONE] expand location/attitude to the 2 types of orbits. All possible types of orbits, for any type of surface, are implemented.
    • [DONE] the location of a space unit use now the unified space location data structure for easier processing when needed.
    • [DONE] the code to remove space unit(s) is now fully fixed and operational.
  • Time Flow System (TFS)
    • Tasks Subsystem
      • [DONE] cleanup of tasks in process: replace OTL lib threading code by the Parallel coding of the new Delphi.
  • Universe
    • [DONE] overhaul of the data to list the space units in orbit, for each orbital object. Now it support fully the low and geosynchronous orbits, and the maximum number of space units in an orbit is no more limited (dynamic array).
    • [DONE] all the low orbit data are recalculated and updated with correct values (see FUG additions).
    • [DONE] satellite ‘satEpsilonEri8-5’ is removed, because it is unusable for exploration / colonization purpose in the game.
    • [DONE] add two data, each for one each type of orbit, to indicate the deltaV used at these orbits.
    • [DONE] dayEnd of the astronomical seasons (ex orbital periods) is removed because it is useless and have an error with a carry over.
    • [DONE] the seasons are now refactored into astronomical seasons, and equinoxes are more specific: Summer Equinox, Summer Solstice, Winter Equinox, Winter Solstice.
    • [DONE] new data for each orbital object: current astronomical season season. Quick data that indicates the current season actually in process.
    • [DONE] fixes: the angle of the first day of revolution period + the determination of the starting day of the revolution period now take correctly into account the special case with the asteroids belts and also are correctly set up for any satellite.
    • [DONE] implementation of WEAGES data into the root structure of the orbital objects, ie: the Regional Weather / Geophysical Effects Comptability Lists and a special flag for the processing of them.
      This also include the triggered/effective RWE/RGE lists for each region of an object.
    • [NOT DEV] full recalculation of wind speed, and mass update of the XML file, for all the region of all telluric planets with an atmosphere, by using a basic custom tool.
    • Star Systems Integration
      • [WIP] secondary work on data integration of the Sol planetary system. It will not be added into the game yet but it is planned before the entire work on the Alpha 10 is complete. So I integrating all the data I can get into its XML structure in a separate file.
  • Weather and Geophysics System (WEAGES)
    • [WIP] core implementation, and linking into the time flow.
    • [DONE] implementation of the basic seasonal changes: calculation of the current (non astronomical) season, and progressive calculations of temperature / windspeed and rainfall for smooth changes from one season to another one.
    • [DONE] creation of a XML database to store particular RWE/RGE data. The rest is hardcoded in specific units of the code. No choice since there are somehow complex rules and calculations specific for each RWE/RGE.
    • [WIP] implementation of the basic Regional Weather & Geophysical Effects subsystem.
    • Regional Weather Effects (RWE)
      • [WIP] Cold Wave.
      • [WIP] Heat Wave.
    • Regional Geophysical Effects (RGE)
      • [WIP] Earthquake.
      • [WIP] Volcanic Activity.
      • [WIP] Volcanic Eruption.