设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 4492|回复: 11
打印 上一主题 下一主题

[策划构思] 脚本ARPG程序流实现方法!个人见解。

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1316
在线时间
831 小时
注册时间
2007-12-25
帖子
1558
跳转到指定楼层
1
发表于 2012-9-3 16:26:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 九夜神尊 于 2012-9-3 16:28 编辑

前言:
很多人都在写ARPG,然后一坑又一坑,就算填平了坑,效果也不尽人意!(虽然我也有坑,坑也比较坑!)
很多人都有不同的思路。

不过我在这里说的是我个人对ARPG程序流的实现构思。以作拍砖引玉(拍?)!!!

会用到的词汇:
主角:接受玩家控制的对象
敌人:和主角对立的对象,也许以上有不对的地方,希望不要在意,什么是主角敌人大家都懂。
角色:主角,或者敌人,当前描述的对象。
行动:角色在做什么,比如说走,跑,跳,打,挨打,死了……
      根据复杂的程度,角色的行动是唯一的,或者不唯一。比如说跳跃过程中攻击,可以说是跳跃+攻击,也可以说成跳起来攻击。
      但是行动唯一实现起来简单的多。
攻击器:由攻击生成的一种概念化的东西,以下会详细描述。
状态:角色收到的状态,冰冻,中毒等等。
结构:

首先,ARPG第一个让人去设计的就是我方砍的动作!或者动画。于是我就从这里下手开始讲。

一起来分析砍这个动作的前前后后!
1:按下某功能键后实行攻击,于是主角开始攻击。
2:系统开始检测攻击范围内是否有对象。
3:对捕捉到的对象伤害,动画!!
以上流程,大概就是用事件也这么做的吧?


如果你打算做一个比较流畅的ARPG。那么就应该细化以上的步骤


1:不变,按下某功能键后实行攻击,于是主角开始攻击。


2:主角开始攻击,主角进入攻击行动


3:进入攻击行动后按步骤更换主角动作,以及在适当时候播放应该播放的动画。
    于是我要好好讲讲这个步骤3。
    就像事件一样,角色进入攻击行动以后,开始执行攻击行动里面的每个步骤,举刀,挥刀,播放刀光,攻击。
    那么其实在任何行动都可以这样,让任何行动分解成一个个步骤。比如说使用技能,举杖,吟唱,播放魔法阵,挥杖,魔法落下。
    无论主角在做什么,都处于一种行动当中,静止,走路,跑步
    那么例举这几个行动,
    静止:基础行动,主角没有别的行动的时候,回到这个行动,该行动为循环行动,循环更改角色动作,同时该行动接收任何信息。(按键,
    是否按下,鼠标等等)
    敌人的静止行动不太一样,敌人不接受按键信息,但是接受由AI传送来的消息。
    走路:当按下移动键(可以是方向键也可以是鼠标,总之就是玩家操作移动了。)该行动为循环行动,循环更改角色的动作,同时该行动接受部分消息。(
     移动键放开,跑步键按下,攻击键?(大家想想,移动中能否攻击,和这里是否接受攻击键什么关系。))
    跑步:当按下跑步键(移动键+XX键??)该行动为循环行动,循环更改角色的动作,同时该行动接受部分消息。:不在熬述重复的东西。
   
    以上几个行动如果大家都理解清楚了,别的行动我想都不在话下了吧?

    每做一个行动,就编写一套动作。以及该行动所接受的按键。


4:系统开始检测范围内是否有对象。
   这里我要讲一讲,什么是攻击。我一圈打过去,那么在我拳头的位置,会受到攻击。
   我一刀砍过去,在刀的范围内,会受到伤害。然后我就引进了一种叫攻击器的概念。
   攻击器:由攻击生成的一种概念。该事物也许可见——火球。也许不可见——出拳。凡是要对敌人或者队友造成影响(好坏?、)都需要攻击器,。  
   攻击器有自己的行动模式,比如说火球,火球会向同一个方向运动,同时可以飞过水面,当撞到敌人,或者墙面时产生爆炸。
                           比如说法宝,它会围着主角转等等。
   攻击器有自己的攻击范围——用刀砍的时候,对面前一定范围内的敌人造成伤害,于是,刀砍的范围为主角面前一定范围。
   激光攻击的范围为一条线,炸弹攻击的范围为一个圆……。为所有的攻击都设计一个攻击器吧!
   

   攻击器也是为一种角色,它拥有像角色一样的能力,也可以拥有行动(静止,移动,转动,反弹等等……),也可以产生新的攻击器(分裂型,台式坦克系统,台式激光系统,火墙(玩过传奇的 懂))攻击拥有攻击时机,当攻击器行动步骤到攻击的时候,攻击器会将范围内的对象执行攻击。
   攻击器会消亡——火球爆完,一刀砍完,然后什么事也没了,这就是攻击器的消亡。
   攻击器也可以作为障碍系统,拦路石等。
   攻击器也会播放动画,声音等等。
   攻击器也可以接受按键(比如说定时炸弹)   
   攻击器有自己的角色图像。

   总之,攻击器和一般角色一样,除了它会消亡!还会攻击。

   那么,如果让主角用刀砍的话,那么在挥刀的时候就应该产生普通攻击的攻击器了。
————————————华丽的分界线——————————————————————————————————————————————————————
动画播放器:
ARPG的动画,必须脱离主角的束缚,别不懂,一刀砍上去,是在敌人身上出刀光,还是出了刀光敌人在刀光范围内哪个更真实。
即时没砍到敌人,也应该播放刀光不是??
伤害显示器:
所有的伤害由这里显示给玩家。
AI管理器:
如果是把敌人的AI放到敌人对应的事件里,那么这敌人就永远是一个敌人,不会懂得战术。
这里讲一讲AI管理器如何实现!
AI管理器存在于地图场景中的一个对象。
不断地搜索一定范围内的敌人作为控制对象(优化,要不一个地图几百个敌人!!!管理器爆了)
查看这些敌人是否已经有任务。如果没有任务,指令敌人寻找任务
或者直接给敌人布置任务。
如果有任务,就指令执行任务(寻路,放弃任务……)
敌人AI
敌人AI听从AI管理器的指挥。
敌人AI很简单的条件执行。比如说HP多少使用什么技能,开关啊,变量啊,限制技能等等!
寻找任务,在自己可执行的范围内,随机抽选一个提交给AI管理器。
执行任务,按照任务步骤逐步执行(比如说使用火球打主角,的步骤就是朝主角移动并检测距离,若足够近,则释放火球。任务结束)
放弃任务,若改任务难以完成,当前任务会放弃,转而执行另一个任务。



以上是我写ARPG的时候的经验也许大家都会不过拿出来分享,以作为抛砖引玉,
以获得更多的ARPG流程构思!也希望写ARPG的童鞋们有坑不坑。
精卫赤龙腾   
总是存在一种强大,去完成似乎不可能的事情.
无畏战乾程   
或是需要一种勇气,去挑战几乎不存在的胜利.
一味玄真魂     
这是拥有一种恒心,去化解根本没有解的困难.
烈卫开天径    
只是带着一种决心,去争取残存的最后的希望。

Lv1.梦旅人

梦石
0
星屑
49
在线时间
757 小时
注册时间
2006-2-22
帖子
321
2
发表于 2012-9-3 21:57:20 | 只看该作者
分析得还很细致。不错
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
10
星屑
10955
在线时间
1400 小时
注册时间
2010-8-31
帖子
571

开拓者

3
发表于 2012-9-3 22:38:22 | 只看该作者
實際上做起來也會比較困難不是麼,需要判定的東西不少,此外ARPG的間接攻擊(如射箭)也比較難判斷吧。

点评

我估计你不可能想出来任何实现不了的东西。  发表于 2012-9-4 12:23
相比起做游戏,更热衷于素材的加工呢。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
20 小时
注册时间
2012-9-3
帖子
23
4
发表于 2012-9-4 16:13:42 手机端发表。 | 只看该作者
我想說事件都是這樣做的......
但說到攻擊範圍我就不知怎樣做了...

点评

这些不会为事件ARPG提供任何帮助。  发表于 2012-9-5 11:05
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
246 小时
注册时间
2011-12-11
帖子
260
5
发表于 2012-9-4 18:11:27 | 只看该作者
看了上面那些咱觉得可以整理下= =
首先分成两大部分:数据、画面。数据就是处理游戏内部逻辑的啦。画面就是负责那些东西怎么显示包括动画管理和伤害显示一类……
数据这边最基本的结构可以叫做“单位”,包括主角啊敌人什么的还有一些可以破坏不能破坏的障碍物和推的箱子等等都可以放在单位里面……不同的单位有不同的属性就是啦,但是因为它们都遵守游戏的物理规则,并且大多数都有HP等等类似的属性,于是就放在一起了什么的= =
另外一种比较基本的结构大概可以是“事件”,每一个事件都有它的坐标、发生条件和所关联的单位等等的东西,文章里的攻击管理器一类也可以作为事件来处理……
比如发动技能的时候,发动技能的单位就设置状态为“发动技能”,并且添加技能的事件。在以后的刷新当中,单位逐渐发动技能完毕,那个技能的事件也向着它的目标飞去,当它和目标发生碰撞,事件触发,目标就受到了技能效果……
而处理图像的引擎可以监视数据的变化,根据各个单位的不同状态以及场景上的事件来描绘不同的图像嗯……或许这样会不错0 0?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1316
在线时间
831 小时
注册时间
2007-12-25
帖子
1558
6
 楼主| 发表于 2012-9-4 19:43:51 | 只看该作者
琪露诺 发表于 2012-9-4 18:11
看了上面那些咱觉得可以整理下= =
首先分成两大部分:数据、画面。数据就是处理游戏内部逻辑的啦。画面就是 ...

恩,要把所有的东西理清,这样坐到后面才不会疯掉。

点评

自己也是随便想了下觉得如果要认真研究和设计ARPG的数据结构可以有很多很多的篇幅了……  发表于 2012-9-5 17:47
精卫赤龙腾   
总是存在一种强大,去完成似乎不可能的事情.
无畏战乾程   
或是需要一种勇气,去挑战几乎不存在的胜利.
一味玄真魂     
这是拥有一种恒心,去化解根本没有解的困难.
烈卫开天径    
只是带着一种决心,去争取残存的最后的希望。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
80 小时
注册时间
2009-6-5
帖子
16
7
发表于 2012-9-5 22:19:07 | 只看该作者
炎紅之閃光 发表于 2012-9-4 16:13
我想說事件都是這樣做的......
但說到攻擊範圍我就不知怎樣做了...

攻击范围(事件):
①圆形:构造以角色坐标为圆心O,敌人为圆区域内一点P,|OP|²≤(攻击半径)²;
②直线:满足(a)两点一坐标相等,(b)另一坐标差小于攻击距离的绝对值
③三角形、椭圆、弧形、七七八八各种形等:做线性规划,找约束条件,使目标点进入攻击区域就行~
如:
总之事件脚本差不多,但是事件弄要麻烦一些~
———————————————————————————————————————————————
文不错
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
246 小时
注册时间
2011-12-11
帖子
260
8
发表于 2012-9-6 17:49:45 | 只看该作者
yuminhao007 发表于 2012-9-5 22:19
攻击范围(事件):
①圆形:构造以角色坐标为圆心O,敌人为圆区域内一点P,|OP|²≤(攻击半径)²;
② ...

嘛……咱觉得规划太耗了= =似乎木有必要的样子0 0?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

沉睡的八宝粥 

梦石
0
星屑
64
在线时间
832 小时
注册时间
2011-4-22
帖子
2996

短篇七萝莉正太组季军

9
发表于 2012-9-6 19:18:48 | 只看该作者
已经开坑,后面会借鉴的......
(全事件终于感觉辛苦了)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
80 小时
注册时间
2009-6-5
帖子
16
10
发表于 2012-9-7 00:23:44 | 只看该作者
琪露诺 发表于 2012-9-6 17:49
嘛……咱觉得规划太耗了= =似乎木有必要的样子0 0?

规划算比较呆的算法吧,,难度低、操作麻烦,,
感觉小区域直接穷举组成就行。


求解——还有没有其他更优的算法?{:2_253:}
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-27 12:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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