人气 270

[游戏程序] 游戏引擎制作中那些鸡毛蒜皮的事 [复制链接]

九艺网 2017-3-10 17:02:05

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x


上帝跟我开了个玩笑。我发明关系碰撞模式时候,以为已经跻身和星际、魔兽同一级别的物理算法,但现在我们在测试时候,发现关系碰撞trigger频率之高。尤其在排堵,疏散大量对象流的时候,因为通过关系碰撞表得到的演算数据,在根据这些数据进行驱动的时候,因为我选择的接近碰撞的几何体是立方体,因为 3D立方体有8个顶点角,所以立方体在进行旋转的时候,角与角的碰撞关系会发生变化,这时候会重新触发一个新的关系碰撞。这种情况主要发生ByPass模式,就是绕行模式,因为当3D对象发生绕行,会重新进行寻路,所以一旦关系碰撞被大量触发,比如几十个角色的运动碰撞,那么就会发生数百次寻路,所以系统性能因此降低。

关于这个问题,我已经将原来的接近立方体,换成了接近椭圆体。因为椭圆不会随旋转变化而触发的新的关系碰撞,这就不会导致频繁寻路了。
可是,鸡毛蒜皮问题这时候就来了,接二连三的来。因为用椭圆体,我需要两个半径,或则是3个boundingbox坐标,这就涉及到数据结构的撰改。可是当我在撰改数据结构的时候,我又发现现有的数据结构有点死板,改动的时候,其复杂程度不亚于数头发。而我又不能保证以后又不会再去改数据结构,这时候我又要面对的新问题就是大改一次数据结构,方便以后使用。ARPG,RTS游戏引擎的数据结构,如果要将他说成鸡毛蒜皮,那么就是大鸡毛+大蒜皮。这是我对第一个鸡毛蒜皮的感想。
感想其二。我现在回过头在深入LOD terrain的部分,因为light和projected texture这两个视觉效果,很多技术demo,很多文献资料都是基于texture在做介绍,可是在tile terrain中,有很多东西要绕一下,不能直接实现,这就导致了我对LOD terrain的再次深入制作。
感想其三。关于线性平滑算法,大家知道线性平滑的原理是div 2,可是在一个 pane中,一个方形体中,我只有4个角的height,而计算中间的平滑线,我要根据4个值来重新估算,并不是单一的一个直接拿母数来除。我拿公式估算了一下,要实现64x64的线性平滑,我至少要用10-15个左右的for才能搞定,其复杂程度绝对不容小视。后来有一天,就是昨天,我突然想到用 photoshop做一张64*64等边图,然后用柔边把色彩全部改成黑白,因为黑白是8为色彩,加上柔边特性,刚好起个平滑作用,而线性的算法,就直接用将色彩和线性插值相加即可。这样只会用到2个for,而且还可以根据情况,拿photoshop改图,这样干多简单啊。就是有点繁琐,是谓鸡毛其三。
感想其四。我的电脑是很高档了,专业图形卡,3G的内存,就光是显卡都可以换一部中档的本本。可是用户呢,用户往往是什么GF3,GF4,TI7200之类大配置,昨天花了140买了一个GF4来作为制作底线,可是在机器一插,系统就崩溃了。结果是硬件定位太低,驱动不认。我又重装系统。是谓鸡毛其四。

我的引擎是很先进的。我这样说是因为我每天都在游戏圈子里面溜达。
从gamespolt,gameres,到microsoft,blizzard,我都在看,从官方论坛到网友自发的站点。
今天我在gameres看见有人在说无冬之夜2的toolset很好。我觉得很欣慰,那人是专业人士,nwn2那么差劲的引擎还能说好,那么我的引擎对他们而言,那肯定是神话了。哈哈,哈哈,哈哈。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|小黑屋|九艺游戏动画论坛 ( 津ICP备2022000452号-1 )

GMT+8, 2024-3-29 15:40 , Processed in 0.055909 second(s), 23 queries .

Powered by Discuz! X3.4  © 2001-2017 Discuz Team.