制作手札---RPG是怎样做成的 (四)
发表日期:2007-01-17作者:[转贴] 出处:
-
四月二日:对话系统

经常听见有人说“RPG游戏不就是一个小人在屏幕上走来走去,碰到了人就说两句话吗!”。虽然这种评价有点过于偏激,但是,也从一个侧面反映出了对话在RPG游戏的作用和影响。

客观的讲,人物对话是表现一个游戏故事情节的最直接、最有效方法!而其他的任何手段都无法替代它。例如:过场动画也可以表现游戏的情节和发展,但是,过场动画最适合的是烘托整个游戏的气氛,交代游戏发生的背景或是作为两段情节间的衔接。而在表现游戏中的生活细节、情节线索或是人物心态时,它的作用就远远不如对话了。

说到这里,我突然想说说近来关于游戏的一些感受。玩游戏也有几年的时间了,而在这几年玩过的游戏中,真正能让我难忘的经典之作好象并不多。而国内制作的更是寥寥无几(除《剑侠情缘》外基本上没有什么映像了),为什么这么多的游戏都不成功呢?我的最直接的感受就是粗糙!不是讲画面的粗糙,而是游戏细节的不合理。

举个例子:许多RPG中你可以随意进入别人家中翻箱倒柜而主人却毫不介意;敌人老窝里到处放有宝箱给玩家提供道具和强力装备……这都是不和理的地方。但如果说这些地方玩家们还可以接受的话。那么,当角色突然说出跟自己身份毫不相干的不伦不类的俏皮话时,我想这足以把你玩游戏的情绪破坏的干干净净。

所以想对国内游戏制作公司说一句:当你们在宣传新游戏的投入如何巨大、技术如何先进、规模如何宏伟……的同时,请不要忘了把最基本的地方做好,多体贴一下玩家吧!

好了,废话也说了不少,现在就言归正传。

一般来说,游戏中的对话数据是和执行文件分开的,用了一个单独的文件来存储游戏中的所有对话数据,这样的好处是:修改对话数据时不必重新编译源程序!哪数据的组织结构是怎样的呢?应该说还没有一个统一的规范,各个游戏有都自己的方法,但不论采用哪种方法,只要能够使其简单清晰就可以了。请看下面的例子:

 

例:这是一段主角和兵器店老板的对话摘抄:(摘自文件Talk.txt)

=======兵器店======

[59999]; //老板

{是小飞刀啊,今天到我这里来想买点什么呢?}我随便看看!@;

{我就知道你舍不得花钱,警告你不要打坏主意哦!}真是的!把我看成什么人了!@;

{拿好了,欢迎下次再来!}还有下次,你就是请我来我都不来了!@;

第1行是注释,表明地点。

第2行的[59999]是兵器店老板的编号,在游戏中用该号码唯一标示兵器店老板。

第3行到第5行是三段对话,其中以 { 开头的话是老板说的,以 } 开头的话是主角小飞刀说的,每段对话用 @; 做结束标志。分析一下上述三段对话,我们不难看出:第1段话是小飞刀在买兵器之前和老板的对话;第2段是小飞刀没有买东西就要走,这时和老板的对话;而 第3段是在小飞刀买了东西后,他们说的话。

具体在程序中的过程是这样的:当小飞刀走到兵器店老板面前时,我们按下对话按钮,这时程序得知对话对象的编号是[59999](即是兵器店老板),然后在对话数据文件Talk.txt中查找[59999]这个编号,寻找的结果就是上面我们摘抄的内容。执行第1段对话,然后就转入挑选兵器的界面,退出时程序会自动根据小飞刀有没有买东西而执行第2段对话(没买)或是第3段对话(买了)。很简单吧?短短的三段对话就表现出了一次买兵器的过程,而且通过这些对话,还刻画出了对话者的性格特点,可谓是一举多得了!

这就是游戏中的对话过程,当然,我省略了其中的一些细节步骤,比如:怎样显示汉字、在什么位置显示等等。那是因为这些东西都很简单,自己翻翻书就可以了。


图6 小飞刀与兵器店老板的对话场面

四月六日:打斗和升级系统

虽然"RPG"的字面意义“角色扮演游戏”和战斗似乎无关,但实际上,绝大多数的RPG都是有战斗存在的,因此,打斗系统就成为RPG系统中很重要的一环。通常在RPG中打斗和升级都是联系在一起的,所以就把它们放在一起介绍吧。先总结一下,现有的打斗方式不外乎有以下几种:

一、回合制:这是最古老也是最经典的一种,自RPG诞生它就出现了,而且一直到今天这种打斗方式还经常被采用。它的特点是:简单、轻松,给了玩家充分的时间来思考。而且凭借它的回合制特点可以做出非常华丽的画面效果,给人一种轻松、休闲的享受。不足之处是:缺乏紧张刺激的感觉、真实性不强。代表作有:《仙剑奇侠传》、《侠客英雄传》和《剑侠情缘》等。

二、战棋制:这种方式其实就是在回合制的基础上加入了类似棋盘的格子,人物可以走动,这种扩展带来的好处是:打斗时角色不是站在原地不动,然后你一拳、我一剑的拼血,而是可以玩出一些类似诱敌深入、个个击破的战术来。代表作是:《金庸群侠转》。

三、即时制;现在最流行的一种方式,最大的特点是打斗时不用切换画面,直接在主地图上进行,给人的感觉是真实、刺激。不过实现起来难度要大得多,国外的大型游戏公司比较喜欢采用。其中的《暗黑破坏神》是最成功的一个例子。

还应注意现在出现的一种所谓半即时的打斗方式,这其实也只是回合制的一种扩展,不应单独归为一类,代表作是《阿猫阿狗》。

我列举这些打斗方式的目的不是想说明它们孰优孰劣,而是想告诉大家当你在设计RPG的打斗系统时,应该根据自己游戏的特点来进行选择,不要盲目的追求一种所谓流行的方式,要知道今天的流行并不代表在明天也会受欢迎,只有不断创新的东西才有旺盛的生命力。

和打斗紧密相关的是升级,通常在一场战斗结束后,主角的经验值都会增加。而当经验值到达一定程度时,角色就升级了。这在程序实现上应该是非常简单的部分,但是很多游戏就是因为这部分处理的不好而大大降低了可玩性。为什么这么说呢?要知道我们玩游戏最希望碰到的就是和自己实力相当的对手,太强或太弱的对手都会使我们的兴致降低。所以在RPG中升级的快慢和幅度是一个相当难把握的尺度。必须通过大量的测试来调整,总之,一个原则就是不要让主角碰到的敌人和他相差太大。

以上就是打斗系统和升级系统的介绍,希望大家能够在现有的基础上不断创新,让我们RPG游戏更加好玩。

结束语:

好了,到次为止我们的RPG制作之旅也就告一段落了。如果你还有什么不清楚的地方或是有什么问题,就请通过电子邮件告诉我(wj77@163.net),或在我的主页面上留言(http://www.gpgame.com),我一定会认真回复的。

制作手札---RPG是怎样做成的 (四)相关推荐

  1. 制作手札---RPG是怎样做成的 (三)

    制作手札---RPG是怎样做成的 (三) 发表日期:2007-01-17作者:[转贴] 出处: - 三月二十九日 至四月一日:场景显示及行走系统 如果说'消息处理'是整个程序的核心!那么'场景显示及行 ...

  2. 制作手札——RPG是怎样做成的

    题目: <制作手札--RPG是怎样做成的> 备注: 作者:汪疆 成都金点工作室的首席程序员,你可以到他们的主页了解更多的情况. 文章以程序员的标准角度分析了一个RPG游戏所包含的各个部分. ...

  3. 金点工作室制作手札 :《圣剑英雄传之英雄救美》[ZT]

    金点工作室制作手札 题目: <制作手札--RPG是怎样做成的> 备注: 作者:汪疆 成都金点工作室的首席程序员,你可以到他们的主页了解更多的情况. 文章以程序员的标准角度分析了一个RPG游 ...

  4. gif动图怎么制作?怎么把视频做成gif?

    gif动图怎么制作?怎么把视频做成gif呢?我们经常可以看到很多有趣的动态图片,那这些动图gif是怎么做的呢?下面我就给大家介绍一下如果把一段视频做成gif. 首先我们这里需要的是用视频制作成gif, ...

  5. 短视频如何制作?教程分享,只需要四个步骤

    短视频如何制作?教程分享,只需要四个步骤 现下来看,短视频仍旧是非常受人欢迎的,甚至很多品牌也都开始制作起了短视频,想要让更多人看到自己.而个人短视频作者也越来越多,有的是单纯的想要通过短视频记录自己 ...

  6. 【RPG Maker MV】RPG游戏《机器人养成记》制作笔记 - RPG Maker MV 界面介绍

    上一节,我们已经完成了软件的安装和项目的创建,并成功的运行了游戏. 这一节我们将介绍RGP Maker MV的界面元素和基本的使用方法,让大家对软件有个基本的了解. 我们先回到软件的主界面,界面分成工 ...

  7. 小学四年级计算机制作月历教案,冀教版信息技术四上第1课《制作月历》教案1.doc...

    冀教版信息技术四上第1课<制作月历>教案1.doc 文档编号:236346 文档页数:14 上传时间: 2018-06-03 文档级别: 文档类型:doc 文档大小:120.82KB 制作 ...

  8. HTML+CSS+JavaScript网页制作案例教程-黑马程序员-第四章课后习题(播放器图标)

    黑马程序员编著的教材  HTML+CSS+JavaScript网页制作案例教程 第四章:播放器图标-课后习题参考代码 ........ 记得 关注,收藏,评论哦,作者将持续更新.... 我自己做的效果 ...

  9. CG动画制作——实训项目中期工作(四)

    接下来就是动画中另一个工作量比较大的部分了,龙的动画k帧. 因为没法运用动捕设备为龙这种动物类运动进行模仿,所以这部分动画是由我们进行手动一点点k帧k出来的. 首先,龙的运动与人类是很不一样的,在ma ...

最新文章

  1. PowerPoint中的LinkFormat对象
  2. C#多线程学习之(五)使用定时器进行多线程的自动管理
  3. python中temp_python temp是什么
  4. oracle for循环
  5. 将传统 WPF 程序迁移到 DotNetCore 3.0
  6. 又是一年国庆假期最后一天
  7. ios中解决图片渲染问题
  8. 山大824计算机基础,山东大学2020年考研824计算机基础考试大纲
  9. Microsoft.mshtml.dll 添加引用及类型选择错误问题解决办法
  10. BuildTools下载地址
  11. AVFoundation音视频采集(三)
  12. Mysql命令大全——转自博客园 宁静.致远博客
  13. 华硕笔记本刷BIOS
  14. 为什么wps数字前面有撇号_excel表格中数据前有撇号-Excel 如何去除数字前面的撇号...
  15. 51自学网java壁虎_我要自学网JAVA基础4-26日历补充壁虎老师的完整代码
  16. Elasticsearch:使用新的 wildcard 字段更快地在字符串中查找字符串 - 7.9 新功能
  17. XDOC Office Server 发布 1.1.0 版本,支持 PDF 加水印
  18. 本科毕业设计(论文)外文翻译--采用多病人协调器集设计方法的远程温度监测装置
  19. ISO 26262中的ASIL等级确定与分解(转载)
  20. 趋势策略-三均线利剑

热门文章

  1. Flink常见的关键技术与特性详解
  2. 盘点 6 个 牛牛牛牛牛 的开源项目
  3. EEPROM驱动详解
  4. 软件分享系列之【PS2020下载安装】并持续分享中...
  5. Android弹出选项框及指示箭头动画选择
  6. Spring Security Oauth2 token 续期
  7. 激光甲烷传感器功能简述
  8. 游戏策划学习:新手引导小思考
  9. PhotoShop算法实现--色彩平衡(偏色校正)(一)
  10. .NET基础篇——分部类和分部方法