Complete rework of Terraforming

For what's not in 'Top Priority Game Design'. Post your ideas, visions, suggestions for the game, rules, modifications, etc.

Moderator: Oberlus

Message
Author
User avatar
Grummel7
Space Dragon
Posts: 335
Joined: Mon Oct 09, 2017 3:44 pm

Re: Complete rework of Terraforming

#16 Post by Grummel7 »

Ophiuchus wrote: Thu Dec 30, 2021 1:35 pm Like with the shipyards, enqueue and build conditions are separate.
That's not even true, location and enqueuelocation must be true to allow enqueuing.

The trick used with shipyards is (see LOCATION_ALLOW_ENQUEUE_IF_PREREQ_ENQUEUED) to specify the following in location:

Code: Select all

'''Or  [
            Contains And [
                Building name = "@1@"
                OwnedBy empire = Source.Owner
            ]
            // Allows enqueue if this is not enqueued but prerequisite @1@ is
            And [
                Enqueued type = Building name = "@1@"
                Not Enqueued type = Building name = CurrentContent
            ]
        ]'''
While the current building, e.g. an Orbital Drydock, is not already enqueued, second condition allows to enqueue it, if the Basic Shipyard is also enqueued. But the second condition yields false when the Drydock is enqueued, that's why no PP are assigned until the Shipyard has been finished, thus fulfilling the first condition.

Obviously the same trick cannot be used when the "prerequisite" the same building.

Ophiuchus
Programmer
Posts: 3433
Joined: Tue Sep 30, 2014 10:01 am
Location: Wall IV

Re: Complete rework of Terraforming

#17 Post by Ophiuchus »

Grummel7 wrote: Sun Jan 02, 2022 8:54 pm
Ophiuchus wrote: Thu Dec 30, 2021 1:35 pm Like with the shipyards, enqueue and build conditions are separate.
That's not even true, location and enqueuelocation must be true to allow enqueuing.
AFAICR enqueuecondition was introduced in order to distinguish between enqueueing and spending PP. So if what you say is true I would suspect a bug
Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

Look, ma... four combat bouts!

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13587
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Complete rework of Terraforming

#18 Post by Geoff the Medio »

Ophiuchus wrote: Mon Jan 03, 2022 1:21 pmAFAICR enqueuecondition was introduced in order to distinguish between enqueueing and spending PP. So if what you say is true I would suspect a bug
The purpose of the enqueue condition as implemented now is to have a way to make something that can't be enqueued but can still receive production allocation (ie. producible but not enqueuable).

This was intended to allow limiting the number of copies of something that can be on the queue by making the enqueue condition fail if there's already a copy of that thing on the queue, or another mutually exclusive thing.

I don't remember the timing of adding conditions, but possibly without the second condition, it was just possible to make something not producible if there were 2 or more on the queue, but that was awkward / annoying. With the second enqueue condition, it's clearer what's happening.

In principle, the two could be decoupled, so the enqueuing don't also require producibility as I think it does now, but that wasn't what the original intention was for the enqueue condition.

User avatar
Grummel7
Space Dragon
Posts: 335
Joined: Mon Oct 09, 2017 3:44 pm

Re: Complete rework of Terraforming

#19 Post by Grummel7 »

Geoff the Medio wrote: Mon Jan 03, 2022 2:48 pm In principle, the two could be decoupled, so the enqueuing don't also require producibility as I think it does now, but that wasn't what the original intention was for the enqueue condition.
Actually I'd like them to be decoupled. E.g. one thing often miss is the ability to enqueue a colony building, as soon as I conquered a planet or founded a new outpost, even though the conditions are not yet met. The game should just start producing it, as soon as they are.

The only problem I see is that we'd have check and potentially modify a lot of building scripts.

Ophiuchus
Programmer
Posts: 3433
Joined: Tue Sep 30, 2014 10:01 am
Location: Wall IV

Re: Complete rework of Terraforming

#20 Post by Ophiuchus »

i obviously misremembered.
Grummel7 wrote: Mon Jan 03, 2022 4:19 pm
Geoff the Medio wrote: Mon Jan 03, 2022 2:48 pm In principle, the two could be decoupled, so the enqueuing don't also require producibility as I think it does now, but that wasn't what the original intention was for the enqueue condition.
Actually I'd like them to be decoupled.
+1
Grummel7 wrote: Mon Jan 03, 2022 4:19 pm E.g. one thing often miss is the ability to enqueue a colony building, as soon as I conquered a planet or founded a new outpost, even though the conditions are not yet met. The game should just start producing it, as soon as they are.

The only problem I see is that we'd have check and potentially modify a lot of building scripts.
The colony buildings are generated by a python script anyway. So just adjust and regenerate.

I am not sure there are not more problems - e.g. presenting many useless options hiding the useful ones. E.g. showing 20 buildings of species in the empire, when 18 of those are actually not connected, but 2 actually are.
If that is an issue, we could add a UI-trigger dummy building though. So usually only showing the buildable colonies and if there are more empire species offer a "Colony Planning Building", which is necessary to queue in order to show the unconnected/lowly-populated buildings.
Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

Look, ma... four combat bouts!

User avatar
Grummel7
Space Dragon
Posts: 335
Joined: Mon Oct 09, 2017 3:44 pm

Re: Complete rework of Terraforming

#21 Post by Grummel7 »

Ophiuchus wrote: Mon Jan 03, 2022 6:58 pm I am not sure there are not more problems - e.g. presenting many useless options hiding the useful ones. E.g. showing 20 buildings of species in the empire, when 18 of those are actually not connected, but 2 actually are.
If that is an issue, we could add a UI-trigger dummy building though. So usually only showing the buildable colonies and if there are more empire species offer a "Colony Planning Building", which is necessary to queue in order to show the unconnected/lowly-populated buildings.
Well, for colony buildings, of course there will be restrictions (outpost, habitable...), but regarding species I would simply restrict it to the species that the empire currently has. So after e.g. after conquering an Ugmoor planet, I can schedule Ugmoor colonies. At the moment, I have to make a mental note to do it when the stability has reached 5 or when the size has reached 3...

Of course species files are scripted, but others are not and they have been written with the current rules in mind. E.g. all the shipyard buildings simply have:

Code: Select all

    enqueuelocation = [[ENQUEUE_BUILD_ONE_PER_PLANET]]
This only stops them from enqueued twice, all the other rules are encoded in location.

I wonder: would it be possible to decouple them and then allow specifying "location" as a condition in enqueuelocation to emulate the current behavior? So e.g. shipyards would then get this:

Code: Select all

    enqueuelocation = And [
        location
        [[ENQUEUE_BUILD_ONE_PER_PLANET]]
    ]

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13587
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Complete rework of Terraforming

#22 Post by Geoff the Medio »

Grummel7 wrote: Mon Jan 03, 2022 8:30 pmwould it be possible to decouple them and then allow specifying "location" as a condition in enqueuelocation to emulate the current behavior? So e.g. shipyards would then get this:

Code: Select all

    enqueuelocation = And [
        location
        [[ENQUEUE_BUILD_ONE_PER_PLANET]]
    ]
The Location condition does that, except that you have to specify what's location condition to use, eg. Location type = Building name = ThisBuilding or Location type = Hull name = "SH_SPACE_FLUX_COMPOSITE".

User avatar
Grummel7
Space Dragon
Posts: 335
Joined: Mon Oct 09, 2017 3:44 pm

Re: Complete rework of Terraforming

#23 Post by Grummel7 »

Geoff the Medio wrote: Mon Jan 03, 2022 11:19 pm The Location condition does that, except that you have to specify what's location condition to use, eg. Location type = Building name = ThisBuilding or Location type = Hull name = "SH_SPACE_FLUX_COMPOSITE".
Strange, the link is dead for me, it seems on github the branch influence_debt_stuff is somehow hidden. I can see it with git, though.

Anyway, the condition exists in master as well, so this should make it easy to adapt the enqueue conditions that shall not change when location and enqueuelocation are decoupled.

But the discussion has strayed from the original topic. To come back to it: Has anybody had a closer look at my pull request yet? I think it does the job neatly, except for a minor change that I've already discussed with Geoff. To the player, it offers only two choices to start with, and when one of them is enqueued, the options are reduced to the one that continues in the same direction. Since you see exactly where you end at, it should be easy to handle and pose less risk of enqueuing too less or too much or even starting in the wrong direction.

Ophiuchus
Programmer
Posts: 3433
Joined: Tue Sep 30, 2014 10:01 am
Location: Wall IV

Re: Complete rework of Terraforming

#24 Post by Ophiuchus »

Grummel7 wrote: Tue Jan 04, 2022 9:01 am Has anybody had a closer look at my pull request yet? I think it does the job neatly, except for a minor change that I've already discussed with Geoff. To the player, it offers only two choices to start with, and when one of them is enqueued, the options are reduced to the one that continues in the same direction. Since you see exactly where you end at, it should be easy to handle and pose less risk of enqueuing too less or too much or even starting in the wrong direction.
i think UI sounds fine.

wrote the following also on the PR:
A minor gripe is that you do not get feedback if you are going in the wrong direction/no preview for an existing population. What would be really great is if it would write in the build window "Terraform to Desert (adequate)". But that is not really possible currently (it is possible but not in a sensible way). Could add a sitrep for terraforming to a worse environment.

I would also allow outposts to terraform (no need to drop exobots first). Could increase build turns if no/not enough population if you really want to. But (why) do you want to?
Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

Look, ma... four combat bouts!

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13587
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Complete rework of Terraforming

#25 Post by Geoff the Medio »

Grummel7 wrote: Tue Jan 04, 2022 9:01 amthe link is dead for me, it seems on github the branch influence_debt_stuff is somehow hidden.
I've deleted the branch after unintentinally linking to it. I've fixed it to point to master now.

Ophiuchus
Programmer
Posts: 3433
Joined: Tue Sep 30, 2014 10:01 am
Location: Wall IV

Re: Complete rework of Terraforming

#26 Post by Ophiuchus »

Ophiuchus wrote: Tue Jan 04, 2022 10:13 am
Grummel7 wrote: Tue Jan 04, 2022 9:01 am
I would also allow outposts to terraform (no need to drop exobots first). Could increase build turns if no/not enough population if you really want to. But (why) do you want to?
Before the change, it was not possible to terraform arbitrary planets/outposts. With the change you can do that (using exobots on the way).

So cutting away that intermediate step makes sense now
Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

Look, ma... four combat bouts!

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13587
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Complete rework of Terraforming

#27 Post by Geoff the Medio »

A few thoughts about making it faster to terraform on some planets than others, in ways that the player can manipulate to some degree...

Should the effect of a terraforming building deplete a planet's current infrastructure when it fires? Seems odd that a recently-terraformed planet has no apparent other consequences.

Should therraforming building cost or production time depend on a planet's infrastructure?

Should terraforming buildings cost more on larger planets? Seems to make sense. Could be a direct dependence, or via infrastructure dependence on size.

I'm also considering adding an infrastructure support forcus, which gives a bonus to other planets' infrastructure, and interacts with the system and interstellar infrastructure policies.

User avatar
stpa
Space Kraken
Posts: 157
Joined: Mon Mar 12, 2018 1:08 pm

Re: Complete rework of Terraforming

#28 Post by stpa »

LienRag wrote: Wed Dec 29, 2021 11:27 pm"Uplifting" Species being also a core part of Space Opera fluff
.. made me think of Spore, that was a cute and cuddly one

User avatar
Oberlus
Cosmic Dragon
Posts: 5714
Joined: Mon Apr 10, 2017 4:25 pm

Re: Complete rework of Terraforming

#29 Post by Oberlus »

Geoff the Medio wrote: Thu Jan 06, 2022 12:17 pm Should the effect of a terraforming building deplete a planet's current infrastructure when it fires? Seems odd that a recently-terraformed planet has no apparent other consequences.
The terraforming process takes hundreds of years. Infrastructures change during process but are present and needed during the process. But maybe they are confiscated/devoted to terraforming so not available to other stuff (but then make the infrastructure malus apply during all the terraforming process, not just a depletion in the last turn).
The consumption of PP is a big consequence.

I don't see (yet) a gameplay, balance or it-makes-sense reason to deplete infrastructure (or better to apply a malus to it during terraformation), but I also don't see a reason to not do it.
Should terraforming buildings cost more on larger planets? Seems to make sense. Could be a direct dependence, or via infrastructure dependence on size.
Yes. But that's how they work already, greater cost the greater HabitableSize is.
Should therraforming building cost or production time depend on a planet's infrastructure?

I'm also considering adding an infrastructure support forcus, which gives a bonus to other planets' infrastructure, and interacts with the system and interstellar infrastructure policies.
If both are done together, it might be good. In any case, it's one extra way to punish species that dislike the infrastructure policies (like Fulver).

User avatar
stpa
Space Kraken
Posts: 157
Joined: Mon Mar 12, 2018 1:08 pm

Re: Complete rework of Terraforming

#30 Post by stpa »

yeah, discussion is also going circles (not sure if clock or anti-clock wise).
ROFL :lol:

Post Reply