2016年10月

【游戏研究】2D视线与光照的另一种实现思路

引入
关于2D视线和光照, Indie Nova 有一个著名的文章在这里 视线和光线:如何创建 2D 视觉范围效果
文章中采用的是求射线与交点的方式。这也是人们能想到的最直接的方式。
但是某天我在看某采用了 2D 视线的游戏视频时, 对这样的场景产生了一种 3D 感。
时隔多日,今天终于把它翻了出来简单实现了一下,确实得到了与直接求射线相同的结果。
预览

正文
首先,你要设计好障碍物,比如我这里用的是大小不一的长方形。
然后,把它拉成长长的柱子。
然后在角色上方合适位置放置一个 Camera ,随角色平移(一些琐碎的方面比如双面渲染、 Camera 的裁剪距离不再赘述)。
好,你得到了 2D 视线与光照的基本实现~
Unity场景

应用
我刚刚完成实现以及讨论,并没有做任何应用。
但是我初步考虑了一下,只要性能足够(足够进行简单的3D渲染),用单独的 Camera 和单独的场景把这样的结果渲染成纹理,就可以应用到大部分需求上。
剩下一些,比如判断某物体在不在视线内,可以从那个点拉一条射线到 Camera ,看会不会被柱子挡住。
此外,这些障碍物的形状复杂程度对渲染的负荷增量很小(不像用纯 CPU 实现时交点数是直接障碍)。
除了一些需求可能需要直接用到 Indie Nova 那篇文章里用到的射线与交点,都可以用上面两种方式解决(还有可能就是我没想到的)。

演示
WebGL版本在这里: WebGL Build
虽然理论上支持 WebGL 的浏览器可以,但是在我这里 Chrome 和 Edge 均阵亡。 Fire Fox 正常运行。

【游戏研究】游戏巴洛克计划(暂)的期望与构想

Prj Garoque

游戏巴洛克计划(暂)

核心期望:

        1.构造用于评估某类游戏乃至全体游戏的理论分析模型。

        2.该模型可以给予玩家某个游戏的通俗易懂的游戏特征。

        3.该模型可以被开发者在开发设计阶段用于协助对数据以及系统的调整。

        4*.该模型可以根据指定的模型生成一些局部最优解作为样例。

引入:

        人类文明很早就出现了音乐和绘画两种艺术。最初,人们都只能依赖于直觉或者感性认识进行欣赏与创作。而音乐在近代渐渐发展出一套相对来说十分完善的理论体系也就是乐理,给了无论是欣赏者还是创作者极大的帮助。而绘画相对音乐来说缺少相对来说可以提取出来的抽象概念或者模型,至今没有像乐理那样完善的体系。

        虽然游戏本身出现得也很早,但电子游戏才刚刚诞生几十年,与游戏相关的理论研究才刚刚起步。就我所知道的,现在的指导游戏设计的书籍或者大部分开发者的开发流程都停留在感性认知阶段。游戏本身具有很强的规律性,那么,能否摆脱感性认知,设计一套理论或者模型去量化地评估游戏呢?

核心期望解释:

        1.这个理论或者模型应该是良好定义的,甚至于是可以大量由计算机完成计算操作的。自然根本中的根本就是概率分析。然而概率计算好做,但是该如何让计算机这个概率呢?计算出的哪些数值是对后续分析有指导意义的?这就是我们要研究的部分。

        2.3.这个理论或者模型理想情况下应该输出一系列向量,这些向量应该各自代表了游戏的某种特征,甚至正交。比如“节奏(快慢)”,“局面复杂性”,“成就感”。这些特征应该对玩家和开发者都有相当的指导意义。对于开发者,通过这个模型可以知道某个改动能给游戏带来哪些方面的变化;对于玩家,通过这个模型可以快速了解这个游戏的一些特色与设计理念。

        4*.除了提供特征值,模型还可以根据指定的期望(比如给每个特征一个权值)生成一套或者多套局部最优解,作为设计的范例给开发者提供指导。

作为展示概念的例子:

        以三消游戏(Bejeweled-like)游戏为例,设游戏中场景的长和宽各为x和y,然后宝石种类数量为z,我们可以计算如下(仅举两例)一些值关于x、y、z的函数:

                f=平均情况下每个稳定局面有多少“可交换以消除”的宝石对数(该值可以用来初步决定xyz值的设定是否合理)

                g=平均情况下每个稳定局面中每交换消除一次的后一个局面相对于之前一个局面的“可交换消除”的宝石对数之比(若该值小于1,则可认为在玩家纯随机操作的情况下游戏局面将收敛,而大于1时将发散)

        得到一系列类似的值后,我们可以进一步计算得到一些上文提到的游戏特征值。f较小,g略微小于1的三消游戏将会显得有“挑战性”,f较大,g比1小许多的情况下则更具有“复杂性”(说白了就是方块太多看着眼睛累)。然而上面说的这两条仍然是我从感性认知出发去决定新的函数(比如挑战性c(f, g))的计算方式,理想情况下应该是一套相对固定的可以适用于许多游戏的方案。

        上述例子是一个最简单的模型,理论上可以设计出更复杂的模型进行分析,比如宝石种类的出现概率不同,然后消除低概率的宝石得分更高,通过得分相关的数值的计算得出有关“成就感”等的游戏特征。

这个计划是我在进行一些游戏的设计的时候想到的。因为大量感性的知识和经验性的结论让我有点不舒服。
这个计划也不是我自己挖了个坑然后自己填,而是向所有人提出这个问题,大家一起(或者各自)集思广益。
希望在有生之年能见到游戏巴洛克时代的到来。
请在这里写下评论,告诉我你的想法。