Thunderbrd
C2C War Dog
I hadn't removed them because I'd thought they might be good starts towards similar project plans. Were there any significant bugs within either one and why were the projects scrapped?
I hadn't removed them because I'd thought they might be good starts towards similar project plans. Were there any significant bugs within either one and why were the projects scrapped?
I agree with DH. What myself 3 years ago did not understand was that arbitrarily setting back the player does not make the game fun. Dark ages simply happened if you were not discovering techs fast enough or had too few Golden ages. They did not add any new complexity to the game and just slowed the game pace down.
I'd had it in mind to have 'Dark Great People' that could, as part of the many things they could do, inflict a Dark Age upon a competing civ. Given the sort of trigger you had them set for I agree they would've lacked enjoyability. But if it was an effect you could inflict upon an opponent... that's something else entirely!
What about the vote mechanism... I've only glanced through it but what exactly were you going for there?
Ok, that's clever. I take it the 'even if you can see obviously better/faster ways to do them' bit is mostly due to any added memory it might require to do so?
I don't remember exactly - bear in mind much of the code I wrote was 3+ years ago, and:
1.) I barely understood the fundamentals of C++
2.) I did not have much experience designing or maintaining large projects
I might as well be a totally different person, at least in terms of programming ability. Before I would have been daunted by a std::vector and had no clue what a hash map was. Today I could implement them from scratch...
Anyway, the election option, as I recall, was a C++ recoded and more advanced feature to replace the mini-election feature in RevDCM (where when you run civics that enabled elections, you may be forced to be "relected" if you are unpopular). The idea was to give the player more control, have political parties, be able to "alter" the election, etc.
I never finished the feature due to the obvious complexity that it quickly spirals into. In addition, looking back, I realize it's not a good idea for a feature anyway, because losing an election is unfun. Having the AI run your civilization for even 25-50 turns would ruin whatever planning and preparation you might have done, and only a small minority of players would want to deal with that - repeatedly.
</rant>
As an aside, I was bored and looking into compressing the C2C save format, but just applying naive LZMA2 or similar compression only saved about 10% of the size (5mb -> 4.5mb). Not much of a gain. Is there documentation on the save format? I examined a save file and noticied a good part of it is in plain text. Perhaps some brave soul could even write up a save editor application given an understanding of the format. As a side project.
More just misplaced effort, and risk of introducing bugs for little actual gain.
if (iRegularCost > 0)
{
iRegularCost = std::max(1, (iRegularCost - pUnit->getExtraMoveDiscount()));
//}
//if ( iRegularCost > 1 )
//{
if ( iRegularCost > pUnit->baseMoves() )
{
iRegularCost = pUnit->baseMoves();
}
iRegularCost *= GC.getMOVE_DENOMINATOR();
if (((getFeatureType() == NO_FEATURE) ? pUnit->isTerrainDoubleMove(getTerrainType()) : pUnit->isFeatureDoubleMove(getFeatureType())) ||
(isHills() && pUnit->isHillsDoubleMove()))
{
iRegularCost /= 2;
}
}
//else
//{
// iRegularCost = GC.getMOVE_DENOMINATOR();
//}
}
void CMemoryTrack::NoteAlloc(void* ptr, int size)
{
if ( m_valid )
{
for(int i = 0; i < m_highWater; i++)
{
if ( m_track[i] == NULL )
{
if ( i == m_highWater )
{
if ( m_highWater < MAX_TRACKED_ALLOCS )
{
m_highWater++;
}
else
{
m_valid = false;
return;
}
}
m_track[i] = ptr;
m_allocSeq[i] = m_seq++;
m_allocSize[i] = size;
#ifdef USE_INTERNAL_PROFILER
m_trackName[i] = _currentSample == NULL || _currentSample->sample == NULL ? "<None>" : _currentSample->sample->Name;
#else
m_trackName[i] = "";
#endif
}
}
}
}
I have merged your AI fixes here locally.
One thing i noticed the AI still overbuilds until they have to reduce sience to under 10% then they react until they are out of trouble and the cycle starts again.
I think that dummy graphics system is disabled here too and i have no idea why or if it has any advantages/disadvantages that was built before my time here.
So what's it for in the first place? I've seen some references to dummy graphics... I wasn't sure but had thought they were the added graphics attached to units such as when a Lord or Viceroy joins a unit and shows up during battle as a sort of cheerleader from the sidelines. Are we talking about something else entirely? And if so, what's it supposed to DO (if it's disabled it would be good to determine it's purpose...)If the dummy graphics system is disabled there too, and a source of crashes, perhaps it should be disabled/removed (or at least, turned off by ifdefs?). I know the old BTS code never crashed, in my experience.
Wait, can you explain more about the AI? Your AI reduces science all the way down to 10% on the slider!? That is rather extreme. I never saw the AI go below 30%, and that was rare.
If the dummy graphics system is disabled there too, and a source of crashes, perhaps it should be disabled/removed (or at least, turned off by ifdefs?). I know the old BTS code never crashed, in my experience.
So what's it for in the first place? I've seen some references to dummy graphics... I wasn't sure but had thought they were the added graphics attached to units such as when a Lord or Viceroy joins a unit and shows up during battle as a sort of cheerleader from the sidelines. Are we talking about something else entirely? And if so, what's it supposed to DO (if it's disabled it would be good to determine it's purpose...)
I watched it during 900 turns at snail speed in AI Autoplay sometimes it goes down to 0%. I have to start another one to see exactly what they are doing.