Please remove the seeming pointless turn delay.

Describe your experience with the latest version of FreeOrion to help us improve it.

Moderator: Oberlus

Forum rules
Always mention the exact version of FreeOrion you are testing.

When reporting an issue regarding the AI, if possible provide the relevant AI log file and a save game file that demonstrates the issue.
Message
Author
truepurple
Space Kraken
Posts: 156
Joined: Tue Jul 06, 2021 12:09 am

Please remove the seeming pointless turn delay.

#1 Post by truepurple »

I wonder how many newbies were confused by the game notifying them that they have colonized or terraformed a planet, and nothing has changed. It's only till the turn after that they can build on the planet etc. I can see waiting between the turns while the others move, till your next turn for it to resolve. But I don't see any good reason for it to take till your turn after that.

truepurple
Space Kraken
Posts: 156
Joined: Tue Jul 06, 2021 12:09 am

Re: Please remove the seeming pointless turn delay.

#2 Post by truepurple »

Also it does make the notification system somewhat useless because the notification system does not have the turn delay, this means it notifies you that you have made a outpost etc a turn before you can do anything, then you need to go hunt down it after. If there is any technical difficulty in eliminating this turn delay stuff, then can you make notifications also delay a turn on those same things?

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

Re: Please remove the seeming pointless turn delay.

#3 Post by Oberlus »

Regarding notifications, you have to distinguish between finishing a building and getting its effect. E.g. colony buildings, on turn X you get the sitrep that the building is finished, and on turn X+1 you get the notification that a colony (population) has been established in the planet. The first sitrep is close to useless, one can just ignore those.

AFAIK (I might be wrong), the one turn delay in general is due to some (obscure to me) problem with communication between the C++ backend and the FOCS interpreter, and it is not a design choice.

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

Re: Please remove the seeming pointless turn delay.

#4 Post by Ophiuchus »

Oberlus wrote: Thu Jul 15, 2021 7:39 am AFAIK (I might be wrong), the one turn delay in general is due to some (obscure to me) problem with communication between the C++ backend and the FOCS interpreter, and it is not a design choice.
In general the one turn delay is that else timing gets hard/you would need to reiterate effects until you reach a fixpoint. In general it could be that no fixpoint exists.

Some effects like Destroy or SitRepMessage should really happen only once and so on...

For colonization. I am also not sure. Are there circumstances unknown to the client which can prevent colonization (e.g. a hidden colony)?

With the current system it would be good to prevent the "Building was built" sitrep for colony buildings. And/or maybe a generic thing in sitrep handling the +1 turn.
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!

truepurple
Space Kraken
Posts: 156
Joined: Tue Jul 06, 2021 12:09 am

Re: Please remove the seeming pointless turn delay.

#5 Post by truepurple »

Ophiuchus wrote: Thu Jul 15, 2021 7:57 am With the current system it would be good to prevent the "Building was built" sitrep for colony buildings. And/or maybe a generic thing in sitrep handling the +1 turn.
:mrgreen: ( damn the lack of a thumbs up emoticon) also for colonizing/outposting itself, no point in telling us a planet has been colonized before we can do anything with it/before it has been really colonized.
Ophiuchus wrote: Thu Jul 15, 2021 7:57 am
Oberlus wrote: Thu Jul 15, 2021 7:39 am AFAIK (I might be wrong), the one turn delay in general is due to some (obscure to me) problem with communication between the C++ backend and the FOCS interpreter, and it is not a design choice.
In general the one turn delay is that else timing gets hard/you would need to reiterate effects until you reach a fixpoint. In general it could be that no fixpoint exists.
So how intractable is fixing this weird delay? Is it possible to go to another system other than FOCS or whatever without losing much work??

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

Re: Please remove the seeming pointless turn delay.

#6 Post by Ophiuchus »

truepurple wrote: Thu Jul 15, 2021 9:11 pmSo how intractable is fixing this weird delay? Is it possible to go to another system other than FOCS or whatever without losing much work??
It would either mean coming up with a rework of the effect system.

If one would go to another system one would also have to redo the complete content.

If you are talking about colonisation the first question is if there are some hidden things (in the sense that the client state does not know about) which can prevent colonisation. Colonising (by ship) and adding stuff to your build queue and finding out next turn that all this did not happen is also not very acceptable.

The UI fix for colonising by building is suppressing that sitrep.
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!

truepurple
Space Kraken
Posts: 156
Joined: Tue Jul 06, 2021 12:09 am

Re: Please remove the seeming pointless turn delay.

#7 Post by truepurple »

Ophiuchus wrote: Fri Jul 16, 2021 5:24 am
truepurple wrote: Thu Jul 15, 2021 9:11 pmSo how intractable is fixing this weird delay? Is it possible to go to another system other than FOCS or whatever without losing much work??
It would either mean coming up with a rework of the effect system.

If one would go to another system one would also have to redo the complete content.
That would be unfortunate, but let me ask you this, is this something we (people interested/invested in FO) are willing to accept having like this forever? I mean is there a plan that will eventually fix the problem, or is there no plan? If we want to fix this, and it might require redoing some programing as a result, better to do it sooner, rather than latter, yes? That way less work needs to be redone.


If you are talking about colonisation the first question is if there are some hidden things (in the sense that the client state does not know about) which can prevent colonisation
I know what a client is, though usually not a term used in single player. What is a "client state"? How can the program not know about it's own programming? I do not grasp your meaning here at all.

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

Re: Please remove the seeming pointless turn delay.

#8 Post by Ophiuchus »

truepurple wrote: Fri Jul 16, 2021 9:37 am That would be unfortunate, but let me ask you this, is this something we (people interested/invested in FO) are willing to accept having like this forever?
Yes, if nobody steps up to fix it. I think I have enough other topics first for the next 4 years.
truepurple wrote: Fri Jul 16, 2021 9:37 am I know what a client is, though usually not a term used in single player. What is a "client state"? How can the program not know about it's own programming? I do not grasp your meaning here at all.
When you start freeorion it starts a server and a player client (the UI) and some client AI processes.

These processes exchange information each turn. Your client (or the AI) is supposed not to know about the stuff your empire does not detect it knows only about the client state. Only the server has the complete truth, the server state. Sometimes you will see that in the client as some calculations are "off" (as your client does not know about the source of an effect).
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: Please remove the seeming pointless turn delay.

#9 Post by Geoff the Medio »

truepurple wrote: Wed Jul 14, 2021 9:21 am...the game notifying them that they have colonized or terraformed a planet, and nothing has changed. It's only till the turn after that they can build on the planet etc.
It's not clear what you're talking about.

If a colony ship is in a system and a player clicks the colonize button, then end turn, the player will normally control and be able build on the planet on the next turn. This might fail if there is something that prevents the colonization order from executing, such as another empire also trying to colonize, or armed ships in the system that the first player wasn't able to detect.

If a player produces a species colony building, it takes a turn for that building's effects to act because the building has to exist for the effect to fire, so it takes another turn before the planet is actually colonized. This is just how the colony building effect is written, and changing it will require substantial changes to how colonization buildings work. The colony building could probably be replaced with another game mechanism to create a colony without the one turn for the effect to fire, but that mechanism doesn't presently exist. Perhaps a use case for the suggested influence projects feature. Or, the pedia message could be modified to say that the colony will be established by the next turn, rather than just that it "has been produced"

truepurple
Space Kraken
Posts: 156
Joined: Tue Jul 06, 2021 12:09 am

Re: Please remove the seeming pointless turn delay.

#10 Post by truepurple »

Setting aside for a moment how outpost to colonization works.

Terraforming also has a inexplicable (though what Geoff said makes it more understandable from a coding perspective) turn delay, a planet isn't successfully terraformed until the turn after the terraform build has completed.

This goes double for artificial worlds. If you build a artificial world, you can not build anything on it till a turn after you have finished building it.
And if you colonize a artificial world, that colony will not appear till the turn after you build the colonization,
making artificial worlds have two turn delays after completion. (even more if you don't have gai for some reason and got to build a bunch of terraformings)
Geoff the Medio wrote: Fri Jul 16, 2021 9:14 pm If a player produces a species colony building, it takes a turn for that building's effects to act because the building has to exist for the effect to fire, so it takes another turn before the planet is actually colonized. This is just how the colony building effect is written, and changing it will require substantial changes to how colonization buildings work. The colony building could probably be replaced with another game mechanism to create a colony without the one turn for the effect to fire, but that mechanism doesn't presently exist. Perhaps a use case for the suggested influence projects feature.
Since various game mechanisms strongly encourage players to build outposts then convert to a colony, how it works with direct colonization is rather irrelevant for most people most of the time.

Isn't it possible to make what is being built the colony itself, rather than a "colony building"? Otherwise how come we don't see that in shipyards etc, building a shipyard then needs a turn for the shipyard effect to fire? Ditto with terraforming and artificial planets.

I'd like to see some other steps combined into one in general. Like imagine if when you set a outpost ship to build, you can set what planet it will outpost on and what species it will colonize to at the same time. And then when the colony ship is in the appropriate system it will automatically make the outpost which will turn into the predecided species once done building. Sort of a different topic, but sort of the same because you speak of the client making a building which then makes the colony, it's all so indirect and seemingly unnecessarily long way around.

Or, the pedia message could be modified to say that the colony will be established by the next turn, rather than just that it "has been produced"
Or no notification till one can actually do anything with it. The notification already spams too much IMO.

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

Re: Please remove the seeming pointless turn delay.

#11 Post by Geoff the Medio »

truepurple wrote: Fri Jul 16, 2021 9:59 pm
Geoff the Medio wrote: Fri Jul 16, 2021 9:14 pm...changing it will require substantial changes to how colonization buildings work. The colony building could probably be replaced with another game mechanism to create a colony without the one turn for the effect to fire, but that mechanism doesn't presently exist.
Isn't it possible to make what is being built the colony itself, rather than a "colony building"?
See what you already quoted.
...how come we don't see that in shipyards etc, building a shipyard then needs a turn for the shipyard effect to fire?
Shipyards are buildings. Producing a building immediately creates the building, which then exists on the following turn. Shipyards just need to exist to allow ships to be produced. Terraforming and colonization are properties of planets that are modified by an effect on the corresponding buildings, which takes a turn to work.

User avatar
Vezzra
Release Manager, Design
Posts: 6095
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Please remove the seeming pointless turn delay.

#12 Post by Vezzra »

Truepurple, the issue you observe is simply due to a limitation of the underlying game engine. Currently, only two different types of things can be produced: ships and buildings. Both represent "tangible structures", so to speak (one mobile in space, one stationary on ground or orbit of planets). Both (ships and buildings) can have various effects, which only kick in one turn after they have been produced (due to how things are implemented).

What we do not have (and what has been suggested in the past because it would be nice to have to avoid the issue you observed) is a third type of thing which can be produced, which is something like "projects": a game element that does not represent a tangible piece of structure, which has effects attached to it, but something that immediately upon completion performs a one-time execution of the effects attached to it.

And until someone gets around to implement that, we'll have to live with the current limitations. FO is an unfinished game in alpha, so it's only natural that a ton of things which would be nice to have are missing.

truepurple
Space Kraken
Posts: 156
Joined: Tue Jul 06, 2021 12:09 am

Re: Please remove the seeming pointless turn delay.

#13 Post by truepurple »

Understood Vezzra. In the mean time please make it so notifications don't notify you of these things till they are ready.

Also please remove the "X is a prime location for a gas generator" notification when a a artificial planet is actively being built there.

wobbly
Cosmic Dragon
Posts: 1880
Joined: Thu Oct 10, 2013 6:48 pm

Re: Please remove the seeming pointless turn delay.

#14 Post by wobbly »

truepurple wrote: Mon Jul 19, 2021 12:36 am Understood Vezzra. In the mean time please make it so notifications don't notify you of these things till they are ready.
Alternative you could just turn that notification off in the filters list. It is there.

truepurple
Space Kraken
Posts: 156
Joined: Tue Jul 06, 2021 12:09 am

Re: Please remove the seeming pointless turn delay.

#15 Post by truepurple »

wobbly wrote: Mon Jul 19, 2021 2:22 pm
truepurple wrote: Mon Jul 19, 2021 12:36 am Understood Vezzra. In the mean time please make it so notifications don't notify you of these things till they are ready.
Alternative you could just turn that notification off in the filters list. It is there.
So I set up and next turned a few times so I had a planet that had just "produced a colony" on then tried different settings, and tested artificial planets and starlanes. It all took awhile, including when the game bugged and said it couldn't set up a server every time I tried to load a save, so I had to restart the game.

The only thing that stops notifications from telling you when you've built a colony, artificial planet, or starlane before you can actually use them is disabling notification of "building produced", which means the game won't tell you when you've built that shipyyard you've been waiting for too.

There is a "Planet colonized" field to uncheck, but it doesn't seem to do anything. With that unchecked it still alerts you of "Colony produced", and the "Colony established" field is for the turn after.

Also it's annoying that notification filters menu closes every time you choose something to check or uncheck. It's completely unnecessary too since if you want to close the menu, all you have to do is click anywhere but the menu.

Post Reply