| General | Hosted Sites | Civ5 | CivRev | Civ4Col | Civ4 | Civ3 | Civ2 | Civ1 | Misc | Marketplace |
![]() |
|
|
Welcome to Civilization Fanatics' Center. You are currently viewing our site as a guest which gives you limited access to our site features. By joining our free community, you will be able to participate in the discussions, search the forum, send private messages, vote in polls, upload your own screenshots to the gallery, and access many other special features. Registration is fast, simple and absolutely free, so sign up today! If you have any problems with the registration process or your account login, please contact support. |
|
|||||||
![]() |
|
|
Thread Tools |
|
|
#1341 | |
|
Chieftain
Join Date: Oct 2010
Posts: 15
|
Karadoc, I love your mod, the improvements you've made are just fantastic. One thing that I find to be superb, is the fact that you didn't touch any aesthetic, only core game mechanics.
Thus, I have a question, is the mod compatible with varietas delectat or something that changes unit graphics according to what nation you're playing with? I find seeing Egyptian-style workers while using my German empire awkward. EDIT: What do you mean by "improving the AI"? I mean, I consider AI can be improved in 2 ways: The "calculator/analiytical" one where it plans everything in a mathematical/systematic way (EG: Look at those higly improved STARCRAFT AI's, the win not because they are more "strategic" but because they are able to multitask more than a human and to react faster) besides not making a single mistake (IE: It WILL do something to improve with each turn, will calculate every possibility for a single unit move, etc). The "humanly" way, where it is open to mistakes, it doesn't "calculate" everything. Can fall to ambushes made by the player, etc etc. I mean, there is no point, for me, in improving the AI as shown in the first way. It would be impossible, it wouldn't be EDIT2: Quote:
Last edited by Merce_ar; Jul 23, 2012 at 09:09 PM. |
|
|
|
|
|
|
#1342 | ||||
|
Chieftain
Join Date: Mar 2010
Posts: 51
|
Quote:
Code:
// MOD - START - AI Plays To Win
/*
if( GC.getDefineINT("BBAI_VICTORY_STRATEGY_DOMINATION") <= 0 )
{
return 0;
}
*/
if (!GC.getGameINLINE().isOption(GAMEOPTION_AI_PLAYS_TO_WIN))
{
return 0;
}
// MOD - END - AI Plays To Win
Quote:
Quote:
That said, I do love that you put so much care into your commit descriptions and that they capture everything that happens. If we merge in future versions of K-Mod that change log will be solid gold. But I can't take time to data mine the commit logs when I'm busy merging 20,000 conflicts; it's much more useful for me to have in-code comments. Quote:
|
||||
|
|
|
|
|
#1343 |
|
Prince
Join Date: May 2010
Posts: 342
|
New Game 1.34
Me and 2 other civs on a continent, all christian. *Began early military mass* Death to peace island!!! *Charge!!* lol Anyway, Patch notes so long Great changes Karadoc, gj sir. Last edited by Charles555nc; Jul 25, 2012 at 08:17 AM. |
|
|
|
|
|
#1344 |
|
Prince
Join Date: May 2010
Posts: 342
|
I was wondering if the natural plot selection when a city grows, could select grassland with a cottage (2 food and one commerce) rather than a sea square with a financial civ and lighthouse (2 food and 2 commerce). Its extra micro but not a big deal.
|
|
|
|
|
|
#1345 | |||
|
AI programmer
Join Date: Oct 2005
Location: Australia
Posts: 1,460
|
Quote:
Quote:
Spoiler:
Anyway, the point is that all AI is calculated and analytical - but at least it can include some calculations based on the 'personality' of each AI leader. That said, the Civ4 AI certainly does not make its decisions by simulating what would happen in every possible move each turn. That would be an enormous calculation, because the number of possible moves is truly vast. The number of possible moves each turn in Civ4 is much much much bigger than it is in games like Chess - so that kind of AI just isn't feasible. ... Anyway, the AI certainly can fall to ambushes. It doesn't see everything, it is barely capable of predicting anything let alone everything. It would be possible to write the AI in such a way that it doesn't cheat at all; and I'm gradually moving the AI in that direction. But the reason I haven't just gone all the way with it is that I don't think the AI is yet smart enough to play effectively without some of the (minor) cheats that it uses. For example, if you sink an enemy ship with your frigate, and then just move it a few steps off the coast, the frigate might be out of site... A human player would think "that frigate only has a few movement points. It can't have gotten far. I'm going to move my boat into the fog to find it and kill it before it heals". But the AI doesn't think like that. If the damaged frigate is not visible it might as well just not be there. It doesn't remember losing its unit, and it doesn't remember seeing the enemy. It doesn't really remember anything much at all - mostly because it would be to computationally costly and/or difficult to write the AI which could remember stuff like that. -- So.. rather than just allow the human player to get away with hit-and-run attacks like that all the time, the AI cheats a little by simply 'knowing' whether or not something is in attack range, regardless of whether it can actually see it. It doesn't do this much, but that's the kind of cheating that it uses. -- Quote:
There are actually lots of little problems like that in the way the AI evaluates plots and improvements and such – particularly when upgradeable improvements (such as cottages) are involved... It would be possible to fix them all, but I'm reluctant to do it because I suspect it might be computationally expensive to calculate everything the 'right way', without approximations. In any case, the problem you mentioned is now fixed. The AI now does take the financial bonus into account when considering the future upgrades of what it's working. (It still doesn't take that into account when choosing which improvements to build in the first place... but I figure that's probably not as important, and I don't feel like fixing it now. I'm hoping that I'll come up with a neater/faster solution sometime in the future.) Also, I've found and fixed a bunch of other problems in the way the AI chooses which plots to work. I think it's going to be noticeably better in many cases. (Also, keep in mind that the AI uses essentially the same system for choosing what to work. So if the governor is choosing good plots, then the AI will be stronger. )
__________________
K-Mod: Far Beyond the Sword |
|||
|
|
|
|
|
#1346 | |
|
Prince
Join Date: May 2010
Posts: 342
|
Quote:
On another note, when my cities grow they often pick a specialist instead of working a plot, imo I only use specialists in particular cities and I wouldnt mind microing those cities. But I find I have to micro ALL my cities to make sure that some city with no great people bonuses (outside of philosophic civ trait) doesnt have a single specialist that will spawn a great person in 400 turns...I mean I would prefer a regular plains, one food, one hammer, rather than a hopeless lone specialist. |
|
|
|
|
|
|
#1347 |
|
Prince
Join Date: May 2010
Posts: 342
|
Brighton keeps building a "citizen" specialist when it grows. I guess its for the one hammer...do you think thats good/bad/ok Karadoc? I forget what you said about it last time.
Last edited by Charles555nc; Jul 27, 2012 at 03:33 AM. |
|
|
|
|
|
#1348 |
|
Chieftain
Join Date: Sep 2010
Posts: 33
|
I have for the 1st time a small chance to maybe win a monarch game, but in the year 1888 Ghandi wins a cultural victory.
My problem is that india was a vasal state of the greeks who were the most powerful military nation. Personally i would prefer if vasal states would have all victory conditions disabled while being a vasal state or the master of the vasal state should interfere himself to hinder the vasal state to win. ps: For now i think i play without vasal states and hope that doesnt mess with other parts of the game / game balance |
|
|
|
|
|
#1349 |
|
Knight of Time
Join Date: Aug 2009
Location: Land of Heat and Clockwork
Posts: 14,963
|
Speaking of vassal states, that's really a mechanic that needs to be revisited, especially the AI aspect.
I always play without them because it's just annoying to have your enemy capitulate to a powerful AI civ and plunge you into new wars. It just isn't fun to speculate every turn if I can conquer another city or have to accept their capitulation before anyone else does.
__________________
Deep Thought is in everyone and everyone's in deep thought all the time. Play RFC Dawn of Civilization version 1.10 and relive the history of the world! Conquer Iberia as the Moors, dominate Asian trade as the Tamils, or resist colonization as the Kingdom of Kongo. |
|
|
|
|
|
#1350 |
|
Warlord
Join Date: Mar 2012
Posts: 146
|
i 2nd/3rd that! also, vassalage happens too lightly at times.
|
|
|
|
|
|
#1351 |
|
Emperor
Join Date: Mar 2006
Location: New York City
Posts: 1,172
|
Hi karadoc,
Could you add a tag on github so that we can easily download the 1.34 source code? The latest tag is for 1.33. Many thanks. ![]() Also, for anyone interested, I have opened a thread in the SDK/Python subforum detailing a couple of issues I'm having with the K-Mod/RevDCM merge I'm working on. The quicker I can get these resolved, the quicker I can release a playable copy.
__________________
Evolution, a modding platform built on K-Mod and RevolutionDCM, is available here:http://forums.civfanatics.com/showthread.php?t=470980 Last edited by ripple01; Jul 28, 2012 at 06:59 AM. |
|
|
|
|
|
#1352 |
|
Chieftain
Join Date: Mar 2010
Posts: 51
|
First, just a really minor bugfix. In CvTeam::doesImprovementConnectBonus the FAssert checks look like this:
Code:
FAssert(eImprovement <= GC.getNumImprovementInfos()); FAssert(eBonus <= GC.getNumBonusInfos()); Code:
FAssert(eImprovement < GC.getNumImprovementInfos()); FAssert(eBonus < GC.getNumBonusInfos()); On another note: I have a couple of performance improvements in Realism: Invictus that might be useful to K-Mod:
At some point I'd like to add a living player cache to CvGame as well, just to cut down on the bazillion loops through all players checking for aliveness. We have MAX_PLAYERS of 56 in our game core so those loops start to pile up. Anyway, do you have an interest in having some of these improvements merged in at some point? -Josh Last edited by sjodster; Jul 28, 2012 at 01:44 PM. |
|
|
|
|
|
#1353 |
|
Warlord
Join Date: Sep 2009
Posts: 171
|
How does the "no double moves" change affect a game in which there are only two human players in the game (versus a bunch of AIs) and the humans are on the same team together?
It would be rather cool if we could get it setup to where we could go the whole game without having to deal with that mechanic if all the humans are on the same team.
__________________
You have constructed Chichen Itza in Chichen Itza. What would you like to work on next? |
|
|
|
|
|
#1354 | ||||
|
AI programmer
Join Date: Oct 2005
Location: Australia
Posts: 1,460
|
Quote:
(I'll probably just push the tag there when I upload the next version, which I expect will be soon.) Quote:
Quote:
As for doesImprovementConnectBonus, I was in two minds about whether or not it should check that or not; and I decided just to have it not check it, mostly just so that it's a slightly shorter computation... I figure that it is usually used in conjunction with getNonObsoleteBonusType when checking which improvement to build or what to pillage and so on; and that it may be helpful to not check whether the bonus is revealed if the player is trying to evaluate a new type of improvement or something like that. Quote:
The main thing that puts me off other people's performance improvements is that I had a nightmarish time with the attitude cache from the "CAR" mod which I inherited from the original BBAI code when I first started this mod. That code was trash. It was written in a way that created horrible maintenance problems and it had heaps of subtle OOS bugs. I spent many hours of debugging due to that code; and I recently ended up just writing it completely to be rid of the problems once and for all. I don't want a repeat of that situation... and so I'll have to read the changes myself carefully before merging them, to make sure they're done the right way; but that's kind of boring and time consuming and blah blah blah. The bottom line is that I'm interested, but only when there are clear gains and the changes are easy to understand. ![]() -- That said, I know that the upgrade cache is probably worthwhile, and wouldn't be surprised if your plot group stuff was a significant improvement as well. And I'm pretty sure that RI has decent quality-control on these things... I'm not really sure what you mean by Living Team Member Cache, or Building Activation. Checking whether or not a player is alive is essentially instant; and counting the number of living team members in a team is pretty fast too, and I don't think it happens terribly often anyway. But by the sounds of things, what you're talking about has something to do with using something smaller than MAX_PLAYERS when doing most of the loops in the game. I know there are a lot of loops in the game which go through all of MAX_PLAYERS, when all they really want to do is go through all of the living players. -- So I suppose you're talking about having a kind of dynamic MAX_PLAYERS thing? I would be interested in doing something like that. There are a few different way to approach it though. One way would just be change all of the loops from MAX_CIV_PLAYERS, to some new number, say iNumAlivePlayersEver; or something like that. (Loops with MAX_PLAYERS, as opposed to MAX_CIV_PLAYERS, would need special treatment if they were to be shortened as well, because of the barbarian player always being the last player.) But maybe you'd want to go a step further than simply changing the size of the loops. There are lots and lots of bits of information in the game which are storied for all players regardless of how many players are actually alive. So if MAX_PLAYERS is 52 rather than just 17, then the memory usage of the game will be significantly higher... It might be nice if MAX_PLAYERS itself could be dynamically set at the start of the game, perhaps based on the map size; and then most of the memory wouldn't have to be allocated in the first place. -- Awhile back, I started implementing something a bit like that. ie. changing all of the allocations to be based on a variable MAX_PLAYERS rather than a fixed number. Statically allocated arrays became vectors and so on. I reckon it could probably be made to work, but it's a significant undertaking... Is that the kind of thing you're talking about?
__________________
K-Mod: Far Beyond the Sword |
||||
|
|
|
|
|
#1355 | |
|
AI programmer
Join Date: Oct 2005
Location: Australia
Posts: 1,460
|
Quote:
![]() (If anyone notices something which contradicts what I've described, please let me know.)
__________________
K-Mod: Far Beyond the Sword |
|
|
|
|
|
|
#1356 |
|
Warlord
Join Date: Sep 2009
Posts: 171
|
Sweeeeeeet.
I will have to test that sometime soon if I can.
__________________
You have constructed Chichen Itza in Chichen Itza. What would you like to work on next? |
|
|
|
|
|
#1357 |
|
Emperor
Join Date: Mar 2006
Location: New York City
Posts: 1,172
|
I'd just like to announce to K-Mod players that the first public beta of my merge between K-Mod and RevolutionDCM is now available.
Thread link: http://forums.civfanatics.com/showthread.php?t=470980
__________________
Evolution, a modding platform built on K-Mod and RevolutionDCM, is available here:http://forums.civfanatics.com/showthread.php?t=470980 |
|
|
|
|
|
#1358 |
|
Warlord
Join Date: Aug 2007
Posts: 198
|
Vassalage does indeed seem very odd... in my current game I'm together with Shaka and Justinian on our own continent, none of us was doing too badly and had roughly equal points, but immediately after Shaka hit vassalage I noticed Justinian became his vassal. They did have the same religion and Shaka did have a mighty army, but it still doesn't seem like a good decision for Justinian... unless he tries to win a cultural victory with a culture that is far behind mine.
|
|
|
|
|
|
#1359 |
|
Emperor
Join Date: Jul 2008
Posts: 1,071
|
This is a really convoluted way to deal with the imbalance of upgrading. One should just reduce the upgrade cost, slightly. The way the game works now, if you have a well developed production city, it's usually faster to just disband an old unit and build a new one, rather than set the city to build wealth and save gold to upgrade the unit. This is terribly imbalanced. The cost of upgrading should be cheaper than building a new unit from scratch, therefore the upgrade cost of units should be reduced. That's all that is needed to improve the game.
-A post in another thread. I think unit upgrade costs should be reduced to improve game balance. What say you? Yay? Nay? |
|
|
|
|
|
#1360 |
|
Knight of Time
Join Date: Aug 2009
Location: Land of Heat and Clockwork
Posts: 14,963
|
Well, upgrading a unit preserves its promotions.
__________________
Deep Thought is in everyone and everyone's in deep thought all the time. Play RFC Dawn of Civilization version 1.10 and relive the history of the world! Conquer Iberia as the Moors, dominate Asian trade as the Tamils, or resist colonization as the Kingdom of Kongo. |
|
|
|
![]() |
| Bookmarks |
|
| Thread Tools | |
|
|