Dev Update: Time Progression + End of Phase + OpenGL Bug Fixes and Current Memory Leak Found

  • 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. 

Outside of this, during the debugging of the intialization of the 3D view, once a new game is set or loaded, I observed a pretty fair memory leak. It wasn't a new thing, but it is the time to finally fix it.
So after some investigation I found the source of the culprit, it will be fixed once my work on the CPS is done.

My main work stay on the implementation of of the objectives' rules and calculations. It isn't only coding but also working to complete the game design on those I selected to be in the game in this version.

I hope to release this version in end of April, mid-May, but you know me and my failed schedule so we will see.  It will be 4-5 months more than what I announced on December 2017, it's more than enough.

General Post: Full Time Dev Day

Today is a day off for me, so since I finished what I had to do for the day I will work on FARC full time after my late breakfast.

I have things to debug, especially  for consecutive setup of new games and the OpenGL initialization. Part of it is already done since yesterday night but I need to fix the loading / intialization of consecutive games.
After that I will go back to the Colonization Phase System's objectives.

After this so "interesting" information, let's back to work hehe.

Dev Update: Generation of CPS Objectives Fully Fixed (Status Addon from Previous Post)

  • 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.

The next step is to implement specific rules and calculations to initialize any custom data an objective may have, and also to update the score of each of them.


Back to work... my real and daily one :)

When a bug is silly... Generation of Objectives

The generation of objectives, for the Colonization Phase System, was plagged by a show stopper bug because no objective, outside of those affected by the special rules, were... generated in the end.

I looked everywhere in the CPS code but found nothing until I finally targeted the point where the logic failed and found the problem; at one moment, the Socio-Political Matrix (SPM) weights of the current objective in process, are tested in order to keep the coherence between the objectives and the SPM settings of the player's faction.
The only problem is the test didn't taken in consideration the SPM at all, it only tested if a weight has an incompatible flag, regardless if the policy or meme linked to it is enforced / adopted by the population...
So in the end, ALL the objectives were rejected, and it triggered an out of bound of the array for other calculations, isn't it fabulous? hehe.

So yep I fixed it and magically some objectives became generated and listed, as it should be.

Sometime the solution is right in front of the editor window...

Back to work.

Dev Update: New Game Setup DONE + Colonization Phase System + Bugfixes for OpenGL UI

  • 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.
Finally tonight I seen back the main interface of the game. It has been a long time...
All is running OK, excepted for some bugs with the OpenGL user's interface, since the data for the names of the space units has been modified. It isn't much and will be fixed tomorrow night... or today night since it is already 01:20.

Now I will focus my work on the Colonization Phase System, which implies the full calculations for the objectives in the game, the rework of the interface to display the objectives, and the end of the phase itself.

That's all.

General Post: Current Status and near Terms Plans (CPS w/ Release) + Orbits + Weather System + Multithreading

I'm near to finish the work of the setup of a new game, and tonight after my day of work it should be done.
After this, I will focus only to complete the rework of the Colonization Phase System, by adding the calculations for the objectives and updating its interface.
Once done, the last part will be the secondary bits; mainly to finalize the new encyclopedia by interfacing the web Knowledge Base to the game, and to finalize the online updater.
I also completed the next two steps of the last iteration of this alpha 10, once I release the current iteration;
  1. implementation of the final orbits system (with low / geostationary and gravity limit orbits) and removing the 3D space units including the current method to browse them.
    I will integrate something more useful with list of icons representing the space units present on each orbit. And the orbits will have four or six locations around each planet and asteroid.
    I will talk about that in a more detailed post when I will implement it.
  2. implementation of the Weather & Geophysics System
    This system, as its name indicates it, will manage the change/progression of weather of each planet (the ones with an atmosphere obviously) over the time.
    The orbital objects will also finally move on their orbit, through this sytem.
    Finally it will also manages Regional Weather Effects that can be triggered, according to certains probabilities modified by the data of each orbital object.
    RWE are things like hurricanes, sandstorms, electromagnetic storms and so on, for the weather effects. For the geophysical effects it's more things like earthquakes, magnetic field shift or volcanic eruption.
    Surely a lot of fun ahead hehe.
It is to note that these two parts will use, for the first time in FAR Colony development, parallel code, so in clear; multithreading tasks and loops for their processes.
Progressively I will also add, later, some parallel code to already existing parts of the code and game systems.


That is all, thanks for your interest.

Dev Update: Generation of Starting Equipment DONE + Framework for Space Units Fleets (with some Details)

  • 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.
Finally the generation of the starting equipment is fully done.
A skeleton of data structure for the fleets have been implemented, it was necessary to be in accordance with the functions to load the cargo of space units.

In clear, there will be fleets in FARC, as for any space strategy game around, with specific functions that will define the overall organization (with organization slots) of them and will modelize the range of possible missions / strategies and tactics available.

The following is a work-in-progress, since it is a future feature, so take it is subject to changes.

The two basic types of fleet will be Task Group and Task Force.

The Task Group is a functional civilian fleet composed of 3 organization slots:
  • Manager & Coordinator Group (the core command)
  • Workers Group (the core working process, like haulers for example) 
  • Assistants Group (any spacecraft that doesn't fit as Workers but can act in assistance for them, like for a Fleet Logistic/Replenishment spacecraft for example).
The Task Force is a militarized fleet (yes there will be blood, tears and wars too in FARC) composed of 6 organization slots:
  • Core Command Group (part of the C3i group; Command and Control. The rest is assumed by another group)
  • Main Strike Group (the main combat group)
  • Escort Group (any defense spacecraft, acting only in reaction against any agression)
  • Orbital Assault Group (any spacecraft specialized into orbital planetary strike)
  • Battlefield Area Specialists Group (Electronic Warfare, Recon and other specializations not fitting in any other group. It includes the rest of C3i: Communication and Intelligence)
  • Support and Logistic Group (Replenishment, Rearming, Repairing)
See the groups like "mini-fleets" inside a fleet. Yes, convoluted things are so crunchy on the morning hehe.

That's all, a lot of work ahead as usual.
Now I continue to re-enable the rest of the process of a new game, which should be faster since it isn't linked to the backstories, so it is mainly to uncomment the code and verify it.
It includes the initialization of the Socio-Political Matrix, of the common core for the research & development, the Colonization Phase System, and finally the user's interface.

Thanks for your interest!