标题: KOEI的战棋游戏是怎么制作的, 带Debug模式的英杰传已经改好,在贴子最后提供下载
性别:男-离线 岱瀛
(deving)

长平侯
川峡东路经略使
监管使

Rank: 19Rank: 19Rank: 19Rank: 19
组别 经略使
级别 左将军
好贴 1
功绩 2293
帖子 1370
编号 55810
注册 2005-12-22
来自 人间
家族 慕容世家


发表于 2007-1-23 23:20 资料 个人空间 短消息 只看该作者
KOEI的战棋游戏是怎么制作的

我们的曹操传MOD,现在基本上是用Van的编辑器+各种辅助工具制作的,我们以为已经很自动化了。但是,无论哪个MOD,我们总是常常被抨击说太难了,设计不合理什么的。那么光荣的游戏又是怎么做的呢?


写游戏引擎是肯定的,但是他们必然也会和我们一样写剧本的,我们调试,测试麻烦,BUG多等问题,他们一样有啊,他们如何规避这个风险呢?或者说他们如何 更好的处理呢?

从曹操传,或者说从目前我们看来,没有发现他们有什么高招。我只是奇怪一点,Ekd5.exe居然有个倒出函数。作为一个可执行的最终Exe,为什么要有这样一个导出函数呢,没有去试,但是一直有点怀疑。

刚刚,小笨给我看了三国在线的两篇文章,是关于英杰传的反汇编的。第二篇讲到了英杰传有个隐藏的Debug菜单,于是我按上面说,试了一下,果然如此 。不由有点恍然大悟,KOEI原来藏着另外的窍门。


下面转小笨给我看的两篇文章

三国志英杰传中战场随机因素的分析

作者:hblongbow  来自:三国在线


--------------------------------------------------------------------------------

这几天对游戏进行了反汇编,发现了几个关于策略杀伤力方面的很有趣的规律,拿出来与各位朋友分享,如有兴趣,可以顺便验证一下。

0、随机数:游戏中使用除法去余数的运算来产生随机数。例如对一个大数除以47,会产生0~46之间的随机余数。

以下用rand(47)来表示上述操作,下文中各种概率都是随机数产生的。

1、关于策略

(1)杀伤兵力类:

策略失败概率:防御方智力第一修正值/(攻击方智力第一修正值-1)/4

策略成功概率 = 1-失败概率;

策略杀伤力 = (基准值 + 攻击方智力第二修正值*2 - 防御方智力第二修正值)* 地形天气因素 * (2%以内的随机增益)

第一修正值 = 智力*等级/100 + 智力

第二修正值 = 智力*等级/50 + 智力

基准值:
焦热=200,火龙=600,猛火=1000,
漩涡=300,浊流=700,海啸=1100,
落石=400,山崩=800,山洪=1200。
地形:
树林中火计为1.25
雨天中水计为1.25
其他情况下为1

兵种影响:
如果防御是方运输队、军乐队或妖术师,则防御方第一修正值加倍,
且如果计谋成功,杀伤力减半。

例如,等级10、智力40的山贼对等级15、智力80的关羽使用山崩计,

山贼的修正值为 v1 = 40*10/100 + 40 = 44
v2 = 40*10/ 50 + 40 = 48

关羽的修正值为 v1 = 80*15/100 + 80 = 92
v2 = 80*15/ 50 + 80 =104

计谋成功的概率为 p = 1 - (92/43/4) = 46%

如果成功,杀伤力为 800 + 48*2 - 104 = 792~806人。

如果山贼对等级12的孙乾用计,则,

孙乾的修正值为 v1 = (74*12/100 + 74)*2 = 164
v2 = 74*12/ 50 + 74 = 91

计谋成功的概率为 p = 1 - (164/43/4) = 5%

如果成功,杀伤力为 (800 + 48*2 - 92)/2 = 402~410人。

作为简化处理,如果双方条件差不多,则计谋成功率为75%左右,

用计方智力高出30点,成功概率一般在85%以上。

(2)混乱类:

失败概率 = 防御方智力第一修正值/(攻击方智力第一修正值-1)/2

修正值计算方法同上。

例如,等级12的刘备对等级10的步兵队使用假情报计:

刘备的修正值为 v1 = (64*12/100 + 64) = 71

步兵队修正值为 v1 = (30*10/100 + 30) = 33

计谋成功概率为 p = 1 - (33/70/2) = 76%

(3)恢复兵力类:

恢复量 = (用计方等级 * 智力 / 20 + 计谋基准值) * (10%以内的随机增益)

基准值:援助 = 600, 补给 = 1200,救济 = 1800。

例如,等级30的马良使用援助计,可以恢复

30*90/20 + 600 = 735~806 人

2、关于混乱状态:

(1)进入混乱状态:

战斗中即时检测,如果士气值降到30以下,则随机陷入混乱,概率60%(除5取余看是否小于3)。

与等级、能力无关。

与中计方当前是否混乱无关(即“变得更加混乱了”和“混乱”效果一样)。

(2)从混乱中恢复:

战斗中即时检测,概率为百分之

(士气 + 统御力) / 3

例如,士气值100的张飞中计混乱后,激励一次就恢复的概率为

(100 + 83)/3 = 61%

士气值24的简雍混乱后,下一回合就自动恢复的概率为

(24 + 36)/3 = 20%,

每回合都用同样方法计算,故两回合之内恢复的概率为 (1 - 0.8*0.8) = 36%,
三回合恢复概率49%,等等。

与曾经陷入混乱的次数无关(即从“更加混乱”和“混乱”中恢复算法一样)。

3、反击:

发生反击的概率 = 被攻击方武力 / 150

与其他能力、兵种等无关。

例如武力62的潘宫反击概率为41%,武力69的董梁反击概率46%等等。


-----------------------------------------------------------------------------------------------------------------------------------
关键在这一篇,更猛.

三国志英杰传中隐藏的DEBUG菜单

作者:hblongbow 来自:三国在线

麻雀虽小,五脏俱全,三国志英杰传这个游戏中还有一个隐藏的DEBUG功能。
在战斗中,点下鼠标右键,会出现“功能”下拉菜单,里面有回合结束、胜利条件、全军撤退等,这个隐藏的DEBUG菜单就在“功能”的最后一项,“游戏结束”的下面,在我们玩的普通版本里不会出现,但是通过修改MAIN.EXE文件,可以使它现形!
允许DEBUG功能后,战斗中屏幕左上角会不断打印当前位置的两个坐标,黑底白字,而且察看敌军角色信息时,
原有的“经验值”一栏会打印出该角色的AI类型。AI类型前辈们已有总结,在此不赘述,常见的有
休息、移动、攻击最近敌等等。
DEBUG菜单里面有7个子功能,其文字说明是未经汉化的日文,所以如果不经过进一步的修改,由于内码不兼容,在显示DEBUG菜单时会死机。
因此可以给这7个子功能取一下中文名称,从上到下依次为:
1. 事件继续:
:“事件继续”一项,实际是“随意移动”。即:
在点击“事件继续”后,人物可以移动到任何地方!并且在无法移动的地方若站上人,防御力极高,几乎普通攻击只能打1滴血。

2. 立即胜利:
本次战役立即胜利。
3. 无人操作(展示方式)

刘备军会自动行动,不需玩家控制.在回合结束时狂点鼠标可以退出这种方式.
4. 控制友军
可以控制友军,例如界桥之战中公孙瓒的部队.
5. 控制所有(包括敌人)
这个够狠,如果用这个模式,大概可以打出2n个99级吧.
6. 部队及友军等级均+5
每用一次,战场上刘备军和友军的每支部队等级均加5,但是策略值和当前兵力不增加.
7. 当前回合数+5
等于说每用一次,自动跳过5个回合。呵呵,除了测试之外,好像没什么用处。

以下是所有的修改。先将MAIN.EXE复制成MAIN.EEE,然后把下面的内容做成一个文本文件INPUT.TXT ,
在DOS窗口中,切换到MAIN.EEE所在目录,执行 DEBUG < INPUT.TXT即可,然后将MAIN.EEE再复制成MAIN.EXE即可。
n main.eee
l 3000:0
a
;禁止战局初始化时清除DEBUG标志
e 5000:6590 90
e 5000:6591 90
e 5000:6592 90
a
;指定DEBUG标志
e 6000:9ED8 02
a
;菜单项:事件继续
e 6000:9F6A A8
e 6000:9F6B C6
e 6000:9F6C A5
e 6000:9F6D F3
e 6000:9F6E C4
e 6000:9F6F 7E
e 6000:9F70 C4
e 6000:9F71 F2
e 6000:9F72 00
a
;菜单项:立即胜利
e 6000:9F75 A5
e 6000:9F76 DF
e 6000:9F77 A7
e 6000:9F78 59
e 6000:9F79 B3
e 6000:9F7A D3
e 6000:9F7B A7
e 6000:9F7C 51
e 6000:9F7D 00
a
;菜单项:展示方式
e 6000:9F80 AE
e 6000:9F81 69
e 6000:9F82 A5
e 6000:9F83 DC
e 6000:9F84 00
a
;菜单项:控制友军
e 6000:9F89 B1
e 6000:9F8A B1
e 6000:9F8B A8
e 6000:9F8C EE
e 6000:9F8D A4
e 6000:9F8E CD
e 6000:9F8F AD
e 6000:9F90 78
e 6000:9F91 00
a
;菜单项:控制敌军
e 6000:9F98 B1
e 6000:9F99 B1
e 6000:9F9A A8
e 6000:9F9B EE
e 6000:9F9C BC
e 6000:9F9D C4
e 6000:9F9E AD
e 6000:9F9F 78
e 6000:9FA0 00
a
;菜单项:等级+5
e 6000:9FA3 B5
e 6000:9FA4 A5
e 6000:9FA5 AF
e 6000:9FA6 C5
e 6000:9FA7 A5
e 6000:9FA8 FE
e 6000:9FA9 2B
e 6000:9FAA 35
e 6000:9FAB 00
a
;菜单项:当前回合号+5
e 6000:9FAE 52
e 6000:9FAF 6E
e 6000:9FB0 64
e 6000:9FB1 2B
e 6000:9FB2 35
e 6000:9FB3 00
a
;"事件继续"的提示讯息
e 6000:A062 "OFF"
e 6000:A065 00
e 6000:A06F "ON"
e 6000:A072 00
a
;提示讯息
e 6000:A07A "OK"
e 6000:A07C 00
e 6000:A0DB "OK"
e 6000:A0DD 00
e 6000:A0EC "OK"
e 6000:A0EE 00
a
;跳过DEBUG方式下的左上角坐标打印
e 5000:8216 EB
e 5000:8217 03
w 3000:0
q

----------------------------------------------------------------------------
7个菜单选项,我们看到,控制友军控制敌军,明显是一种对S制作的调整,回合+5,显然是对回合数仔细测试时候要的。而无人操作方式,这个应该就是KOEI认为关卡是否过难还是过于简单的重要尝试了。

所以,换个角度想,我们制作MOD的时候有时能否故意把弄些和我军一样的人进行电脑K电脑的一次比拼呢。

p.s : 不过我最新试了下,这个展示的功能有点问题


----------------------------------------
我按照原文作者的方法,依样画葫芦,改了Exe,整个英杰由于比较小,就一起打包了,大家可以下下来看。

这,对步步那些追求英杰终极打法的人不知道是不是一种打击。


最后,虽然不认识hblongbow ,但是在此对他表示深深的感谢。

点击下载英杰传






[ 本帖最后由 岱瀛 于 2007-9-27 23:50 编辑 ]


顶部
性别:男-离线 江湖情圣

Rank: 7Rank: 7Rank: 7Rank: 7
组别 校尉
级别 后将军
功绩 14
帖子 1437
编号 63829
注册 2006-3-20


发表于 2007-1-23 23:43 资料 个人空间 短消息 只看该作者 ICQ 状态
以前打过N次,最后连一个99J的人多没有,记得好几次通关诸葛亮还不会落雷呢


顶部
性别:未知-离线 八点起床

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 5
编号 88961
注册 2006-10-27


发表于 2007-1-24 00:12 资料 短消息 只看该作者
照lz的意思,ccz可以像三国志系列一样改出加强版?这可是广大人民群众的福音口牙
顶部
性别:男-离线 一旦

Rank: 2Rank: 2
组别 百姓
级别 奋威校尉
功绩 1
帖子 135
编号 5845
注册 2004-3-6
来自 浙江


发表于 2007-1-24 01:00 资料 短消息 只看该作者
这的确是一种做MOD的新思维,以前我们只是凭想象和基础判定来评价游戏的难度,这个测试的方法不错。只是不知道这种方法从编写到大众化的难度有多少。真的是了不起的发现!
顶部
性别:未知-离线 云天龙
(歐陽天龙)

Rank: 3Rank: 3Rank: 3
组别 士兵
级别 仁勇校尉
功绩 2
帖子 173
编号 59291
注册 2006-2-7
家族 欧阳一族


发表于 2007-1-24 01:01 资料 个人空间 短消息 只看该作者
英杰传原来也可以这么玩啊
顶部
性别:未知-离线 司徒苍月
(kagami☆sama)

越国公
荆南节度使
枢密直学士

Rank: 22Rank: 22Rank: 22Rank: 22
柱国(正二品)
组别 节度使
级别 大将军
好贴 7
功绩 2823
帖子 28883
编号 52341
注册 2005-11-2
来自 创界山
家族 司徒实业


好贴,高亮之
顶部
性别:男-离线 5586088

Rank: 2Rank: 2
组别 百姓
级别 奋威校尉
功绩 1
帖子 148
编号 74717
注册 2006-7-6
来自 宇宙
家族 轩辕学院


发表于 2007-1-24 13:14 资料 主页 短消息 只看该作者 QQ
楼主有没有想过自己做一个战期游戏呢?
就是说一个属于中国自己的战期游戏!!
顶部
性别:男-离线 cxm2000

Rank: 2Rank: 2
组别 百姓
级别 奋威校尉
功绩 1
帖子 141
编号 64913
注册 2006-3-23


发表于 2007-1-25 11:14 资料 短消息 只看该作者 QQ
非常好的发现,希望楼主能够研究成功,期待中
顶部
性别:未知-离线 重拳猛击

Rank: 5Rank: 5
组别 校尉
级别 裨将军
好贴 1
功绩 12
帖子 321
编号 7596
注册 2004-5-13


发表于 2007-1-25 16:21 资料 文集 短消息 只看该作者
谢谢分享
顶部
性别:男-离线 炎帝瀑布碎
(月半月半)

余杭郡公
监管使
京东西路经略使
★★★★★★

Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23
资政殿大学士(从一品)
组别 经略使
级别 征东将军
好贴 1
功绩 2358
帖子 5212
编号 85388
注册 2006-10-1
来自 轩辕学院
家族 肉肉门


发表于 2007-1-25 23:50 资料 个人空间 短消息 只看该作者
这个东西如果能弄出来,做MOD的时候可以省去不少麻烦啊
其实测试是做MOD一个极其麻烦的地方.有时候反复调试的都快吐了.
不过做为编程的门外汉问一句,可不可以在那个DEBUG菜单或类似的功能菜单里加一个拥有反回前几回合状态的子功能菜单,有点像word里那个撤消,这样是不是就更方便了呢?当然CCZ有s/l这功能,完全可以代替它,但其它很多的都是没有的.
如觉不妥,大可以无视之

[ 本帖最后由 炎帝瀑布碎 于 2007-1-26 07:46 编辑 ]
顶部
性别:未知-离线 mylo214

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 43
编号 59873
注册 2006-2-13


发表于 2007-1-26 18:25 资料 短消息 只看该作者
竟然可以这样修改....真是佩服啊!
顶部
性别:男-离线 5586088

Rank: 2Rank: 2
组别 百姓
级别 奋威校尉
功绩 1
帖子 148
编号 74717
注册 2006-7-6
来自 宇宙
家族 轩辕学院


发表于 2007-1-26 20:41 资料 主页 短消息 只看该作者 QQ
如果可以加入曹操传里那就好办很多~~
顶部
性别:女-离线 天生→郭奉孝
(社交型饮酒者)

Rank: 10Rank: 10Rank: 10Rank: 10
组别 女官
级别 镇北将军
功绩 36
帖子 3554
编号 77104
注册 2006-7-28
家族 聚贤山庄


发表于 2007-1-27 17:56 资料 个人空间 短消息 只看该作者 QQ


QUOTE:
原帖由 江湖情圣 于 2007-1-23 23:43 发表
以前打过N次,最后连一个99J的人多没有,记得好几次通关诸葛亮还不会落雷呢

落雷。。那是SFC版的英杰传妖术师在65级学会的技能。。楼主说的是PC版,,似乎扯远了而且。。SFC版的比PC版的容易上手的多,还可以刷等级。要说到最后一个99级都没有那是不可能的事。。。不知道您是怎么打的。。
顶部
性别:未知-离线 天下归心Q

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 20
编号 105004
注册 2007-1-28


发表于 2007-1-28 17:38 资料 短消息 只看该作者
LZ辛苦,一语惊起梦中人啊!
顶部
性别:男-离线 岱瀛
(deving)

长平侯
川峡东路经略使
监管使

Rank: 19Rank: 19Rank: 19Rank: 19
组别 经略使
级别 左将军
好贴 1
功绩 2293
帖子 1370
编号 55810
注册 2005-12-22
来自 人间
家族 慕容世家


发表于 2007-1-31 11:26 资料 个人空间 短消息 只看该作者


QUOTE:
原帖由 炎帝瀑布碎 于 2007-1-25 23:50 发表
这个东西如果能弄出来,做MOD的时候可以省去不少麻烦啊
其实测试是做MOD一个极其麻烦的地方.有时候反复调试的都快吐了.
不过做为编程的门外汉问一句,可不可以在那个DEBUG菜单或类似的功能菜单里加一个拥有 ...

我最近在研究能不能象CS,魔兽那样,给说岳加一个游戏录象功能.打一关录一个,不过初步尝试了下,视频不压缩,直接保存成临时文件最后整合出视频的话,整个临时文件要过几G,不保存临时文件,直接压缩入视频,却要耗用好多内存空间

所以最新再考虑象魔售那样,记录下每个操作成数据文件然后回放应该就可以.如果这个实现了,自然也就能实现胖胖说的回复到前几个回合那的Debug功能了。

其实记录,按关系类型数据库的话就是两个表,一个记录回合信息,一个记录操作信息。

回合信息里有回合数和天气情况.

操作信息里则有战场人物编号(我军到友军\敌军其实都在一场S里有个战场编号的),行动目的地座标,行动方针(攻击,道具,策略,待命),行动子操作(攻击和待命该拦为空,道具是具体哪个道具,策略则是具体哪个策略),然后行动作用对象(待命则该栏为空,其他的就是被作用到的战场人物编号)

记录下这两张表的信息,应该就可以回放,自然就能回转。
顶部
性别:未知-离线 司徒苍月
(kagami☆sama)

越国公
荆南节度使
枢密直学士

Rank: 22Rank: 22Rank: 22Rank: 22
柱国(正二品)
组别 节度使
级别 大将军
好贴 7
功绩 2823
帖子 28883
编号 52341
注册 2005-11-2
来自 创界山
家族 司徒实业




QUOTE:
原帖由 岱瀛 于 2007-1-31 11:26 发表
我最近在研究能不能象CS,魔兽那样,给说岳加一个游戏录象功能.打一关录一个,不过初步尝试了下,视频不压缩,直接保存成临时文件最后整合出视频的话,整个临时文件要过几G,不保存临时文件,直接压缩 ...

单机版,MS大家接触最多的常用数据库就是Office带的Access吧,Dell难道。。。。。。
顶部
性别:男-离线 van

平曲侯泸川军节度使

Rank: 13Rank: 13Rank: 13Rank: 13
柱国(正二品) 工神
组别 节度使
级别 军师将军
好贴 3
功绩 475
帖子 984
编号 25461
注册 2004-11-24


发表于 2007-2-3 16:05 资料 主页 文集 短消息 只看该作者
San11的Debug版本里也有作弊菜单的,应该是开发者测试用的
仙3的CPK里也有一份平衡性测试的结果
至于即时战略的就不用说了,会开发专门的测试工具
顶部
性别:女-离线 慕容雪芸

陈国公主谏议大夫

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
组别 翰林学士
级别 镇西将军
好贴 6
功绩 413
帖子 3835
编号 1011
注册 2004-8-17
来自 九秀山庄
家族 慕容世家


看到外面的,还以为VAN也会掘墓,原业是胖胖提升了
顶部
性别:男-离线 paro
(皮哥)

Rank: 5Rank: 5
组别 士兵
级别 讨逆将军
功绩 6
帖子 615
编号 17220
注册 2004-9-7
家族 肉肉门


哦~!原来是这样的啊~!
N年前玩的英杰终有这样的啊~!
顶部
性别:女-离线 天の夢の雪雪

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 10
编号 224643
注册 2007-10-6


发表于 2007-10-6 22:25 资料 短消息 只看该作者
楼主好强啊,好模拜哦!


图片附件: d1.gif (2007-10-6 22:25, 13.53 K)


本帖最近评分记录
炎帝瀑布碎 2007-10-6 22:32 -5 灌水&发无关附件,浪费资源
顶部

正在浏览此帖的会员 - 共 1 人在线




当前时区 GMT+8, 现在时间是 2024-11-22 01:01
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.018669 second(s), 11 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP