# Timelines, Dates and Eras

Discussion in 'Civ4 - Caveman 2 Cosmos' started by Praetyre, Jan 20, 2012.

1. ### AIAndyDeity

Joined:
Jun 8, 2011
Messages:
3,421
I still don't get why you insist to keep the time per turn constant throughout the era.

2. ### PraetyreKing

Joined:
Nov 19, 2009
Messages:
942
Gender:
Male
Location:
Auckland, New Zealand
It's far easier to plan out. Could you give me an example of how you would divide an 100 year Industrial into anywhere from 1000 to 2600 turns?

3. ### AIAndyDeity

Joined:
Jun 8, 2011
Messages:
3,421
The scheme works like this:
I take the total number of weeks that should pass in the era (assuming the easier concept of 4 weeks per month): NumWeeks. For a 100 year industrial that would be NumWeeks = 4800.
Then I take the number of turns I want to pass in that era: NumTurns (Example: NumTurns = 1500).

NumWeeks / NumTurns gives us the average time that should pass per turn (Example: 4800 / 1500 = 3.2).
Instead we use the two adjacent round time steps: UpperWeeksPerTurn, LowerWeeksPerTurn (Example: UpperWeeksPerTurn = 4, LowerWeeksPerTurn = 3).
We can already see that about a fifth of the era should be 4 weeks per turn and the rest 3 weeks per turn.
So we have a division in two parts, UpperTurns of UpperWeeksPerTurn and LowerTurns of LowerWeeksPerTurn.
UpperTurns + LowerTurns = NumTurns
(UpperTurns * UpperWeeksPerTurn) + (LowerTurns * LowerWeeksPerTurn) = NumWeeks

That is a simple linear equation system which can be solved.
In our example:
300 + 1200 = 1500
(300 * 4) + (1200 * 3) = 4800
300 turns of 4 weeks per turn and 1200 turns of 3 weeks per turn.

Maybe I should just implement an automatic system that only takes the number of turns, the number of weeks, the time per turn settings allowed and the time per turn you want to start and end with.

4. ### PraetyreKing

Joined:
Nov 19, 2009
Messages:
942
Gender:
Male
Location:
Auckland, New Zealand
I might be wrong on this, but don't submonthly turns in Civ IV cause it to read the calendar by the day? (i.e the first turn of the time allotted to Industrial would read January 1, 1850, then January 8, then 15, then 22, then 29, February 5, 12, 19, 26, March 5, 12, 19, 26, April 2, 9, 16, 23, 30 and so on) And this is assuming Civ IV doesn't count leap years. Having it labelled "Week 1" or "Week 3" wouldn't really do much for immersion.

Also, altering the intervals at such dates might feel arbitrary; a player can easily grasp why things might change pace in a time when he's just moving into a new era, but not when he's in the midst of one and there's no real historical reason for such a shift. I know that from an aesthetic perspective I'd prefer a 1200 turn Industrial with 1 month per turn than an Industrial that arbitrarily shifts to shorter intervals at 1875 and 1925. Just IMHO, though.

Another possible solution that would cut down Industrial by about a quarter (leaving 700 turns still to be distributed to other eras, I'm thinking either Medieval or late-Renaissance) lies in having the 1850-1900 period at 600 turns/1 month per turn, and the 1900-1950 period at 1300 turns/2 weeks per turn. But then you'd have a different era being disproportionately longer, while a subera with far more player and historical interest gets cut in two. Having each "subera" equal in length also fits with the way the techs in the tree itself are distributed.

5. ### AIAndyDeity

Joined:
Jun 8, 2011
Messages:
3,421
There is not anything even nearly that sophisticated in the code. But nothing prevents us from rewriting it to the way we like.

In a real game you won't get to the era boundaries at the exact time you get a shorter time step. And especially at the rather large step changes you get in your scheme at the earlier era boundaries it will feel weird.

Personally I would prefer if the time steps get shorter in a rather continuous manner without any large step changes.

6. ### PraetyreKing

Joined:
Nov 19, 2009
Messages:
942
Gender:
Male
Location:
Auckland, New Zealand
So how do weekly turns display, then? This could have implications for the extra 500 turns I have allotted to Eternity.

7. ### AIAndyDeity

Joined:
Jun 8, 2011
Messages:
3,421
Currently you can't even specify sub month turns for normal games.
There is a separate calendar type that displays weeks, but I think it is Week 1, Month name, Year or something like that.

So I have to recode some things in there anyway and we can have the time progress and display as we would like it.

8. ### PraetyreKing

Joined:
Nov 19, 2009
Messages:
942
Gender:
Male
Location:
Auckland, New Zealand
Here's a proposition for a more gentle progression of intervals throughout Ancient;

10,000-6000 BC (200 turns, 20 years per turn)
6000-4000 BC (125 turns, 16 years per turn)
4000-3000 BC (125 turns, 8 years per turn)
3000-2000 BC (250 turns, 4 years per turn)
2000-800 BC (600 turns, 2 years per turn)

I have also devised a far more tentative (the jump between 4 months and 1 doesn't sit well with me, and ending it at 2 months would bring up the same issue with Industrial. I'd also much rather have the 1700s at 3 months) plan for the Renaissance;

1500-1600 (200 turns, 6 months per turn)
1600-1800 (600 turns, 4 months per turn)
1800-1850 (600 turns, 1 month per turn)

9. ### EldrinFalKing

Joined:
Mar 22, 2011
Messages:
926
Again, keep in mind that an era progresses by discovery of techs: discovery of X, Y, or Z tech advances to the next era. In my game on Snail, it was 580 turns until I reached the Ancient period. So to make the eras turn length match what you propose, you will need to readjust all of the research costs and/or research production in order to hit the number where it takes X number of turns to reach the next era.

10. ### PraetyreKing

Joined:
Nov 19, 2009
Messages:
942
Gender:
Male
Location:
Auckland, New Zealand
That's the plan. My test map for an "average" high scoring civ used to be China on the GEM, but I'm waiting for that to be reconstituted. Also, Korea seems to eat Manchuria and sometimes even China itself alive, and Japan has a tendency to colonise Southeast Asia. But that's a matter of AI and mapping, so time will tell.

Incidentally, I still haven't been able to come up with a good slowdown for Prehistoric (regardless of whether I start at 200 or 50k), so I'm wondering how AIAndy's equation would go if I had those parameters;
NumTurns= 1000
NumYears= 40,000
UpperYearsPerTurn=100
LowerYearsPerTurn=20 (or 21, 22, 23, 24 or 25, for that matter).

On the other hand, I don't suppose a jump from 40 years per turn to 20 is really so radical when you consider the 2 years-1 year switch between Ancient and Classical or the year-6 months switch between Medieval and Renaissance.

11. ### ls612DeityModerator

Joined:
Mar 10, 2008
Messages:
8,073
Location:
America
I'm working on my own version of this, with slightly modified numbers, and was wondering if AIAndy or Koshing would be willing to make 1/2 month increments possible so I can test my numbers.

I'd prefer it if the 1/2 months could make turns fall on the 1st and the 15th of each month, although whatever is less work for the coder is best. Thanks in advance.

12. ### AIAndyDeity

Joined:
Jun 8, 2011
Messages:
3,421
I will rewrite that part of the code when my current project of extended property system is halfway complete (in other words the first version of it is on the SVN).
Then I will add month and day progress tags and the calendar update to deal with it.

13. ### ls612DeityModerator

Joined:
Mar 10, 2008
Messages:
8,073
Location:
America
Thanks alot. I'm looking forward to it so I can test my numbers with autoplay.

14. ### PraetyreKing

Joined:
Nov 19, 2009
Messages:
942
Gender:
Male
Location:
Auckland, New Zealand
What modifications have you made? I'd be interested in seeing your project so that we could both "compare notes" and perhaps even collaborate jointly with each other.

15. ### ls612DeityModerator

Joined:
Mar 10, 2008
Messages:
8,073
Location:
America
Code:
```		<GameTurnInfos>
<!--12000BC-6000BC-->
<GameTurnInfo>
<iMonthIncrement>120</iMonthIncrement>
<iTurnsPerIncrement>600</iTurnsPerIncrement>
</GameTurnInfo>
<!--6000BC-3000BC-->
<GameTurnInfo>
<iMonthIncrement>60</iMonthIncrement>
<iTurnsPerIncrement>600</iTurnsPerIncrement>
</GameTurnInfo>
<!--3000BC-1500BC-->
<GameTurnInfo>
<iMonthIncrement>30</iMonthIncrement>
<iTurnsPerIncrement>600</iTurnsPerIncrement>
</GameTurnInfo>
<GameTurnInfo>
<iMonthIncrement>12</iMonthIncrement>
<iTurnsPerIncrement>1500</iTurnsPerIncrement>
</GameTurnInfo>
<GameTurnInfo>
<iMonthIncrement>6</iMonthIncrement>
<iTurnsPerIncrement>2000</iTurnsPerIncrement>
</GameTurnInfo>
<GameTurnInfo>
<iMonthIncrement>3</iMonthIncrement>
<iTurnsPerIncrement>2000</iTurnsPerIncrement>
</GameTurnInfo>
<GameTurnInfo>
<iMonthIncrement>2</iMonthIncrement>
<iTurnsPerIncrement>1800</iTurnsPerIncrement>
</GameTurnInfo>
<GameTurnInfo>
<iMonthIncrement>1</iMonthIncrement>
<iTurnsPerIncrement>1800</iTurnsPerIncrement>
</GameTurnInfo>
<GameTurnInfo>
<iMonthIncrement>0.5</iMonthIncrement>
<iTurnsPerIncrement>3600</iTurnsPerIncrement>
</GameTurnInfo>
<!--Total of 14500 Turns-->
</GameTurnInfos>```
Here is what I have now for Eternity in semi-pseudocode. Obviously, AIAndy will need to add 1/2 month functionality for this to work in-game, but you can see from my comments what I'm planning generally. My main break from your plan is that I favor a 12000 BC start, as that is more or less when humans started villages. (or in civ terms, when the Band of Homo Sapiens becomes available.)

The main problem I have is what sort of tech modifier I should put in. Currently, I'm seeing Snail games in the Transhuman era by turn 2200/9900, so I'm thinking the tech mod might need to be something astronimical like 3000 (100 is normal BtS). If you could find a good number for that I would really appreciate it, as there is no way I'm autoplaying 14500 turns of C2C . Thanks for the inspiration and offer to help.

Also bumping for AIAndy's sake.

For Snail I plan to multiply all those numbers by about 0.6, for a total of 8500 or so turns. Marathon and below will remain unchanged.

16. ### PraetyreKing

Joined:
Nov 19, 2009
Messages:
942
Gender:
Male
Location:
Auckland, New Zealand
That's an interesting justification, but I always saw that village watershed as being represented by Sedentary Lifestyle, a distinction I think will become more readily apparent once the Nomadic Camp component is fully implemented into C2C. The major reasons I picked 50,000 BC is because A. It avoids the whole Toba thing and B. The alternative, using human evolution as the start date, could result in very widely varying start dates; from 150,000 to 400,000 BC depending on which evidence you believe.

In any case, I'd be interested to the basis on which you made your divisions, as they don't seem to be era based so much as delineative. Also, the early parts of your plan will need adjusting, as month interval turns that aren't multiples of 12 aren't possible in BC years. As for tech numbers; I actually adjust the individual tech costs by a certain ratio until my test game gets me the desired average era turn length; I leave the speed factors themselves untouched. I previously altered these and the growth numbers quite extensively, but the revised food wastage system and the upcoming disease system have rendered my efforts in that regard obsolete. I'd also like to know why you went with 14500 turns as opposed to my own 12500.

17. ### AIAndyDeity

Joined:
Jun 8, 2011
Messages:
3,421
That is something I fixed quite some time ago.

18. ### AIAndyDeity

Joined:
Jun 8, 2011
Messages:
3,421
I think I need to rewrite the calendar code so there are some questions to you about which behavior you would prefer.

What should be used for days in a month and in a year:
• Bank Year: Constant 30 days a month, 360 days in a year. Easiest version, but there is a 29th and 30th February.
• No leap years: Always 365 days per year but months have different number of days (so can't track all increments on a day base)
• Calendar with all leap year rules

What should be done around the BC/AD switch: Year 0 or no year 0?

19. ### ls612DeityModerator

Joined:
Mar 10, 2008
Messages:
8,073
Location:
America
I was thinking that when we get down to 1/2 month turns that the turns would fall on the 1st and the 15th of the month. This would not exactly be totally even, but close enough, and a lot less code I presume.

In the event that's not possible, I think that a calender with all leap year rules would be best. However, I want to have 24 turns in the later years, not 26, as the 24 turn year yields nice round numbers for total turns.

Also, no year 0, history people say that it went directly from 1BC to 1 AD.

@Praetyre:
Do you have any specific thoughts on this part?

20. ### PraetyreKing

Joined:
Nov 19, 2009
Messages:
942
Gender:
Male
Location:
Auckland, New Zealand
Charlimit