本文来自微信公众号:极客公园 (ID:geekpark),作者:Matthew S. Smith,编译:美漪,题图来自:《微软模拟飞行》
1999 年,比尔·盖茨写了一篇对莱特兄弟(Wright brothers)的感人赞誉,他认为他们的机翼发明是“那个时代的万维网”,给予了人们全球视野。这也为微软后来收购《模拟飞行(Flight Simulator)》埋下了伏笔。
而且,就像莱特兄弟最初的飞行器一样,《飞行模拟器》这款游戏的意义早已不止是“飞行”本身,更是“飞行”所带来的视角的转变。《飞行模拟器》许诺将整个世界装进你的电脑,并兑现了这个承诺。这也是为什么它成为了世界上最畅销的飞行模拟系列游戏。它最新的版本已经售出了超过 200 万份。
尽管 2022 年是《微软模拟飞行(Microsoft Flight Simulator)》上市的 40 周年,但实际上,它的历史要比 1982 年的正式发布还要久远,而且目前仍在积极开发中。它也因此成为了第二古老的电子游戏。(第一古老的是《俄勒冈之旅》(The Oregon Trail)在 1971 年问世,至今仍与我们同在。)
《飞行模拟器》系列游戏的核心不在于“游戏化”,而在于它用来模拟飞行体验和你脚下地面的“技术魔法”。它对“真实描述”的关注,则反映了游戏开发者的背景。
对飞行的热情
布鲁斯·阿特威克(Bruce Artwick)在伊利诺伊大学厄巴纳-香槟分校,学习电气工程,但他仍挤出时间去追求一个许多青少年都想过、但很少有人实现的梦想:他学会了开飞机。也正是在大学的飞行培训项目中,他遇到了后来成为他商业伙伴的斯图·莫门特(Stu Moment)。
1976 年,阿特威克写了他的硕士论文,内容是他设计的飞行模拟器在数字设备公司(Digital Equipment Cooperation)的 PDP-11 微型计算机上运行。它的三维演示可以达到每秒 9 帧,这在那个时代是非常出色的。
随后,阿特威克在加利福尼亚州的休斯航空公司(Hughes Aviation)找到了一份工作,同时在空闲时间继续从事 3D 图形的研究。
1977 年,他为 Kilobaud 写了一篇文章描述了他所创造的“sunLogic 三维微图形软件包”,该软件包将三维技术与装有流行的摩托罗拉 6800 微处理器的微型计算机相结合。鉴于非常多的读者对它非常感兴趣,阿特威克想寻求帮助,把这个软件变成一门生意。于是,他与斯图·莫门特重新联系起来,并一起成立了 sunLogic。
戴夫·丹哈特是 sunLogic 的第二位雇员。根据他的回忆,公司早期是由阿特威克的 3D 软件推动发展的,而该软件又因为微型计算机的兴起而更新迭代。丹哈特说:“布鲁斯和斯图销售的东西基本上就是一个用于微型计算机的 3D 软件包”。“Tandy 公司的 TRS-80 就是一个微型计算机,我想那时 Apple II 已经出现了”。
阿特威克常常在演讲中称,sunLogic 的软件可以用于“飞行模拟”,这个建议让听众惊呼不已。通过一台计算机展示在地球上空翱翔的视角?大多数人从未见过这样的东西。受到观众的鼓舞,阿特威克决定将其变为现实。
于是,在 1979 年底,《飞行模拟器》在苹果 II 和 TRS-80 上推出了,采用的是线框图形,和个位数的帧率。它并没有描述真实的空域或现代飞机。相反,玩家驾驶的是第一次世界大战时期的双翼飞机,其原型是著名的索普威斯骆驼(Sopwith Camel)。但在同时代,它的第一人称 3D 视觉效果代表了当时的先进水平,甚至比 Atari 的《战地(Battlzone)》等更著名的作品还要早。
丹哈特说,“很早的时候,布鲁斯就看到了《飞行模拟器》的潜在市场。当微处理器变得普及的时候,布鲁斯的机会就来了”。正如布鲁斯所说,“如果我把我的这个模拟飞行的想法放到更便宜的电脑上,让其运行,这一定是有市场的”。
布鲁斯是对的。1982 年 9 月,《计算机游戏世界》杂志就把《飞行模拟器》列为迄今为止第四大畅销产品。
IBM 公司一直渴望展示它的 PC 平台,因此联系了 sunLogic,希望将《飞行模拟器》装到它的新硬件上。与此同时,深入开发 IBM PC DOS 的微软,也很快打来电话,提出了类似的要求,但提出更好的条件。
最终,微软和 sunLogic 达成了合作关系,拿下了《飞行模拟器》的授权,尽管布鲁斯可以在未来的几年里,继续拥有他的公司。
在 1982 年底,《微软模拟飞行》正式发布,并在随后的几个月里持续优化,这也反映出了微型计算机的进步。页面动画从单色变成了彩色(在具有适当硬件的 PC 端上),显示刷新率增加到每秒 15 帧。一位评论家称《微软模拟飞行》的体验“非常流畅”。
在游戏中,玩家可以在四个真实世界的地区驾驶塞斯纳 182 飞机(Cessna 182),包括芝加哥和西雅图。
这是有史以来第一次,人们可以在家,用电脑实现做飞行员的梦想——在游戏中驾驶一个真实的飞机穿越真实的地形,在真实机场的模型上起飞和降落。
这种真实感延伸到了飞行模型(Flight Model),它使用了一种有效的技术:查询表(lookup tables)。这是因为,早期的 IBM 电脑无法支持对飞机受力情况的实时计算。但幸运的是,飞机制造商可以帮忙给出答案,这给 sunLogic 提供了一个可以延展的基础。
丹哈特说,“基本上,你输入需求,模拟器就可以简单地做一个查找,并输出结果”。“现在,由于分辨率和内存的限制,你不会有一个超大的查询表,但是你可以有一种中等大小的,甚至是小的查询表,你还可以在数据点之间做修改”。
有了飞行模型(flight model),sunLogic 扩大了模拟的范围。
《微软模拟飞行 2.0》(1984 年)模拟了整个美国,《微软模拟飞行 3.0》(1988 年)加入了盖茨里尔喷气机 25(Gates Learjet 25)和大量的机场,而《微软模拟飞行 4.0》(1989 年)增加了随机事件,包括天气。
1993 年,《微软模拟飞行 5.0》引入了一个新的杀手锏:材质系统(textures),在视觉上颠覆了游戏的样貌。在此之前,机场之间的土地是由成片的颜色表示的,绿色代表森林,灰色代表城市,蓝色代表水。
如今,材质系统(textures)提供了新的细节。从《微软模拟飞行 5.0》开始,这些细节是以卫星图像为基础的。也因此,《飞行模拟器》将会是很多人在实时三维软件中看到卫星图像的第一个机会。
《飞行模拟器》在市场上的第一个十年是一个平稳上升的时期。然而,这背后却一直暗流涌动,阿特维克和莫门特经常发生分歧。到 1980 年左右,他们分开工作,莫门特在白天,阿特维克在晚上。而最终在 80 年代末,这种分裂成了永久性的,阿特维克在离开了 sunLogic,又成立了 Bruce Artwick Organization(BAO)。1988 年的《模拟飞行 3.0》也就成了最后一个归属于 sunLogic 的版本。
也许,正是因为这种分裂,阿特维克在 1995 年决定把《飞行模拟器》卖给微软。虽然,这无法得到阿特威克的证实,但知情的员工透露,这是一个突然但并不令人意外的决定,尽管阿特威克已经花了近二十年的时间致力于这项业务,尽管该团队与微软也有分歧。
保罗·唐兰在微软收购的前一年担任 BAO 的集团经理。他说,“我认为最终微软想要《飞行模拟器》的绝对控制权,而不是阿特维克持有它”。“我们是一家小公司,我们按照小公司的规则行事,而这有时会给微软的人带来困扰。我们很容易说不,这让他们感到非常沮丧”。
微软掌权
随着 Windows 95 操作系统的问世,《微软模拟飞行》的新篇章也拉开了序幕。在 Windows 95 华丽的发布会上,杰伊·雷诺依靠媒体属性来说服消费者,“是时候让 MS-DOS 电脑退休,并购买 Windows 电脑了”。(顺带一提,正是这种推动使游戏进入了我的视野:用于 Windows 95 的《微软模拟飞行》与我家的第一台 Windows 95 电脑捆绑在了一起。)
将《飞行模拟器》搬到 Windows 上不是一件小事。该游戏深深扎根于 MS-DOS 和 20 世纪 80 年代初,日益神秘的软件开发实践。Windows 95 在理论上可以运行 MS-DOS 应用程序,但这并不适合《飞行模拟器》。
sunLogic 公司的丹哈特解释说,“其实,到现在这一步了,《飞行模拟器》还是没有真正使用微软的操作系统:你把软盘塞进软驱,它就会启动”。“我想《飞行模拟器》是在微软最小的 MS-DOS 上运行,但只是启动运行,然后就不理会 MS-DOS 了”。甚至,该团队还抵制了早期版本的 Windows 系统,因为他们担心它会拖慢《飞行模拟器》的运行。
但现在微软掌权了,失败是不可能的。
保罗·唐兰回忆说,“当我们进入 Flight Sim 95 时,有一个巨大的端口”。他认为现任洛克希德公司(Lockheed)的 Prepar3D 模拟平台的软件工程师迈克·施罗特,发挥了指路人的作用。“我不能说这对所有的事情来说有多重要,但很多代码都从汇编语言(Assembly language)移到了 C 语言中,这其中的工作量是巨大的”。
将《飞行模拟器》搬到 Windows 上,是对微软劳作文化的初次尝试。它也只是部分地成功了,因为审查人员发现即使是最快速的家用电脑也存在性能问题。事实证明,《飞行模拟器》团队对 Windows 处理“模拟”的能力的担忧,并非毫无根据。尽管如此,《飞行模拟器》仍是微软为扩大 Windows 95 的媒体影响力,而不可或缺的“噱头”。
该团队在《飞行模拟器 98》的视觉效果上更是加倍努力,通过采用 3D 硬件加速再次推动了尖端技术。测试负责人哈尔·布莱恩说,“这项工作需要花很长时间来测试各种 3D 加速器,这些加速器还没有形成共同的标准”。所幸,这些测试得到了些回报,《飞行模拟器 98》平息了评论家对虚假性能的抱怨。
此外,用户也受益于 CD-ROM 和 DVD-ROM 媒介的兴起,它们为游戏中更详细的材质系统(textures)、更多的地形数据,以及更快的数据传输速度提供了发展空间。
杰森·丹特最初受雇于微软的《安卡塔世界地图集(Encarta World Atlas)》,很快就转而协助《飞行模拟器》的相关工作。卫星图像改善了模拟器的视觉效果,但其数据仍然很粗糙,“边长大约在 4 到 16 公里之间”。在人迹罕至的地区,整个山脉都不见了。为了避免这种差距,丹特和他的同事将卫星图像与土地使用数据结合起来,同时提供规模和精度。
这些努力在《飞行模拟器 2000》中得到了回报。《飞行模拟器 2000》达到了一个技术上的里程碑:以 1 公里为单位绘制了整个地球的地图。监督该团队的工作室经理斯考特·贝勒斯说,“早期的效果演示让比尔. 盖茨惊呆了”。
根据贝勒斯的回忆,在向比尔·盖茨展示了该软件包括了地球上的每一个机场后,盖茨回应说,“你在胡说八道。这是我听过的最愚蠢的事情”。贝勒斯强调,“这是比尔·盖茨最高形式的赞美。根据微软的八卦,如果比尔·盖茨对你说这句话,那么你就成功了”。
而且,有一段时间,《飞行模拟器》确实取得了成功。新的版本登上了畅销榜。《飞行模拟器》团队也更名为 Aces Game Studio,还创建或承包了《微软模拟战斗飞行》和《微软模拟太空飞行》等衍生产品。
甚至还有传言,称微软要建立一个通用的、世界规模的模拟平台,这最终成为了微软的企业模拟平台(Enterprise Simulation Platform,ESP)。虽然,ESP 只持续了几年,但是,被洛克希德-马丁公司(Lockheed Martin)授权用于其 Prepar3D 仿真平台。回过头来看,ESP 就像是建立“数字双胞胎”来模拟和复制真实世界的努力的先驱。
然而,《微软模拟飞行》有一个问题,而且是来自微软公司内部的,那就是 Xbox 游戏机。微软在 2001 年推出 Xbox,是为了对抗索尼 2000 年发布的 PlayStation 2。它有一个 DVD 驱动器,并且可以通过一个附件连接到互联网。微软担心一些消费者会将其视为低成本的 PC 替代品。
布莱恩说,Aces Game Studio 曾探讨过将《飞行模拟器》引入 Xbox。但因为该计划需要调整键盘和鼠标的控制方式让其适应游戏手柄,而受到重重阻碍。贝勒斯认为,这让 Aces Game Studio 和微软之间产生了裂痕,他对没有更努力地推动 Xbox 版本的《飞行模拟器》而感到遗憾。“我认为我们最终会得到一个更强大、更灵活、更健全、更适合未来的引擎”。
Aces Game Studio 在以 Xbox 为中心的微软游戏部门中独立。不难理解,当 2008 年的金融危机迫使全公司裁员时,它首当其冲。对于那些受影响的人来说,这是一个令人讨厌的事情,但多年来,他们中的一些人已经接受了微软的决定是有道理的,因为模拟器的最后一次迭代可以说是停滞不前——专注于过去的优势,而忽视了新的平台。
在裁员开始的时候,sunLogic 的员工丹特就在那里,他结束了这个项目。他留下来对工作室的工作进行存档,为《飞行模拟器》的这个时代画上了句号。
涅槃重生
约尔格·诺伊曼是微软的一名老员工,从事一个名为 HoloTour 的 HoloLens 项目。这是一个沉浸式虚拟现实的旅游指南,它包括对秘鲁马丘比丘等地的鸟瞰视角。然而,该项目也面临着挑战,特别是在马丘比丘,团队实际获得的数据远低于预期。
诺伊曼说:“很明显,即使有现场照片,要做一个完整的、漂亮的三维模型也是非常困难的”。“针对这一点,我们只是说,为什么我们不直接让飞机飞过头顶,给我们提供激光雷达数据和适当的摄影测量”?(激光雷达是一种基于激光的技术,用于估计物体的范围,而摄影测量则是从照片中提取的三维信息)。
虽然,飞机没有飞过头顶,但诺伊曼的观点发生了变化。他意识到了微软已经有了完美的解决方案,那就是《飞行模拟器》。“其实,这个想法一直都在我脑子里。我们应该尝试通过空中数据来增强我们的游戏世界”。
诺伊曼利用来自必应(Bing)的数据,制作了一个塞斯纳飞机(Cessna)飞越西雅图的演示,这与最初的微软《飞行模拟器》中的飞机和城市相同。即使在那个早期阶段,它看起来也很壮观。该项目取得了进展,丹哈特的记录也被证明是非常宝贵的。
诺伊曼说,“代码库和项目的归档工作做得非常好”。这些代码被送到 Asobo 工作室,也就是 HoloTour 项目的主要开发者,并用于保留与《模拟飞行 X》的第三方飞机的兼容性,它是 Aces Game Studio 发布的最后一次迭代。
《飞行模拟器 X》还保留了一个“传承(legacy)”模式,可以激活旧的飞行模型,保留了那个可以一直追溯到 1982 年的血统。
今天,大多数《飞行模拟器》的玩家都会喜欢默认的“现代”模拟,其模型多达 1500 个飞行地图。模拟中每个点的气流不仅由飞机的速度和设计决定,而且还由周围环境状况决定,如天气和附近的地形。
这种模拟水平在 1982 年是无法想象的,但今天它可以在任何最近的中端 AMD 或 Intel 处理器上运行。
哈尔·布莱恩指出,之前的模拟在极端情况下会崩溃,比如失速和旋转,这样飞机就会表现得很木讷,过于可预测。他知道,因为他以前就是这样测试这个东西的。新的模拟可以精确地模拟许多表面上的气流,因此可以确定失速会在何时开始,以及是否会变成旋转。
虽然 Bing 的数据对创建《飞行模拟器》的游戏世界很有帮助,但该团队仍然面临着阻碍,毕竟并不是每一寸地面都有高质量的摄影测量数据。
为了填补这些空白,Asobo 使用 Blackshark.ai 的机器学习技术,将摄影测量数据和卫星照片,转换成“地球表面的复刻”。
Blackshark.ai 技术根据卫星照片,自动创建建筑物,并在适当的地方添加建筑物。机器学习还纠正了照片之间的颜色变化,同时消除了云层和阴影。
Blackshark.ai 的首席技术官 Arno Hollosi 说,“我们希望有独特的建筑,基本上你通过程序性生成来实现,它会收集建筑脚印、屋顶类型、屋顶颜色、分区、建筑密度等其他信息”。然后,这些数据被具有适合该地理区域风格的“原型(archetypes)”所修改。其结果就是,各种各样的 3D 建筑至少从离地面一千多米的地方看是真实的。这种技术还可以描绘出小型社区,甚至是无人问津的农村房屋和建筑,这是艺术家们在逐一添加建筑时永远无法完成的。
即便如此,微软如今的模拟也并不完美。一条城市街道可能看起来是正确的,但你的房子可能不会。模拟的空中交通并不像现实中那样繁忙。模拟的空中交通管制的信息也往往不准确或不存在,特别是在中型机场。模拟的天气往往是惊人的美丽,但它只是模糊地模仿了真实世界。对于这些问题的解决,就像《飞行模拟器》的许多附加功能一样,需要新的技术来支持。
然而,《微软模拟飞行》的一个核心成果是不可否认的:它把整个世界装进了你的电脑。它甚至可以通过微软用于智能手机的 xCloud 流媒体应用,将整个世界装进你的口袋,允许任何拥有现代智能手机的人下载《飞行模拟器》,在全世界“自由翱翔”。
贝勒斯说,“我们的雄心壮志是复刻整个世界,而且,我们确实做到了!”
来源|https://spectrum.ieee.org/microsoft-flight-simulator#toggle-gdpr
原标题:FLIGHT SIMULATOR GAVE BIRTH TO 3D VIDEO-GAME GRAPHICS
本文来自微信公众号:极客公园 (ID:geekpark),作者:Matthew S. Smith,编译:美漪