3D游戏之父--John Carmack连载系列(五)

游戏轴心-廖子鹏 [转载] <script language="JavaScript" src="http://webji.beareyes.com.cn/cgi-bin/jcountweb.pl?20040914095" type="text/javascript"></script> .
北京 2004年09月14日10:32

3D游戏之父--John Carmack连载系列(五)

John Carmak与游戏技术


      一款游戏能够获得成功,创意和情节固然重要,但是没有一款跑得快,且性能优越的引擎,是绝对没有可能的,这和飞机、汽车、火车等的原理都相同嘛。John Carmack 之所以会成为id software公司的灵魂与支柱,只因为他是优秀的程序员,能够设计出革命性的游戏引擎。John Romero在离开id前曾经说过,不想id 仅是个技术性的公司,我要自己创立属于纯粹艺术性的游戏公司,这是因为他是关卡设计师而决定的。不过id 也正是因为有John Carmack设计的优秀引擎,才能够获得成功,要知道,每次他们都是等Carmack写出更加优秀和快速的引擎,然后关卡设计师再制作关卡,赋予内容、情节,配上音乐,基本上一款游戏就是这样子了。 明确点讲,引擎是骨头,支持着整个游戏,而其它的则是血肉,使得游戏更丰满和好玩。



和现实一般无二的Doom3游戏画面


      那么,什么是游戏引擎呢?它可以做怎么样的工作?相信John Carmack 在某一天的工作记录,就是最好的诠释,大家不要辩驳,因为这是3D 游戏之父的定义,你也不要再问我引擎是怎么会事,如果真的不懂,那么你就不要做游戏了。当然,玩游戏是不需要知道这许多东西的。

      这是我的日常工作……

      当我完成一件事情的时候,我就给它标上星号;当我发现一个错误或是某个尚未实现的功能时,我也会把它记在这里,一些问题在被解决之前可能会被多次提到。我会不时地整理这个列表,并在我已经修正好的问题前标上个加号。

——约翰·卡马克

二月十八日:
*调页错误
*拉伸控制台
*加快水中移动速度
*杀伤力的方向性
*盔甲颜色闪烁
*杀伤力足够大时的碎尸效果
*调整榴弹
*加亮玩家昵称
*钉枪造成的延迟
*一场游戏结束时服务器端异常终止
+记分牌
+可选的全尺寸
+平视键
+视频模式15时的异常
+状态栏上的弹药图标
+程序出错时允许“重启”
+重生时的血迹残影?
+火箭弹数量有时会出现负值
+玩家携带宝物时的发光效果



技术人员在介绍游戏的开发


      大家是否霎时觉得自己进入了游戏技术的最底层?不是笔者骄傲,如果你想从事游戏设计师,或者游戏程序员的话,这篇文章就首先给你上了一课。555~~~,现在是8000月薪都无法请到优秀的游戏程序员和美工,如果你有幸进入该行业,别忘了有我的一份功劳,分点工资给我:),笔者现在穷得要命:(。

      OK,游戏引擎做的就是上面的工作,而对引擎的改进,无疑能发挥出游戏的最大性能、功能,更具 可玩性。Carmack 有个业余的爱好,就是法拉利汽车和火箭,世界上如果有人觉得法拉利不够好,那他肯定疯了,但Carmack 正是此类人,他买了数部法拉利,但都进行了改造,增加涡轮推进器,使得性能大幅度飙升,当然从事更换发动机工作的并非他本人。



一年一度的Quakecon 大会,纯粹介绍游戏开发技术


      在前面的文章中,我曾经讲到,即使Doom3的游戏引擎,目前也仅能做到箱子碰撞等比较简单的应用而已,但在未来将会出现可以模拟天气、模拟尘埃、模拟液体流动等更先进、智能的引擎。不过最让笔者感兴趣的却是让玩家可以Diy的引擎,比如制作自己的关卡、制作怪物、房间的布局,还有NPC的生命值,也许这样,玩家就可以自己设计游戏了。嗯,其实在商业的应用中,也是在有不少游戏使用了 别人公司开发的游戏引擎,比如Quake的引擎,例如CS使用了half-life的引擎。中国的游戏产业就是苦于没有自己的游戏引擎,才没有能力开发先进的游戏,现在甚至国家的863计划都立了项目来开发游戏引擎,但笔者认为,这些东西还是让商业公司去做会比较好 ,因为863计划没有实际操作方面的条件,开发出来也浪费国家财物。



Sony 的最新PSX游戏主机


      以往的游戏引擎或者说游戏本身制作得都比较混乱,当游戏本身变大的时候,再进行改进或者增加新的元素,都变得非常艰难。“以往的关卡几个小时就可以做好,而现在甚至打通一睹墙都要花费几天的时间”。当然这除了游戏本身变得比较复杂外,也体现出了游戏设计混乱的一面,如果能够把游戏引擎与音乐、关卡等等所有元素分 离,进行构件的设计,也许使用相同游戏引擎开发游戏的进度就会大大加快。过去/现在的主流编程方式是面向对象编程,但我这几天拜读了某位博士的论文,得知构件编程在未来将会 占重要的地位。也就是说像堆积木那样,把一个个元素装起来,就变成了游戏。更明确点说,游戏引擎就是货柜车的车头,而其它元素就是车的货柜。(这段完全是笔者思想)



Phantom游戏机


      Carmack的工作仍然是调整游戏引擎,而其它人则负责把已经做好的游戏物品进行重新打磨。钉在尖桩上抽搐的僵尸,被链子捆在墙上血污四溅得尸体,怪物的死亡过程也被精心制作,比如先踉跄几下,然后头盖骨从中间裂开,有的则是向前卧倒的同时把肠子弄的一地都是。 Carmack在设计引擎的时候,很多灵感都是出于意外收获,比如在把Wolfenstein移植到任天堂机器的过程中,他读到了一篇讲述二叉空间分割(BSP)算法的文章,这是贝尔实验室的程序员用来提高在屏幕绘制三维模型效率的算法。用术语来说,这个算法就是把一个模型分割成大量的片断,而每个片断的数据则作为整个树状结构中的一个叶结点,然后就可以有选择地绘制需要的多边形,从而提高效率。Carmack从该算法,就想到了用它来绘制虚拟的世界,比如把在Doom里的一个房间分割成巨大的BSP树,这样玩家就不必每次改变视觉或位置的时候,都重新绘制这棵树的所有点,而只需要绘制玩家对 着的那些叶结点,因此游戏的速度得以大大提升。



威盛ApeXtreme游戏机,听说还没出来就完蛋了,因为用的是威盛自己的处理器和图形核心


      555~~,我记得现在显示可也支持类似的先进功能,比如ATI的Hyper-Z 技术,就是通过只渲染玩家看得到的图像,而使得游戏的帧率大大提高。

To Be Continued

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值