sirati97
Chieftain
i really like that if you could make it happened. regarding the ai. the only problem i see here is that it would usually destroy roads if it does not attack with a unitThat's an interesting idea about letting fortified units unlock access to enemy roads. I imagine it would be extremely powerful when used against the AI.
I have also being playing with the artillery fix on and i can say that the AI can be frighteningly effective if it approaches your cities with a 60 artillery 60 defender stack. if it also brings offensive units. i have also noticed tho that you can still outsmart the AI and actually make the AI build more artillery game-breakingly overpowered for the human player. the problem is that once you capture a critical amount of artillery you can simply control the AI by making use that you either bombard the AI stacks into red and then kill them or if the amount is unmanageable exploit that the AI will move any damaged units back to heal.
The reason why this is game-breaking is that you use artillery captured from the AI and it does not cost maintenance. I have over a couple hundred captured catapults in my current sid game, while i can support only around 80 units without inevitable bankruptcy.
Slave units should count at least somewhat to uphold cost like for example 3 slave units count as one unit for maintenance purposes
maybe only slave military units should have maintenance (not slave workers)
Pretty please. With the multiplayer lag using artillery stacks takes minuted of b, mouse click, shift ]About multiplayer, I've had that in the back of my mind for a while now
That reminds me of another suggestion: one of my greatest annoyances is the order in which civ3 handles units. Cycle order only is respected when you are cycling and not when a unit finishes activation after it did an action. i would suggest that if possible you could rewrite cycle order to do the following order for single unit type cycle:
1. same unit 2.same tile 3. healed before unhealed 4. unit ai strat(eg.g offensive, defensive, bomb) 5. unit type (land, sea) 6. loaded before unloaded
and for multi unit cycle
1.same tile 2. same unit rest same
Also the game should respect the order not only when cycling but also when it switches to the next unit
this also brings me to another problem. i would like to have more wake all / fortify all buttons:
1. Wake/Fortify all by type (e.g. wake all swordsman)
2. Wake/Fortify all fully healed/damaged
With multiplayer every action takes a long time and sorting through a stack after and before a fight can take minutes when it should take one click
I think this is very very awesome. wait time are really one thing that kills the fun in SP games on huge or extreme maps. i have made bigger version of my dads fav scenario for him and he does love it but at some point the turns take just too long.In one case I was able to reduce the turn time very significantly, from ~6 min to 1 min 12 sec, with a relatively simple edit to the code.
The other thing that i know does a lot of lag is recalculating trade routes. i think i had suggested a better algorithm for that about 1 or 2 years ago here, and i would gladly implement it for you as long as i am able to nicely interface with the games methods.
Basically the point is that game completely recalculates all trade router every single time any change happens that could incur any change. e.g.: building a new city, building a harbour or airport, building a road, bombing a road tile resulting in the destruction of said road, sea-blockading a harbour. the calculation itself is O(N!M²) where N is the number of cities and M is the map size.
On maps bigger than huge this quickly means that any action that would trigger a recalculation means a minute long wait. for example using a bomber on a road, or founding or capturing a city. while the human can just avoid these actions at the cost of fun the AI will perform them anyway. on huge maps i would estimate that 99% of all calculation time is just trade route recalculations.
my algorithm for solving the problem is as following:
1. instead of calculation city to city trade, each tile is associated with a trade region. a trade region is a any connected (by road, or airport [and maybe harbour]) with the same trade restrictions (i.e. owned by the same civilisation).
2. tile changes that warrant recalculation instead check if the change would split or fuse any two trade regions (O(M²) check, flood fill O(1))
3. only if a fuse or split happened we need to recalculate trade at all (most recalculation can be avoided)
4. trade region graph is very small in all real-life situations so should be fast even if we implement O(T!) where T is the number of trade regions
I am not quite sure how harbours exactly work in civ3, so most likely oceans need to also be divided as per tile type (coast/sea/ocean) and it appears that visibility also seem to play a role
with this change it would also be possible to allow trade routes to go through enemy territory if a route is completely controlled by allied units