Objective Provide A#Resource for #Period (PROVIRSRC) DONE...

...six or seven left to go. The 'six or seven" is because maybe I will discard the implementation of one of them for this release, or maybe not... yes not even a "fake" news.

I just completed the code of PROVIRSRC while I was in my lunch break @ job. So the most painful objective to write is done hehe. But yes, the whole isn't done yet.

Back to (the real) work, I will continue the dev tonight.

Dev Update: CPS Objectives + New Objective's Interface (w/ Screenshot)

  • Colonies / Storage:
    • [New: DONE] now, each time that a product is updated, the CSM calls the CPS to see if the product is used by a current CPS objective.
  • Colonization Phase System (CPS):
    • [New: 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.
    • [New: WIP] 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. 
  • Colonization Phase System (CPS) / Objectives:
    • [New: WIP] Ensures the Survivability of the Population (ASURPOP): special initialization of the objective with its rules, calculations and specific data.
    • [NOT DEV] Be Energy Efficient (ENERGEFF): special initialization of the objective with its rules, calculations and specific data.
    • [NOT DEV] Keeps the Usage of Line of Credit at Lowest (KEEPLOC): special initialization of the objective with its rules, calculations and specific data.
    • [NOT DEV] Keeps Alive #Percent of the Population at End Of Year (KEEPALIVE): special initialization of the objective with its rules, calculations and specific data.
    • [NOT DEV] Keeps an Acceptable Level of Mortality (KEEPMORT): special initialization of the objective with its rules, calculations and specific data.
    • [NOT DEV] Reachs a certain Level of Quality of Life (REACHQOL): special initialization of the objective with its rules, calculations and specific data.
    • [NOT DEV] Keeps Security at a the Allegiance Level (KEEPSECALL): special initialization of the objective with its rules, calculations and specific data.
  • Interface - Colonization Phase System (CPS):
    • [New: DONE] the old panel used to display the list of each objective and their score is now totally deprecated.
    • [New: WIP] 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 - Orbital Object / Colony / Energy:
    • [New: DONE] fix: if more than 100% of energy is used, it is now displayed.
  • Messages:
    • [New: 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.
The implementation of the "Provide A#Resource for #Period (PROVIRSRC)" objective is finally nearly done, I just need to implement the rule and calculations when the end of the current period of time of the objective is reach.

Finally I changed the hardcoded data of the colonization pod to give them the ability to generate power outside of photonic energy, in other terms I equipped them with fission nuclear reactors.
The reason is that before, I only tested colonies on the same and one orbital object, Epsilon Eridani 2, which is pretty near from its star and lit but, once it given starting planets well farther than this one, star light is dim which in term of power generation .
The calculation of energy generation via photonic power take into account the illumination from the star, modifed by the distance, albedo and so on.

I also started the work on the interface, to display the objectives, by ditching the old CPS panel and integrating the display as HUD elements in the 3D view.
The not-so impressive work-in-progress is illustrated in the screenshot below:

FYI the third objective is the unfamous one I'm working on. It's title change according to the type of resource to produce and the period of delivery (each month, quarter or the full year).

I flushed many bugs here and here, many of them from the colonization mission itself. Also there were a problem with the removal of space units and the process of their tasks, it is fixed now.
Two big bugs stay for now, it is the loading of a game (from the Load Saved Game window) which is totally not working (certainly because of the changes with backstories and CPS) so I need to review the code. The second bug is when I start a new game when a actual game is ongoing.
Starting a new game from scratch, or continue the last one works, so it shouldn't be difficult to fix.

That's all for now.

Dev Update: Tasks Subsystem Fully Updated + Bugfixes + Finalization of Design for Space Units' Internal Structures

  • Missions / Colonization:
    • [WIP => 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.
  • Missions / Landing:
    • [WIP => 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. 
  • Space Units (in-game):
    • [WIP => 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.
  • Time Flow System / Task 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.
  • Time Flow System:
    • [NOT DEV] buttons are added to allow the player to end a turn directly by one tick (the standard turn), one hour, one standard day, one week and one month.
    • [NOT DEV] 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.
    • [NOT DEV] addition of the "end of next colonization mission" event button to end the turns until the next colonization mission is finished to be processed.
Working on the tasks subsystems were more work than seen, but it is done now and fully working.
The colonization mission is fully working again too.

Now I can finally put my entire focus to complete the implementation of data and score calculations, for all the existing objectives in the game. I already started it with "Provide A#Resource for #Period (PROVIRSRC)", and since it is the most complicated to develop, it will be completed first. the rest will follow.

Also, since FARC is now fully turn-based, I will add buttons to end turns of specific length, but also I will add a basic framework for future implementation of events end-of-turn buttons. Please read the todolist above for a (little bit) more informations about it.

I also finalized the design of the internal structures of the space units, because yes, one day the design of spacecrafts (stations, Bernal spheres and so on) will be implemented in the game.
Without telling much, since it will not be implemented before the basics of FARC are done, each space unit is based on an internal structure giving base data, like the overall shape (streamlined delta, cylindrical and so on), the architecture (basic function the framework tend to, like Deep Space Vessel or Stabilized Space Infrastructure), the dimensions of the spacecraft, the available volume and surface, and the maximum hull frame strength.

The overall shape defines how the available surface and volume are calculated and also define the hull sections, that will be used for hit location during a combat and also to locate the equipment modules.

The architecture of an internal structure define to which general optimized use a future spacecraft is destined to. There can be some variations from it, but the main vector is fixed.

They really shape the future spacecraft in the way that each equipment module is allowed to be installed into specific types of architectures.
This is used to keep a certain coherence between the shape and structural design of a space unit, and its realistic use on the field.

Outside of that I also started to finalize the space units' design too, especially one of its 6 keys elements: the hull.

This part will contain the set frame strength, the structural volume and mass, the structural points (sort of hit points), the acceleration limit and the final available volume.

It will have also a per-section data serie with: available volume and surface, structural points of the section and a damage chart.

I think I will stop the details here hehe, but the whole part I described is also fully final in the doc (and ready to be implemented... one day)

After this WOT, I thank you for your interest and... back to work.

Short Notice: Moving to a New Place (DONE) + Resume of Development

As the title said, I Am finally back on track in my new place.

I will resume the development tonight (EST time).


Dev Update + Screenshots: Fixes for Missions + Changes to Space Units + Tasks Rework To Include the Last Changes

  • Interface -  General:
    • [WIP => DONE] a more clearer font, for the main texts, now replace the previous one. Many text adjustments were necessary to make it right. Most of the other fonts (including those for the OpenGL components) have been changed too.
  • Missions:
    • [New: 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.
  • Missions / Colonization:
    • [New: WIP] the setup of the mission is fully fixed. There were problems with trip time calculations due to boggus deltaV given to docked space units.
  • Missions / Landing:
    • [New: WIP] 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. 
  • Missions / Interplanetary Transit:
    • [New: DONE] the mission is fully disabled and will be under a full review before to be re-enabled in the future. 
  • Space Units (in-game):
    • [New: WIP] dock/docking is replace by bette 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.
    • [New: 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.
    • [New: DONE] removing of a spacecraft from the database; fix the code for docked SPUs.
  • Time Flow System / Task Subsystem:
    • [New: DONE] some changes and cleaning of the data structures for the tasks.
When you work onto intricate systems, and add/change something to them, it can breaks processes and logic. It is what it happened for the Colonization mission, but it is nearly fully fixed now. I just hoped to finish today before the move but anyway.

I modify also the tasks with better code (I think the Tasks Subsystem is way back 2012 or something...) and especially to take into account the changes in the setup of a new game...inducing changes into the colonization mission, and also for the expansion of some data for in-game space units, like attitude for example.

For reminder, the Tasks Subsystem is linked to the Time Flow System (which manage the flow of time and the triggering of the systems of the game), and it manage the tasks which are created by the setup of new missions for the space units and also by the planetary survey.
In clear it process, phase by phase, missions and survey automatically until the end. It will be expanded in the future (so much things in the future hehe) with more options but for now it works.
The system itself is working since a certain time, but all the changes made for this version broke it a "little bit" and so it is in need of being updated.
Always an update, always...

Space units are more and more updated themselves since we approach, little by little (for real!), of the full blown implementation of their internal structures/hulls and design.

On a secondary note; nearly all the fonts of FARC were replaced by new ones, and some of them are more readable than the previous ones. All of them are SIL / OFL licenses.

Yes, it needs work and adjustments for the sizes and text location...and yes the icons in the Orbital Object panel shouldn't be displayed... I know... I know hehe.

That's all, time to physically move on and... going back after March 3rd!

Short Notice: Moving to a New Place + No Internet Until May 3rd

Just a notice to inform that I will be moving to a new home (the physical one, not a website) on May 1st and I will have no internet before May 3rd.

So, the devpost I will publish by Sunday will be the last until I have a connection back, and of course until I will be installed.

Thanks and have a great weekend!

Dev Update: Removing of Realtime Subsystem + Expansion of Turn-Based System (with events turns) + Interface Fixes + PROVIRSRC Objective Done + No More Guess Work for Infrastructure/Settlement Levels

  • Colonization Phase System (CPS):
    • [New: 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. 
  • Factions / Starting Locations:
    • [New: DONE] expand the : "add a parameter, for the starting locations, which stipulate the scope used for randomness for an actual entry." with an additional scope: 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.  
  • Infrastructures (database):
    • [New: NOT DEV] 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.
  • Interface -  Action Menu:
    • [New: 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 - Mission Setup / Colonization:
    • [New: 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 - Orbital Object Panel:
    • [New: 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.
    • [New: 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.
  • Planetary Exploration / Resources Survey:
    • [New: NOT DEV] adjustements to determine the size of discovered resource spots. It is now totally in line with the levels of infrastructures and how the size of settlements is determined.
  • Settlements:
    • [New: NOT DEV] 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.
  • Time Flow System:
    • [New: WIP] 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.
Sorry for the lack of news but, as you can see, many things have been done.

As announced above, I adjusted how is determined the level of an infrastructure. It is based now from the design of the real size of one of them, with a formula that gives a level of infrastructure in final.
It is important, because I also adjusted how the size of all types of settlements is also determined. And the calculations are now also 100% compatible and in line with the infrastructure levels.
Before It was a lot of guess and some speculation, giving no statisfying results.
Don't worry it isn't another overhaul, but really a refining of data.
It isn't implemented yet, but will be once I finished to code the Colonization Phase objectives.

Speaking of objectives, the initialization of specific data for the PROVIRSRC objective (Provides A#Resource for #Period in plain CodeGlish) is fully done.
This objective is the reason I worked on the infrastructure levels, because something was off between the size of the resource spots, the infrastructures and the settlements.

The calculation of the size of the resources spots, discovered during a planetary survey, is now also 100% in line with the changes in infrastructure levels / settlement sizes, and above all, more realistic (or at least more coherent) regarding of the size of a region.
Yes, FARC use the full size of regions of a planet or asteroid, so one can go upto millions of square kilometers. It is why, until now, the size of the spots weren't pretty realistic and were as off as the rest. But it is now adjusted.
Again it will not be a overhaul of the planetary survey system, but an adjustment on the discovered size of spots.

Also the concept of iterations is now removed; for now, and until the game is basically playable from A to Z in this colonization phase, it will stay at the alpha 10.
Only the release (x.x.15/.16 and so on) and build numbers will continue to evolve.
Once I completed this first phase, the progression of major/minor versions will resume.

That's all.. I guess hehe :)

Have a good day, and thnaks for your interest!