[设计思想] 游戏系统设计思路的牢笼 一味追求实用性

本文探讨了游戏设计中的实用性和趣味性的平衡问题,通过对比国内外游戏设计思路,强调了以玩家体验为核心的重要性。文章以Dota类游戏英雄设计、RPG游戏生活技能设计及Boss设计为例,阐述了如何创造富有乐趣的游戏元素。


在我们设计游戏系统的时候,经常会被自己关进一个牢笼,那就是过分考虑一个系统的实用性。我们尽可能多地去思考这个系统如何结合到一个游戏中去,希望他发挥这样那样的作用来影响玩家的收益,由此还能挖出不少坑来,可是却忽略了游戏产品本身,玩家最大的收益就是——Have fun。我们就简单地看一下一些系统上我们和国外顶尖设计师的思路区别吧。


1,Dota类游戏英雄设计。

  其实你很容易感觉得到这个问题,并且当你玩了一些国产的Dota游戏后也会很容易发现这个问题,尤其是拿他们和LoL等作比较的时候——国产Dota的英雄设计思路是“这个英雄的定位是什么,然后分配怎样的技能给他凸现出他的定位”,而世界级设计师的设计思路是“这个英雄有什么样的乐趣是其他英雄不具备的,然后怎样去用技能体现出这些乐趣。”

  在起凡的时候,我首次启用了我的Buff机制加入到三国争霸2的项目中去,是希望好的设计师能够用它设计出更多有趣的技能而不是实惠的技能,但是和所有项目组的问题一样,我们的设计师想到的只是:

1)这个英雄的定位是什么?敏捷型菜刀?肉?辅助?等等。
2)这个技能是否过分强大了,造成的伤害太高?打得范围太大?附带效果太猛?
3)这个技能是否太没用了,这个英雄是否太弱了,所以都没人选。

  是的,这些都是很实在的东西,但是当你只抱有这样的思路去设计英雄的时候,最终结果是一定的——2边各只有5-10个铁板英雄,也就是大家必须选这些英雄,不然玩这个游戏就没有任何乐趣,也赢不了,因为可以发挥的面太少了。而这也导致了起凡的一些人很不赞同我这个“复杂的”Buff机制,是的,当你认为战斗机也只能用于杀人的时候,那它的确不如一把砍刀或者一把AK47来得更合适,尤其是造一架战斗机是如此的昂贵,还要为他培养飞行员。

  但是很高兴,我在LoL中看到了一些英雄的设计,这让我找到了我想要的感觉,最典型的是炸弹人,你不难发现,这个英雄是个法系输出,他的输出能力你拿来跟任何法系英雄比较都是各有所长(这是我们总在追求的,却不知道为什么总达不到效果,原因就是后面我要说的),之所以造成这样的格局,是因为加入了很多操作因素,这是表面的,更重要的是这个英雄有了自己的玩法——丢炸弹的技巧,这和小法师的三连招一波流不太一样;和乌鸦的坦克型进攻方式也不一样,在LoL中,即使被我们定位为一样的英雄(也只有玩家这么定位,如肉、辅助之类)他们之间也存在着玩法的差异,这是核心乐趣所在,每一个英雄都有自己独特的玩法,甚至独特的机制。

  所以当我们定下心来想,我们应该怎么设计英雄的时候,这样的思路应该是如何的?

1)这个英雄的玩点是什么?或者说他的Skillful体现在那儿?
2)什么样的技能(不要去思考什么类型或者什么能力的技能),我是说产生什么逻辑效果的技能可以更好的突出这个英雄的玩法特点?
3)这些技能对于整个游戏来说是否是anti-patterns的?如果是,那么它为fun带来的收益是否大于unfun?
4)数值上平衡这个技能。

  当你能这么想的时候,你就不会再优先考虑对XX范围内的谁谁谁造成多少多少伤害然后再上个什么buff了,也许这样设计出来的技能看起来会很不实用,当然这里的所谓实用就是一个思想牢笼——你太在意他在比赛中直接带来的影响胜负的表现了,而忘记了它给使用者带来的fun和遭到使用者的心理冲击——这些是视觉效果都无法弥补的东西。我们可以看到爱射的大为整个LoL带来了多大的乐趣,一个爱射的大箭从屏幕的另一端飞过来命中了逃跑中的敌人,带来了局面的转变,进攻者为之兴奋,被拦截者也心服口服,大家都为这个大放的好惊呼,这就是游戏带来的fun。

2,RPG游戏生活技能设计。

  我们再做一些类WOW或者神仙道的游戏中,也会为自己画地为牢,那就是在设计一些生活系统的时候,这些生活系统真的有必要存在吗?之前刚看到有一贴说 WOW的生活技能设计是失败的 ,我想不用分析你也知道,因为我们想到了,他没有为我们带来多大的实际利益,打造的东西不如副本等掉落,甚至连做个入门级别的都算不上。可是一楼马上就说出了fun的感觉——为了抢一块稀有矿大打出手,最后抢到了很愉快,抢不到会小憋屈一下,这就是一个系统带来的fun,他给WOW的生活创造了点滴不同,产生了点滴的乐趣,而当这些点滴凝聚在一起的时候,他成了我们美好的回忆,甚至一些这样的经历会被我们挂在嘴上在不同的时候不同的场合内反复的提起,这种乐趣是有回味的。

  而我们设计国产游戏的系统地时候,一味的想——阿亚,这个系统有什么用拉?玩家靠他又不能怎么样,获得不到实际利益,你要获得实际利益,又会和什么什么冲突导致不平衡,坑不好挖,玩家不好接受。可是我们从没想过,这样一个系统穿插在游戏中,会带来什么样的生活点滴。有时候一些看似没用的系统,它本身也是带有乐趣的,比如偷菜游戏本身带来了一种偷偷摸摸的快感,实际上它能带来什么实际的收益吗?没有。很多种菜的游戏如牧场物语,本身也就那样,你非要在你的游戏里面加个种菜还应想角色这个那个,这样的系统不仅不会fun——这并不仅仅是因为这个系统可能会与整体节奏不合,更因为有了这个系统玩家不去使用反而要吃亏,这是一种更严重的错误——导致游戏unfun。

3,任何游戏的Boss设计。

  在Boss的设计过程中,这又是一个典型,就是我们大多的设计师想的是——Boss强在那儿?弱点在那儿?玩家如何能打得过这个Boss,如何挖一些坑辅助这个Boss。但是我们大多人没有想过——这个Boss的乐趣是什么?

  设计Boss的乐趣可以有很多方面,最简单的一点就是视觉的体验——Boss的长相到行为:比如Boss是个有趣的大块头,经常一个冲锋后自己会因为惯性跌个跟头(这……是轰龙?),还会突然傻乎乎的躺在地上滚一身泥然后抖出来攻击玩家(这是……土沙龙),甚至还会把玩家捉气来,抖出他身上的蜂蜜(这不就是……上位青熊受?)。还可以有Boss的一些特性,比如当Boss饿的时候他会不顾一切的去吃肉,哪怕这肉有毒,只是他不认识(像恐爆龙这样的傻冒可不多阿)。怪物猎人毫无疑问是世界级大作,所以他的每个Boss都是那么的有乐趣,但是我们的国产游戏的Boss呢?金木水火土属性某项偏弱,玩家用这个可以打;或者我们必须有2个肉盾去顶Boss,因为Boss会控制一个——我们能想到的就只有这些很实在但是很没乐趣的设计。

  是的,实惠的东西很重要,谁都喜欢实惠的东西,但是游戏里面只有实惠的东西,他的感觉就不是游戏了,游戏要从多个角度为玩家提供乐点,视觉听觉上、角色刻画上、玩法特性上都是。

  其实并不是我们的设计师想不到这些让游戏更有乐趣的方式,只是我们通常会在讨论中为自己建立牢笼,把自己关进去以后,就再也不会去想这些乐趣了。冲破这些牢笼,你会发现你的游戏更有趣,但是在这之前,请你先想好如何去实现这些乐趣,游戏程序和传统行业程序不一样,我们没有足够的经验去编写绝对容易维护的代码来构架一个游戏软件,因此需要策划在设计游戏乐趣的时候就开始想到实现,想到的越全面,程序越稳固,研发越轻松,自己能发挥的空间也就越大。

### 光流法C++源代码解析与应用 #### 光流法原理 光流法是一种在计算机视觉领域中用于追踪视频序列中运动物体的方法。它基于亮度不变性假设,即场景中的点在时间上保持相同的灰度值,从而通过分析连续帧之间的像素变化来估计运动方向和速度。在数学上,光流场可以表示为像素位置和时间的一阶导数,即Ex、Ey(空间梯度)和Et(时间梯度),它们共同构成光流方程的基础。 #### C++实现细节 在给定的C++源代码片段中,`calculate`函数负责计算光流场。该函数接收一个图像缓冲区`buf`作为输入,并初始化了几个关键变量:`Ex`、`Ey`和`Et`分别代表沿x轴、y轴和时间轴的像素强度变化;`gray1`和`gray2`用于存储当前帧和前一帧的平均灰度值;`u`则表示计算出的光流矢量大小。 #### 图像处理流程 1. **初始化和预处理**:`memset`函数被用来清零`opticalflow`数组,它将保存计算出的光流数据。同时,`output`数组被填充为白色,这通常用于可视化结果。 2. **灰度计算**:对每一像素点进行处理,计算其灰度值。这里采用的是RGB通道平均值的计算方法,将每个像素的R、G、B值相加后除以3,得到一个近似灰度值。此步骤确保了计算过程的鲁棒性和效率。 3. **光流向量计算**:通过比较当前帧和前一帧的灰度值,计算出每个像素点的Ex、Ey和Et值。这里值得注意的是,光流向量的大小`u`是通过`Et`除以`sqrt(Ex^2 + Ey^2)`得到的,再乘以10进行量化处理,以减少计算复杂度。 4. **结果存储与阈值处理**:计算出的光流值被存储在`opticalflow`数组中。如果`u`的绝对值超过10,则认为该点存在显著运动,因此在`output`数组中将对应位置标记为黑色,形成运动区域的可视化效果。 5. **状态更新**:通过`memcpy`函数将当前帧复制到`prevframe`中,为下一次迭代做准备。 #### 扩展应用:Lukas-Kanade算法 除了上述基础的光流计算外,代码还提到了Lukas-Kanade算法的应用。这是一种更高级的光流计算方法,能够提供更精确的运动估计。在`ImgOpticalFlow`函数中,通过调用`cvCalcOpticalFlowLK`函数实现了这一算法,该函数接受前一帧和当前帧的灰度图,以及窗口大小等参数,返回像素级别的光流场信息。 在实际应用中,光流法常用于目标跟踪、运动检测、视频压缩等领域。通过深入理解和优化光流算法,可以进一步提升视频分析的准确性和实时性能。 光流法及其C++实现是计算机视觉领域的一个重要组成部分,通过对连续帧间像素变化的精细分析,能够有效捕捉和理解动态场景中的运动信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值