游戏引擎那些事(二)——萌芽
阴极射线管娱乐装置
在理工男眼里,技术大概一半等于玩具。Thomas T. Goldsmith——美国电视机产业终身成就者,就是这样一位爱玩的理工男。作为电子专家,Goldsmith总想把电子设备做成玩具,当他了解到二战中所使用的雷达显示器原理之后,就被深深吸引了,终于在 1947年用雷达显示技术中的阴极射线管来做成了一个“玩具”。
这款游戏的玩法大概是这样的,阴极射线管在屏幕上投射成一个点,这个点代表“导弹”,玩家通过旋转几个按钮控制导弹的发射角度和轨迹参数,在“导弹”飞行过程中,如果碰撞到预先设定好的目标,就表示命中。游戏还可以设定不同的难度等级,让玩起来更加有趣。这玩法不正是后来盛极一时的《疯狂坦克》和《愤怒的小鸟》的雏形嘛。
玩法模拟
这款游戏的实现上有两个有趣的地方,第一,由于技术限制游戏没法显示更多的元素,所以游戏中的“目标”是用纸贴在屏幕上的,真正能动的元素,只有那一个点。第二,这样原始的技术,是没法显示高大上的特效的,但Goldsmith做了个技巧,“导弹”爆炸后,改变射线的聚焦,使得那个点不断扩散变大、变淡,这就很形象的表现了爆炸效果。所以游戏技术也如同魔术,用各种技巧、障眼法表达效果,最终让你体会到乐趣。
这款雏形游戏后来怎样了呢,Goldsmith把他命名为——阴极射线管娱乐装置,并在次年成功申请到了专利,最终没有投入市场,仅供自娱自乐。啊哈,朴实的命名,毫无产品化包装,秀技术,这太符合一个理工男的作风了。
专利申请书上画的电路图
OXO
阴极射线管娱乐装置其实只能算半机械半电子形式的游戏机,而接下来要说的OXO(注意不是XXOO),则是算得上真正意义的计算机游戏。它诞生于1952年的剑桥大学,跑在当年的巨型计算机EDSAC上。这个项目的起因就比较功利了——为了写一篇关于人机交互的论文。这个游戏的玩法也十分简单,就是模拟井字格游戏。既然为了研究人机交互,这游戏怎么交互呢?比较奇葩,输入用的是那种古老的转盘电话,旋转两次,就输入了一组坐标,完成一步走棋,而电脑一方,是有人工智能的,算出它那步棋后返回给你看。游戏的分辨率十分感人,是35x16的点阵,现在的马赛克也比这高得多啊。
不管怎样,这款视频游戏具备了游戏该有的东西,有显示、有输入、还有AI。那么它作为游戏的命运如何呢,首先它当时连正式的名字都没有,OXO是后人给起的,再者,论文完成后它被“discarded”,也就是——被扔了。
OXO模拟界面
双人网球
游戏往往是对现实的模拟再做简化,游戏的创造需要联想,游戏的实现也要依托于已有的技术。美国物理学家William Higinbotham,同时也是第一颗原子弹研发组成员、后来的防核扩散运动领导者,在1958年得知政府科研机构的一款新型便携式计算机“Donner Model 30”能够模拟空气阻力这个特性后,便设计了《双人网球》。这款游戏是显示在一个示波器上,游戏从侧面视角展示了一个十分抽象的网球场景,需要两个人一起玩,他还专门制作了游戏控制杆,用于控制虚拟的网球拍位置。
最早的游戏摇杆
在技术层,这款游戏有了几个突破,首先它是真正实时更新的游戏,也就是玩家输入的同时,游戏画面是同步运动,能跟你的操作随时做出反馈,不像OXO,输入后需还要等待一会出结果;另外这款游戏运动模型非常细致,红色的按钮按压力度对应着网球拍击球力度,球的飞行会是受空气阻力影响,如果你力度不够大,球是过不了网的,而力度过大,又会出界。这款游戏,具备了物理引擎的雏形。
双人网球画面
《双人网球》的命运要好得多,在接下来的计算机展上,玩家排着队来玩,尤其吸引大量的大学生,游戏后来还进行了升级,换了更大的示波器,还能模拟不同的重力。这是被公认的、有真正的玩家的世界上第一款视频游戏。
红圈处就是《双人网球》那台示波器和两个手柄
太空战争
从《双人网球》开始,计算机便开始小型化了,很多高校生可以进行计算机开发实践了。计算机程序开发,不再是顶级实验室中高不可攀的事情。在《双人网球》诞生4年之后,麻省理工的两名学生,开发了一款更复杂的游戏《太空战争》,这款游戏的开发者一个叫Alan Kotok,是后来全球互联网协会副总裁,另一个叫Alan Kotok,是后来教比尔盖茨敲代码的老师,早期游戏开发者都是响当当的人物啊。
这款《太空战争》也是双人摇杆控制,各自操控一个三角形的太空船,在宇宙空间中进行“缠斗”(空战术语dogfight),在这个时空里,重力(太空里就是万有引力)、加速度、惯性等等物理特性一应俱全,玩家可以用各种武器互相射击,目标就是击毁对方的太空船,但同时还要避免撞到随机飞来的陨石。
太空战争
这款游戏是当时唯一用到了计算机硬件所有功能的程序,所以一度以预装软件的形式来展示硬件性能。计算机的历史中,每隔一段时间,就会出现那么一款为硬件发烧而存在的游戏。电子游戏,是计算机硬件发展的重要推手。
在1971年第一台商用游戏机问世之前,电子游戏都是作为试验品、学生编程习作、硬件展示等出现,传播范围很窄。商用游戏机出现后,大量的游戏诞生出来,逐渐形成了一个新的产业,并开始规模化生产。也许以前的人们不会想到,这些技术宅创造的昂贵玩具,会在将来掀起几百亿的市场。
萌芽时期的显示技术
最后该说说图形了,早期电子游戏画面采用的都是一种叫做“矢量显示”(vector display)的技术,简单讲就是所有图形都是由线段连接而成。这种模式非常的简单,只需要处理线段的端点就可以了,这对存储和计算的消耗非常低,所以在那么低的配置下也能流畅运行,后来的flash也采用的这种方式。它的缺点也显而易见——只能展示物体的轮廓,所以这一时期的游戏,看起来都是一堆花里胡哨的线条。不过别小瞧了这些线条,在下一篇“美丽的像素”之后,这些线条将引申出游戏引擎系列的重头戏——3d显示技术。
那么让我们来看看线条游戏都长什么样吧: