游戏开发论坛

 找回密码
 立即注册
搜索
查看: 8614|回复: 21

[讨论] 策略类网游战斗方面的设想

[复制链接]

10

主题

81

帖子

143

积分

注册会员

Rank: 2

积分
143
QQ
发表于 2009-12-18 18:15:00 | 显示全部楼层 |阅读模式
还是先以《三国风云》为例,三国风云的战斗就是选择兵力——选择目的地——出发——根据和目的地之间的距离计算出到达所用的时间——时间到了以后双方兵力进行比较,直接返回战斗结果。
这样设计的好处是节省数据计算量,因为《三国风云》中每个玩家都可以同时派出几十只部队,而且地图没有地形一说,所以只需要知道部队行进速度和两地之间的坐标距离,就可以算出行军时间。战斗结果也仅仅是双方战斗力对比瞬间返回结果,也就是说任何战斗在兵力同样的情况下(包括城防、将领各种加成),结果是唯一的。
--------------------------------------------短暂的分割线-----------------------------------------------
这样设计使得战斗的策略性下降,例如阻击战等是无法实现的。
没有地形差异的设计让战略要地等战争中重要因素无法体现。

我的提议是:减少单个玩家派出部队的数量(虽然现在《三国风云》采用了传令兵制度来减少玩家出兵次数),改为出兵必须得有将军率领。——设计目的是减少出兵次数给服务器增加负担,带来的问题是引起玩家掠夺死羊的次数。
为了改变这个弊端,可以让玩家掠夺死羊殖民地化。也就是说可以派出部队长期驻扎在死羊的城,掠夺的资源自动运输。
第二个提议是,增加联军设计,同一联盟不同玩家,在同一地点的兵,可以由指定玩家(或者某几个)的将领统一指挥,一支部队可派多名将领,但同时只能由一人指挥部队。部队的行军也不再是单纯以时间计算到达目的地。而是在地图上显示出来。这样可以增加遭遇战、阻击战策略的使用。而且增加了地型设计的情况下,可以把守隘口等。“华容道”等将变为可能。
战斗结果也不再是瞬间判断结果。如果为了简单,可以只改成双方损失按时间累积。如果一方认为情况不妙,可以选择撤兵,如果移动速度快,则可脱离战斗,如果速度慢,则依然会被对方追击。在决策的时候,如果部队有多名将领,可对部队进行拆分,一部分殿后,一部分撤退。
如果想做更复杂的设计,可以引入阵型系统。关于阵型的设计和应用,我先不说了。方案有几个但是到底哪个好,还有待斟酌。
--------------------------------------------没有名字的分割线-------------------------------------------
还是希望大家多提意见和建议,哪怕是我哪点没有叙述清楚。如果讲不出什么的,干喷还是算了。没有任何意义。
如果已经有这种类型的游戏了,就当我没说吧。

7

主题

302

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
发表于 2009-12-18 22:37:00 | 显示全部楼层

Re:策略类网游战斗方面的设想

LZ可以玩一下《热血三国》和《武林三国》,部分概念已经实现了
在地图上显示部队一点也不难,《天空左岸》就做到了,但显示和计算路径根本不是一个概念,大地图上如果要设计遭遇战,那么就需要让每队独立士兵成为一个独立单位,需要定时检查每个正在移动单位的遭遇触发范围……这个检查几乎是不能完成的。

有鉴于负载上的成本过高,该设想目前恐怕很难实现。

7

主题

302

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
发表于 2009-12-18 22:43:00 | 显示全部楼层

Re:策略类网游战斗方面的设想

遭遇还有一个很可怕的问题,那就是如果三方人员在同一时刻同一地点相遇,如何判断战斗流程?
四方?五方?……
以此类推。

瞬间计算的对网页游戏是必要的,因为不可能每场战斗过程玩家都在线。在线的时候增加过场指挥就可以了。

至于联军……既然指挥权都变了,不是等于将士兵赠送给另一方么?联军战斗时候的伤害扣减怎么计算?先扣友军的再扣自己军队的?

这些问题请都想一想在提什么方案……

10

主题

81

帖子

143

积分

注册会员

Rank: 2

积分
143
QQ
 楼主| 发表于 2009-12-18 23:28:00 | 显示全部楼层

Re:策略类网游战斗方面的设想

三国时期没有远距离兵种,可以只设计为非友军在同一地图格内的时候战斗发生,计算方法可以从现在的一小时走多少格改为,多长时间走1格。比如10分钟走一格,那么就是每过10分钟,部队移动到下一地图格。
关于检查战斗是否发生的问题,每个地图格都应该有各自的属性,只要检查地图格上的部队数量和关系就可以了。
即使有远距离兵种,也应该是可以设计的吧。《三国志11》的战斗模式在网游中无法计算?
战斗流程还是分己方和对方,己方=友军+盟军+自己的军队,敌方=非友军的总和。
战斗过程是时间为持续计算,但是玩家不可控制战场内发生的事情,所以和玩家是否在线无关。
军队扣减是按照己方防御和敌方攻击值的递减来计算的,返还的结果是一个回合(可以是一分钟也可以是一小时,可以灵活掌握)的兵力减少的百分比。比如一回合损失1%,然后下一回合根据当时的兵力对比进行下一次计算。
能提出意见和建议是好的,但是我再强调一遍,我没写出来的东西不代表我没想到,更不代表我想不到。

27

主题

1289

帖子

1374

积分

金牌会员

Rank: 6Rank: 6

积分
1374
QQ
发表于 2009-12-18 23:31:00 | 显示全部楼层

Re:策略类网游战斗方面的设想

哈哈哈哈


教育的好

27

主题

1289

帖子

1374

积分

金牌会员

Rank: 6Rank: 6

积分
1374
QQ
发表于 2009-12-18 23:31:00 | 显示全部楼层

Re:策略类网游战斗方面的设想

话说好久没看到幻听了

最近也出来冒泡

7

主题

302

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
发表于 2009-12-19 00:24:00 | 显示全部楼层

Re:策略类网游战斗方面的设想

?辶恕? 丫完全就是自说自话……《三国志11》是网游么?


7

主题

302

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
发表于 2009-12-19 02:27:00 | 显示全部楼层

Re:策略类网游战斗方面的设想

睡觉前很无聊的来调教一下新人吧……

1 移动的问题
实时判断移动是个人都会想,为啥实现不了?在这里可以肯定LZ在计算机知识上是有欠缺的……(我多婉转)
我们使用走格子来处理这个问题,首先,格子有没有自我判断能力?我们假定它有,那他就是个对象,它会判断有军队进入它时给于什么反应,也就是说,它负责发送消息。
军队是不是对象?我们假定它是……事实上这个定义会很复杂,但是可以实现。
给军队一个命令,让它从C地移动到D地,军队这个时候会计算移动时间,当时间到达时通知D地,让D地来返回他应该做什么。
通常情况下这样就结束了。
但是我们需要军队在地图上移动,是存在路径的。OK,那么首先需要一个寻路规则,军队该怎么走?这个嫌麻烦,那我们让玩家一步一步确定每个点,产生一个移动序列。好,原本一个计时器和目标点的移动变成了一个列表。这是负载之一。
军队开始移动了,移动每一格的时间需要计算,OK,这里换一下,我们认为每格的时间都是10分钟。那么我们可以确定,每10分钟,军队需要和地格通信一次,告诉地格自己移动了,并判断是否有其他事件需要处理。假设我们移动了10格,需要100分钟,这100分钟内需要通信10次,每次都产生一次地格的检测判断。原本一个军队移动只需要判断一次,现在变成了n格次,这是负载之二。
如果军队移动过程中没有任何消耗,那么军队会在地图上无限移动,造成负载急速提高,那么我们必然会限定移动有消耗,假设为军粮,每格消耗m,这增加读写和判断内容,姑且合并到负载二里去。
下面进入重头戏,遭遇战,怎么判定遭遇呢?最简单的方法是两个军队同时出现在一格里,即第二个军队移动到目标格时,该格的军队尚未完成移动,OK,那么开战。
假设战斗瞬间结束,一方被歼灭,那完事大吉。如果有一方不战而逃呢?好吧,我们禁止不战而逃。这个问题解决了。
但是LZ会觉得瞬间结束不好玩,需要延时战斗,还允许撤退……那么问题就来了,在战斗过程中第三个到达的军队怎么办?友军?不,第三个军队和两边都是敌军!俄……需要补充规则。(这里请注意,为了停止战斗,撤退的军队必须移动到另一格,这就形成瞬间移动……当然,可以增加一个败退的标记来停止触发该军队战斗……总之会很麻烦)

这只是面对单支军队的处理。
虽然一只军队的处理量从一次移动一次命令变成了一次移动n格命令,看起来不多……但是每次地格给出的判断量是一样的。关键不在于这个……而是命令频率,假定CPU的处理速度是每秒100个指令,在军队数量为100的时候可以保证每秒移动一次,那么通常一个服务器需要多少军队呢?我们假定他是10000,那么100秒就处理完了,这还不包括玩家其他的操作指令。只是指军队。
但是如果每个军队的移动变成了n格命令量,麻烦的地方在于指令频度瞬间提高了……原本100分钟的指令频度变成了10分钟,10倍。我们在不考虑其他问题的情况下,认为服务器必须减少10倍的军队数量才能正常运行。(这么算很不正确,因为距离越长,每格处理的成本提升就越高)

……如此,以目前的技术能力,无法实现实时移动。不知道我解释的够不够清楚?

还有诸如显示读取,同步传输等一系列通信负担的增加我都没好意思算……

另:热血三国已经有野外占领了……这样的好处是没有那么多通信……
再另:热血三国的战斗已经有过程了,能指挥到单种士兵的行动策略,30秒一回合

设计很成熟,废话就不说。以上纯属教学。


2 所谓联军
假设联军有三方,分别有1个士兵,每个10点血,战斗时对方造成10点伤害,死人吗?怎么死?


我相信LZ真想过,但是光是想过就行了?……

8

主题

897

帖子

902

积分

高级会员

Rank: 4

积分
902
QQ
发表于 2009-12-19 09:54:00 | 显示全部楼层

Re:策略类网游战斗方面的设想

总斑竹的公司旗下有个游戏叫星际文明,LZ可以去玩玩,不过需要下载20M的客户端

3

主题

320

帖子

353

积分

中级会员

Rank: 3Rank: 3

积分
353
发表于 2009-12-19 10:28:00 | 显示全部楼层

Re:策略类网游战斗方面的设想

几乎所有的三国游戏都是travian的本地化版,不说也罢....
至于部队的大地图遭遇,或许是有办法通过优化算法来实现的.当然,碰撞检测的频率要低.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-14 18:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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