游戏创世录2

时间:2022-09-13 08:11:11

游戏创世录2

上一期大家已经了解了对于一款游戏来说Demo的重要性,可它的作用绝不仅仅只是展示玩法与信心,在如今的时代,更多的时候Demo被用来炫耀各大游戏公司引以为傲的高性能引擎。游戏引擎在游戏制作中又扮演着什么样的角色呢?让我们一起来探一探它的前世今生。

引擎是什么

引擎是engine的音译词,源于拉丁语ingenium,意思是聪明灵巧。后来古法语从拉丁语ingenium中演化出engien,用来表示精巧复杂的机械。英语又借用古法语创造了engine这个词,用它来指代现代工业中的各类利用能源转换成机械运动的发动机核心部分。在游戏行业中,引擎指的是能把人们的想法转变成具体玩法的游戏主程序。我们可以把游戏的引擎类比为赛车的引擎,它决定着赛车的速度、性能、稳定性和驾驶感。缺了引擎的赛车没法正常驾驶,同样,缺了引擎的游戏是无法运行的,引擎控制着游戏所有的功能。无论是复杂的光影效果、物理碰撞还是最基础的画面显示、声音输出,都离不开引擎。但是同时我们也得明白,只有一个发动机是没法开动赛车的,只有光秃秃一个引擎,也不能称之为一个游戏,它需要大量游戏元素的输入才能生成一个完整的、可执行的游戏程序。

引擎的历史

游戏开发史的早期并不存在引擎这个概念,一个中古时期的游戏,需要经过一套完整的由下往上的开发过程以便适应它将要发售的平台,它需要很费力地从最基础的接口开始写代码,直到能完美地在显示器上显示并成功运行为止。这种做法有一个非常巨大的缺点,即纵然游戏平台的兼容性很好,游戏们的代码复用率仍然非常低。后来随着八十年代街机游戏的迅速发展,当然,这个时代对于这篇文章的大多数读者来说已经很陌生了,但是不少80后仍然记得一群人在街机厅用一个币玩通《街霸》的童年,总之,当时这个街机的黄金时代给游戏行业带来了一个契初——游戏公司们必须要在同类平台上迅速开发出很多不同的游戏,所以大量的代码要求可以被复用以便快速开发。因此多数游戏都会被要求按照遵守某些既定的规则进行开发,这样就可以为后续开发的游戏提供非常多的可复用资源。游戏引擎的概念从此开始慢慢形成。但是在这个时代,大多数游戏引擎的雏形,仅仅只是一些游戏公司的内部开发平台而已。

接下来让我们隆重介绍一家游戏公司:ID software,它让游戏引擎这个词真正登上了游戏界的舞台。1992年,ID software了成名作“Wolfenstein 3D”(《德军总部》)。ID software的首席“程序猿”兼创始人之一JohnCarmack使用了一种光线投射计算技术来渲染游戏内的物体。他让游戏中每个像素都发射一道光线,如果这道光线碰到了障碍物形成反射,那么游戏就会按照设定好的程序在障碍物的相应位置创建一维深度缓存,从而建立纹理图像。类似于在XY轴的平面上,每个像素处增加了一根深度缓存的Z轴,这样就做到了伪3D的效果。

在Wolfenstein 3D引擎的基础上,ID software公司又于1993年推出了另一款著名的FPS游戏“Doom”(《毁灭战士》),Carmack优化了游戏中对于物体大小的显示,行走路径之间的角度也从原来必须是直角变成了任意角度都可以,这样使得这个引擎可以制作更加有趣的伪3D场景,比如楼梯、升降平台等。而这款引擎也被命名为ID tech,成为了第一款被用于授权的引擎,就是说其他的游戏公司可以通过授权,利用这款引擎的源代码来进行自己的游戏开发。这样做有个好处,厂商不必再从头开始工作,而是直接利用引擎的核心来设计自己的画面风格、角色、武器、战斗模式、游戏的规则与数据等。从这时起,游戏开发逐渐进入到了更加高效专业化的时代。

如今的游戏引擎,已经由单一系统发展成一套由多个子系统共同构建的复杂系统,几乎属于最复杂的应用程序之一。渲染、脚本、美工、关卡设计这些子系统的功能逐渐被分离,这样可以类似拼乐高玩具一样,随时更换或者添加每个子系统的组件功能。每一个子系统之间又是互相关联的,从而能确保引擎可以准确地展示游戏设计者的意图。游戏引擎推动着现代电子游戏的发展,而游戏行业的不断进步也成为了游戏引擎开发的原动力。

引擎能做什么

点开各大游戏厂商的新游戏广告,或多或少都会看到类似“炫酷光影效果”这种听起来“狂霸酷拽”的宣传词,而光影效果在很大程度上代表着一个3D游戏引擎的水准。称霸游戏引擎界多年,至今仍然宝刀不老的Unreal虚幻引擎,当年初登场就是以出色的光影画面让玩家惊叹的。那么你是否好奇,引擎真有这么“拽”?

在自然界中有波光粼粼的湖水,MM们清澈的眼眸中能够映出烛光,然而在游戏中这一切并不容易做到。首先,做到光线在不同材质上有不同的折射与反射,同时要处理多光源下不同光源的互相干涉,不同颜色的光碰到一起的彩色合成等,这些工作不仅要在静态的环境渲染中体现,同时还需要适用于游戏里的动态角色,这样才能带给玩家真实感。这些工作,都是由游戏引擎中的渲染模块来完成的。

衡量引擎性能的另一个重要指标是物理系统,我们生活在一个有基本物理法则的世界,牛顿的三大运动定律想必不少读者都烂熟于心。而游戏中的运动也需要遵循固定的规律,即使是看起来很简单的《愤怒小鸟》,也需要在游戏中设置重力参数,小鸟和各种诡异物体互相碰撞的弹性系数以及空气阻力等等,这些共同决定了愤怒小鸟的飞行轨迹。放在场景更为复杂的3D游戏中去,引擎的物理系统也随之变得更加复杂,它不仅需要模拟牛顿力学模型,使用质量、速度、摩擦力、空气阻力这些基本变量,还需要处理类似火光舞动、烟雾弥漫的粒子效果、水流动时不同的冲击与形状、人物身上衣服的柔性效果等等。游戏中之所以能实现如此多的动态效果,都要归功于引擎的物理运算。

引擎还得负责许多别的工作,例如网络游戏中的网络通信,玩家与电脑之间的输入输出交互,包括画面声音以及近年来流行的力反馈等等。游戏引擎构成了游戏的骨架,而如何利用这个骨架填充上不同的游戏系统使之成为一个完整的游戏呢?我们下期为你解答。

上一篇:冰激凌八卦三则 下一篇:文物背后更精彩