Short Notice + Screenshots: Full Completion of End Turn Button + End Turn Event Framework

I finally completed the graphics, implementation and behavior of the basic End Turn buttons.

I also completed the framework to manage event-based turn buttons, and also made the graphic and implementation of the first one, Colonization.
Event-based turn buttons allows the player to process the time until a type of event is called.
In the case of the Colonization event, clicking to such button will process time until that one turn has at least one Colonization Mission fully completed.

Here are three screenshots of these "beauties":

Now it's time to complete the CPS end report and this iteration is done.

Edit: I have updated the Gallery page with the full screenshot above and another one with the CPS objectives.

Short Notice; End of CPS Report and End-Of-Turn Buttons

Sorry for the lack of news since June 17, I just committed code, these past days, without posting anything and made a fair amount of work for my side job (nothing to do w/ FARC dev).

I will work this weekend to complete the end report of the CPS Phase and I will try to finish my work on the interface for the OpenGL buttons to end the turns.
I already created (ugly) graphics to make some buttons to end turns by tick (10min) / hour / standard day / week / month and they nearly all working.
I will also create a few additional buttons for the special end-of-turn, like the one to process the turns until the completion of the next Colonization mission (if any).

Anyway don't worry, I will post some screenshots and explanations when it will be done.

After that, well, the main topic will be finished. I will work on the online updater to finally complete its development (as a reminder; it is working since a while but needs some informative interface elements) and in the end I will take an additional week to fix certain tagged bugs.

And that will be the time to finally release it.

Edit: I also finished the OpenGL interface to display the objectives and their data

Thanks and have a great Summer!

Dev Update: CPS Objectives [FULL DONE] + Factions' Death Tolerance

  • Colonization Phase System (CPS):
    • [New: 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). 
    • [New: 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).
    • [New: 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).
  • Colonization Phase System (CPS) / Objectives:
    • [WIP => DONE] Ensures the Survivability of the Population (ASURPOP): special initialization of the objective with its rules, calculations and specific data.
    • [NOT DEV => DONE] Be Energy Efficient (ENERGEFF): special initialization of the objective with its rules, calculations and specific data.
    • [NOT DEV => DONE] Keeps the Usage of Line of Credit at Lowest (KEEPLOC): special initialization of the objective with its rules, calculations and specific data.
    • [NOT DEV => 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) / Energy Update:
    • [New: 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.
  • Factions:
    • [New: 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.
  • Factions / Expeditions & Backstories:
    • [New: 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.
  • Missions / Colonization:
    • [NOT DEV] 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.
  • New Game Setup:
    • [New: DONE] the Socio-Political Matrix is now also initialized for non-player's factions.
  • Population:
    • [New: 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 / Energy Equilibrium Rules:
    • [New: DONE] add a link to test if a CPS objective uses the changes of energy.
    • [New: DONE] the interface is now updated, because the CSM/Energy code doesn't update it for all the cases w/EE rules.
  • Socio-Political Matrix (SPM):
    • [New: 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.
  • Time Flow System (TFS) / Tasks Subsystem:
    • [New: 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.
    • [New: DONE] the code to cleanup the terminated tasks is now multithreaded.
I haven't implemented all the objectives planned from the start, since some of them like Reachs a Certain Quality of Life depends on data that aren't fully used / implemented in the game yet.
But anyway, five objectives are fully implemented and they constitute the conclusion to this part.

Now I must update and finalize the interface that display the objectives.

Once this part done I will, at last, do the last part of this version; working on a report for the end of the colonization phase. One already "exist", somehow, since it is just a panel with nearly nothing in it, so it is due to a good update.

That's finally all, tomorrow is back to work, but the dev continues.

New Inclusion: Parallel Programming in FARC (very modest steps for now)

I just finished a little experiment to implement parallel / multithreaded code in FAR Colony, by using the free and opensource Omnithread library (because standard low level multithreading in Delphi is a complex nightmare), and after much reading and failure I finally understood (at a very basic level) how it works and succeeded to finally transform a bit of the code.
Even with this framework you need to understood the process of tasks, pooling, and not to mess up with the main thread, but it is far easier to dev than using the barebone multithreading in Delphi.
The newer versions of the IDE, than the one I using, have already parallel coding in standard for some years now, which is pretty simple to use from what I seen. But with my 2009 version, well, it's ever the barebone pleasure or taking a framework...or upgrade which isn't yet for now.

I tested parallelism for the cleanup of the tasks (the ones used to process the space units' missions) and it works pretty well.

Of course FARC doesn't process 10,000 tasks (yet) to have parallelism totally meaningful, but better to have it now than be sorry hehe.
So in the end, I will put multithreading into small parts of the game here and here over the time. For now it is a very modest step, but a fun one. In the other way I must be precautious to not going to fast with it; multithreading can bring its bag of bugs and defects, and I really don't need it.

I know, the game would also need to pass into 64 bits, but it is a planned process, I just need to continue to stack a bit of money beforehand hehe.

That's all, not much of a big news but since I passed some hours on it I wanted to share this update.

The week report is always planned for Sunday.

Thanks and have a great weekend!

Short Notice: Report for the End of Full-Time @ Sunday 17

I will publish a dev update post during AM or PM @ Sunday 17 with all the work I did this week.

Many things have progressed, and I completed some objectives but not all of them yet.  I hope it will be the case on Sunday, that would be a cool thing to push one step further toward the release, but we will see. I haven't did nothing this Monday, and only started to dev on Tuesday morning because of real life stuff...and things hehe.

I have about 3 days left of full time dev work, so this is enough ranting, let's back to dev.

Thanks and have a good day!

Short Term Full-Time Notice

From Monday I starting a week of holidays. So I will work full time (8 hrs min) on FARC Monday-to-Friday, in the hope to complete the implementation of a good bunch, if not all, of the objectives.

I did  not much in the dev of the game this weekend outside of pushing the finalization of the entire tech trees, on the design side.

That's all, have a great week!

Dev Update: Expansion of Population with Reserves (DONE)

  • Colony Simulation Model / Events / Oxygen Production Overload:
    • [NOT DEV] 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).
  • Colony Simulation Model / Reserves:
    • [WIP => 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. 
    • [New: 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.
  • Population:
    • [WIP => DONE] add the rules considering how the reserves are used in a colony, according to which races and ethnic groups are present in it.
    • [WIP => 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.
    • [New: 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.
    • [New: DONE] add a new category of population for the Sentient Artificial Intelligences; Commoner.
  • Production System / Reserves Consumption (reserves segment):
    • [New: 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.
    • [New: DONE] the consumption of reserves takes now the specific pre-calculated data for the amounts by standard day
    • [New: DONE] the consumption of oxygen takes now into account the life support systems of the colony. Only the excess population takes into the reserves.
Another stack of side work done. The addition / removal of population takes now into account all the current races (humans, clones, AIs) and ethnic groups a colony can have.

Also the calculation of the consumption of the three reserves (oxygen, food, water) also support these races and started to take the most exotic of them (like the poshumans) in the calculations.

All this work is necessary for the CPS objective Ensures the Survivability of the Population, since it takes the states of the reserves, and how they are used, for its scores.

So tomorrow night I will finally resume the development of this objective (all the calculations for it are already fully done by design) and complete it ASAP.

The two next ones, Be Energy Efficient, and Keep the Usage of Line of Credit Low, are pretty simple and doesn't requires any side job.

That's all, thanks for your everlasting interest.