简单的rpg任务制作

做rpg,这是一个起步的简单例子。
这里我说的RPG是指较简单的,单线或单线多分支RPG。讨论的方法是我接触过,实用的方法,或许还有其他更好的方法,但不在本文讨论的范围。

一 如何开始工作?
首先肯定是制定一个目标。我觉得在作任何设计之前都要设定一个自己想要达到的目标,一个前人的游戏或者一个自己理想中的模型。
在给自己定下一个目标以后对自己将要设计的游戏已经有了一个和感性的认识,是要做的是以剧情见长的游戏,或者以是以系统见长的游戏,又或者以关卡设计见长,再或者以收集……总之定下目标后,起码你有了一个或者一系列风格相近的游戏作为参考,那么你的游风格基本也会比较确定了。
在确定这些东西以后,有两块大的任务要做,系统设计及任务设计。
这两个工作,把那个放前那个放后,其实都没有多大的关系,根据你个人的喜好决定一样就可以。我的习惯当然是先开始yy任务。

二开始任务前的准备工作
这里所说的任务是指什么呢?包括剧情文字,剧情的流程、任务的流程和其他细节。也就是说把系统划掉以后剩余的工作几乎都可以算在任务制作里面了……
然后从剧情的框架开始着手设计。列出准备出场的人物名单,列出准备构成游戏剧情的几个重要事件,列出需要涉及到的地图。列出这些东西,基本上游戏已经有了一个简单的故事框架。
接下来用上面的素材,把脑子里面还比较单薄的主线故事点和人物窜接起来。当作到这一步的时候,你已经可以把出场人物,场景需求做成文档交给美工。
然后是一个很重要的中间步骤——游戏剧本制作。
在之前你写游戏故事的时候,加入了很多旁白,或者心理描述以及简单的地点描述和动作描述,现在在你制作游戏剧本的时候要把这些东西转化成游戏中的表现形式。
比如以下面的形式:

第1幕
地图:精灵之森
主要人物:A、B、C
NPC:D、E、F
滚屏文字
序幕……
任务对话:
A:……
B:……
发生动画:描述……(后面制作成动画文件在这里播放)
NPC对话:
E:……
F:……

有人问了,剧本都写到这个程度,难道才是准备工作么?
对呀,真正的任务制作还没有开始呢……策划是很辛苦的……

三 正式制作阶段
要开始这个阶段,先检查写你手上的这几样资源有没有齐备:
1. 地图切片
2. 地图的连接关系图
3. 任务的转移关系图(也就是以最小单位的任务作为任务点,然后按任务顺序依次连接)

好了我们开始做任务设计。
第一步的工作是制作地图。根据剧情已经知道需要使用那些地图,同一个地区如果在剧情中地形地貌有所改变,那么也的分别制作成两张地图。在剧情中已经确定了出场的人和场景信息,这个时候对于地图的需求也了解得很清楚了。
比如说开始的地图是村庄,那么地图的尺寸应该比城市地图要小。在地图上需要放多少种建筑,多少个NPC……
用前面我讲地图编辑器时候说过的方法,把地图分成,基础层、装饰层、事件层。然后在事件层把该地图的事件点一一标记出来。

这里要特别说明关于任务制作的思考方法。
一般在制作RPG游戏时根据剧情按线性依次往下走,是策划比较容易形成的思维,不过在制作最终程序使用的任务设计文档时,这种线性的设计需要程序的再度加工。而这种再加工就受到程序人为的影响,难免需要后面加强交流来弥补。但是如果在之前就给与程序成品,那么就不需要这个交互过程。
我在交给程序的最终文档中这样设计,把事件按地图、时间顺序分类,比如先按章节来分,第一章使用了那些地图,第二章又使用那些地图,那么他们共有的地图上发生的事件就可以按章节分层,第一章的称为 XX地图第1事件层,第二章的称为XX地图第2事件层。
然后逐步细化,细化到什么程度呢?
细化到事件层上的该事件层上的事件不足以推动任务的进程,需要进入别的地图的事件层,才能改变当前事件层的转换。这是一个什么样的概念呢?我们用最终的形态来说明。

在1事件层与所有NPC都对话了,然后NPC们已经开始重复以前的对话,显然任务NPC也是,他要你去做啥做啥,不然就不和你说别的话。你必须到另外一张地图,和别的NPC对话,满足了前面NPC的要求再回去,和原来地图的Npc说话,此时使用的不再是事件层1,而是继承了1事件层不变的内容加上改变的内容而形成的基于该地图新事件层2,并且这一事件层也是策划事先设定好的,也就是任务的流程转变成建立在各个地图上事件层的转移,比如下面这样:
事件层1----〉事件层2----〉……

这也是为什么要把任务以最小单位来划分的原因,因为一般大任务会由几个小任务组成,并且跨了几个事件层……这样就不好列。
从以上的描述大家大致可以知道,任务的流程被我按照地图和,最小事件单位划分成了很多小层面,这样程序使用的时候只需要建立事件层的逻辑关系,整个游戏就按照策划的设定往下走了,甚至程序都不用知道游戏里发生了什么就已经把游戏做完了……

有人问了,为啥要那么麻烦?
对了,这里补充这种做法是针对手机内存和cpu资源较为紧张的情况考虑的,pc的话不需要怎么麻烦,比如所有对话和判定条件集中在主角身上,NPC和任务点设置特别顺序的标号也可以完成任务的流程,不过程序上每时每刻都需要对玩家状态进行判断并且调用的资源也得不到释放。所以上面的方法在手机RPG制作较为庞大任务时使用可以获得比较高的效率(代码效率、开发效率)。

另外一个好处就是,这个过程相当于策划把自己的游戏完整的解体然后重组了,可以避免遗留下较多的逻辑bug。

回过头,我们继续要做的事情。
在地图上按事件层标记出事件点,并且一些少量的装饰层的变动也可以放到事件层中标记。比如A君原来出现在地图左上角,在另外的事件层却出现在右上角,那么这个可以列作改变的事件之一,在事件层中实现该动作。
标记完事件点,开始给NPC加对话,这个时候NPC已经抽象成不同事件点发生的对话事件,这个事件呢无非就是,玩家触碰NPC弹出对话信息。设计时在信息中加入特殊的标记符,就可以控制对话头像,文字颜色。完成任务后改变事件层的状态,事件层就自然地推进到下一事件层了。
对于,选择和分支,其实也是在事先就要设计好的,在这个事件层中选择了什么分支后造成什么改变。
比如,A君在大任务中的倒数第二个任务是与B君对话,最后一个任务是与C君对话,但是,在B君的对话中有选项会导致任务提前结束或延续,这样只要在设计时,按两种分支设计后续的事件层转变关系就可以实现了。
这里,要特别说明一下,事件层的层次关系,越是底层的事件层玩家越早碰到,上层的在不特别说明的情况下继承下层的设定。也就是说如果在1事件层与A君对话,完成后对话内容改变成,但是在2事件层内未设置A君对话内容,那么其对话内容延续到2事件层,所以玩家只需要设置任务NPC和任务事件点的改变内容就可以了。

一般来说事件层包含以下信息:
1. 地图的连接关系(与相邻地图的入口及入口的开关情况);
2. 地图开关(这里的开关是指通用事件。比如陷阱、遇敌等);
3. 事件点,事件内容(对话、获得、伤害……以及其他状态的改变);

实例如下:

Map 014 入口:
入口 22,24 门 |2应该就是这里,这不祥的感觉从来没有那么强烈过 |9 
对话后移动:
Map 015 20,46

Map 015 入口:
入口 19,1 门 |3一股无形的力量阻止了你!这里被封印了.|9 

对话后移动:
Map 015 19,2

Map 029 宝箱:
宝箱 18,16 宝箱 |3得到半块光滑的圆盘.|9 

对话后修改对话内容:
宝箱 18,16 宝箱 |3宝箱已经空了.|9 

Map 015 入口:
入口 东门
47,21 map 016 1,14
47,22 map 016 1,14
47,23 map 016 1,14 |2里面有人 !|9 

对话后移动:
Map 016 3,15
发生对话:
|1[冒险者]你是谁 你也是来抢宝物的吗 那么对不起,你就是我的敌人!|9 

Map 016 入口:
入口 西门
0,13 map 015 46,22
0,14 map 015 46,22
0,15 map 015 46,22
0,16 map 015 46,22 |3出口被冒险者封住了!|9 

对话后移动:
Map 016 1,15

Map 016 宝箱:
宝箱 18,16 宝箱 |3宝箱被冒险者封住了!|9 

如果,程序的经验比较丰富,再辅以一定程度的任务脚本,这样策划制作的任务流程,完成度就更高了。
开发最终的效果就像是,策划搭建了框架,然后把各种编辑器制作的文件,按任务的顺序,依次填写到对应的位置,最后程序来完成一些特别的设计,并且打包。然后,游戏的第一个版本制作完成了。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值