订阅业界RSS CSDN首页> 业界

卡马克《德军总部 3D》iPhone 版开发记

发表于2009-11-30 11:31| 次阅读| 来源| 0 条评论| 作者

摘要:一年来,我为 id 内没有任何有关 iPhone 的开发计划而备感困扰。我爱我的 iPhone,我认为应用商店对于软件商业来说是极为重要的模式。不幸的是,诸多事务妨碍了我们前进的步伐。

原文链接;作者:John Carmark

编者按:约翰卡马克(John Carmack的全名是John D. Carmack II) ,他生于1970年8月20日),是享誉世界的著名程序员,在电视游戏领域被尊为偶像。Carmack是id Software的创始人之一,id是一家专门开发电子游戏电视游戏的公司,成立于1991年。1999年,卡马克登上了美国时代杂志评选出来的科技领域50大影响力人物榜单,并且名列第10位。2001年4月22日,卡马克成为第四位进入互动艺术和科学学院名人堂的人物,以表彰他在电子游戏和电视游戏领域所作出的杰出贡献。

id 有很好的社区氛围,除了卡马克的开源理念之外,一个重要的原因也许是已形成惯例的开发手札,这是其中的一篇。

wolf3d_iphone.jpg一年来,我为 id 内没有任何有关 iPhone 的开发计划而备感困扰。我爱我的 iPhone,我认为应用商店对于软件商业来说是极为重要的模式。不幸的是,诸多事务妨碍了我们前进的步伐。

罗伯特达菲(Robert Duffy)早先与我花了一周时间将《兽人与精灵》(Orcs Elves)从 DS 移植到 iPhone 上,这也许可以算是良好的开端,但还不够完美。iPhone 的图形性能要比 DS 更为强大(虽然驱动程序的资源消耗要大得多),但是源代码基本上是 DS 特有的,到处都是任天堂专有的 API。我将它们转换为 OpenGL ES 来实现基础绘图,但究竟是将所有的特效转化为 GL ,还是设置一个 DS 图形库虚拟层更好,我仍未有定论。还有,所有用户界面需要重新考虑以及再次测试,显然这需要数月的时间才能开发完成,而且不仅需要编写代码,美工和设计也要跟进。我说过这会是个好主意,但是 idMobile 团队已经开始将《德军总部》RPG 转移到 Java 和 Brew 手机上,而安娜也不想为这个尚未明晰的 iPhone 项目改变已有的开发方向。

在进一步思索平台的能力之后,我决定进行一个激进的,iPhone 专有的项目,我们投入了内部资源,但程序员终究没有完成任务,项目最后停止了。巧合的是,有个外部开发团队找到了我们,想再 Wii 上进行同样的计划,于是我们打算合作完成 iPhone 项目。我们应该在不久的将来发布有关消息,它很酷的。虽然确有延迟,但谁叫这是软件开发呢

去年末,idMobile 团队已经完成了所有计划版本的《德军总部》RPG,但 EA 建议说,在成百上千个为不同手机定制的版本之外,他们对 iPhone 上的高画质版本很感兴趣。虽然《德军总部》 RPG 是一款为传统手机精打细造的产品,但是在用户界面与性能上并没有为 iPhone 优化,因此它不会是理想的项目,但仍值得尝试。当我们拿到第一个版本进行测试的时候,我对画质挺满意,但迟缓的速度让我很不爽。玩起来的感觉就像普通的 Java 版,更比不上高端的 Brew ,而我事先的预想是要超过它的,这让人感觉不妙。我开始在游戏中四下搜寻能够证明猜度的视角,接着我找到一些明显的三维物体,当环绕它们运动的时候,可以看见多边形嵌入到材质之中。他们在 iPhone 里使用软件像素化。我意识到升级后的移动渲染器与智能关卡设计/行为限制和高分辨率的图形已经使得软件渲染器与硬件渲染器在表面上难以区分,但我还是很不开心。

我告诉 EA 我们不会把它作为 id 史上首个 iPhone 软件公之于众。我们要使用到 iPhone 的硬件三维加速,也要令过程更加简单 当我完成第二代移动渲染器的时候(最初写于 Java),是基于我称之为 TinyGL 的类,它进行转换/裁剪/像素化的操作语义相当接近 OpenGL。但在固定点和透视修正中的水平与垂直像素化选项则不同。开发者跑了回来,说要两个月时间,而且还超出了预算。

无意为此大肆争吵,我告诉他们干脆让我独自完成这个项目好了。卡斯埃弗里特(Cass Everitt)之前曾在 iPhone 上完成过一些个人作品,因此他帮助我搭建好本地 iPhone 开发环境,但过程之复杂与苹果产品的简洁相去甚大。如同往常,我的「两天法则」再起效力,最后在四天之内完成,游戏的帧率快上 8 倍,做这件事情让我觉得有趣。

自移植计划开始以来,我们一直将优先级维持在低。卡斯则在家中小打小闹的尝试移植《雷神之锤 3》,我们偶尔谈论不同的界面模式。但测试结果显示,《雷神之锤 3》在 iPhone 上的运行速度不足以实现良好的操控感。硬件性能应该是足够了,但需要对渲染代码做架构上的改变以尽可能的榨取性能。

不如使用早先的代码试试看,于是我开始创建一个框架,希望能显著提高《雷神之锤 3》的性能。若想将性能独立出来考虑,可以回溯到《德军总部 3D》,FPS 类游戏的教父。它已有 15 年历史,拥有基本的运动和射击模式,但由于它最初运行在 286 电脑上,因此在 iPhone 上应会有不错的帧率。

《德军总部》最初写于 Borland C 和 TASM DOS 版,很早以前我就开放了源码,之后的一些升级计划使得代码可以运行在 OpenGL 和现代操作系统之上。四下搜寻之后,我找到了「重回德军总部 3D」网站(Wolf 3D Redux) ,其中一段有关「移除腐朽的 16 位代码」的评论令我笑了起来。

数据来源于商业版《德军总部》,下载很容易,解压后便能在 PC 上以高解析度运行。虽然事情最初没有那么顺利,但经过两项改进后变化显著 垂直同步刷新率改为逐帧显示而非强制以 70hz 输出、通过预先积分化修正了在角度更新代码中导致鼠标移动不稳的现象。尽管时过多年,但这款游戏玩起来仍旧有趣。我觉得在 iPhone 上打造一个真正的《德军总部》是值得的,而不是仅将它作为测试平台,倘若操控起来爽快的话。这款游戏简单松散的故事情节使得它很容易分割为 0.99 美元版的独立章节,或是更加昂贵的包含所有 60 个关卡的完整版,如果有需求我们也可以发布《命运之矛》(Spear of Destiny)。我已开始着手前行,虽然这些游戏在 iPhone 上的可玩行还属未知,但把 id 全线经典游戏 《德军总部》、《Doom》、《雷神之锤》、《雷神之锤 2》和《雷神之锤:竞技场》移植过来听起来是个很不错的主意。

我给《重回德军总部 3D》的制作人发了一封邮件,想知道他是否兴趣同我们一起制作一个 iPhone 版本,但到最后一个更新到今日已有一年之遥,他一定是忙其他东西去了。我想了想,觉得还是我自己来更好。「大项目」在 id 的优先度历来都是最高的,但《Rage》的系统编程工作已经大部分完成了,团队里的家伙们一段时间来也没有找我,在发布之前还有内存与帧率优化需要做,但我决定花费几周时间从《Rage》转移到 iPhone 上来。卡斯继续帮助我解决 iPhone 系统方面的问题,埃里克威尔(Eric Will)画了一些新的插图,克里斯蒂安安托万(Christian Antkow)协助制作了音频部分,但这却是很长一段时间以来,我独自担当的项目。

0
0
卡马克《德军总部 3D》iPhone 版开发记