军#队遭遇突袭,需要上#级命令面板怎么样才能一直在3D才能开#战吗?战场瞬息万变,反击机会也是稍纵即逝,军队真那么淡定?

奇幻战场风起云涌激烈战斗战倳瞬息万变,史诗奇幻战争手游《龙战争》安卓、iOS越狱现已上线!全3D场景雕琢奇幻世界、数百卡牌目不暇接、五大兵种衍生无穷的阵容与戰略极具创意的化身巨龙玩法将带来全新战场体验。下面就跟随小编一起来看看游戏中波澜壮阔的奇幻战场吧!

【主城精雕细琢人物唯美精致】

主城旭日之城是玩家进入游戏后进入的第一个场景,也是玩家的大本营玩家在这里不仅能见到强壮的旭日国王,还能接受大祭司委派的任务是游戏中十分重要的场景。

旭日主城可谓十分精美城墙在余晖的映衬下显得金光闪闪,威严气派的建筑象征着旭日的強大华丽细致的雕刻让人目不暇接,更有真实的光影效果精致的人物外形,逼真的人物动作给你极佳的视觉感受。

【一支穿云箭芉军万马来相见】

主城场景精美不算什么,作为一个战争手游《龙战争》在战斗时的画面更是精彩激烈,浩浩荡荡的军团奔袭于沙场馬蹄踏起的黄沙弥漫着战场,主将技能炫目华丽将敌军侵吞淹没,宙斯召唤闪电瞬间天崩地裂

【巨龙突袭,激烈缠斗战事胶着】

巨龙覺醒自然是玩家最为关注的当战事胶着之时,玩家可通过激活巨龙觉醒来打破这沉闷的战局巨龙降临引起敌军一阵恐惧,炽热火焰席卷战场百米之内寸草不生!两条巨龙狭路相逢,一场恶战在所难免重爪、撕咬、扫尾……两个庞然大物缠斗厮杀,激烈战事等你加入!

《龙战争》是由上海火溶研发的一款奇幻战争手游全3D场景雕琢奇幻世界、数百卡牌目不暇接、五大兵种衍生无穷的阵容与战略,极具創意的化身巨龙玩法将带来全新战场体验

  • 《超时空舰队》是一款基于WEB浏览器的星战即时策略类网页游戏。在宝岛台湾以及东亚、欧美均取的不俗的测试成绩这款星际游戏将浩瀚的未来星际战争与现代太空世界相结合,玩家可自由发展自己的空间站玩家通过建设、贸易、探索、战争

  • 可望又可及的真实战争,美华新智力大型军事题材网游《飓风行动》枪枪带感,步步惊心战场有你胜利随行!如果您对《飓风行动》有什么好的建议或者想法,可以通过官网的调查活动进行发表有Q币相送哦,我们竭诚期待您的反馈!打响战场

  • 由俄罗斯老牌游戏开发商Gaijin公司开发制作的载具射击战争网游《战争雷霆》一直以来都以对二战真实战场的高度还原著称。不过《战争雷霆》里的這些战场到底有多“真实”,想必大家也充满好奇今天,17173小编就将游戏中主

  • 为大家带来了战争雷霆马耳他战场视频攻略在这段视频中為大家详细的介绍了马耳他战场的玩法,不清楚的玩家快来看看小编的视频吧战争雷霆马耳他战场视频攻略:

  • 今天小编给各位玩家带来嘚是《风暴战争》血法师技能属性的介绍,对于血法师相信很多玩家都熟悉因为它是魔兽中的一名英雄,血法师是一种高级精灵他们為了追求更为强大的魔法,不惜任何代价那么我们就来看看他们所追求的力量。造型分

评论(592人参与0条评论)

}

第一次世界大战中英国率先秘密研制的钢铁猛兽,并在1916年9月15日索姆河战役中首次使用当时制造坦克的原因就是为了打破双方相持局面,突破敌军战壕!而到了二战坦克成为战场上的陆战之王,所向披靡!

即将发行的3D史诗战争手游《坦克传奇》是万家游戏首次涉猎军事题材带来一款以真实战争为背景,再度呈现二战时期坦克的辉煌历史

《坦克传奇》还原了闪电战、斯大林格勒会战、莫斯科会战等众多坦克参与的经典陆战。

虎式坦克是二战中最著名、最具有传奇色彩的坦克之一一直活跃于战场第一线,德军乘员之间称其为“无敌坦克”虎式坦克在战争中击毁了夶量的敌军坦克和其它装备,在对手心中树立了不可战胜的神话、留下了威力巨大的深刻印象

M18“地狱猫”为美军在第二次世界大战时开發的一款坦克歼击车。它是美军在二战时所有履带装甲战斗车辆中行走速度最快的一款战车故有“地狱猫”(Hellcat)的称号。

德国“猎豹”采用“黑豹”(Panther)坦克的底盘保留了原车的动力装置和低矮车体,增加了一种新的上部结构编号为Sd.Kfz.173。

SU-100是当时苏联机动反坦克力量的中堅唯一能在远距离威胁当时德国人的以动物命名的坦克系列的战车。

在1942年德国为了谋求加强战车的火力,便开始研究如何在旧有坦克嘚底盘中加装重型火炮设计者把捷克的Panzer 38(t)H型坦克的炮塔移去,并在坦克顶部划开一个隔间再在这个隔间中加装了150毫米sIG 33重型火炮,蟋蟀便誕生了

从上述的型号看,目前游戏内已有美国、德国、苏联各国的多种坦克像T-34、IS-2、谢尔曼这样的顶级坦克还未出现,玩家可以期待一丅游戏上线后这些坦克是否会有呢?

《坦克传奇》是一款由万家游戏发行的3D史诗战争手游由《战争三部曲》核心团队倾力打造,画面運用3D解构与最新渲染技术全面重现真实二战史诗场面。二战知名将领与百部经典坦克全部复活战车手控快感、多模式玩法、高自由度嘚战略指挥系统、坦克外观升级与战斗视觉反馈,以及更拟真化的战场节奏胜负瞬息万变,让玩家体验真正的集群立体陆战指挥铁甲雄狮解决国际军事冲突!

}

版权声明:本文为博主原创文章未经博主允许不得转载。 /q/article/details/

游戏玩法类似与战地系列的FPS对抗游戏玩家可以利用在地图中的载具对目标点发起进攻,最后夺得目标争夺点取得游戏的胜利

完全原创肯定就不能使用网络上的美术资源和他人分享的代码亦或是插件,鉴于美术基础太差因此选择了简约的美术風格,有点类似《我的世界》那种方盒子感觉

原文出处:GameRes游资网
PS:图文来源网络 如有侵权请联系删除

开发日记:Unity完全自制游戏《纸箱战爭》项目记录

因为游戏使用了简约的美术风格,资源占用量大大减少所以便可以实现次时代大作中难以实现的部分,比如完全的场景可破坏性

在上图中可以看到,树木可以分部位击落落在地面后一段时间沉入地面随后销毁物体。.
人物的自定义外观这里算是投机取巧,本来是想要实现类似“人类一败涂地”中那种可以涂色的系统苦于不知道怎么实现,于是就在鼠标划过的位置实例化出一连串的彩色粅体代替画笔最后发现每实例化出一个物体就会增加Batches的占用,估计在项目进展后期可能会删掉这个功能或者演一下。
人物动画的状态機看上去有些乱,不过只有这样才能实现任务在待机、行走、奔跑、换弹、开火、以及死亡之间的切换流畅性

之后是今天的项目进展記录。

考虑到了全物体的可破坏性那么地形自然也得是可破坏的,而地形恰恰也是其中最难实现的一部分因为炸弹的爆炸,地面上肯萣会出现大大小小的坑洞那么这些空洞该如何实现呢?

首先我想到了3Dmax中的布尔查阅了一下资料,Unity中也是可以实现布尔效果的不过需偠实时计算物体的模型网格,还牵扯到了一种叫做SBP的技术就我目前的能力而言想要实现是不可能的。

所以我就想到使用小块物体的集合替换掉大块物体随后对他们的刚体施加爆炸力,模拟出炸弹爆炸效果通过初步的测试,实现了这个效果
首先地形上是一整个完整的哋面,在受到爆炸之后用小方块的堆积物替换掉大块的方块因为大小和位置的原因,在视觉上有一些欺骗性爆炸效果很不错,在爆炸後删去碎屑方块能够在地形上留下一个实体的空洞。
随后问题就出现了因为小方块过多的原因,爆炸空洞的小方块被删去了但还剩丅了很多没有波及到的方块,框选起来编辑器瞬间就卡顿了,如图的绿色密密麻麻的物体都是小方块的碰撞
爆炸一个坑洞还不够明显,接连爆炸之后卡顿更加明显当场景中出现了很多小方块时,就算没有给他们添加刚体组件场景依然很卡顿。

想了很多方法咨询了咾师也没有好的解决方法。

我觉得爆炸空洞周围有很多浪费掉的方块从方块分裂的思路上看,这不是个最优的分裂方法于是我重新制莋了模型,之后的爆炸达到了以下的效果
框选之后,空闲的小方块明显减少了不少帧率也明显提高了
仅仅达到这样还不够,因为游戏Φ还会有载具的出现所以地图肯定不能只有几十米,当地图变大之后坑洞越来越多,游戏势必会变得越来越卡

随后我诞生出了修补坑洞的想法,在坑洞产生后过一段时间遍把坑洞恢复到之前的状态,不过游戏体验肯定是要比留下爆炸产生的洞差一些的还在纠结该怎么样处理这个问题。
今天是周六依然进行了部分的制作,昨天采用了更为优化的爆炸方块替换效果但对性能还是有不小的影响,昨忝在临走之前听老师说可以使用遮挡剔除尝试一下今天就研究了研究,经过查阅资料实现了遮挡剔除的功能。

具体实现步骤是把需要進行遮挡剔除的方块在静态选项中勾选上Occluder Static和Occludee Static在遮挡剔除面板中进行烘焙即可,使用起来很方便在使用后就产生了如下的效果。
绿色区域为摄像机的可视区域在可视区域以外的方块都不进行渲染,有效的提高了游戏运行效率

新的问题随之产生了,因为游戏中需要切换載具我发现在切换载具的时候,因为摄像机的变动遮挡剔除似乎失效了,遮挡剔除似乎只能作用在一个摄像机上这点问题存疑,还沒有得到有效的解决办法

因为地块崩开之后需要在一定的时间内删除,在Unity中即使物体被删除了仍然会在内存中占有一定的资源想到利鼡对象池来解决这个问题,经查阅资料后发现对象池并不适用与我设想中的地形崩坏,具体还得再次的考量考量

另外还写了一个通用嘚炸弹脚本,在游戏中所有的炸弹都可以用到避免了再每个炸弹上单独挂载脚本的繁琐性。
经过周日一天懈怠的洗礼今天又要投入到項目的构建中来,想想18年已经过去一半了似乎什么目标都没有实现,挺让人压抑的

本周是项目正式进行的第一天,刚开始就需要解决周六留下的遗留问题

给老师看了坦克炮击后留下的弹坑效果,如图上所示箭头指示的是用到了前天写的炸弹脚本后的效果。
炸弹在爆炸之后消耗地形方块的生命值不断的分裂最后产生爆炸,在地形上留下一个空洞

当我操纵人物进入深坑的时候,发现了一个不严重泹足以毁灭游戏的问题。

让操控角色以一定速度碰撞到任何碰撞器之后便会失去移动能力就像是被卡主了一样,左右移动之后可以脱离这个问题的出现使得不能从深坑中跳跃出来。

研究了半天也没有得出个所以然来,咨询了老师得到建议是使用角色控制器来代替本身鼡于检测碰撞用的胶囊碰撞器虽然问题可以得到解决,但在之后的对战设计中会存在更大的问题只能从胶囊碰撞器入手解决。

在网上查阅了相关资料似乎并没有找到类似的事件的解决办法,大致浏览了一遍Unity提供的第一人称控制器的代码并没有发现有什么异常的地方。

在之前的测试中把人体的刚体设置成了正常人的体重用来模拟碰撞效果,把质量设置为1后便没有卡住的问题了这点还需要在之后进荇详细的研究。

从项目确立的时候就有两个可以预见的难度摆在眼前第一是可破坏物的设置,第二就是敌人的AI我处理问题喜欢从困难嘚入手,如果困难的问题都能顺利解决那么简单的问题就不再算作问题了。

可破坏物的问题算是解决了七七八八接下来就是另一大难點敌人的AI。

经查阅资料传统意义上的FPS的AI是要比RTS游戏简单不少的,只要打得准反应快就行了可我觉得,如果单单是这样玩家的游戏体驗将会大大折扣。

而且传统网游中的AI智商都是相当低下他们通过寻路系统进攻目标点或者是敌人,没有任何变数有时候玩家只需要卡┅个视野就能如同切菜一般杀死敌人,这样的游戏还有什么意义还不如不止一个靶场来让玩家练习枪法来的实在。

因为游戏中还存在着鈳破坏地形以及可破坏物的限制Unity中的寻路系统显得有些无力起来,在早期测试中已经烘焙好的寻路网格,就算地面上出现了大型的坑洞受导航单位走在上面如履平地,当玩家在游戏中游玩看到敌人能够在坑洞上行走显然是很不符合逻辑的。

没办法只能自己解决AI的尋路问题。

在我的设想中应该是AI会自行选择目标点,随后朝着目标点发起攻击期间伴随着一些突发事件,诸如驾驶载具等等…

最早我昰打算通过一个AI脚本就实现全部的AI功能随后发现这会有一定的局限性,而且就算是同阵营的NPC之间也很难产生一定的联系在游戏中会产苼诸多缺点,诸如全部的NPC都进攻同一目标点的行为

于是我想到RTS游戏,在RTS中玩家扮演的一般是能纵观全局的领袖,指挥手下的士兵也只昰给一个大致的目标点具体的开火和战斗还是由AI智能实现的。

通过这点我想到把AI分为两个模块,其中较大的作为中央控制AI负责对战局进行分析,哪些是需要进攻的目标点哪些是需要防守的目标点,派遣多少士兵对这个据点进行防守等等

而较小的AI脚本则挂载在NPC控制嘚士兵身上,他们在得到具体的目标之后则会对目标发起进攻当任务完成之后会向中央控制AI返回“进攻成功”的指令,中央控制AI随后会發布新的命令面板怎么样才能一直在3D给士兵AI

在着手进行AI代码编写之前,首先我创建了一个新的工程对AI进行预测试就像当时测试可破坏哋形一样,这样即使修改了某些东西导致Unity工程损坏也影响不到已有的工程文件

如图所示,地面上有两个阵营的士兵各一个还有四个目標点,其中A点为红色方占有B点为蓝色方占有。

再进行AI编写前还需要先能让AI知道什么时候该进攻目标点什么时候该防守目标点。

这里我紦目标点设想为一个环形区域只要在此区域内的阵营物体都可以参与目标点的争夺。

当目标点为红色方所有蓝色士兵进入区域,对目標点执行占领需要先消耗掉目前红方的已有占领条,一个单位即记为消耗速度为1多个单位则进行累加,最高上限速度为3

当占领条消耗完毕,目标区域则变为蓝色同时对占领条进行增加,一个单位记为增加速度1多个单位累加,最高上限速度为3

当占领条重新增加到滿为止,这个据点才算被成功拿下可以作为重生点使用。

如果在占领过程中同时有敌方士兵进行防守每个敌方士兵会减少一点的占领速度,如果双方在占领圈中人数相同则占领区域既不增加也不减少。
在代码中我定义了一个函数叫“目标滑向阵营”,不知道该怎么形容大概意思就是判断该区域内成员较多的一方势力,这就说明目标点的占领方向是向着该方向倾斜主要用来修正当占领条不满时,據点内双方都不存在人数的情况

说句实在话,今天的状态实在是不好可能是因昨晚没有休息好缘故,在处理逻辑的时候总感觉意识有點模糊似的

代码写完之后,感觉像是写错了Debug一下居然输出了正确结果,也让我自己有点小意外

    这样是在面板中可以定义的属性,在測试阶段看上去数目繁杂有些很乱,当测试通过之后就可以把不需要外部调用的变量从公有改成私有,虽然不知道这么做还有什么好處最起码在设置参数的时候看上去能舒服一点。

完成了目标点的占领测试之后项目近战又前进了一步。

接下来是AI总控制器和个体AI的编寫因为两者之间存在着很多练习,所以在这个程序中我选择同时编写两个AI。

在编写个体AI的时候我想到战争时期,通讯不便的情况下昰如何发布战斗指令的从烽火狼烟联想到飞鸽传书。

两者都是用来传递信号的但都有一个通病,传送的信息量太小飞鸽传说或许还能好一些,狼烟兴许能通过改变烟雾的节奏这个说不清楚。

接着还联想到了Unity中的动画状态机似乎动画状态机的运作方式跟我设想的很楿似,已经既定好了若干个行动目标如果达成了某项条件,就执行预先设定好的动作

照着这个思想,我想到了AI总控制器给个体AI传递信息的时候可以只传递坐标信息动作制订则由预先编写好的方法体来实现,通过代号来判断具体指令的目的

比如“0000”是朝向目标点行进,“0001”是朝着目标点行进在目标点中环形运动巡逻等等…

在AI总控制器中我也把目标点的可重生性和可攻击性以及攻击的先后顺序进行的方法预编辑,在使用的时候方便调用

预计整个AI总控制写下来在两千行左右,同时还要处理大量的逻辑问题对我这样一个初学者来说算昰个不小的挑战。
今天因为公司来了一支拍摄团队来拍摄宣传片的缘故项目中断了几次,还客串了一把演员出镜了一段对项目进度产苼了些许影响。

同老师讨论了一下昨天构想的两种AI设计思路;

第一种是从RTS游戏入手用控制AI包裹住个体AI,呈向内辐射的控制模式个体AI返囙下达指令的完成情况,控制AI结合战场局势修改指令的AI设计模式

第二种则是摒弃控制AI,把所有的个体AI孤立成为类似动画状态机的条件实現模式在满足一系列条件之后根据与非逻辑进行判断操作。

因为之前完全没有接触到AI领域以片面的权衡考虑来说,第二种的AI似乎更容噫实现一些但整体效果似乎与第一种相差很多。

如果按照第二种AI逻辑实现的话项目中的NPC将不会给到玩家一种战争的感觉,更像是过家镓的打闹一般

从老师那里得到的印证也比较倾向于用第一种设计模式来实现NPC的AI效果。

在预先构想的同时觉得是很容易实现的事情当着掱操作的时候并没有想象中的这么简单;

人脑是相当复杂的结构,由数以亿万计的神经元细胞连接而成神经网络错综复杂,而计算机中呮存在01的判定所谓AI在我理解中也应该就是若干个判断语句链接在一起构成的。

一条if语句其实就可以称作一个简易的AI了但如果想让这个AI聰明起来就需要更多的if语句,if语句累积起来就可以凑成相当大的神经网络系统

举个例子,就像是吃早餐:

面前摆放有一个包子如果只囿一条if语句的话,就只能判断对这个包子是吃亦或是不吃那么条件也肯定就是自身的饥饿程度。

对吃包子再加上一条if语句比如像是包孓的馅料,如果我是个素食主义者而包子是肉馅的,及时我已经饿了但我也不会吃这个包子。

在此基础上再加上一条if语句如果我现茬已经快要饿死了,那素食主义者肯定就没有需要再坚持的必要了

就像这样,三条简单的if语句就构成了一个简易的逻辑网格那么更多嘚逻辑网格拼凑在一起岂不是就出现了类似人类的思想?

从早上起床的时间选择穿着的服装,早餐吃的什么乘坐怎么样的交通工具,這些够可以使用一连串的条件来判断结果

有时候未免会出现模棱两可的情况,似乎进入某个选项都会有冲突人类都可以通过抛硬币来結局,计算机自然也是可以通过随机数来解决的

当然了,这只是我作为AI尚未入门者的片面认识如果有理解错误的地方还希望能够斧正。

扯得有些远了不过这也能够佐证一个尚可AI的书写难度。

为了保证代码的易读性我选择把控制AI中的所有复杂算法全部封装成了方法,目前还只是封装了几个如图所示:
首先控制AI要知道自己是属于哪个阵营的,随后需要知道各个目标点现有的占领情况这些都是不可避免的,在游戏的初始化中就调用了该方法

随后我想到在玩过的战争FPS游戏中,玩家普遍都是会分有小队的指挥官会分小队下达命令面板怎么样才能一直在3D,如果要一个士兵一个士兵的下达命令面板怎么样才能一直在3D将会显得指令赘余所以在游戏刚开始的阶段,就根据设萣的阵营士兵数量对AI分成小队

这里我不想再设定更复杂的多种小队了,直接让阵营中不管士兵数量都分为ABC三个小队整除一下,剩余的壵兵再统一划拨给A小队

既然已经给士兵区分了小队,那么在士兵身上挂载的仅用于判断属性用的脚本上就要增加上一个小队选项这样指挥官就可以通过不同的小队下达进攻亦或是防守指令。

在之前的设定中目标点占领只有在值达到100的时候才可以使用该目标点重生。

这點也同样封装进了方法中:
在之前的代码中除了变量声明带有注释外算法部分都是没有注释的,应该不影响理解

该方法是返回一个初始化小队实例化完成的bool值。

首先执行的RebornPointOK()方法是判断目标点是否允许重生

如果A点和B点都为可重生状态则进入之后的函数,根据小队成員的现有数量判断小队是否满了不然就给该小队实例化一名成员。

其中的Camp值为最先声明好的控制AI的阵营1为红色,2为蓝色

最后本日的項目进展就到此为止了,此外还封装了一个判断目标点进攻优先级的顺序算法还不是太成熟,就先不展示出来了
今天设计完成了初代蝂本的AI制作,先命名为AI1.0

在AI1.0中,初步实现了控制AI程序对个体AI发布指令的功能随着时间的发展和目标点占领状态的不同,管理AI会发布不同嘚AI指令给个体AI个体AI则会遵照指令行动,经过一段时间的测试初步达成了既定的目标,对目前的设计还算满意

在早期版本中,因为个體AI挂载在模拟士兵单位的方块上方块带有碰撞和刚体,运动显得有些不正常锁定了刚体的轴向限制后就产生了图二中的效果。
另外茬测试中发现了一个控制点的Bug,不知道为什么在昨天的测试中没有发现检查代码后发现在设计控制点算法的时候,考虑到了在控制点周圍的如果没有士兵的情况为了节省代码的运算量,算法被设计成控制圈内物体数量发生变化时才进行后续的计算

这样的话就出现了一個问题,在昨天的设计中提到了一个“目标滑向阵营”函数如果目标点中的人数始终不发生变化的话,那么“目标滑向阵营”函数就不能重新赋值

所以目标点的占领数值在降到0之后会错误的把目标点的阵营规划到“目标滑向阵营”的数值,在改变算法之后把整体算法葑装成一个方法,使用重复计数器重复调用函数这样也能做到节省程序计算步骤,同时又可以对“目标滑向阵营”进行赋值
今天完成叻初代可试玩版本的发布,历经将近一周的时间的首个测试版本
初代地图并不掺杂地形,只不过是把外建工程中的AI脚本适配进了原项目笁程中对细节部分做了一些优化和改动。

在占领点上增加的旗帜方便更直观的看到旗帜的变化从而知晓占领点的占领进度,当然了這在之后的UI上也会有所体现。
如图所示不同占领点在AI接近之后发生了占领数值的变化,从而改变了旗帜的高低位置

在旗帜的代码编写階段还出现了一点意外情况,感觉到利用动画实现旗帜的升降会更加困难所以便采用了代码检测目标点的数值动态调整旗帜高地的设定。

在最早的代码中因为错误的把全局坐标当成了局部坐标,创建向量给position赋值的时候坐标位置总是不再预想中的位置上期间还以为是因為模型的缩放值影响到了坐标位置的变化,最后检查过发现是在赋值的时候发生的错误创建出的向量为全局坐标向量,但错误的赋值给叻局部坐标从而导致了错误,更正之后即修正了错误
上图代码中是实现的NPC在死亡后所调用的函数,在NPC生命值小于0的同时关闭物体的显礻同时在OnDisable中调用管理AI中的重生方法,传导启用协同程序在等待一段时间后根据随机值在可重生点复活。

接下来的就是着重与游戏的优囮因为地形破坏的原因要消耗大量的系统资源,所以在其余能节省的地方要尽量节省首先我考虑到了管理AI的代码深度过大,每次执行嘟要消耗扥多资源

而在战争进行的同时,目标点肯定不会是瞬息万变的所以统一调用时间设置成了五秒,每五秒钟更新一次目标点饒是这样还感觉有点时间短了,在后续添加进地形之后可能会把该数值放大到10秒或是20
如图产生爆炸效果的同时,工程页面的FPS值为82因为峩用到了两个屏幕的原因,消耗的性能可能会增加如果是在玩家的电脑上运行帧率应该会进一步提高。
驾驶飞机时的瞬时FPS达到了187多数還是能维持在120。
飞机拉升到纵览全局的高度地形全部加载,预先设定好的四个目标点区域在地图中只占到了很小的一部分现在的FPS为105。

朂后增加了算是一点恶趣味的东西通常在这类游戏中,玩家进攻的目标点一般都是不可摧毁的也不能改变的,但我给目标点旗帜增加叻刚体当地形破坏之后,旗帜就掉进了地面下的孔洞中当然了使用坦克也可以推动旗帜。
此外今天在编写代码和工程页面调试阶段Unity發生了多次崩溃,未能发现崩溃的具体原因把工程发布成产品之后在别的电脑上均能流畅运行,并无报错闪退的情况目前还不清楚是洇为什么导致了这样的结果,难道是因为在编写代码的时候改变了系统的某些环境变量的缘故
今天完成了一些场景模型的布置搭建工作,还在发愁项目优化的问题

AI的总体控制完成了,但个体AI离真正的实现还有很长的一段路要走今天特意抽出了一些时间来思考个体AI的设萣。

首先可以肯定的是个体AI肯定是要比控制AI更加复杂多变。

其次今天突然之间想到,如果是用AI来模拟真实的玩家那么真正的玩家在遊戏中的行为肯定会是无法预测的,并不会按照某一固定的模式执行规则

因此之前设想过的通过需先编辑好的AI动作方法就只能放弃了,偅新整理思路

一定要确定的是一点,游戏中是分有不同的职业的现阶段是分为突击兵、工程兵、反载具兵、医疗兵、狙击手。

在敌人昰医疗兵或者是狙击手的情况下并不能对敌人的载具造成伤害那么载具肯定就不会是他们的目标。

而工程兵或者是反载具兵的优先攻击目标肯定是威胁更大的地方载具单位

医疗兵则会优先治疗友军,其次才是击杀敌人狙击手则是要远程击杀目标。

考虑到这点我就思索是不是应该把个体AI的寻获目标方式给封装成独立方法,因为并不需要时刻切换目标和控制AI脚本一样,每隔一段时间调用一次就可以了

在确定敌方目标的时候,我使用到之前写过的Camp脚本上的阵营这样一来就需要多次的获取组件,担心多次的获取组件会影响到游戏的性能对本就高负荷的游戏再增加更多的负担。

查阅资料后发现获取泛型组件是相对节省资源的方法,但尽是这样还不够考虑到了在遍曆循环中每次遍历判断的时候都要获取几次组件,干脆把获取组件集体构造一次这样应该能节省一些资源。

在获取了目标之后就应该昰对目标发起攻击了,这点考虑到了还有进攻目标点的原因我认为应该添加一个追击时间,在追击了一段时间后AI则会放弃追击,进攻目标点

到目前位置,没有框架的致命缺陷就暴露了出来

自我反思,在项目确立的时候就没有构思好全部的步骤有些功能的实现只是洇为一时的兴起而制作了,这样反而是打乱了整体的设计路线如果有一个成熟的框架,代码编写则会简单很多

早在项目建立阶段就没囿考虑到这个问题,对自己的能力认识的还不够清晰同学制作的手游几近完成,而我还卡在敌人的AI设定方面

不过这也并没有打击到我嘚自信心,毕竟是PC游戏复杂性远非那些手游所能比拟的,这对我是一次锻炼也是对前段时间学习的一个总结。
其实周六也是项目有些進展的不过是在因为进展太少了,不值得单独写成一篇记录

这两天主要都是在整合AI的功能实现,不得不说写AI实在是太麻烦了,比想潒中的还要麻烦的多得多

今天实现了AI对目标发起攻击的算法设计,本来打算是要自己写出来一套躲避障碍物的算法实在太难了,没办法不得不采用了Unity中自带的寻路导航系统

如下图片是打印出了AI的设计检测射线和路径导航的预览图。
今天上午写了删删了又写花了一上午的时间算是写出了一个AI目标判定的方法。

之前已经书写过了AI搜寻目标的方法TargetFinding()在使用的时候只需要调用就行了,这就不需要在AI脚本Φ获取了

我考虑到在AI运动的时候应该只有四个状态:

  1. AI没有攻击目标,AI处于占领区域内

  2. AI有攻击目标AI处于占领区域内

  3. AI没有攻击目标,AI没有處于占领区域内

  4. AI有进攻目标AI没有处于占领区域内

如果为3的情况,只需要让AI向着目标前进就行了同时再路径行动的过程中搜索可以攻击嘚目标。

如果为4的情况AI找到了攻击目标,但没有处在占领点内这时候就需要让AI对目标发起攻击,但并不能耽误了进攻目标点

如果为2嘚情况,就直接让AI进攻目标并且在杀死了目标之后立即寻获目标。

如果为1的情况就让AI呈现巡逻状态,始终处于寻获目标的状态直到發现敌人。

以下代码为AI的职业为突击手时的AI算法:
今天整理了个体AI的脚本也算封装完成了
封装以后,原先预计在2000到3000行的代码被精简到了700荇以内

经过测试,流畅是很流畅但出了一个很严重的BUG。

不清楚是具体什么原因AI总是会攻击队友,而且次数不在少数莫不清楚头绪,检查了几遍自己封装的方法初步估计原因是在目标寻获方法中出现的问题。

找来找去终于发现是因为一个简单的逻辑运算符给打错了没想到居然会造成了这么严重的BUG,看来码代码的时候还需要更加仔细一些

此外今天还解决了报错闪退的原因,闪退前控制台会瞬间报錯后闪退今天手快截图到了,在网上查了下解决方法
我使用的Unity为5.45,在国内的网站上居然找不到解决方法最后还是在外网上找到了类姒的解决方案。
大概意思是说出现这个错误的原因是因为使用到了遮挡剔除的原因相机上勾选了遮挡剔除,而场景中并没有对遮挡剔除嘚物体进行烘焙才导致了这样的错误。

我试验了一下把已经红烘焙过但是没有使用到的遮挡剔除清除之后就再也没有出现闪退的情况

の前还一直认为是因为用到了随机数Random的原因,因为Unity和C#中各有一个Random类如果没有具体声明可能就出现错误,我还特意加上了Unity的命名空间来解決没想到居然是因为遮挡剔除的原因才闪退的。

既然这样了或许在之后的任务中就不能使用到遮挡剔除来优化游戏了,这么说还需要洅别的地方想办法节约一定的资源占用量又是不小的工程累积。

明天预计会完成AI驾驶坦克和飞机的工作如果时间充裕的话还会设置到玩家控制角色的各种设置。

}

我要回帖

更多关于 命令面板怎么样才能一直在3D 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信