Are you, in fact, a pregnant lady who lives in the apartment next door to Superdeath's parents? - Commodore

Create an account  

 
Reversing to Orion - project 1oom

(November 6th, 2019, 16:29)RFS-81 Wrote: If that's correct, then it doesn't account for waste. I think the displayed pop maximum includes waste. Were you fighting Silicoids, DaveV?

No, Sakkra. But the planet had definitely been spored.
Reply

I played some more, and couldn't duplicate the "too many colonists" problem. Maybe I was looking at current population instead of max?

Here's a definite bug: I cranked up my trade with a friendly AI from minimum to maximum the turn before I settled two new worlds. I didn't readjust my ECO slider, so several of my planets had some waste because of the lost trade income. I transported a bunch (35-40) of colonists to the new colonies, and was puzzled when the ECO slider text stayed at CLEAN when I adjusted it to buy some of the transported population back. The next turn, all the transported population had magically reappeared!

Sorry I don't have a save for this. As a programmer myself, I should be a more conscientious debugger. Are there still auto saves?
Reply

Another one: I messed up my timing and my transports arrived at an alien world before my fleet, and ~100 colonists were slaughtered before they could land. The game became unresponsive for a *long* time (the same thing used to happen on the original game).
Reply

(November 7th, 2019, 06:18)DaveV Wrote:
(November 6th, 2019, 16:29)RFS-81 Wrote: If that's correct, then it doesn't account for waste. I think the displayed pop maximum includes waste. Were you fighting Silicoids, DaveV?

No, Sakkra. But the planet had definitely been spored.

Sporing shouldn't have made a difference, only waste is handled separately.

(November 7th, 2019, 12:37)DaveV Wrote: I played some more, and couldn't duplicate the "too many colonists" problem. Maybe I was looking at current population instead of max?

Here's a definite bug: I cranked up my trade with a friendly AI from minimum to maximum the turn before I settled two new worlds. I didn't readjust my ECO slider, so several of my planets had some waste because of the lost trade income. I transported a bunch (35-40) of colonists to the new colonies, and was puzzled when the ECO slider text stayed at CLEAN when I adjusted it to buy some of the transported population back. The next turn, all the transported population had magically reappeared!

Sorry I don't have a save for this. As a programmer myself, I should be a more conscientious debugger. Are there still auto saves?

Only a Undo save, unfortunately. If you have played turns after that, it's gone.

Just to check that I understand correctly, the steps you did are:
1) Make a big trade deal.
2) Send ~40 transports from some colony.
3) Hit next turn.
4) You now both have transports en route and no lost population in the source colony.

(November 7th, 2019, 12:48)DaveV Wrote: Another one: I messed up my timing and my transports arrived at an alien world before my fleet, and ~100 colonists were slaughtered before they could land. The game became unresponsive for a *long* time (the same thing used to happen on the original game).

Sounds like it's a slow algorithm then. I'm sure there are some opportunities to speed it up.
Reply

(November 7th, 2019, 12:37)DaveV Wrote: Here's a definite bug: I cranked up my trade with a friendly AI from minimum to maximum the turn before I settled two new worlds. I didn't readjust my ECO slider, so several of my planets had some waste because of the lost trade income. I transported a bunch (35-40) of colonists to the new colonies, and was puzzled when the ECO slider text stayed at CLEAN when I adjusted it to buy some of the transported population back. The next turn, all the transported population had magically reappeared!

Did this happen at large and highly-terraformed planets?  It almost always happens right after an Industrial Accident too, and even when terraforming.  It's also probably related to the cause of the first bug you reported, as others mentioned above:  When a planet is polluted (whether due to Death Spores [EDIT: I think? It's been a while since I was spored, and my memory that they add pollution as well as -terra and -pop may be wrong], which also apply a kind of negative terraforming to the planet, or the Industrial Accident event, which also changes the planet's nominal max size, or just plain pollution from reducing the Eco slider too far) the nominal "max population" for the planet displayed on the command screen is reduced to [Planet's real max size] - [amount of waste present].  (The max waste a planet can have is max size -10.)  That may explain the transport behavior you noticed.

Now, when you raise the Eco slider enough to grow pop, it shows the amount of expected pop growth, but does so under the assumption that the currently-displayed nominal max pop is correct, even though your waste cleanup (and potentially terraforming) will take effect first, increasing the planet's size and allowing more pop growth.  So my guess is that you were sending away ~20% or less of the planet's (actual and currently-~full) max pop in transports while the planet's nominal max pop was at least as low as the number of colonists being left behind, while spending enough on Eco to clean up the waste and regrow all the pop that was lost, even though the display didn't realize it.  If I'm right, then it's a display bug that should be fixable.  (In fact, the pop growth display could always assume the planet has no waste and has been enriched and terraformed to the max of your current tech, since pop growing is always the last thing to which Eco spending goes in any case.)
Reply

(November 7th, 2019, 12:37)DaveV Wrote: Here's a definite bug: I cranked up my trade with a friendly AI from minimum to maximum the turn before I settled two new worlds. I didn't readjust my ECO slider, so several of my planets had some waste because of the lost trade income. I transported a bunch (35-40) of colonists to the new colonies, and was puzzled when the ECO slider text stayed at CLEAN when I adjusted it to buy some of the transported population back. The next turn, all the transported population had magically reappeared!

The ECO-slider display bug with pop scheduled for transport has been fixed (merge pending).
The slider considers non-existent transport costs and can e.g. display WASTE while in fact you are already far into "buy pop" territory, so you probably did buy and pay for the pop, only the slider didn't say so.

(November 7th, 2019, 12:37)DaveV Wrote: Sorry I don't have a save for this. As a programmer myself, I should be a more conscientious debugger. Are there still auto saves?

Yes, but you have to enable them by command-line or config file option.
Reply

(November 7th, 2019, 14:47)RefSteel Wrote: (In fact, the pop growth display could always assume the planet has no waste and has been enriched and terraformed to the max of your current tech, since pop growing is always the last thing to which Eco spending goes in any case.)

From looking at the code, I think that it does exactly that. The code in question is somewhat opaque, however:



Code:
if (vthis > 0) {
    if (p->max_pop3 < game_num_max_pop) {
        /* WASBUG In MOO 1.3, if you conquered a planet from a race
         * with more advanced terraforming than you, a negative
         * terraforming cost would be calculated here. This affected
         * the displayed pop growth estimate but not actual growth. */
        tform_cost = (p->max_pop2 + (e->have_terraform_n - p->max_pop3)) * e->terraform_cost_per_inc;
        SETMAX(tform_cost, 0);
    } else {
        tform_cost = 0;
    }
    if (vthis < tform_cost) {
        str = game_str_sm_ecotform;
    } else {
        int growth, growth2, max_pop;
        bool flag_tform = false;
        max_pop = p->max_pop3;
        if (tform_cost > 0) {
            if (vthis < tform_cost) {
                flag_tform = true;
            } else if (flag_tenths) {   /* keep same +N as MOO1 for developing planets on -nouiextra */
                max_pop = p->max_pop2 + e->have_terraform_n;
            }
        }
        vthis -= tform_cost;
        growth = game_get_pop_growth_max(g, p, max_pop) + p->pop_tenths;
        if (!flag_tenths) {
            if (((p->pop - p->trans_num) + (growth / 10)) > max_pop) {
                growth = (max_pop - (p->pop - p->trans_num)) * 10;
            }
            growth2 = game_get_pop_growth_for_eco(g, p, vthis) + growth;
            if (((p->pop - p->trans_num) + (growth2 / 10)) > max_pop) {
                growth2 = (max_pop - (p->pop - p->trans_num)) * 10;
            }
            growth = growth2 / 10 - growth / 10;
        } else {
            if (((p->pop - p->trans_num) * 10 + growth) > (max_pop * 10)) {
                growth = (max_pop - (p->pop - p->trans_num)) * 10 + p->pop_tenths;
            }
            growth2 = game_get_pop_growth_for_eco(g, p, vthis) + growth;
            if (((p->pop - p->trans_num) * 10 + growth2) > (max_pop * 10)) {
                growth2 = (max_pop - (p->pop - p->trans_num)) * 10 + p->pop_tenths;
            }
            growth = growth2 - growth;
        }
        if (growth <= 0) {
            str = flag_tform ? game_str_sm_ecotform : game_str_sm_ecoclean;
        } else {
            retval = growth;
            str = game_str_sm_ecopop;
        }
    }
} else {

If my interpretation is right, then it has to do with the transport issue we discussed recently and a patch is already out.

ignatius
Reply

It's quite possible you're right; what I described was true (at least for terra and soil; the bit about waste I'm less sure of) in 1.3 and in kyrub's patch, but I haven't tested it under 1oom, so it may already be fixed!
Reply

(November 7th, 2019, 14:03)RFS-81 Wrote:
(November 7th, 2019, 12:48)DaveV Wrote: Another one: I messed up my timing and my transports arrived at an alien world before my fleet, and ~100 colonists were slaughtered before they could land. The game became unresponsive for a *long* time (the same thing used to happen on the original game).

Sounds like it's a slow algorithm then. I'm sure there are some opportunities to speed it up.

This should be in game_turn_transport_shoot(). The RNG is called for every single anti ship weapon in orbit. However, for this to take noticable time, it would have to be very late in the game, where stacks are huge and weapons are small. Anyway, I put up a fix.

ignatius
Reply

(November 7th, 2019, 14:03)RFS-81 Wrote: Just to check that I understand correctly, the steps you did are:
1) Make a big trade deal.
2) Send ~40 transports from some colony.
3) Hit next turn.
4) You now both have transports en route and no lost population in the source colony.

2.5) Adjust ECO slider up a bit, since I wanted to regrow the pop and I thought it might be a display glitch. I'm not sure whether this step is necessary, but I'm reporting what I did. ECO display was still CLEAN.
Reply



Forum Jump: