游戏开发论坛

 找回密码
 立即注册
搜索
查看: 16762|回复: 48

[讨论] 给我一个布尔数组,我会让游戏世界更真实。

[复制链接]

42

主题

861

帖子

871

积分

高级会员

Rank: 4

积分
871
发表于 2007-3-6 22:20:00 | 显示全部楼层 |阅读模式
“真”和“假”可以用来判断世界的万事万物,尝试给你的游戏系统加入这样一个数组,一个游戏设计师便能为你展示出一个更加真实的游戏世界,虽然这并不是什么新鲜事,但很多设计师并不重视这些。

为什么加入这样一个数组可以让游戏世界更加真实?做为一名游戏设计者,那我就用游戏世界的角度来表述吧。

  你,做为一个冒险者,经过长途跋涉途径一个村落时,此时的你应该做些什么?如果我是你, 我就会找一间热闹的旅馆好好品尝一下那里的特色酒菜,顺便打听一些奇闻趣事或当今王子与某个幸运灰姑娘的八卦新闻。于是你向旅馆老板要了一壶枯涩的李子酒和一盘茴香烤鹅。对于你这样一个外地人的奇特品位(通常来讲李子酒和茴香烤鸭都不是当地村民爱吃的食物,不过偶尔会有过往的旅行者点名要这些,就像你一样。不过对于当地人来说喝下这种这种苦涩的液体就像是英雄屠龙一样象征着的一种荣耀。) ,酒馆上下都会对你刮幕相看,投来崇拜的目光。因此当你在这个村落休整的这些日子中,每天当中的每一餐都会向酒保索要这样一壶酒时,精明的旅馆老板一定会想认识你,用笔记下你的大名,你的外号(比如你的外号就叫李子酒终结者),并为你建立一种VIP制度,那么当你离开这里而后在不久之后又重新回到这里时,就会出现这样一种对话:

  “嘿,我的老朋友,XXX(地名)的李子酒终结者,欢迎再次回到XX旅店(比如:任性李子),呃……你一定是想要一大壶可口的李子酒吧(其实旅店老板认为与其让他喝口李子酒,不如一刀捅死更人道),对了 还有一分茴香烤鸭吧?(他翻了翻看面前的VIP帐目表)”
   
  “你真是我肚子里的蛔虫啊,老XXX(这里指旅店老板),我走了这么久,总算又能好好享受一翻了!我早在村外就闻到了李子酒的那独特的香味啦(李子酒其实一点都不香)!”

对于这样的对话是不是比那些单调的,永远不变的对话更让玩家充满乐趣,更让这个幻想世界合理可信呢?答案显然是肯定的。

在这样一个布尔数组中,便有这样一个表示“你是否买过李子酒”的布尔变量,当“你”买过李子酒时它就会被赋值为“真”(初始为“假”),当你再次向旅馆老板购买该酒时,系统会因为这个变量的值被改变而会使旅店老板对你产生同以往不一样的反映。

这只是一个“你是否买过李子酒”布尔变量,如果对同一个事件加入不同的更多变量或其他可能条件,那么NPC与玩家交互起来会更接近真实,会使得玩家感受到这个世界像真的一样。

PS:这就是经典BG系列的对话方式。



[em3]

49

主题

1388

帖子

1432

积分

金牌会员

Rank: 6Rank: 6

积分
1432
发表于 2007-3-6 23:22:00 | 显示全部楼层

Re:给我一个布尔数组,我会让游戏世界更真实。

好象以前发过类似的贴

http://bbs.gameres.com/showthread.asp?postid=324732

基于优先级淘汰的NPC智能对话

4

主题

192

帖子

198

积分

注册会员

Rank: 2

积分
198
发表于 2007-3-7 09:58:00 | 显示全部楼层

Re:给我一个布尔数组,我会让游戏世界更真实。

=。=

现在的人怎么都喜欢玩概念?

就是不同条件对应不同结果嘛。并且可以把条件自由组合,生成有趣的结果而已。

看布尔,还以为用某个经典的布尔代数来解决一类问题呢。。。

20

主题

182

帖子

182

积分

注册会员

Rank: 2

积分
182
发表于 2007-3-7 10:08:00 | 显示全部楼层

Re:给我一个布尔数组,我会让游戏世界更真实。

除了运用与对话外,也可用于怪物行为等其他方面.A怪物本身是被动攻击类型,它被B玩家打个半死后逃跑成功.待半年后B玩家故地重游时,A怪物一下变为主动攻击,并且攻击力倍增,"你Y上次把我打个半死,我今天非好好教训你不可!!"
但是网络游戏如果需要处理这么多判断的话,无疑增加了服务器负担
游戏还是游戏啊,不是真实世界

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2007-3-7 14:47:00 | 显示全部楼层

Re:给我一个布尔数组,我会让游戏世界更真实。

如果: 记录用户是否买过"李子酒"需要一个布尔变量,并且需要在数据库长期保存,以便用户下一次进入游戏后还能根据此变量做出判断.则:需要为角色的数据表增加一个字段.如果要记录用户对n种物品的购买情况(或者n种行为的进行情况),就需要为角色的数据表增加n个字段.

不是说要实现这个有多难,而是有多大必要?需要在效果和成本之间好好的权衡.要实现NPC对话的分支和变化有很多方式,为什么一定要增加新的数据字段(也就是你说的布尔数组)?比如你可以利用其他的角色状态及属性信息.

另外,不知道LZ是思维受了局限还是觉得"布尔数组"这个词看上去很"专业"------为什么一定要是布尔类型的呢?真和假确实可以概括万事万物,但涉及到特定的内容时还是不如用"具体数值"直观的------这也是当今的高级编程语言都提供多种类型的变量而非只有"布尔"一种的原因.

42

主题

861

帖子

871

积分

高级会员

Rank: 4

积分
871
 楼主| 发表于 2007-3-7 15:14:00 | 显示全部楼层

Re:给我一个布尔数组,我会让游戏世界更真实。

当然,加入布尔变量数组是一种解决方案,但很多时候一个布尔值是无法完全解决问题的。还是拿“你是否买过李子酒”的问题举例,如果这个问题变成“你是否已经买了一打李子子酒”,那么,显然就需要另一个整型变量来记录“你一共买了多少李子酒”。在文章后面我有这样一句话“如果对同一个事件加入不同的更多变量或其他可能条件”,那么这就是“你是否已经买了一打李子子酒”的问题了。

因为布尔值只占一个bit,它是所有基本数据类型所占空间最小的一种,我的文章初衷是建议让你的系统至少应当加入一个这样一个布尔数组,正如同文章中的实例一样,仅仅加入一个“真”和“假”的变量,就可以让整个游戏世界变得更加真实。这只是一种抛砖引玉似的阐述,如果尝试加入更多的东西,那游戏的真实性是自然会更好。

16

主题

228

帖子

228

积分

中级会员

Rank: 3Rank: 3

积分
228
发表于 2007-3-7 15:29:00 | 显示全部楼层

Re: 给我一个布尔数组,我会让游戏世界更真实。

大家玩家 一般都不太 重视 故事剧情 和发展。

对于任务设计来讲,最终要的 还是在剧情中给予语言 提示 就够了。。

很少有玩家喜欢看剧情的。。

我在玩WOW时 甚至还在想 把联盟和部落所有的 任务 都写下来 编成 “商品” 去卖

158

主题

2107

帖子

4239

积分

论坛元老

先知

Rank: 8Rank: 8

积分
4239
QQ
发表于 2007-3-7 16:05:00 | 显示全部楼层

Re:给我一个布尔数组,我会让游戏世界更真实。

WOW里,角色在某阵营声望提高一个级别,和该阵营NPC的对话也不一样,其中也是有这个判断的吧。

42

主题

861

帖子

871

积分

高级会员

Rank: 4

积分
871
 楼主| 发表于 2007-3-7 16:08:00 | 显示全部楼层

Re:给我一个布尔数组,我会让游戏世界更真实。

怎么说呢,当玩家第一次接触一个全新的任务的时候,我相信他(她)还是会认认真真地看玩任务剧情了,如果游戏的任务很有内涵,很有特点,我想没人会错过这样一道美丽的风景线的。之所以“很少有玩家喜欢看剧情的”其实是在剧情本身不够出彩,缺少乐趣和内容。

PS:RPG贵在任务系统。

5

主题

42

帖子

47

积分

注册会员

Rank: 2

积分
47
发表于 2007-3-7 16:10:00 | 显示全部楼层

Re: 给我一个布尔数组,我会让游戏世界更真实。

布尔数组在游戏脚本中只是9牛1毛吧?听起来好象就是全部,太过了吧!而且对于Bool变量用数组保存不划算,用位来表示比较好! 比如32位机int 是4字节32位 每个位表示1个bool值,一个int就是代表32个bool了!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-14 01:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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