K-Mod: Far Beyond the Sword

ARCHER RUSHES BY AI?

I have been playing this game using the Better AI mod. I learned about K-Mod, so I decided to try it out. In my first game, at Emperor level, very early in the game the enemy AI (Japan) declared war and moved in with a stack of archers. This was deadly because all I had was a warrior and chariot to defend my city, and four archers were able to defeat those defenders.

So then in a follow-up game at Monarch, somewhat later in the game, the computer AI (France) declares war on me, and once again moves in with a stack of archers and one catapult. This was a very bad strategy because it was later in the game and I had enough better military units to defeat this invasion. I think this archer rush strategy after swordsman/axemen/horse archers/catapults are already in the game is pretty dumb. Better AI would never have done that.
 
I've seen multiple AI's doing archer rushes even when on a Huge hub map (meaning it took them roughly 100 turns to get to their destination civ). The funny thing that it's actually still early enough to take a city or two that way :crazyeye:

I've had to just hope that I'm not a target, because there's (almost) no way to defend myself against that kind of threat.

I've never seen them throwing archers against cities that are clearly too well-protected, but I can easily believe it--I've seen the vanilla AI do things like that.
 
Yes, the archer rush is a good strategy for the AI to use extremely early in the game, because as you know, at the higher difficulty levels, the AI starts off with Archery and a free archer or two. If as the human, you focus on researching worker technologies and founding a second or third city, an archer rush can take you while you are relatively defenseless.

However, archers are bad offensive units once there are better units in the game, and AI civs that only have a bunch of archers should either build a stack of better units, or be more peaceful. (Although maybe the intent of this strategy was to make the game more interesting by giving me an easy invasion to defeat, because it's pretty demoralizing when the AI marches into your territory with a massive stack you have no defense against.)
 
karadoc

karadoc, quick question.
i was thinking of merging some stuff with kmod for my own use and was just wondering about interfaceDirtyBits.inl. it's just about the only sdk file you don't include in your source and i was wondering was there a specific reason for it not being there or can i/should i include the stock file in my build anyway?

sorry to quote and repeat myself :blush:, i seek enlightenment. i'll buy you a beer one of these days karadoc to make up for it. some might spill in the post, but hey, half a pint is better than no bread. or something...
 
I'm not sure if it can be replicated...but after the 450 AD turn here (I had gotten a great general on this turn and moved him to my city furthest west - I think its Philadelphia) I saw a "phantom" great general running across the screen (like when you see the people run across the water or the phantom fighters).

I have seen in your changelogs that you had fixed these problems in various cases, and I'm not sure if it is a big deal to you or not - or if you can replicate it after the fact, but it had happened after I had already moved everyone during this turn.

So, even if you can't replicate it, the "bug" I'm reporting is that of seeing a Great General streaking across the screen after the fact that I had already moved him and fortified him in the city.
 

Attachments

  • Matt AD-0450.CivBeyondSwordSave
    243.9 KB · Views: 81
As for the pre-chop BULL option: someone asked about that some time ago, and I think I disappointed them by saying that I didn't intend to work on it in the near future. I probably should include it one day;

IMO pre-chopping is a human cheat and should not be implemented.

However, if it is implemented, I have two suggestions, which co-exist. That make it more realistic and less of a cheat.

1. As soon as you start to chop a forest - you lose 1 production shield when you are halfway to completion.

2. Having stopped chopping, every X turns you lose 1 turn of chopping. Chop decay.

Example.

It takes my worker 10 turns to chop a forest.

1. After 5 turns - I lose 1 production, (reason: half the forest has gone.)

2. Assume I stop chopping on turn 9. (1 turn to go). If we set X (chop decay) to be 5 turns.

After 5 turns, the number of turns left to chop increases from 1 to 2.
5 turns later it increases to 3 etc. (reason: natural regrowth over the years.)
So after 45 turns (X * 9) the forest is fully regrown.

Obviously X can be any figure you prefer. (higher or lower).

This helps stops blatent pre-chopping of every forest - just in case I need it later.

With this system, I would use it if for example I was building a couple of units (5 turns each) that I did not want to waste chopped hammers on - may be suicide units I needed. But they were followed by a building I wanted quickly also.

So I start the pre chopping while they are being built. On turn 9 chopping stops, the second unit has one turn to go. The chopping is saved until I start the building and not wasted on the unit.

If I decide to build another unit next (instead of the designated building) and not use the pre-chopped forest, then chop decay takes effect. Assume the other unit takes 6 turns, after 5 turns the pre-chop goes from 9 to 8. So the building if next, needs 2 turns of chopping - not 1.

Not sure if this is possible to implement, but it is the way I would want to see pre-chop work. :)
 
Mattygerst, your right that the mysteriously-running-across-the-map bug still exists, even though I said I'd fixed it. (I suppose there must have been more than one cause.) I'll look at that save later today to see if it does reproduce the problem.

satrapper, I'm pretty sure interfaceDirtyBits.inl isn't actually used in the dll. So it doesn't really matter if you copy the standard version of the file or not, because it will just be ignored anyway. (The stuff defined in interfaceDirtyBits.inl is also defined in CvEnums.h, which is used.)

Regarding the archer rush: the AI never actually decides "I'm going to xUnit rush my enemy". But rather, it just decides to attack, and it will use whatever units it has available at the time. Sometimes their timing is not good... because they might declare war shortly after the enemy gets stronger units, but before they (the attacker) do. It just isn't something that they currently consider.

I do think that they archer rush a bit too often. I think the threat of an archer rush is good, because it keeps people on their toes, but the archer rush itself often isn't very effective.

The AI's decision making for when and who to go to war with is something that I've been intending to change for some time. I expect to fix it one day. .. As for "Better AI would never have done that.", well that may be true, but the AI still uses the same war decision making process as was used in Better AI. So any different must be due to indirect changes. My guess is that it's all a side effect of my change to the AI's unit spending calculation which I made many versions ago. Unit spending is closely linked to the probability of declaring war; and the original unit spending formula was junk... and I changed it ... and that's probably what's causing the archer rushes.

[edit]
About the pre-chop stuff; I kind of agree that's pre-chopping is an exploit that only human players know how to use; but that's a game mechanics thing. Adding the the BULL pre-chop UI thing doesn't affect what the player 'can' do, it just affects how easy it is from a UI point of view.

But, on the other hand, adding the pre-chop UI option would kind of 'enshrine' the pre-chop mechanics as a permanent feature...

Regarding your suggestions, I think the loss of the plot production on a half-chopped forest would be a bit confusing and weird; and not easy to implement either. But the regrowth suggestion seems fair enough; what I'd probably do though is change it so that all unfinished worker builds decay over time, not just chopping, but also half-built farms, forts, etc. (That's if I was to change it, which I'm not saying I am...)
 
Currently about the only way I know to prevent a determined player from having an unfair advantage from pre-chopping would be to somehow make forests take only one worker-turn to chop down for all players (and regardless of game speed).

That's part of why I would like it implemented into the UI as an option: the possibility of doing it manually is already there and available, and I'm definitely going to use the manual option anyway if I need to make sure I get Wonder X out on time. (In my opinion the AI should be able to do the same thing, but I'm going to go out on a limb and guess that programming it to be smart enough to use it would be extremely difficult and resource-eating).
 
Regarding your suggestions, I think the loss of the plot production on a half-chopped forest would be a bit confusing and weird; and not easy to implement either.
I dont see the point in loss of 1 production if a city itself doesnt get production boost equal to 50% of forest chopped.
If you want to make production yield decay over time (based on turns chopping) it should then add production to city equal to % woods cleared. So if u need 4 turns to chop woods and u have 2 hammers yield it should be like this (turn based):
1. 1.5 hammer yield and city gets 25% chop hammers
2. 1 hammer yield and city gets 50%
3. 0.5 hammer yield and 75%
and last turn no woods and city gets chop bonus.

That would be reasonable but would change the mechanics drastically and i dont really like it.

Im just pointing out the thing i dont like about losing productivity and not gaining anything (except the good timing). Seems odd.
 
I have a suggestion about workers and their work interruption if they are adjacent to enemy borders. In my current game i have hostile bored next to a tile im working on, but the lands are separated by the long golf. It takes more than 10 turns for a 1 movement unit to reach it. Would it be resource consuming if the code for pathing is used to determine if the worker is to be interrupted or not? I dont want to move my only defender from the city and make it unhappy to save myself from clicking every turn but the danger is far from justified.
 
Karadoc, thanks for the reply about Archer rushes. I didn't mean to imply that Better AI was necessarily "better" because it never Archer rushes, but it's an observation that I've played a LOT of games of Civ4 and have never seen an Archer rush by the AI until I played with K-Mod, so you've definitely changed something.

Now that I've had a chance to play your mod further into the game, I feel that there is a definite improvement in how the AI is able to keep pace with you. I used to think that if you could just get to railroad and build Mining Inc, you were assured of victory, but that no longer seems the case with K-Mod.
 
I have a suggestion. I think it would help in multiplayer games only (possibly for bug reports). Its about implementing map coordinates. I dont know in which mod i have seen it but every tile has its usual description (ex. planes/hill/forest) and additional info after the usual stating latitude and longitude (ex. 25ºE, 45º 56'N).
By implementing this you would speed up multiplayer games when it comes to discussing targets and similar stuff that are based on certain map location. Also if someone finds a problem and thinks its a bug you can get a correct info where something happened on the map.
 
You don't get polar coordinates, but instead the planar coordinates the game's map is based on by activating cheat mode and pressing shift.
 
Ofc, they are planar (forgot to mention that :p) but they could be represented as polar cus ppl are more familiar with those than pure (x,y) system. And (x,y) system looks a bit boring. You can just use the (x,y) system and pseudo-transform them into polar.
for example if map is 100 tiles wide u would approximate it to polar coordinates like this: 50 tiles are 180º and so one tile would be 3.6º or 3º36'. And if u want a certain tile in (100x100) system with coordinates 30,45 (where 1,1 is top right corner) it would be 36ºN; 72ºW 9ºN; 72ºW. (i kinda need to remember the polar coordinates so i can give proper results ;) )
That should do it ;)
 
I think adding coordinates is probably a decent idea, but I'm not going to rush into doing it.

There are a few sticky points about it, here are some that come to mind:
  • A little bit of care would need to be taken to make sure it is not possible to get the coordinates before you have centered the world map.
  • It would need to be added in such a way that it didn't just add clutter or ugliness -- most of the time, the coordinates are just not important at all, and so it's probably better to not show them most of the time. Maybe it should be a "BUG" options, or maybe it should show when holding shift, like it does in cheat mode... or something like that.
  • I suspect the non one-to-one relationship between degrees and plots might be a bit confusing and strange to some players.
...

Another thing I've been considering working on for some time is some kind of city-search functionality; where you can type in part of the name of a city (non necessarily one of your own cities), and if the city is on your map, the game will show you where it is. I think that would be pretty useful, and now I'm wondering if there would be some neat way to combine the UI of that search stuff with this coordinates stuff.

By the way, for discussing tactics in team-multiplayer games, the ping command is probably more useful. (press 'p', then click a plot.) -- but I don't think that can be used for temporary alliances (eg. shared wars).

--

The main thing in K-Mod I've been working on recently is Pitboss support. I've briefly tested some Pitboss games, and I've found that there are stacks of bugs. Many of the bugs are in the base game (for example, the pitboss host crashes if anyone launches a spaceship! One might think a bug like that would be pretty high priority; but apparently not.); some bugs are in BUG, and I've found one pitboss bug in my own code.

I don't think many people play Pitboss games. I've actually never played a Pitboss game... but I can tell you that the next version of K-Mod is going to be rock-solid for Pitboss. :) -- It's already better than unmodded BtS, because I've fixed the spaceship crash, and I've fixed a very common OOS bug which only affects Pitboss. :scan:
 
By the way, for discussing tactics in team-multiplayer games, the ping command is probably more useful. (press 'p', then click a plot.) -- but I don't think that can be used for temporary alliances (eg. shared wars).
I did try it many times but i cant ping to people im not teamed with if i remember. Not sure if i have to turn on perma alliances or not. Sometimes that just doesnt work ;).

Anyway search option would be really nice!
 
I don't know if this helps, but there was a city search option back in Civ II. You might find some useable code there (probably not, but I tried).
 
Here is my most recent game (save attached) & some questions for some of the civ greats out here.

A quick recap of the game.

The year is 2036. The world is ravaged in war (at least with me). I have stopped Maya from a culture victory with almost no turns to spare.

Global warming has destroyed the earth. It has been truly hard-fought game. The entire time. Ethiopia has taken the dominating lead late. I was caught up in a series of nasty wars with both Ethiopia and Inca. Ethiopia even controlled the entire island mass that was mine to my south west (3 city island), until I eventually flattened his army and move him off-shore. It was an exhaustive campaign, especially considering that I was battling a northern front with Inca/India. While I maintained a military advantage over Inca for a short while, it was enough to hold him off until late.

Now...the current game is as this:
Maya was a couple turns away from a culture victory. After I smashed Ethiopia off my southwest island, I boated over and smashed Maya into submission. I boated off nearly my entire army. As I declared war, Inca re-declared war on me (for the 4th time, I think). Then Ethiopia declared war on me as I smashed Maya.

As it stands:

-Global Warming has destroyed the planet (at least my mainland). It is running rampant on every turn.

-My army has been exhausted on the Mayan front, and Inca is pushing her might down my west coast. I have already lost a city. Inca and myself have exchanged cities in that corridor nearly the entire game.

-My navy has been completely defeated. A combination of Inca, Ethiopia, and Maya overwhelmed my fleet. I don't have production to waste on building it back up. Maintaining a land army to defend my homeland has become my #1 priority.

-My airforce is now non-existant. My next step will be to attempt to get some fighters patrolling the air...but with my land so ravaged, and my army so drained, I've had to prepare to stall Inca in a land battle. I fear I may not have the time to rebuild it.

-There is no one close to a culture victory now. I am closest...but not close enough to win, I don't believe. There is also no one close enough to win a space race at the moment. However, it seems Ethiopia should be able to cruise to a culture/space victory if they wanted to. No one can defeat their military, yet they don't have the strength to roll everyone into the ground, yet.

If I could stall Inca enough to get peace, I would over-drive towards a space race since I have created the Apollo program...but I have not even started construction.. but it would probably go faster than attempting to go for a culture victory (though, I could be wrong).

I have a feeling that this game is lost for me. Stopping Inca will prove to be a challenge and may not be possible at this point. Overcoming the on-slaught that will arrive from Ethiopia will be an even greater challenge.

When I continue (I like to play to absolute defeat or victory) - what suggestions does anyone have? Is victory possible? What would be my best strategy to follow?

What are the suggestions of the civ greats that play here?
 

Attachments

  • Matt AD-2036-July.CivBeyondSwordSave
    761.3 KB · Views: 73
I have a feeling that this game is lost for me.

I played with your save, and your position looks pretty screwed. The enemy has too many forces arrayed against you, and half your army is halfway around the world. Long-range military expeditions are almost always a bad idea, only to be done if you need to prevent an AI from getting a victory. When you do such expeditions, you should always raze the enemy cities rather than try to hold them.
 
Top Bottom