大家都知道,游戏开发是一门技术活,需要各方面的知识储备,那么到底需要哪些数学知识呢?
首先,数学是电子游戏的基础,它能让游戏按照设计师的意图运行。请仔细想想,游戏本质上是一个虚拟世界,数学可以为它设定规则。如果没有数学,马里奥可能漂浮在空中,《使命召唤》的子弹可能不会飞向敌人。
总体而言,游戏开发需要运用大量的数学知识。包括代数、几何学、微积分、线性代数、离散数学和应用数学等,运用的元素包括矩阵、增量时间、向量和标量操作等。
以“几何学”为例,游戏中的世界基本上由多边形的空间组成。开发者可以创建具有数万个多边形的对象,然后通过渲染等方式让它们看起来更真实。
为了方便渲染,游戏中的物体很喜欢用“三角形”来制作,比如下图左中的维京头盔使用了数千个三角形,下图右是渲染后的样子。使用三角形的原因是它们的形状相对简单,因此开发者无需为游戏中每个物体编写单独的程序。
游戏中还经常使用“寻路”,比如你在《看门狗》中定位一个目标后,游戏会立即为你规划最短路线。要知道,计算机不能自主思考,它们需要确切的指令,这一切就依赖于“戴克斯特拉算法”。
该算法有很多变体,原始版本仅适用于找到2个顶点之间的最短路径。后来可以固定一个顶点作为源结点,然后找到该顶点到其他结点的最短路径,产生一个最短路径树。
因此,在《看门狗》、《荒野大镖客2》等游戏中,一旦你错过某条路线规划,游戏会立即为你规划全新的最短路线,就像手机导航软件那样。
事实上,大型游戏往往需要复杂的数学,但在一些简单的游戏中,可能只需要一部分,比如三角函数和代数。
即便如此,数学是开发游戏的必要元素,如果没有数学,游戏将变得脱离现实。
当然,游戏不等于现实,数学也能让玩家做现实世界无法做到的事情,比如《刺客信条》的信仰之跳,《荒野大镖客2》中的死神之眼。