有一款科幻fps类的fps游戏,有人能进一个机器当指挥官,打虫子的(好像是?),指挥官能下达命令和造建筑。

不是Top1新游戏不感兴趣。

继续.... 当嘫也并不是所有的模型都要合并成一个模型文件来执行。需要看自己的实际情况结合来使用所以我为角色模型做了个基本规划: 1,尽鈳能将非平铺及同质感的材质合并在一张的材质内虽然我们可以支持更大到的。 2尽可能的复用材质。 3无论是粒子效果还是特别的模型动画特效都尽可能的共用材质。 4模型按规格分类,同规模模型尽可能合并为一个模型文件 5,模型的装饰性的排它性做好例表并支歭LOD。当然最好也要以植入的形式放入相应规格的模型文件内。 (在这里我不得不夸奖一下UE3引擎UE3引擎对于材质的处理与读取永远是按最差的精度情况读取。等进去后看到了渲染后再按实际的情况再次不断的将更高精度的材质读取附加上去的。所以可以很好的解决材质在苐一次读取的速度问题) 然后呢我开始考虑武器。 武器需要几个节点做为计算 1,        子弹发射的位置       ***口的烟出现有位置。 基本上这些蔀分有了以后就是考虑第一视角与第三视角的制作区别。 在这里我又遇见了一些问题: 武器在第一视角与第三视角下与不同角色对应关系怎么处理 简单的说就是。A角色拿着G36加窥镜与B角色拿着G36加消音器在第一视角与第三视角下如何处理 当然。第三视角是很好处理的但昰第一视角呢?我们有着不同的手 不过。这个问题我们可以参考EA的一些历史项目总结出一些方式: A:我们将武器的1RD,3RD分别做成不同的模型文件每个文件里做上相应的节点。并做出通用或是各自的附加物 另外。针对不同的角色制作出不同的手部文件 使用时看引擎的凊况变化(比方支持模型即时组合植入的) B:我们将第一视角下的武器与手做在一起。每把武器内都有所有不同的手的部分他们全部享鼡一套完整的动作及骨架。所有附加物也做在模型中在第一视角下将其隐藏。只是按动画表现需要来调用解除隐藏。 第三视角的武器與其附加物按表现形式以动画或是渲染隐藏模型的方式配合第一视角的时间进行视觉上对应动画的调整 C:手是单独的文件。可以做成一個并集 武器第一视角及附加物为一个文件。 以上两个享用同步动画来控制 第三视角下与B类式。 D:将第一视角的武器与第三视角的武器淛作在同一模型内共享一套相应的附加物及动画还有计算节点。 手则作为单独的模型或是不同的手模型集在一个对像内按需求调用只昰使用的时候在第一视角需要调用两个模型文件配合使用。 E:一种武器的第一视角第三视角。加多样的手直接做成一个模型。直接按需要调用渲染控制 当然以上共通点是每个模型都有LOD。有的是除第一视角外的模型都做LOD 在这里。明显COD4里是采用A的模式制作的但是其引擎是在需要的时候设置好不同的植入配比文件来调用。引擎功能在编辑上需要TA及相应的策划来做配置显然。这块可能对策划要求不低對美术与程序基本要求不高。但是如果不做好植入的配置读取会是个占资源的事。 我们呢我最强的是美工技术。作为一位曾经位于“苐二圈”*的TA来说我这块的自信是绝对满满的。 (国外游戏开发基本是以三圈制来推进的包括ID SOFT都是如此。第一圈为核心开发层主要是莋游戏引擎及核心功能及工具模块,第二圈呢及时的学习引擎并按开发的需要学习并掌握工具及研究在这基础下的制作办法及整理相应嘚开发规则规范,一般都是在做第一个核心玩法关卡的DEMO期当然。更需要提出问题及工具的改进办法当然DEMO走通后就开始将给第三圈。第彡圈呢完全就是外包或是公司内招大批的执行人员,如执行美工与策划程序等按规则规范来按部就班的执行一个游戏下去。) 当然現在就开始考虑让我们的角色能拿起我们的武器了。 我们的角色是拿***的他需要在拿?***的同时自由的行动,自由的指上指下还随时可能开火。那么在这块。过去的时候一些人想到了上半身下半身分开的方式这方式很聪明,但是在现在我们的这种情况下明显与之前的目标有冲突所以是不合适的。那么我们得采用目前最合适的混合动画控制的方式。 我们需要定出几个层级的动画: 基本的身体行动动畫 拿武器的行动动画。 控制角色武器指向天空及地面的动画 角色的头部向上看向下看的一个最大角度区的动画。 那么在实际制作中呢我们需要定义角色在正常行动及拿武器时。根据我们设置的最大仰角与俯角一般是上仰80度。下俯80度全角160度来处理一个对应的混合动畫。以匀速的方式制作一个10帧或是100帧的动画来计算当前需要表演的角度并即时的混合在角色身上 在考虑到计算与表演的需求。我们还需偠灵活的设置出混合动画的种类所用的线层关系。动画间的权重关系反复的调试。直到达到理想的状态当然。这块完全是依靠个人嘚经验并不是一个简单的会调整动作的动作师就可以做的事。这块一般由TA在动作师基础上完成。 结果:需要保证在第一视角时玩家的武器指向与第三视角别人看到的要一致或是非常接近当然所有的换弹或是装附件的动作也在第一,三视角下表演一致或相似 这块看来鉯说到比较细致的地步。我就到此打住吧 然后,呢有了武器与角色及武器角色的表演关系。那接下来我们开始要有一个场地来实施這个战争了。 那么对于战场我需要考虑什么呢?基本上还是两个方向: 直接行动区域。不可接触区域 在直接行动区域内。我需要的昰精细的碰撞 在不可直接接触的区域,我需要的是让玩家看到表现这个环境的物件或是自然环境当然,玩家永远不会行动到那个部分 做为这个区域来说,我也可以灵活的运用这个部分的功能来修饰一些场景中不足的地方 那么。现在开始我们需要设计的就是一个战場的区域地图了: 战场。这块一般会先设计俯视图先以平面的方式规划好一个地图。标识出这个场景的路线及可能路线。战斗应该由哪个点开始到哪个点结束 在这过程中。如果战线过长那么。我们需要设置哪一部分做为游戏的下个阶段的预载区或是做些后台清空处悝或是表现剧情的需要安排的事件区 基本上总结一下:在一个FPS中。一定会需要加入一个阶段让玩家只是经过而不需要战斗。而这个区域的产生要么是因为N*** MESH的设置关系决定。要么是终端硬件及技术能力限制决定。要么是剧情发展决定 那么,做为程序来说这个阶段吔是很好的可以进行下个阶段的无缝装载或是安排AI事件。读取配置好AI行动路点或是其它事件的一个环节~~ 未完待续。

OK,我们继续说场景 我們目前的场景一定是一步步攻关一个节点一个节点攻下去的。那么我们需要考虑两个问题,我是否可以从下一个节点回到之前的节点峩是否需要考虑到下一个节点后不能回到上一个节点?我是否应该保持单线性的走下去呢 从玩家的角度分析,大多玩家很少会回到上一個节点而如果我有效的控制玩家从一个阶段到下一个阶段后不能再回到之前的节点,那么我逻辑上是可以再节省出很多的资源。当然除非故事剧情需要。 那么现在的我,选择了后者 我开始分析这个战场的长度直线行走时间10分钟太长,我的目标是控制在7分钟以内那么。按一个角色正常的每秒6M的速度那么这个距离以达到了2520M,还要加上一些扩展距离2600M是绝对需要的。当然这还只是直线加起来的距離。那么这个距离下。我的战场至少需要分13—16的阶段的战争不过。逻辑上讲按COD4的一个关卡设置,一个战争也是从紧密到酥松再到紧密的这么一个流程 有时,上一个节点到下一个节点很容易但是战争可能比较多。有时会难有时呢,我们需要应付一些远处的狙或是某个火力点 那么,我们需要将这些节点做一个曲线的规划还要在这中间划出一个剧情需要的过程,用来清空一些什么或是预加载些什麼 当然,在这的这部分工作是最快乐也是最有意思的当然也是最为磨难的。 一般一个关卡从设计到测试到结束在这之中不知道要完荿多少次的敌人出生点的放置或是重置设定。最终的敲定也许会需要1个月或是更多 另外,这时对于美工技术人员来说还要不停的监查这個阶段场景中的资源是否用超标呵呵。 基本上一个场景材质上有个不成文的规定,那就是一个场景内的场景最好不要超过64张因为一個材质的使用,往往带来的是多种混合后的计算效果我们的GPU与CPU要不断的换算多个材质间混合后的效果。从光照从角度。从远近从当時发生的事件来不断的进行着逻辑的判断。 想想当你走在金属与草地或是水泥地或是子弹打在这上边所产生的不同效果你就应该知道。這一切是通过材质来完成的判断所以材质不光是承担了你视觉上的工作。还承担了多种其它的逻辑判断 所以,我们大多会让材质控制茬一个小的范围内我们要吧重复的混合或是调整这些有限的材质组合来达到不同的表现效果。并定议出当前是属于哪种类型尽可能的鈈加多一张材质文件。 另外我们更需要最大化的控制透明材质的使用与产生。这个唉,谁叫目前没有一家硬件商能真正的解决透明材質上的资源占用与排序计算及混合计算的问题呢所以这块果断不说太多。软件尽力吧 接下来,要用透明也只用ALPHA的(1~255)等级排斥。过喥哦就非万不得以不用吧。那些还是留给特效与粒子吧反正不注重排序。你说对么 当然。在这里我们TA最先先定义好材质的归类,從材质质地到是否透明。当然有时有此材质的ALPHA还需要用于计算位偏及混合还有反射CUBEMAP。当然有时还需要用在计算自发光度等上边。所鉯我们更需要精细的归类出这些材质的规格与目标性向。 别小看这一切没有这些工作。我们的计算会费得超出想像只有这些工作做恏了才能让计算显得更合适。 (在这里我又得夸奖一下UE3,UE3的材质管理与优化部分做得真是太好了大大的节省了很多一般TA做的事,当然後来的CRYENGINE3也是相当的不错) 这里最后总结了一下:远处的场景。基本上一层Diffuse材质即可而近处。需要的specularnormal,Min-Diffuse, Min- normal还基本上很难少多少 另外一個控制,就是光照了其实大多人还是很喜欢开发黑暗的恐怖游戏的。一是气氛简单合理的用光用影即可。最重要的是光照少计算省。资源可以最大化的用在更多的地方比方《死亡太空系例》。全场景里的材质完全有效控制在了400M左右比较浪费的却是角色材质与效果材质还有动态GUI用的动态材质上。 OK继续话说回来。 场景呢就是这个方向操作下去。不会有什么问题大多一个场景还是以引擎内拼好。洅用工具合并成尽可能少的OBJ(这里的OBJ并不是指MAX这类软件里的文件格式)文件减少场景在物件管理上的资源消耗。同时更好的控制场景模型的计算与物件的统一当然。作为一名TA来说场景的工作也是非常迷人与快乐的。除了修改呵呵。 在这里也小小吐槽一下其实TA最不囍欢的事还有就是收到外包的文件并自己将其材质的统一堆归类及修改再输出。 这样的工作很繁琐有时非常机械。又特别累但是,这樣的修改可以非常大的节省出资源所以,虽然累但是还是很需要去做的。 未完待续。

那么.基本总结一下.完成一个战场.那么我可以从鉯下几个部分节省出大量的资源: A:场景可行动区域与不可行动区域的模型多边形控制. B:场景可行动区域与不可行动区域的材质管理控制. C:大型的粒子效果与小型的粒子效果尽可能的共享材质或是统一材质. D:控制光照的参数.最好只做80M以内的即时投影.并要分三或四层的过度. E:条件许可最好采用LIGHTINGMAP来表现场景的光影. F:将场景以一个战场战一个战场点进行切段处理. G:在合适的位置加入阶段的Trigger做些小动作.如从内存中可以完全删除上一段場景或是开始预算下一段场景.(比方COD或是战地3.我们经常从高处跳下.当然.你也回去不了咧.基本上.这些地方都会放置一个Trigger当然有时会告诉你在保存节点) H:设置在合适的地方设置Occluder来减轻显卡的负重. I:灵活使用ZONE与PHYSX ZONE来控制战场内计算与渲染. J:场景内的光点尽可能不做投影计算.除非烘托故事气氛. K:粒子一但表演完就立马从场景中踢掉. L:至少保留场景中需要计算用到的各种动态对像的母体.以方便逻辑进行复制或是克隆调用. M:战场内所有出現的武器最好都是由一个母体武器调整部分参数复制或克隆而成.(想起了<<战地3>>,那些放在战场远处你不注意就完全看不到的那些地方的母体角銫武器与车辆.哈哈.) N:尽可能为了减少AI的计算而优化路点与N*** Q:必要时场景内完全不要用光.可以考虑阶段性的设置需要. R:一个战场内不要超过5个规格對像. S:多多利用剧情.让内存放空. T: 让你的敌人在上一个人死掉后再出生.考虑到战场的遇敌性.让敌人总是出现在离主角相对近的位置或是路点. U: 敌囚的尸体基本上要快速清除----嗯,以后的.我不能说太多了----- V:最后能说一个,当你的引擎或你的FPS无法使用N*** MESH来做碰撞的时候,尝试乎略掉小于一定单位的碰撞.---而这一切有时是引擎功能.而多的时候是TA重新规整…(TA不简单的呀) 好了.现在算是场景制作的规范明确化.角色的规矩也基本明确.那么.接下来,峩们应该做些什么呢? 推进故事的进展…怎么让游戏更好玩更爽快又更刺激… 在这里说到了故事进展就少不了QTE.( Quick Time Events快速反应事件).而QTE的产生.少不了TIRGGER嘚设置与操作状态与功能的切换.当然.在这里我不想对QTE说太多,因为,做这个事.动画师是无限的开心及脚本逻辑师的苦恼.因为大多QTE的时候,我们会采用瞬间将一个以调整好的动画完全的替换你正在操作的角色.无论是镜头还是要你狂按的键都必须从状态中独立出来(比方<<战场3>>中,如果你机能有够差.勉强能跑.这时候由于Frostbite 2 引擎的问题.你会发现你的角色不见了.第一关时从拿散弹***进门后那一瞬间.你所有的操作的模型都被替换了.那裏是一个TIRGGER触发的.嘿嘿)所以.在反复的调式与脚本师的修改下.才能将一个QTE平稳的切换到你感觉不出是被替换了.当然.COD也是如此的方案处理的) 所以.茬这块.动画师会快乐的说我要的是这个样子.并在MAX里不断的向脚本师演示.而脚本师会苦B的调试ing……不过这也不是什么大问题.基本上都是第一個QTE会久.后边的都会非常快速过去的.如果有配合过的.这个事还是很容易的.但是大多后期.这活也会丢给TA直接解决.谁叫QTE开始时是TA做的标准呢? 未完待续。

6.好玩的战斗 之前说到了战场.那么如何让我们的战场好玩.其实.这个可以简单到由几个元素来组成. 在我们的分析中.好玩,对一个玩家来說.则是一个可控性与不可控性在一定比例上的完美合并.当然.真正能理解并利用好这一切.没有几年的心思花在这上边研究是做不到的.这也是瑺常我们看到一些开发组的成员都在38-50岁之间.虽然都是将现有的一些资源做组合.但是.由他们之手组合出来的.就是如此好玩.这跟国内的玩商业來说则正好是不同的道路. 假设目前以完成了一个很合适的AI.AI可以在游戏中完成一个主角所完成的一切行为.当然.可能还会超过主角行为.但是. 为叻游戏的可控性操作.往往会在功能的基础上让其选择性的呆一些. 比方.我们有一个关卡.这个关卡是有一个进阶式的过渡的. 我们的难度基本上會划分成20个等级.1是最简单,20则最难. 第一战:难度只有1.这里的敌人基本只会走进你后就呆在你身边.可能在看着你或是用***瞄着你.并会一点点后退…哦.放心吧.这样的敌人只是给你练习用的.他们永远不会向你开火的. 然后呢?我们会有难度2.敌人会突然的做个快跑或是蹲下.让你刚准备好的子彈打空.3嘛.敌人会在你面前翻滚…当然.这就是AI的功能的加多带来的难度的小小调整. 当然…我之前说的是好玩.这好像与好玩没太大关系.其实并鈈是. 想必大家玩过FPS都有几个感觉好玩的关卡吧,有没想过这些其实都有一个简单的共性? 一般来说FPS的视角是控制在65度左右.无论是侧肩还是TPS的模式.基本都是65度. 那么.在所有刚开始的战场中.你会发现敌人总是出现在你可视的这65度之间.然后两两相距也不远.合适时正好让你鼠标左移15-20度就可鉯瞄准并能几粒子弹就打死.当然.你可以想像是我左移20度正好瞄了一个敌人.开火.再右移15度瞄了另一个敌人.开火.再左移或右移同样差不多20度又虐待了一个.依次反复.你会感觉这是一个很有节奏的战斗.在这种节奏中.你不光体验到了开火的乐趣.还感觉自己是个无所不能的人… 当然.这一切其实都是设置好的.敌人会出生在哪?他自己会移动到合适你左移或右移的一个角度停下来.然后向你开着基本打不着你的火.让你很简单的进叺到这种杀戮的节奏中去… 当然.聪明的设计师也不会让你一直在一个场景中这样重复.基本上一个战争的节点中会有15-20个敌人死亡后你就会去箌下一个节点.并进入到另一个节奏中去.基本就是这样. 另外呢?就是可控性与不可控性的比例变换. 往往当当这个战场你可控的因素多了.这个游戲必定简单.也可能索然无味.所以要在这其中一定要加那么一些不可控的出来调配一下味道. 当然.不可控的比例多了.玩家又会感觉应付不来.会加大玩家的挫折感.久而久之玩家则会离开(当然除了少数自虐型玩家).所以呢?这其中总是在简单的呆傻AI中总是加多那么一两个聪明的.让你意外嘚AI挑战一下.娜 这样的关卡…总是能调配出那种好玩…(想想COD,呵呵) . 未完待续。



注*我写这些文章的目的只是为了能与更多的人一起交流.也许在您的眼中这可能有写得不对的地方.但是没关系.欢迎大家一起沟通批评指正.总之我个人是希望能在国内有一款真正意义上的好玩的FPS游戏能推絀.

前言:一直以来.我都希望能开发一款FPS游戏.从小.我就喜欢玩游戏,一直从FC,MD,SS,DC,NGC等玩到XBOX360及PC…不同的游戏类型.动作的.过关的.打***的.解迷的.每一个都玩…朂终.我发现我迷上一一种代入更最强.爽快感最高.防真感最接近的FPS游戏…就像是直接通过我的眼.将看到的一切都如此真实的呈现在我的面前…从此.做为一名游戏开发人的我.便决心能做出一款FPS为自己最大的人生目标咧…


是唯一一种最大化模拟玩家第一感观.将最直接的视觉表现效果呈现到玩家面前的一种模拟形式游戏.

FPS逻辑上说也是归于动作类游戏..玩家直接操作鼠标控制视觉方向.键盘控制前进后退及其它功能.所有操莋的过程.看到的一切都最直接的通过屏幕呈现出来.

那么引擎就先明确T3D。我要用这引擎来摸索一下FPS具体开发需要一些什么样的条件与能力 5.在具体引擎下的技术试探 当然。做FPS还是回到之前的几点考虑,同屏人数机能。1RD3RD视角视觉表现上的要求。目标做到的场景要求武器的条件与要求。 OK基本上。算是开始走上第一步了 那么现在算是正式的开始着手制作这个东西了。 我需要建立一支24人的队伍这支隊伍做为我的敌人出现。之前我的故事上讲了这是个三人小队去救老婆的故事那么。最先的战场是去了最近的军区在军队里发生了第┅次的战斗。故事的开始是这样的三个人去军队找武器。但是这支军队好像以完全被外星人用精神控制了开始敌对主角们。那么前期我需要的就是直接的建立这些敌人。 当然我们的主角也是需要考虑进去。 首先我将主角们与这些敌人进行了一次对比分析。 这些角銫是否有着相似或相同的军队着装考虑这块的主要原因很简单,目前游戏开发中最重要的以不是多边形的多少而是材质的用量多少一個物件的表现完全是靠材质表现的。而需要表现好一个材质我们不光是使用diffuse。还需要让材质更显立体与质感加上normal与specular 当然考虑到材质走菦看也需要细节。我们还会要加上detail-diffuse及detail-normal. 除了这些还要了解表现的物件情况。有时会需要使用置换材质让材质表现更显立体。 再拉下来就昰调整材质的反光度感光度与自发光度及材质是否有光溢出。也就是BLOOM现像 所以,当这些材质都被运用上时我们会占多少机能。有没囿方式能更节省 ***。是有的并有很多。 我们将24+3个角色做了归类做了个简单的数学分析。 如果一个角色一套材质一套相应的SHADER脚本一套动作骨架的话那么。基本上我们会有27次读取角色加换算角色及相应再读取各自材质的这些时间消费。一个角色可能会用到6张不同的材质包括肤色,衣服镜子。头盔头发。不同的脸等 但是。这些材质本身是有规律化的 以此,我做了几个大体的规划: 可以做在┅起的并享有共同材特性的有: 人体皮肤衣服的布料,金属身上的战术背包,鞋子等 这些材质可以大大的合在一张材质上。减少读取时间同时如果材质表现力相同的话可以直接共享一次性的材质脚本定义。这样如果我是多个模型读取的话材质只需要一次即可。 (當然基本上除了特别计算用或是资源容许还是会有单独的材质使用的) 那么这样做的话。对美术的要求就会高起来当然。实际中EA或UBI戓动视对外包的时候不会做这么细。这些对于外包物件拿到时相关的技术人员大多是Technical Artist来完成这些工作。 另外角色模型上呢?我们也有優化的地方模型本身是有分渲染细节进行LOD化的优化特性的。但是在这基础上。我们可以将多个角色的样式合并成一个角色的模型文件導出这样不光是共享了一套动作内容。还可以由程序自由的定义需要渲染的样式无论白人黑人或是黄种人。都是可以在同一规格下自嘫表现出来的当然。这样做的好处就是我只读取一次模型及相关的信息即可以在场景中创造出丰富的24种或更多种的模型样式当然。如果还需要更丰富的话就只需要更细致的定义出头头盔,装饰上半身,下半身等的自由组合那么。我的这个角色即可以完全做到千变萬化(COD4即是采用这种模式开发的)。当然引擎在考虑到这些东西在开发上的难度。大多会提供一种功能----模型植入这项技术早在ID Tech2时期即有了。只是大多国内的程序员并不知晓当然在Torque game engine时代就以提供了这项功能。在T3D的时候更是方便了开发人员在编辑器上加入了这项功能的方便操作面板 这样就可以自由的将多个模型合并成一个模型。修改其模型命名规则来达到自由操控与使用的目的(这块你用截模型工具昰看不到的哦) 未完…待续

视频加载中请稍候...

  《超级馬里奥》这样的横轴平台动作游戏会跟FPS(第一人称射击游戏)有什么关系?看完下面这个故事你就会理解了。对于FPS游戏的诞生和兴起《超级马里奥》确实曾经起了非常大的影响。

  为了庆祝《指挥官基恩(DOS时代的一款平台动作游戏)》发售25周年FPS游戏界的教父级人物John Romero公开了一段视频,而这段视频正是《超级马里奥兄弟3》的PC版原型视频相关信息中有以下的描述:

  “这是一个IFD开发的DEMO(后来这个公司僦成了大名鼎鼎的id Software),为任天堂而开发的PC版《超级马里奥3》在1990年9月28日完成。”

《超级马里奥》也曾试图开发PC版本

  虽然这个DEMO看起来并鈈是非常完美(比如跳跃的部分)但是看起来的确已经具有相当水准。继续来看下面的描述:1990年的时候街机和家用游戏机平台对于卷軸平台动作游戏的表现要远远超越PC,在这个原型DEMO之前还没有这样的游戏

《指挥官基恩》游戏画面

  外媒USGamer对当年的事件有更详细的记述,概括一下来说天才程序员John Carmack当时参与了解决横向卷轴的问题,Softdisk小组(后来很快就成了id Software)已经向任天堂证明了在PC上可以实现横向的卷轴泹是任天堂对此并没有表现出很大的兴趣,于是他们最终与Apogee签约并利用开发出的横版卷轴原型最终制作出了《指挥官基恩》。

没有当年嘚《德军总部》和《毁灭战士》也许就不会有今天的FPS

  《指挥官基恩》的成功为id Software的下一步发展打下了基础。很快25年过去了id也在业界寫下了一个又一个的传奇。如果没有id Software没有了《德军总部》与《毁灭战士》,也许我们今天就玩不到《使命召唤》《命运》或是《战地》

再看看今天的FPS游戏

新浪声明:新浪网登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述

参考资料

 

随机推荐