搜索
查看: 2133|回复: 10

关于大家系统设定的一些想法

[复制链接]
2008-1-29 01:16:07

主题

好友

10

积分

布衣

在下也是三国的爱好者,平日里也喜欢自己设计一些游戏系统,或者对三国游戏的一些改进想法

近日里看了一些关于游戏系统的设定,其中包括很多对历史模拟的系统
这里有一些想法与建议

对于一个环境的模拟与仿真,不论是对现代还是历史。都是通过数学模型来建立的。对于所设立的各个变量之间建立方程,来描述其内在的联系。方程的参数来自大量的社会调查统计数据。

而变量的设定是关键。要做模拟仿真,并不是把所有出现的量都包含在内。而是只考虑变量组的“基”。也就是说通过“基”,可以组合出所有的量。
举个例子: a,b,c,d 四个量  a=b+c d=3b*c+a
我们没必要考虑这四个量,只要知道了b c以及b,c与其他量的关系就可以得出所有的量。b,c就是基
我们做游戏系统也是一样的道理,没必要所有的东西都列出来。
要知道,越少的量,系统才越容易稳定。

关于参数的设定。我们必须在建立了合理的变量之间关系方程的基础上,才能进行参数设定。
如果只是游戏,那么只要在数学允许的范围,保证系统稳定,不违背常理就可以了。
如果要模拟历史,那么就需要历史的数据。然而这个数据往往不是可以直接得到的。原因在于,历史记录的可能不是我们需要的数据。还是上面那个例子,历史记录可能只有abcd的数量是多少,而没有那个3,这个系数就需要做方程的回归得到了。

当整个模型建立之后,赋予变量和参数实际意义,这个游戏系统就可以说是完成了。

当然,我们不是专业人士,可能我们所建立的关系方程不是正确的,或者基选的就不对。也没关系,因为我们是按照最正确的科学方法来进行的。
如果说,我们做的游戏系统仅为了消遣或者是表述一种自己的历史观。那么这种方法就是冗余的垃圾,大家可以不必理会。
回复 举报
2008-1-29 02:56:51

主题

好友

85

积分

布衣

你所說非常有道理。但是某些情況下,這種“基”很難找到,更多的是從結果反推參數。

另一個問題是,好的遊戲,雖然越少的參數越穩定和便於進行AI計算,但是對玩家而言很容易失去新鮮感。解決方法有兩种,一是增加參數,二是加強隨機性。
回复 举报
2008-1-29 04:10:10

主题

好友

10

积分

布衣

Post by 鄂王马前卒

另一個問題是,好的遊戲,雖然越少的參數越穩定和便於進行AI計算,但是對玩家而言很容易失去新鮮感。解決方法有兩种,一是增加參數,二是加強隨機性。


用基可以生成整个游戏的变量,不会受很大限制,就像xyz三个坐标可以确定一个空间一样。我得意思是精简基的数量,而不是参数。
至于随机性,保持一个正态,我们控制变量的数学期望和区间就可以了,不影响整体的
回复 举报
2008-2-2 16:29:01

主题

好友

3777

积分

刺史

能力设定有最高值/当前值,资质,每个剧本都可以设定相应的当前值。
回复 举报
2008-2-2 21:11:16

主题

好友

67

积分

布衣

关于随机数严重赞同楼主,游戏中很多时候的随机都该是正态分布随机,不能是均匀分布随机,均匀随机的随机性过大了。假如自动生成人物的寿命是20-100岁,用均匀随机,很快你就会发现这个游戏中的人物早死的,正常的,成妖的各占1/3,太不合常理了。

编程语言中的随机数生成器大都是均匀分布的随机,我找了很久才找到由其生成正态分布的算法……专业编程的可能早就学过,我是写给业余策划看的,没有程序要试着自己担当又不断失败的苦命……

=========引用算法==========
Box 和 Muller 在 1958 年给出了由均匀分布的随机变量生成正态分布的随机变量的算法。设 U1, U2 是区间 (0, 1) 上均匀分布的随机变量,且相互独立。令

X1 = sqrt(-2*log(U1)) * cos(2*PI*U2);
X2 = sqrt(-2*log(U1)) * sin(2*PI*U2);

那么 X1, X2 服从 N(0,1) 分布,且相互独立。等于说我们用两个独立的 U(0,1) 随机数得到了两个独立的 N(0,1)随机数。

如果x~N(u,d^2),那么y=(x-u)/d~N(0,1)
如果y~N(0,1),那么x=y*d+u~N(u,d^2)
=========我是分割线=========

正态分布的期望应当设为你所期望出现的中心值,(期望这个定义很贴切……),而方差大小决定出现的值是比较集中于中心值还是比较分散。

如果搞不懂正态分布(似乎就不大好胜任策划,特别是数值策划,虽然高数D还只考了60的偶好像没什么资格说人家……概率统计一定要学,有大用。),还有一个近似的系统可以参考:龙与地下城(以及其他很多纸上RPG)的掷骰法。用1d20的系统就足够了。3d6的效果是3-18,但是你很难掷出18点或3点的值,也就是效果不容易产生较大的波动,因为产生18的可能只有1/216(均匀分布的随机数3-18,18出现的几率是1/16)。
骰子本身的点数是均匀分布的,通过掷骰次数的变化得到了不同的接近正态的分布,这是纸上游戏限于硬件条件限制想出来的对应方法,很简单,很好,很强大。


而基本数据,也就是所说的“基量”,并不是越少越好的。当然因为平衡所需要的工作量很大,基量也不会太多。比如RPG的角色基本属性在4-8之间的居多,另外还要加各种特性。SLG的单位属性,一般游戏也有十几项,同样要加特性。

扩展的属性可以通过公式由基本属性算出,比如辐射里面,SPECIAL系统决定了人物的基本属性,力量(St)、感知(Pe)、体质(En)、人格(Ch)、智慧(In)、运动(Ag)、幸运(Lk),另外再加2项天赋。而扩展属性,比如大枪小枪冷兵肉搏,开锁修理偷窃潜行,口才贸易赌博求生等等都是以诸如4 * St + 2 * Ag之类算出来的。

但基本数据太少就不能体现各单位的特色,这个不是用更复杂的公式就能解决的。假如三国武将只有一项基量:武力。其他的扩展数据诸如攻击力,领兵能力,训练效果,士气,甚至是舌战的胜率都用复杂公式算出(合理与否暂且不论),那么无论游戏有多复杂,其他扩展数据有多么多,这个游戏中的武将都可以简单归纳为3类,武力高的,武力中等的,武力低的。武力高的各项战斗能力高,谋划能力低;武力低的谋划能力高,战斗能力低,武力一般的各项能力也一般。那你永远也没法让张飞(武高文低)和赵云(武高文也高)的人同时出现,同样也不会有只擅长内政不擅长放火的人出现,因为算法做不到这一点。很快这个游戏也就会变得没意思。

石头剪子布有3个基本公式,石头胜剪子,剪子胜布,布胜石头,去掉一个基量会怎样?石头胜剪子,剪子胜布,那大家永远都出石头,这个游戏也就没意思了。
石头剪子布模式其实是游戏设计里最常用的,更多的单位也可以加入,形成一种网状的体系。攻击力高的防御力低,攻防都高的价格贵,攻防都低的跑得快,攻防都低还跑得慢的呢?他会采矿。如此等等,单位的特色就出来了。
回复 举报
2008-2-3 03:13:26

主题

好友

85

积分

布衣

正態分布雖然很常用而且比較容易實現,但在游戲中運用的效果有限,主要是因為:
一、正態分布是雙尾對稱,即小負數和大正數的概率相等。
二、正態分布的極端值概率過小。比如4個方差以上概率幾乎為0. 換一句話,其集中性過強,玩家不容易體會到偶然性。這一點是最關鍵的。
回复 举报
2008-2-3 11:14:42

主题

好友

67

积分

布衣

正态这种集中性正是游戏所必需的。至于正态分布的首尾值概率小,那是你函数方差取的太小的关系,这里用的并不是用X~N(0,1)的一般正态分布,而是满足X~N(μ,σ^2)的正态分布。之前我在寿命生成器中取σ^2=8,首尾分布的很好。这种中间大两头小的效果才是游戏中数值计算的关键,极大值和极小值的偶然出现才能让游戏者体验到偶然性。
回复 举报
2008-2-3 13:26:10

主题

好友

85

积分

布衣

集中度過大,極端值概率過低,和標準差并無關系。我指的是尖度(kurtosis)。另外,由于正態分布對稱,你標準差拉大以后取得小值的概率也同時上升。

我倒是建議模擬游戲中概率事件可以考慮對數正態(lognormal)分布的隨機數。其生成也十分簡單:exp(normal-random)就可以得到。而且是偏態分布,可以控制低于期望和高于期望事件的不同概率。而且其尖度較小,極端值概率比正態城幾何級數的提高。
回复 举报
2008-2-4 19:59:55

主题

好友

10

积分

布衣

对称的正态分布 好控制便于参数设定,也易于编程实现。而两边值概率的不一样,可以通过区间的设定来筛选。
当然,还是要具体问题具体分析,看这个量具体符合哪一种统计分布。对一般的量来讲,正态分布在数学期望和区间一起作用,就可以比较好的描述了
回复 举报
2008-2-5 02:34:25

主题

好友

85

积分

布衣

可是一方面認爲正態分佈容易“控制參數設定”,一方面又需要“區間篩選”,是不是違背了“用最少的基產生最穩定的系統”這個最初理念呢?

高斯分佈的確常用,其對自然現象的模擬十分精確。然而遊戲的話又是另一種情形,因爲太接近日常現象的概率分佈,就很難被玩家體會到。舉例,如果要模擬部隊戰法攻擊力,比如像三國志九那樣,如果用一個高斯分佈N(10000,1000),那麽七成時候攻擊力是9000-11000左右,而只有2.5%的概率,出現12000或以上的攻擊,同時相應的還有 2.5%的 8000左右的值。而出現14000強的殺傷力的概率基本為0。如果想通過拉大標準差實現,那麽N(10000,2000)的確有2.5%的可能出現大於14000的值,但同時又也有2.5%的可能出現小于6000的值。設計者難道就希望這樣的分佈嗎?另一方面,如果單單調整均值,比如用N(13000,1000),則根本不需要用高斯分佈,直接用綫性平均分佈,豈非更好。
回复 举报
2008-2-5 12:20:11

主题

好友

3011

积分

刺史

数值策划的最重要工作即是根据游戏实际需求设计与之相关的数字模型,正常情况下,应该是有一组表,大部分格子上是一个(组)至少由基本参数组成的计算公式。计算公式的复杂程度受游戏系统需求、程序实现、调试公式所需的人力精力时间等原因影响。说起来似乎很容易,但要真正做到做好......人是生活在现实里的,不可能不受限制。
回复 举报

本版积分规则

Archiver|手机版|Langya.Org ( 浙ICP备05062527号-1 )

GMT+8, 2022-10-8 07:11 , Processed in 0.062310 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed © 2001-2012 Comsenz Inc. Design by 360cd.cn

返回顶部