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.
Added / Modified @April 12:
  • 3D:
    • [New: DONE] fix: when a new or loaded game is processed, the 3D view update correctly, before it frozen. It was a problem due to the overhaul of the setup and process of a new game.
    • [New: DONE] fix: when a new game is processed or loaded, and that the current player's view target is a satellite, the 3d view now correctly focus on the satellite and not its root planet.
  • Colonization Phase System (CPS):
    • [New: DONE] the method that keep the time progression is now re-enabled but also extended to integrate fully the trigger of the end of the phase. Useless related code, in the Time Flow System, has been removed.
    • [New: WIP] the end of phase is now fully re-enabled and its report is fully completed including; the results, the outcomes and the performances with each objective.
  • Names and Designations Generator: (forgot to put this one @ March 14-23, sorry)
    • [New: DONE] the ability for any faction to generate names for the space units is implemented. It is based on the use of generic words assembling names of variable size, and there are articles, specific to the cultural background of a faction, that can be used according to a predetermined set of simple rules for each word.
Added / Modified @April08
  • Colonization Phase System (CPS):
    • [WIP=> DONE] creation of a new in-game CPS Objective data structure that replace totally the old TFCRcpsdViabilityObjective.
  • Factions / Expeditions & Backstories / Special Rules:
    • [WIP=> DONE] Automatic CPS Objectives.
    • [WIP=> DONE] Automatic Rejection of CPS Objectives.
 Added / Modified @April 05:
  • Factions / Expeditions & Backstories:
    • [WIP=> DONE] the data from each backstory/ex-colonization modes (line of credit (already the case), population settings, basic list of common core of technologies) can now be set dynamically with pre-defined ranges of values.
      The equipment given to the expedition will be able to vary in volume, but not in nature, proportionally to the total population.
      Thus it allows to have some variations at each new game even if the same faction of allegiance and backstory is chosen.
  • Research & Development System / Common Core:
    • [WIP=> DONE] The special rules Automatic Technosciences / Fundamental Researches and Automatic Rejection of Technosciences / Fundamental Researches, are processed for the common core of the player's faction.
  • Space Units (in-game):
    • [New: DONE] add an independent data structure that represent a group of space units, which is the smallest type of formation that a fleet can contain. For now it is used to load the starting equipment that is generated. .
Added / Modified @March 29:
  • Entities:
    • [New: DONE] addition of a data structure that contains group of space units. It will by the standard unit that will compose the future fleets in the game.
  • New Game Setup:
    • [WIP=> DONE] the starting equipment is generated, based on the size in population of the expedition.
    • [WIP=> DONE] each starting equipment is transfered in the cargo of the available space units, according to the rules.
  • Space Units (in-game):
    • [New: DONE] addition of functions to load the cargo of one spacecraft or a group of space units.



Alpha 10 - Iteration #08 Development


  • 3D
    • [DONE] fix: when a new or loaded game is processed, the 3D view update correctly, before it frozen. It was a problem due to the overhaul of the setup and process of a new game.
    • [DONE] fix: when a new game is processed or loaded, and that the current player's view target is a satellite, the 3d view now correctly focus on the satellite and not its root planet.
  • Colonies
    • [DONE] for now, the deployment of equipment and infrastructures will stay hardcoded, and so will be the same for any set colony. The Starting equipment will only be taken into consideration only when the design and full in-game data structure of space units will be implemented.
  • Colonization Phase System (CPS)
    • [DONE] full audit, including refactoring of all the code of the CPS.
    • [DONE] the code of the objectives is now in its proper unit under the CPS hierarchy. Same for the data and user's interface.
    • [DONE] creation of a specific unit for CPS data.
    • [DONE] the Viability Objectives are now renamed CPS Objectives.
    • [DONE] creation of a new CPS Objective data structure that replace totally the old TFCRcpsdFactionViabilityObjective structure. It contains the maximum use of an objective, its matrix of SPM weights and specific data, according to the type of objective.
    • [DONE] addition of 3 data structures, for each player's faction status (economic, social, space & military) to store into the CPSO structure to indicate the weights in relation with the SPM items. This new structure is loaded through a new XML file.
    • [DONE] these 3 data structures are loaded by default (ie regardless if the CPS will be use or not) after the data of the non-player factions.
    • [DONE] creation of a new in-game CPS Objective data structure that replace totally the old TFCRcpsdViabilityObjective.
    • [DONE] the CPSOs are now selected dynamically, with a semi-random system that take into account the SPM setting of the faction of allegiance and the backstory chosen by the player.
    • [DONE] CPSOs can now have a linked variable (a sort of primary variable) and a set of secondary variables.
    • [DONE] the method that keep the time progression is now re-enabled but also extended to integrate fully the trigger of the end of the phase. Useless related code, in the Time Flow System, has been removed.
    • [WIP] the end of phase is now fully re-enabled and its report is fully completed including; the results, the outcomes and the performances with each objective.
    • CPS Objectives:
      • [WIP] Provide A#Resource for #Period (PROVIRSRC): special initialization of the objective with its rules, calculations and specific data.
  • Entities
    • [DONE] addition of a data structure that contains group of space units. It will by the standard unit that will compose the future fleets in the game.
  • Factions
    • Expeditions & Backstories
      • [DONE] the data from each backstory/ex-colonization modes (line of credit (already the case), population settings, basic list of common core of technologies) can now be set dynamically with pre-defined ranges of values.
        The equipment given to the expedition will be able to vary in volume, but not in nature, proportionally to the total population.
        Thus it allows to have some variations at each new game even if the same faction of allegiance and backstory is chosen.
      • [DONE] the old equipment list is now separated into two lists: starting space units and starting equipment.
      • Special Rules: 
        • [DONE] Automatic CPS Objectives
        • [DONE] Automatic Rejection of CPS Objectives
        • [DONE] Automatic Technosciences / Fundamental Researches
        • [DONE] Automatic Rejection of Technosciences / Fundamental Researches
        • [DONE] Preferred Starting Location - Orbital Object Type: can specify the type of orbital object (Planet or Asteroid) for the starting location.
        • [DONE] Preferred Starting Location - Ecosphere: can specify the type of planet's ecosphere (Earthlike, non-Earthlike, Space) for the starting location.
      • Colonization Phase System:
        • [DONE] the colonization modes are now replaced by expedition's backstories. It is now linked to a small portion of text putting in context the motivations and history of the colonists that will settle a new  colony.         The data structure is mostly overhauled.
        • [DONE] the deprecated Viability Objectives are completely removed from the factions' XML file and in the code that loading it.
      • Population Settings:
        • [DONE] the entire details of the population of the future player's colony is implemented.
      • Starting Space Units:
        • [DONE] the data structure that contains the starting space units is now a bit expanded with the base variance, for dynamically setup the amount, the attitude and physical status. So location around a same orbital object can vary, and a space unit can even start the game damaged.
        • [DONE] the starting space units have now a specific data to define if one of them start out of control or not.
        • [DONE] the status of the power grid of starting space units is in its own data and separated of the physical states.
        • [DONE] the name can be either a specified one, generated, or created from the design name and the index number of the space unit in the data structure.
      • Starting Equipment:
        • [DONE] the data structure that contains the starting equipment is now a bit expanded with the base variance, for dynamically setup the amount, and the Hauled by Class, which indicate which class of space unit (among those in the starting space units list) carry the equipment. There is no precise allocation because of the dynamic side of during the setup of a new game.
      • Starting Locations Override:
        • [DONE] now each backstory can have their own starting location list, that override the faction of allegiance's starting location list. It isn't taken into the account to select one yet, but will be implemented in the future.
    • Starting Locations
      • [DONE] the starting locations can now be a satellite. It will be useful for future developments.
      • [DONE] add a parameter, for the starting locations, which stipulate the scope used for randomness for an actual entry.
                          If Single, it indicates a single location (a single orbital object) that will be included in the list of starting locations.
                          If Asteroids, it indicates that only all the asteroids of the system are included in the list of starting locations.
                          If Planets, it indicates that only all the TELLURIC planets of the system are included in the list of starting locations.
                          If SSI, it indicates a single location, formed by one Stabilized Space Infrastructure (space station, standford torus, and so on... BUT not a space megastructure), that will be included in the list of starting locations.
                          If All, it indicates that all the orbital objects (excluding the gaseous planets) of the system are included in the list of starting locations.
    • 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.
  • Faction / Magellan Unity
    • New Expedition
      • Autonomous Remote Colony:
        • New Backstories:
          • [DONE] Seed of the Unity.
    • Language System:
      • [DONE] expansion of the data by 258 generic words, including their articles rules.
  • Game Saving/Loading
    • [DONE] prevent useless full cycles of data injections, from the databases. 
    • [DONE] fix a bug that prevented to save the 11 development levels of the stored products for the colonies.
  • Interface - About
    • [DONE] fix a crash when the About window is called, due to a bad design in its XML file and in its code.
    • [DONE] the general content has some updates, like the websites and the years.
  • Interface - Colonization Phase System (CPS)
    • [DONE] fix: if a new game is set or loaded when another one is currently playing, FARC doesn't re-create the Viability Objectives panel over the one that already exists anymore. The previous CPS, with its interface, is simply free for memory before any new game take place.
  • Interface - General
    • [WIP] a more clearer font, for the main texts, now replace the previous one. Many text adjustments were necessary to make it right.
    • [DONE] increased the alphablend value of the secondary window for a better readability.
  • Interface - Help Panel 
    • Knowledge Base
      • [WIP] the current encyclopedia interface is replaced by the entire interface of the Knowledge Base website, since its presentation, linking and web interface will always be better than what I will never do in the game,
                 including research in the base, keywords and so on.
      • [WIP] swapping of the content from encyclopedia.xml to the Knowledge Base.
  • Interface  - New Game Setup
    • [DONE] the window and its components are now intialized and called in proper and centralized routines. It follows the same pattern developped with the Orbital Object Panel and its children.
    • [DONE] the window is set to a bigger size than before.
    • [DONE] the colonization mode is now replaced by the expedition's backstory.
    • [DONE] a new set of interface elements are set to chose the Faction of Allegiance, expedition and backstory. It replace the Colonization Modes and the List of Factions.
    • [DONE] the faction data pad is now reworked. Five tabs now exists: History, Colonization, Population, Equipment and Game Options.
    • [DONE] the History data sheet, of the faction data pad, is reworked. It shows now an excerpt of the selected faction of allegiance, an excerpt of the selected expedition and the list of possible origins of the selected backstory.
    • [DONE] the Colonization data sheet, of the faction data pad, is reworked. It shows, like for the previous version, information about the viability threshold and the line of credit but, it also show now information about special rules, if the selected backstory use any.
    • [DONE] the Population data sheet, of the faction data pad, is added. It shows information about the population size class, and the distribution of it among the races and each category.
    • [DONE] the Equipment data sheet, of the faction data pad, is added. It shows information about the dynamic settings of the equipment of the expedition.
    • [DONE] the enabling / disabling of the Proceed button takes now also into account if a backstory is selected or not.
    • [DONE] the game name is limited now to 20 characters. Thus, it putting it in accordance with the setting of the data.
    • [DONE] the player can now set its own faction's name.
  • Interface - Settlement Panel
    • [DONE] fix: _Requirements_SwitchText / upinavEnvironmentIncompatible; forgot to call the proper FCFdTFiles_UIStr_Get to display the environments in plain text.
  • Misc
    • [DONE] fix: setup a new game or loading one, over an existing and running one, doesn't crash FARC anymore. Correct initialization of data, for the Orbital Object Panel, prevent that.
    • [DONE] fix: FARC didn't appeared in the alt-tab under Windows 10, Application.MainFormOnTaskBar has been activated to fix this problem.
  • Names and Designations Generator
    • [DONE] the ability for any faction to generate names for the space units is implemented. It is based on the use of generic words assembling names of variable size, and there are articles, specific to the cultural background of a faction, that can be used according to a predetermined set of simple rules for each word.
  • New Game Setup
    • [DONE] prevent useless full cycles of data injections, from the databases.
    • [DONE] the code has now its own specific units (core and interface).
    • [DONE] all the data about the setup of a new game are now grouped into a proper data structure.
    • [DONE] the starting location is now randomely chosen from a list. It isn't very relevant for now since there is only one faction of allegiance and one starting location, but it will be once additional stellar systems are added.
    • [DONE] the player can now have a name for its own faction. It isn't much, but it is one step more for player's immersion.
    • [DONE] the size of the population of the future player's colony is calculated before even the colony is founded. It is required since the dynamic generation of starting equipment and space units depends on it.
    • [DONE] the starting space units are generated, based on the size in population of the expedition.
    • [DONE] the starting equipment is generated, based on the size in population of the expedition.
    • [DONE] each starting equipment is transfered in the cargo of the available space units, according to the rules
  • Population
    • [DONE] the data structures of the multiracial and multiethnic populations are implemented, tus to be in accordance to the new system of Expeditions and Backstories. For now only the baseline humans are used in the game, but at least the data structures are implemented for the future alpha 11 development.
    • [DONE] the human race is implemented (in fact modified from the previous and unique population data structure) including the baseline, genemods and posthumans.
    • [DONE] the clone race is implemented.
    • [DONE] the artificial intelligence race is implemented including the non-sentient AIs, sentient AIs and artilect AIs.
  • Production System
    • [DONE] an Environment Resources Class List (ERCL) can be generated to list all the possible resources that the regions of an orbital object can produce.
  • Research & Development system (RDS):
    • Common Core
      • [DONE] The special rules Automatic Technosciences / Fundamental Researches and Automatic Rejection of Technosciences / Fundamental Researches, are processed for the common core of the player's faction.
  • Space Units (in-game)
    • [DONE] the current status enum series is now split in to two series of enum; one to indicate the attitude of a SPU, an other to indicate its physical state.
    • [DONE] the attitude, encompass nearly all of the old status and indicate in an abstracted way the current attitude of a SPU, like being in low orbit for example.
    • [DONE] the three possible orbits, that will be fully implemented in the future, are added in a data level. These three orbits are low, geosynchronous and gravitational limit.
    • [DONE] the physical status is pretty obvious and indicate, on an abstracted way, the level of damage of a space unit in plain text, like Damaged or Dead Wreck. It also contains the state of the power grid.
    • [DONE] the denomination of the expanded attitudes is implemented, and the XML for user's interface texts is expanded.
    • [DONE] a specific data is added to specify if the attitude is out of control or not. It then unload useless attitudes in the enumerator.
    • [DONE] a useless data, the tokenId, and all its dependencies are removed.
    • [DONE] the length of the name of a space unit is expanded to an unified custom name constant.
    • [DONE] add two new data; the physical state and a switch to indicate if the power grid is enabled/disabled.
    • [DONE] the array of the docked space units is optimized of a useless sub-record.
    • [DONE] add a very basic sub-data structure to indicate the cargo of a space unit with its detailed list of items.
    • [DONE] addition of functions to load the cargo of one spacecraft or a group of space units.
    • [DONE] add an independent data structure that represent a group of space units, which is the smallest type of formation that a fleet can contain. For now it is used to load the starting equipment that is generated
  • Updater
    • [DONE] the basic framework is fully working.
    • [NOT DEV] the interface display basic information like the version and build available, the last changes and buttons to let the player decide which action to take.

No comments:

Post a Comment