development feedback

This seems like an odd tradeoff. There is a python function, unitCannotMoveInto, which is called very frequently by the AI. I am using it to prevent units from moving into fallout plots, unless they have the rad-immune promotion. When I have this turned on, a 350 turn, 11 player AIAutoPlay game takes about 3 hours. When I have this turned off, a map from the same start position takes about 1 hour. So, 2/3 of the total runtime is spent in preventing units from moving into fallout.

I like that fallout has "some" effect on units. Originally I wanted to have units get radiation poisoning or something, which would cause damage. That would take more CPU time, since the AI would have to *decide* whether or not to move through a fallout plot. Preventing units from moving into fallout plots has some small tactical effect on the game. For example, rad-immune units can "hide" from almost all other units in fallout. (Spiders and scorpions are also rad-immune so it is not a perfect hiding place.)

Do you think "cannot move into fallout" is worth 3x slower runtime? I have been playing with this feature deactivated locally (it is a one character change anybody could make) and it does not seem to make that much difference in gameplay.

Opinions?
 
This is a possible mechanic which came out of the playtest feedback thread.

Wrecks can come from two sources: a gas powered vehicle which is destroyed in combat, or a gas powered unit which is unfueled for 10 consecutive turns in enemy territory. ("Not friendly" territory technically, so unowned territory counts.) Not all of combat losses would result in a wreck.

A wreck is a barbarian unit which has move 0 and can be captured. If it is captured by a non-barbarian player, it turns into a move 1 unit. When a wreck moves into a city, it has an action button which converts it into hammers. I am thinking 50 hammers. If the city has a garage, then it converts into 100 hammers.

This may be too simplistic. But, it prevents needing a "wreck" for each unit type. Another possibility which is more complicated, is to have a "tank wreck" possibly rebuilt into a tank again, rather than turning into hammers. Also there could be a system where units can be rebuilt in the field, instead of requiring a trip to a city. This would only be possible with units that have a mechanic promotion. There could be a towtruck unit which automatically has the mechanic promotion.

Simple approach, more complex approach, or some other approach?
 
Do you think "cannot move into fallout" is worth 3x slower runtime? I have been playing with this feature deactivated locally (it is a one character change anybody could make) and it does not seem to make that much difference in gameplay.

The can-not-move on fallout thing is quite important... It adds tactical features to the map, like possible choke points. And it can be used by units that can go there to "hide".

3x the running time is a lot however...
 
Could you copy the XML for mountains and make them impassable?

You'd need a new terrain type (Rad Zone) and you'd lose the ability to clear fallout or promote your units to Rad-immune, but it might save some CPU, as the AI must understand impassable or highly mountainous vanilla games would be exccessively wasteful in CPU.
 
I should look into it again, but I believe there can be only one kind of "impassible". So I could make fallout impassible. But, then rad-immune would allow you to both enter fallout and cross mountains. That is not quite the right effect.

I am sure an SDK expert could easily make a custom engine which did this, and then the runtime impact would be minimal. Not me though.
 
Does the Final Frontier mod solve this in the SDK (for space radiation, supernovas, and black holes)?
 
I'm not sure. It would be a little difficult to prove if the AI avoids these obstacles except when it is worthwhile. I will look into their code at some point and see if I can figure it out.

Is there a promotion in Final Frontier which allows traversal without damage?
 
Finl frontier comes with no own dll, so it must use xml or python.
I never really played it however...
 
On the subject of restricting Highway movement to some unit types...

I looked through the SDK and there are 2 functions:
int CvPlot::movementCost(const CvUnit* pUnit, const CvPlot* pFromPlot) const; //Exposed to Python
bool CvPlot::isValidRoute(const CvUnit* pUnit) const; //Exposed to Python
One of those should be useable to override the cost reduction on movement via python.
isValidRoute sounds as it would be the easier way.
I failed to locate thos in the python files and have no idea where they would go there. It will also probably be another one of those running-time expensive overrides, as i expect the game to call this one a lot.
 
On the subject of restricting Highway movement to some unit types...[...] It will also probably be another one of those running-time expensive overrides, as i expect the game to call this one a lot.

This goes back to the suggestion that foot units should not get fast movement on highways. I agree, thanks for the additional code pointers. There is a route restrictor modcomp in SDK which does the opposite of what I want, but I have not looked inside. Also I just found zRoute, which does the same (reverse) thing in python. I had not spotted this before. Since it is python I might be able to reverse it. I will put that back onto the list.

EDIT: I looked into zRoutes. It just uses unitCannotMoveInto, and it *prohibits* movement by that unitclass. What I want is regular slow movement along the roads rather than prohibiting. So the python one is (a) slow (b) not extensible to what I want. I also suspect that the SDK one may also only *prohibit*, so it may be useful for ideas rather than a canned solution.

However, it triggered a related idea. Roads make movement X times faster, while highways (railroads) make all units move at Y plots per turn. I could make highways have a higher X instead of any Y. Then foot units on highways would move faster than on roads, but not as fast as wheeled units on highways. That seems to accomplish the basic goal and it is trivial to implement.
 
However, it triggered a related idea. Roads make movement X times faster, while highways (railroads) make all units move at Y plots per turn. I could make highways have a higher X instead of any Y. Then foot units on highways would move faster than on roads, but not as fast as wheeled units on highways. That seems to accomplish the basic goal and it is trivial to implement.

This sounds like a very good idea - doable from XML and without any additional running time overhead from python.

If you give Highways higher X - maybe 4x and 5x after researching Highways (should be possible from XML - roads get "Faster" on Construction too)- this would make Foot units move 4 or 5 while wheeled units could have 8 / 10 moves - close to what they would have on railroad too.
 
I played a game of version 0.8 mostly through last night, trying for a vision victory. I spammed one of my neighbors with advocates and got him to convert; but then he built a capitol. I figured over time, he would convert all his cities back or "divide the vote", so I wanted to get rid of his capitol. I loaded up on espionage points and sent some spies to destroy it.

It turns out spies can't destroy wonders, so there is no non-military solution.

Today the diplomacy tech gives spies, but it started me thinking about the difference between spies and advocates. Add in inquisitors, which I don't have today, but that is the obvious name for a unit which removes a vision from a city. I have not yet put in any active way to defend against vision spread, just passive and counterattack.

Some random ideas, possibly implementable or possibly not.
* Give spy the ability to spread a vision, and delete advocate
* Give advocate or spy the ability to delete a vision
* Convert capitol to a project, so spies can destroy it
* What happens after a capitol is destroyed? A high decay rate of your vision in other cities, but you can rebuild it?

I like the idea of the vision victory, but as we have discussed in the playtest thread, it isn't very smooth yet.
 
If you give Highways higher X - maybe 4x and 5x after researching Highways (should be possible from XML - roads get "Faster" on Construction too)- this would make Foot units move 4 or 5 while wheeled units could have 8 / 10 moves - close to what they would have on railroad too.

I made this change, it seems to work pretty well. Roads give 2x, highways give 4x. Previously foot units and vehicles both moved 7 on railroads, now foot moves 4 and vehicles move 8. If you have the morale promo for +1 movement, you get lucky, and now you can move 12!
 
I am not sure about non-military capitol destruction - vision is something about a idea - the actual building is only a small token of it. You can't get rid of ideas via spies from underground - you have to annihilate the believers.

Spy's are different fom advocates in the way that they do not require Open Boarders. Giving them the ability to spread a vision might be fatal: right now you have to be at least at somewhat civil terms with a Civ to get OB and spread your Vision, so Vision victory requires at least some diplomacy.
With spy's you could do it even to your enemy in war.

I think a "Propaganda" mision might make sense for spy's. It could help prevent decay of your vision there (Assuming the target is running another state vision). But should not spread the vision into new cities.

------

Another note:

Is it possible to combine victory conditions ? What i thinking of is changing the Requirement for Vision victory to:

67 % Population (or wahtever threshold prooves the best)
AND
The vision must be present in every civ (At least one city - like it is now for AP victory)

This should make those early Blitz-Vision moves harder and would make some sense.
 
In vanilla, enemy spies can change your civics and religion, even though it is expensive. I guess this is already a type of propaganda.

I agree the spy secret movement is an important difference. Removing "open borders" gives you the chance to defend against missionaries at the cost of some diplomatic penalty.

The good news about the religious victory is the "hooks" are already there for it in the vanilla game. The bad news is then you can only use the "hooks" that are already there. There is no way to add a check about your vision being available in each civ. But, that doesn't seem so important: if there is a fringe civ with 10% of the population, and they are totally uninterested in your vision, would that prevent selection of the capitol? There are enough historical counterexamples.

I was thinking about converting the capitol to a project so spies could destroy it. Today I noticed that there is a VictoryMinThresholds field in the project conditions. I am not sure exactly how it is used; but it seems to be that you can prevent a project from starting unless the victory threshold is a certain value. So, I could add a "stage 2 capitol" which requires at least 51% vision. Not sure what happens if your vision percentage goes 49, 50, 51, 51, 51, 50. Would you have to stop, and then pick up later? At some point soon I will experiment more with this.
 
Several people have suggested that the AI doesn't "understand" about limited food. It seems to prefer building roads over farms, so a player who dedicates himself to growing population can easily outgrow the AIs.

I have looked at a couple of autoplay games. I usually run 350 turns, 11 players, huge map. There are plenty of AI cities with population in the 9-10 range. Maybe the human player can get there a lot faster in the early game.

The only way I can find to adjust the priority of farms is the improvement weight field for leaderheads, as suggested by refar. The improvements themselves do not have any weights, nor do the build commands, nor any other place I can think of looking.

The existing AIs in Fury Road already use the weights. I am wondering if this makes any difference. Specifically, the following AIs have "preferences" according to the leaderhead file.

Farm only: Chen/Christopher, Stein
Farm and junkyard: Aelwyn/Jane, Shiro/Ares, Mick, Max
Town: Stevie, Debbie
Town and junkyard: Montezuma/Ironhead

Where I have listed two names, the first name is for version 0.7 and the second one is for version 0.8. I renamed a couple of the AIs and also when I deleted Monty and Shiro, I moved their AI personality around to keep the trait distribution balanced.

Based on any save games you may have around, does it seem that these leaders have any better luck with food than others? If it seems that Stevie and Chen are both equally bad at building farms, then there is little point in adjusting these weights.

In case anybody wants to try an experiment, I have modified the leaderhead file so that all the AI's have a high weight for farms. You could unzip this file View attachment 183769 on top of your existing 0.8 leaderheadinfo file. Make sure it goes into the right directory, you should get a warning about overwriting the file.

Does it feel like it makes any difference? If not, I can't think of any other good way to teach the AI that farms are more important. Any suggestions?
 
I will try it with the new file.
 
I gave the whole Sity Size issue some thought (did not have time to actually try something out yet).

In my previous games i did see the AI building farms - maybe a few more were good, but it's not like it never makes them.

There is another possible reason for small AI cities: Whip. I know that the default game AI makes use of whipping.
If the AI - being un-aware of the Post Apo theme and its economic constrains - still uses whip of Fury Road it might explain the small cities.

Maybe removing the Slavery Civic (or giving it some other face than the whip) is a good idea.
I myself only rarely use whip on furyroad anyway - there is just no food to regrow.
 
Interesting point about whip. Since I put back the "almost full" civics matrix in 0.5, I have not kept statistics about whether any civics are chosen more often by the AI. I don't think I can specifically track how often the AI whips, but I can certainly track who has which civic. AI's that don't use slavery are clearly not whipping.

Peter and Stein have slavery as a favorite civic, which I guess means they are likely to choose it. Maybe they stay smaller as a result.
 
Top Bottom