设为首页收藏本站

塞爱维(CIV)文明联盟

 找回密码
 注册
查看: 26468|回复: 52

[原创] 技术贴——政策成本数值的计算算法(10月17日更新 全奇观估算)

[复制链接]
发表于 2010-10-9 01:00:14 | 显示全部楼层 |阅读模式
基础政策成本的公式为——
基础政策成本 = 政策级别因子 * 城市数量因子 {* 游戏速度因子 * 游戏难度因子}
(游戏速度因子、游戏难度因子在大多数情况下都为1,详见4楼速度、难度的影响)


实际政策成本要考虑奇观、政策等加成,最后再向下取整为5的倍数——
实际政策成本 = floor(基础政策成本*各种加成/5)*5



2楼:政策级别因子
3楼:城市数量因子
4楼:速度、难度的影响
5楼:无世界奇观下文化胜利所需回合数理论估算(已过时。保留备用)
45楼:全奇观 标准地图下 文化产出估算
46楼:全奇观 大地图下 文化产出估算
47楼:全奇观 极大地图下 文化产出估算

[ 本帖最后由 zyl910 于 2010-10-22 12:49 编辑 ]
 楼主| 发表于 2010-10-9 01:00:38 | 显示全部楼层
2楼:政策级别因子

公式为——
政策级别因子 = 25 + [6*(政策级别-1)]^1.7
(感谢13楼matsuri1987)


【示范】
开局选择王子难度(4 - Prince),游戏速度为标准。
只有一个城时,各级政策所需点数为——
成本:游戏中显示的政策成本
理论:根据公式算得的理论值
累计:对游戏中显示的政策成本进行累加
政级城数成本理论累计
112525.00 25
214546.03 70
319093.33 160
41160161.13 320
51245247.00 565
61345349.42 910
71465467.30 1375
81595599.81 1970
91745746.29 2715
101905906.19 3620
11110751079.04 4695
12112601264.44 5955
13114601462.03 7415
14116701671.50 9085
15118901892.56 10975
16121202124.97 13095
17123652368.48 15460
18126202622.89 18080
19128852887.99 20965
20131603163.62 24125
21134453449.59 27570
22137453745.75 31315
23140504051.94 35365
24143654368.05 39730
25146904693.92 44420
26150255029.44 49445
27153705374.48 54815
28157255728.95 60540
29160906092.72 66630
30164656465.71 73095
31168456847.81 79940
32172357238.93 87175
33176357638.99 94810
34180458047.89 102855
35184658465.56 111320
36188908891.92 120210
37193259326.89 129535

可见数据吻合。


【定义】
这些系数定义位于——
\Assets\Gameplay\XML\GlobalDefines.xml
  1.                 <!-- Policy Cost -->
  2.                 <!-- Mod for city count is in Worlds.xml -->
  3.                 <Row Name="BASE_POLICY_COST">
  4.                         <Value>25</Value>
  5.                 </Row>
  6.                 <Row Name="POLICY_COST_INCREASE_TO_BE_EXPONENTED">
  7.                         <Value>6</Value>
  8.                 </Row>
  9.                 <Row Name="POLICY_COST_EXPONENT">
  10.                         <Value>1.70</Value>
  11.                 </Row>
  12.                 <Row Name="POLICY_COST_VISIBLE_DIVISOR">
  13.                         <Value>5</Value>
  14.                 </Row>
  15.                 <Row Name="SWITCH_POLICY_BRANCHES_ANARCHY_TURNS">
  16.                         <Value>1</Value>
  17.                 </Row>
  18.                 <Row Name="POLICY_COST_DISCOUNT_MAX">
  19.                         <Value>-75</Value>
  20.                 </Row>
  21.                 <!-- END Policy Stuff -->
复制代码

[ 本帖最后由 zyl910 于 2010-10-9 09:11 编辑 ]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-10-9 01:01:03 | 显示全部楼层
3楼:城市数量因子


设城市数量(本土城数+吞并城数+摧毁中城数,不包括傀儡。注意在占领城市弹出选择对话框时,该城是算作吞并城市的,也会增加城市数量因子。再在选择傀儡后又会降低)为n,公式为——
城市数量因子 = 1 + (n-1)*城市数量系数


城市数量系数与地图尺寸有关,最常见的是30%——
地图尺寸城市数量系数
WORLDSIZE_DUEL30
WORLDSIZE_TINY30
WORLDSIZE_SMALL30
WORLDSIZE_STANDARD30
WORLDSIZE_LARGE20
WORLDSIZE_HUGE15



【示范】
标准地图、标准速度、王子难度下,第一个政策所需25点文化,现在我们来计算不同城数时所需的文化——
城数城市数量因子基础成本显示实测
1100.00%25.00 2525
2130.00%32.50 3030
3160.00%40.00 4040
4190.00%47.50 4545
5220.00%55.00 5555
6250.00%62.50 6060
7280.00%70.00 70
8310.00%77.50 75
9340.00%85.00 85
10370.00%92.50 90
11400.00%100.00 100
12430.00%107.50 105
13460.00%115.00 115
14490.00%122.50 120
15520.00%130.00 130
16550.00%137.50 135
17580.00%145.00 145
18610.00%152.50 150
19640.00%160.00 160
20670.00%167.50 165
21700.00%175.00 175
22730.00%182.50 180
23760.00%190.00 190
24790.00%197.50 195
25820.00%205.00 205
26850.00%212.50 210
27880.00%220.00 220
28910.00%227.50 225
29940.00%235.00 235
30970.00%242.50 240
311000.00%250.00 250

显示:根据公式的计算结果。
实测:进游戏实测的数值。
可见数据吻合。


【定义】
这些系数的定义位于——
\Assets\Gameplay\XML\GameInfo\CIV5Worlds.xml
  1.                         <Type>WORLDSIZE_DUEL</Type>
  2.                         <NumCitiesPolicyCostMod>30</NumCitiesPolicyCostMod>

  3.                         <Type>WORLDSIZE_TINY</Type>
  4.                         <NumCitiesPolicyCostMod>30</NumCitiesPolicyCostMod>

  5.                         <Type>WORLDSIZE_SMALL</Type>
  6.                         <NumCitiesPolicyCostMod>30</NumCitiesPolicyCostMod>

  7.                         <Type>WORLDSIZE_STANDARD</Type>
  8.                         <NumCitiesPolicyCostMod>30</NumCitiesPolicyCostMod>

  9.                         <Type>WORLDSIZE_LARGE</Type>
  10.                         <NumCitiesPolicyCostMod>20</NumCitiesPolicyCostMod>

  11.                         <Type>WORLDSIZE_HUGE</Type>
  12.                         <NumCitiesPolicyCostMod>15</NumCitiesPolicyCostMod>
复制代码

[ 本帖最后由 zyl910 于 2010-10-9 21:31 编辑 ]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-10-9 01:01:15 | 显示全部楼层
4楼:速度、难度的影响


速度系数表——
速度速度系数
快速67%
标准100%
史诗150%
马拉松300%


难度系数表——
难度难度系数
1移民50%
2酋长67%
3领主85%
4王子100%
5国王100%
6皇帝100%
7圣人100%
8神级100%


速度、难度系数综合表——
难度快速标准史诗马拉松
1移民0.3350 0.5000 0.7500 1.5000
2酋长0.4489 0.6700 1.0050 2.0100
3领主0.5695 0.8500 1.2750 2.5500
4王子0.6700 1.0000 1.5000 3.0000
5国王0.6700 1.0000 1.5000 3.0000
6皇帝0.6700 1.0000 1.5000 3.0000
7圣人0.6700 1.0000 1.5000 3.0000
8神级0.6700 1.0000 1.5000 3.0000



【示范】
第一个政策所需25点文化,我们估算一下不同速度、难度下的政策成本——
难度快速标准史诗马拉松
1移民8.3750 12.5000 18.7500 37.5000
2酋长11.2225 16.7500 25.1250 50.2500
3领主14.2375 21.2500 31.8750 63.7500
4王子16.7500 25.0000 37.5000 75.0000
5国王16.7500 25.0000 37.5000 75.0000
6皇帝16.7500 25.0000 37.5000 75.0000
7圣人16.7500 25.0000 37.5000 75.0000
8神级16.7500 25.0000 37.5000 75.0000


而游戏中的实际值为——
难度快速标准史诗马拉松
1移民5101535
2酋长10152050
3领主10203060
4王子15253575
5国王15253575
6皇帝15253575
7圣人15253575
8神级15253575

可见数据吻合。



【定义】
速度系数的定义位于——
\Assets\Gameplay\XML\GameInfo\CIV5GameSpeeds.xml
  1.                         <Type>GAMESPEED_MARATHON</Type>
  2.                         <CulturePercent>300</CulturePercent>

  3.                         <Type>GAMESPEED_EPIC</Type>
  4.                         <CulturePercent>150</CulturePercent>

  5.                         <Type>GAMESPEED_STANDARD</Type>
  6.                         <CulturePercent>100</CulturePercent>

  7.                         <Type>GAMESPEED_QUICK</Type>
  8.                         <CulturePercent>67</CulturePercent>
复制代码
难度系数的定义位于——
\Assets\Gameplay\XML\GameInfo\CIV5HandicapInfos.xml
  1.                         <Type>HANDICAP_SETTLER</Type>
  2.                         <PolicyPercent>50</PolicyPercent>


  3.                         <Type>HANDICAP_CHIEFTAIN</Type>
  4.                         <PolicyPercent>67</PolicyPercent>


  5.                         <Type>HANDICAP_WARLORD</Type>
  6.                         <PolicyPercent>85</PolicyPercent>


  7.                         <Type>HANDICAP_PRINCE</Type>
  8.                         <PolicyPercent>100</PolicyPercent>

  9. ...

  10.                         <Type>HANDICAP_DEITY</Type>
  11.                         <PolicyPercent>100</PolicyPercent>
复制代码

[ 本帖最后由 zyl910 于 2010-10-9 01:12 编辑 ]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-10-9 01:01:29 | 显示全部楼层
5楼:无世界奇观下文化胜利所需回合数理论估算(已过时。保留备用)

该楼已过时,请移步——
45楼:全奇观 标准地图下 文化产出估算
46楼:全奇观 大地图下 文化产出估算
47楼:全奇观 极大地图下 文化产出估算



【假设标准地图、标准速度、王子难度,不考虑城市成长、专家、世界奇观、政策等加速的情况下】

要实现文化胜利,需要点满5系政策。而每一系有6个政策,总计30个政策。
由于虔信政策中的信仰自由(Free Religion)免费获得2项政策,实际上只需28个政策。


加文化的建筑有——
Monument 纪念碑 远古 60 1 - +2文化
Temple 神庙 古典 120 1 哲学 +3文化
Monastery 修道院 中古 120 2 神学 +3文化,每处薰香甜酒资源+2文化
Opera House 歌剧院 启蒙 220 4 声学 +5文化
Museum 博物馆 启蒙 350 7 考古学 +5文化
Broadcast Tower 广播塔 工业 600 10 无线电 文化产出加倍


前五个加起来总共18点文化,广播塔加倍后变为36。再考虑国家奇观冬宫(Hermitage)再加一倍,为54点。
首都有宫殿+1文化,三倍后就是3点,合起来57点。


由于单城28个政策共需60540点文化。所需回合数为——
60540 / 57 = 1062.11
既需要1000多个回合,这明显超过了标准速度的一般回合数。
要想单城文化胜利,必须得抢奇观、选增加文化和减少成本的政策。



假设现在有N个城——
政策成本 = 60540 * 城市数量因子
文化产出 = 54*N + 3
城数城数因子政策成本文化产出回合节省回合
1100.00%60540 571062.11
2130.00%78702 111709.03 353.08
3160.00%96864 165587.05 121.97
4190.00%115026 219525.23 61.82
5220.00%133188 273487.87 37.36
6250.00%151350 327462.84 25.02
7280.00%169512 381444.91 17.93
8310.00%187674 435431.43 13.48
9340.00%205836 489420.93 10.50
10370.00%223998 543412.52 8.41
11400.00%242160 597405.63 6.89
12430.00%260322 651399.88 5.75
13460.00%278484 705395.01 4.87
14490.00%296646 759390.84 4.17
15520.00%314808 813387.22 3.62
16550.00%332970 867384.05 3.17
17580.00%351132 921381.25 2.80
18610.00%369294 975378.76 2.49
19640.00%387456 1029376.54 2.23
20670.00%405618 1083374.53 2.00
21700.00%423780 1137372.72 1.81
22730.00%441942 1191371.07 1.65
23760.00%460104 1245369.56 1.51
24790.00%478266 1299368.18 1.38
25820.00%496428 1353366.91 1.27
26850.00%514590 1407365.74 1.17
27880.00%532752 1461364.65 1.09
28910.00%550914 1515363.64 1.01
29940.00%569076 1569362.70 0.94
30970.00%587238 1623361.82 0.88
311000.00%605400 1677361.00 0.82

人多力量大,多城要比单城快。
但是这个节省回合的效果会逐渐变慢的,第10个城时的节省回合不足10。
考虑到游戏中产能有限,我们难以让二三十个城都造满博物馆。所以我建议城市数量为10个就差不多了,再多的话建设难度大,收益小。


大地图或极大地图时,城市数量系数降为20或15,这时可以建更多城。

[ 本帖最后由 zyl910 于 2010-10-22 12:50 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2010-10-9 01:06:58 | 显示全部楼层
大概是个指数级的公式?比如e的x次方之类的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-10-9 01:16:56 | 显示全部楼层
编辑完成
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-10-9 01:20:20 | 显示全部楼层
为了避免误导,编辑掉

[ 本帖最后由 zyl910 于 2010-10-9 09:20 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2010-10-9 01:49:36 | 显示全部楼层
原帖由 zyl910 于 2010-10-9 01:20 发表



政策级别因子不是指数增长。
大概比线性函数增长要快,比二次函数增长要慢。

现在虽然在游戏中抄录了数值、在XML中找到了系数,但就是无法将它们组织成公式。只能看表格

可以是指数型的
比如下面这个的形状和实际的情况就很接近
所需文化=(2^(n/14)-1)*2000

也许跟单位维持费的公式是类似的
你可以在这贴里找找灵感
http://www.civclub.net/bbs/viewt ... &extra=page%3D5
回复 支持 反对

使用道具 举报

发表于 2010-10-9 01:52:19 | 显示全部楼层
又见技术帖,狂顶之
回复 支持 反对

使用道具 举报

发表于 2010-10-9 01:56:35 | 显示全部楼层
我设想是指数级的,因为我发现了这个tag:
<Row Name="POLICY_COST_EXPONENT">
                        <Value>1.70</Value>
                </Row>
指数是1.70?
回复 支持 反对

使用道具 举报

发表于 2010-10-9 02:22:13 | 显示全部楼层
傀儡城市不算在内的,只算自己开的城和吞并的城
回复 支持 反对

使用道具 举报

发表于 2010-10-9 02:30:45 | 显示全部楼层
根据
原帖由 zyl910 于 2010-10-9 01:00 发表
                <!-- Policy Cost -->
                <!-- Mod for city count is in Worlds.xml -->
                <Row Name="BASE_POLICY_COST">
                        <Value>25</Value>
                </Row>
                <Row Name="POLICY_COST_INCREASE_TO_BE_EXPONENTED">
                        <Value>6</Value>
                </Row>
                <Row Name="POLICY_COST_EXPONENT">
                        <Value>1.70</Value>
                </Row>
                <Row Name="POLICY_COST_VISIBLE_DIVISOR">
                        <Value>5</Value>
                </Row>
                <Row Name="SWITCH_POLICY_BRANCHES_ANARCHY_TURNS">
                        <Value>1</Value>
                </Row>
                <Row Name="POLICY_COST_DISCOUNT_MAX">
                        <Value>-75</Value>
                </Row>
                <!-- END Policy Stuff -->

又在excel里试验了一会儿,得到这个公式
floor{25+[6*(n-1)]^1.7}
注意这个floor设置为向5逼近。
如果使用excel,可以直接使用
=FLOOR(POWER(6*(A1-1),1.7)+25,5)
其中A1为n,即当前的SP个数

上面的公式已经验证是完全吻合的,我打算去试试单位维持费的。

[ 本帖最后由 matsuri1987 于 2010-10-9 02:36 编辑 ]

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2010-10-9 02:35:18 | 显示全部楼层
唉,发现我最近老在搞公式
回复 支持 反对

使用道具 举报

发表于 2010-10-9 02:40:01 | 显示全部楼层
赞!!这个好,适合推算政策时间。
回复 支持 反对

使用道具 举报

发表于 2010-10-9 03:35:51 | 显示全部楼层
数据男出现了 顶之
回复 支持 反对

使用道具 举报

发表于 2010-10-9 05:11:04 | 显示全部楼层
这个有档次高的,lz很辛苦的哇

移民难度系数是不是33%?不是50%,这样后面乘出来正好实测的5点
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-10-9 08:55:34 | 显示全部楼层
补上5楼的表格。昨晚太晚了,有点迷糊忘记贴上了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-10-9 09:01:44 | 显示全部楼层
原帖由 matsuri1987 于 2010-10-9 02:30 发表
根据

又在excel里试验了一会儿,得到这个公式
floor{25+[6*(n-1)]^1.7}
注意这个floor设置为向5逼近。
如果使用excel,可以直接使用
=FLOOR(POWER(6*(A1-1),1.7)+25,5)
其中A1为n,即当前的SP个数

...



非常感谢
回复 支持 反对

使用道具 举报

发表于 2010-10-9 09:21:46 | 显示全部楼层
等了几天,终于有人出了政策成本的数据流了
辛苦~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|塞爱维(CIV)文明联盟    

GMT+8, 2024-4-27 05:35

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表