FARC Alpha 10 - iteration#08 Release + Upcoming/Future Development

Nearly 20 months since the start of this iteration (January 1st 2017) The Alpha 10 / Iteration #08 is released.

The alpha 10 []it#08 is released.

FARC is bundled in two flavors: manually, with 7z archives and semi-automated with setup files.

These two ways doesn't requires that FARC is previously installed.

If you take the manual way, please delete any previous version of FARC before.

Setup is here: FARColony-full-alpha_10it08-

Manual archive is here: FARColony-full-alpha_10it08-

Working Dates & Lines of Code
From 2017-01-23 to 2018-09-16
Lines of Code: 110,952 (+8,691 lines)

This release is the biggest one in term of code since the Universe Generator which was about +18K lines... in 2013.

What's Next?
First, note that the game has a memory leak with the 3D that I will fix in the next subreleases. The game is usable as it but don't setup new games over new games and so on please, thanks!

Tomorrow I will publish a post about what's next since the development of this game is far to be completed. The Upcoming versions will be about to complete the basic elements of the game including:
  • The addition of all the rest of factions of allegiance (8, including the one already in the game)
  • The addition of other star and planetary systems.
  • The addition of far more infrastructures.
  • The implementation of the Weather and Geophysics System (WEAGES) including effects of it in the game (like how it can affect the structural integrity of infrastructures).It will be the only real new feature until the completion of the alpha 10.
  • The addition of a more complete set of products.
  • A full implementation of orbits and a better interface to manage space units on them.
    Space units themselves will be managed in 2D but will continue to uses the 3D for missions calculations purpose.
  • Multiple updates of the Universal Management Interface (UMI).
  • Full implementation of the races and ethnic group in FAR Colony. A good part of it is implemented but many systems don't take it into account yet and the interface isn't updated yet to shows it.
  • A more updated Knowledge Base including the information for any system and asset (faction of allegiance, infrastructure, CSM event, meme, policy, product) present in the game.
Additionally to it there will be other additions that I will judge relevant without being qualified as new features.

FYI: it gets stuck on the alpha 10 because I developped the game with more holes than Swiss Cheese and a skeletal amount of assets. So my mission is to complete the parts already in the game and pump the amount of assets until it's acceptably playable, it's why I fleshing out anything I can.

The goal is to provide a playable, version of FARC in a basic package.
If I can achieve it before the start of the next century I will then continue the development by pushing further and implementing less basic, but yet considered core, game features. Until one day, before Thanatos calls me if possible, I will finally complete the core modules of this game.

What I call core modules are (no specific order):

  • complete design of space units, including an in-game designer (the first core module that I will work on, once the alpha 10 is considered done).
  • unified combat system (UCS).
  • foreign relations system.
  • global communications system (GLOCS), that will manage uncertainty and a certain fog of war.
  • commerce and trading system (CTS).
  • management of megaprojects.
  • memetic engineering/war system.
  • world and historical events system (WHES).
  • emigration/immigration system.
  • biospheres (implementation of fauna/flora and their interactions, uses and events).
So all the upcoming releases will be about completing the final iteration of this alpha 10 and finally move on to implementing these core modules.

Meanwhile I also started to create a budget to upgrade my main / biggest / commercial (and evil for the open source community) third party development tool that I currently uses. It will then allows me to upgrade the environment development (Delphi) and finally be able to push FARC to 64 bits and use Delphi native parallel code when needed.I don't need 10K to do it but I don't have an extended budget.
Anyway I will inform you all when I will upgrade my IDE and upgrade the build of FARC to 64 bits.
Until that the game stays 32 bits.


  •  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. 
    • [DONE] implementation of HUDsprites as buttons for ending the turn by one tick, hour, standard day, week or month. Events depending on custom buttons are also 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.
    • [DONE] the status weights of the selected backstory are now stored into the CPS' data structure for further uses, like the initialization of the objectives and the update of their scores. 
    • [DONE] the CPS now can keep track if a product, used by an objective, is updated. In the positive case, the linked scores are calculated. 
    • [DONE] added a root code to test if a CPS objective must monitoring the energetic changes, and make the respective calls to update the score(s). 
    • [DONE] added a root code to test if a CPS objective must monitoring the changes in the line of credit, and make the respective calls to update the score(s).
    • [DONE] added a root code to test if a CPS objective must monitoring the changes in the size of the population, and make the respective calls to update the score(s).
    • [DONE] the system update certain objectives over the time, when their design request it. It is the case for PROVIRSRC which needs to keep track when its next period will end.
    • [DONE] 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:
      • [DONE] Provide A#Resource for #Period (PROVIRSRC): special initialization of the objective with its rules, calculations and specific data.
      • [DONE] Ensures the Survivability of the Population (ASURPOP): special initialization of the objective with its rules, calculations and specific data.
      • [DONE] Be Energy Efficient (ENERGEFF): special initialization of the objective with its rules, calculations and specific data.
      • [DONE] Keeps the Usage of Line of Credit at Lowest (KEEPLOC): special initialization of the objective with its rules, calculations and specific data.
      • [DONE] Keeps Alive #Percent of the Population at End Of Year (KEEPALIVE): special initialization of the objective with its rules, calculations and specific data.
  • Colony Simulation Model (CSM)
    • Colony Management
      • [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.
    • Energy Update
      • [DONE] each time the power grid of a colony is updated directly, the CSM calls the CPS to see if one of the 3 energy data is used by an existing CPS objective.
    • Events
      • Oxygen Production Overload :
        • [DONE] the test of the event takes now into the account the life support system of the colony. The event will only trigger if there is population in excess of the life support systems (or simpler; above the population capacity of the colony) additionally to the excess of the oxygen production (via the colony's production matrix).
      • Uprising
        • [DONE] the over time modifier for the Economic & Industrial Output (EIout), for the level 5 (critical), is now at 0 instead of -10% / week, since EIout is already at -100% when this event is triggered at this level. 
    • Reserves
      • [DONE] each time a reserve is updated directly, the CSM calls the CPS to see if the reserve is used by a current CPS objective. 
      • [DONE] the amount of population that consume a certain type of reserve each standard day is now stored in memory and updated each time the population change.
    • Storage
      • [DONE] each time that a product is updated, the CSM calls the CPS to see if the product is used by a current CPS objective.
      • [DONE] each time that a reserve is updated (and used), the CSM calls the CPS to see if the reserve is used by a current CPS objective.
  • 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.
      • [DONE] add a Death Tolerance data (usable at any time in the game) that can be useful for AI behavior and other game systems' rules.
      • [DONE] a data, Death Tolerance Modifier, is added to any backstory. This modifier indicates the tolerance in regard of accidental / health / crime death in the colony. It can be used for certain parts of the game, like certain CPS objectives.
      • 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 Planets-NoSat, it indicates that only all the TELLURIC planets of the system are included in the list of starting locations, BUt it excludes the satellites.
                          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.
  • Graphics
    • [DONE] creation of icons, which will populate HUDsprites, for the different turns.
    • [DONE] creation of icons for the "end of next colonization mission(s)" event button, to end the turns until the next colonization mission(s) is/are finished to be processed.
  • Infrastructures (database)
    • [DONE] adjustment into the determination of infrastructure levels (IL). For reminder, IL encompass grossly the size of an infrastructure into one readable data that is used, among other things, to determine the size of the settlements.
      Now it is calculated with one universal formula based on the design of each infrastructure. So no more guessing.
    • [DONE] the old surface, volume, base power, volume of materials, required staff, any custom effect and function's data aren't by level no more but by size index of infrastructure.
    • [DONE] add new sets of data to indicate the minimum size of settlement allowed to an infrastructure to be converted/assembled or built, for each index of size of infrastructure. These replace the min/max level. These applies to the following types of settlements: Surface, Space-Based, Subterranean, Lava Tube and Asteroid. 
    • [DONE] add an infrastructure level, by index of size available for an infrastructure.  
    • [DONE] the data to indicate the range of settlements is deprecated since the new data for min/max settlement's sizes do the job. 
    • [DONE] the height data (by index of size) is now implemented in the database. The rationale is; this data is required for the new methods to calculate assembling/building durations.
    • [DONE] the flag for OPEN infrastructure is now properly implemented, since it can affect build time now.
    • Data Addons and Modifications
      • [DONE] Multipurpose Depot:
        • dimensions and base power consumed are completely reworked and there are no more than 3 size levels now.
        • this infrastructure now uses Colonists as staff: 3, 4 or 6 colonists respectively. There were no staff prerequisite before.
        • the calculations for the different storage values are also completely redone. The Gas storage type is removed from the custom effects of this infrastructure.
      • [DONE] Pressurized Tanks Array => Pressurized Tanks Array - Gas: total overhaul of the data. Gas storage only.
      • [DONE] Pressurized Tanks Array - Liquid: new infrastructure for liquid storage.
  • Infrastructures (in-game)
    • Assembling
      • [DONE] full overhaul of the formulas to calculate the assembling duration. It is more rational and also takes into account the Region Environment Modifier for CAB now.
    • Building
      • [DONE] full overhaul of the formulas to calculate the building duration. It is more rational now. It also takes into account if the infrastructure's environment is OPEN.
  • 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 - Action Menu
    • [DONE] fix: the menu display correctly the Colonization Mission for the space units with docked FCP-80. It wasn't anymore the case since the last changes.
  •  Interface - Colonization Phase System (CPS)
    • [DONE] the old panel used to display the list of each objective and their score is now totally deprecated.
    • [DONE] the list of objectives is now displayed in the OpenGL view. It includes the score of each objectives and also specific data, if they have any.
  • Interface - General
    • [DONE] 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.
    • [DONE] it is now impossible to end a turn via the keyboard, if the basic OpenGL buttons to end turns aren't displayed. Prevent to end a turn when it shouldn't be possible. 
    • [DONE] the linking from the elements of interface + 3D hud items is now completely flushed up. Since not all the elements, like the informations about the infrastructures and CSM events, aren't yet in the Knowledge Base, any link open the introduction page for now.
  • Interface - Help Panel 
    • Knowledge Base
      • [DONE] 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.
  • Interface - Mission Setup
    • Colonization
      • [DONE] a deprecated string, for the element used to set a name for the new colony, has been corrected. The information to validate the name is now displayed as a hint.
  • 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 - Orbital Object
    • [DONE] fix: the initialization of the region's zones, on the surface of the orbital object, are now correctly initialized at the start of a game.
    • [DONE] the color of the selector, on the surface of the orbital object, has been changed for a better readability. In the future I'll see to adjust a bit the color of it according to the tone of the displayed surface map. 
      • Colony
        • Energy:
          • [DONE] fix: if more than 100% of energy is used, it is now displayed.
  • Interface - Settlement Panel
    • [DONE] fix: _Requirements_SwitchText / upinavEnvironmentIncompatible; forgot to call the proper FCFdTFiles_UIStr_Get to display the environments in plain text.
    • [DONE] fix/mod: import the description of all the infrastructures in the game from the old encyclopedia XLM file to the ui.xml.
    • [DONE] fix/mod: for the configuration of a build, the size index-to build combo box didn't updated the display of build duration. It is the case now.
    • [DONE] fix: update the display when an infrastructure in conversion/assembling/building is completed and enter into the transitory delay.
    • [DONE] fix: present infrastructures: retrieve correctly the description of a selected infrastructure.
    • [DONE] fix: change status texts when it is in Conversion/Assembling/Building by better ones.
    • [DONE] fix: the "Encyclopedia" link is better aligned.
    • [DONE] fix: the size of the panel is a bit taller by default and the interface elements for the description and size index (for the configuration of a Building of an infrastructure) are better relocated.
  • Messages
    • [DONE] Colonization: fix; name and full location are fully stored into the data structure of the message. Since a space unit can be remove by the end of the mission, if it is a colonization pod, it induced some errors in the informations of the message.
  • 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.
  • Missions
    • [DONE] suppression of a useless data structure, used partly for calculations of a mission, that mixed with another data structure used to setup the future task for the Task Subsystem.
    • Colonization
      • [DONE] the setup of the mission is fully fixed. There were problems with trip time calculations due to boggus deltaV given to docked space units.
      • [DONE] fix the case when the colony isn't founded yet, and only one carried colonization vessel is selected for the mission. The trip time dosen't update and it can create a bug. 
      • [DONE] fix: during the setup of the mission, if the list of types of settlements isn't continuous regarding the data vs what is available in the combo box, the type of settlement committed in the task will be wrong.
        For ex.: the enumeration of the three first types is; setSurface -> setSpaceBasedSurface -> setSubterranean. If Space-Based surface isn't part of the list of the combo box, the selection will be wrong.
    • Missions / Interplanetary Transit
      • [DONE] the mission is fully disabled and will be under a full review before to be re-enabled in the future. 
    • Missions / Landing
      • [DONE] fixed: the calculations were bogus due to the fact that the procedure didn't taken into account of docked space units (when they are used) and mixed data between the mother vessel and its docked ones.
  • 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.
    • [DONE] the Socio-Political Matrix is now also initialized for non-player's factions. 
  • 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.
    • [DONE] add the rules considering how the reserves are used in a colony, according to which races and ethnic groups are present in it.
    • [DONE] each time the population of a colony is modified, the use of reserves is checked, since it can changes other the time. Also, the amount of population that consume a certain type of reserve each standard day is calculated.
    • [DONE] the core management routine that manage the fluctuations of the population in a colony takes now into consideration all the races and ethnical groups.
    • [DONE] add a new category of population for the Sentient Artificial Intelligences; Commoner.
    • [DONE] each time the population of a colony is modified and it is a sentient race / ethnic group, the code call the CPS to see if the change in the population is used by a current CPS objective.
  • 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.
    • Energy Equilibrium Rules
      • [DONE] add a link to test if a CPS objective uses the changes of energy.
      • [DONE] the interface is now updated, because the CSM/Energy code doesn't update it for all the cases w/EE rules.
    • Reserves
      • [DONE] Oxygen Overload: the calculations for the percent of people not supported for the Oxygen Production Overload CSM event now takes into account the global life systems support of a colony. Additionally it also now takes the reserveOxygen_consumption data of a colony instead of population. I forgot to update this code after the last changes. A more detailed version will be implemented when the life support systems of the space units will be implemented.
    • Reserves Consumption
      • [DONE] each time the process of reserve consumption is enforced, the system call the CPS to see if a reserve is used by a current CPS objective.
      • [DONE] the consumption of reserves takes now the specific pre-calculated data for the amounts by standard day
      • [DONE] the consumption of oxygen takes now into account the life support systems of the colony. Only the excess population takes into the reserves.
  • Products
    • [DONE] Multipurpose Depot: the now deprecated levels of infrastructure are removed. For the rest, the volume/unit for each level is adjusted by the new values.
    • [DONE] Pressurized Tanks Array: the now deprecated levels of infrastructure are removed. The rest is removed in exchange of Pressurized Tanks Array - Gas and a second one with Liquid. Total remake of the data.
    • Addition of Equipments
      • [DONE] Pressurized Tanks Array - Liquid: *3 for each size index.
  • 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.
  • Settlements
    • [DONE] adjustements to determine the size, and the progression of it, for all the types of settlements. Calculations are 100% in-line with the new way to determine the infrastructure level.
  • Socio-Political Matrix (SPM)
    • [DONE] the process of memes and policies over the time is completely disabled until a mass audit is done on this specific part, after the current version is released.
  • 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.
    • [DONE] dock/docking is replace by better terms of carry/carrying. That really specify space units carried INSIDE another one. There will be a docking ability, but nothing to do with it.
    • [DONE] releasing a carried spacecraft: fix; set default attitude / deltaV and 3D velocity, to the released ship, which are equals to the mothership's data.
    • [DONE] removing of a spacecraft from the database; fix the code for docked SPUs.
  • Time Flow System
    • [DONE] the realtime portion is removed entirely. FARC will stay turn-based but with more option of turns, like the possibility of events end of turn; for example when a colonization mission is set it is possible to process the time flow until the first Colonization Mission is done.
    • End of Turn Events Framework
      • [DONE] a basic framework for events buttons is now implemented. It can now "popup" special end turns button linked to special events that can occur over a game.
      • [DONE] addition of the event "End of Next Colonization Mission(s)".
    • Tasks Subsystem
      • [DONE] complete application of modifications in the data structures of the tasks, according to the updates to mission and space units. Include a cleanup of the data structures themselves.
      • [DONE] fix: prevent a division by zero, in FCMgTS_TaskToProcess_TransfertToInProcess->Colonization Mission, during the calculation of acceleration by tick. 
      • [DONE] code optimizations for the process of the tasks, the process of the turns during colonization missions have less lags. Useless / Redundant data have been also removed.
      • [DONE] the code to cleanup the terminated tasks is now multithreaded.
  • Updater
    • [DONE] the basic framework is fully working.

No comments:

Post a Comment