查看原文
其他

3D技术分享:有着30多款3D小游戏产品的长沙嗨鹿互动科技资深研发工程师分享3D游戏研发经验

点我关注公众号☞ Layabox 2023-08-11

LayaAir引擎在小游戏3D领域一直有着领先的3D引擎技术优势和众多的案例产品,涵盖了各种3D小游戏产品类型,甚至包含了MOBA、FPS、TPS、MMO、SLG等重度类型3D产品,之前推荐的主题产品文章《LayaAir引擎78款3D射击主题微信小游戏分享,看看玩过几款!》与《132款3D跑酷极限运动主题的微信小游戏分享》也对部分LayaAir引擎游戏产品进行了介绍。


有一些开发者反馈,希望能听到一些研发团队的干货分享。今天他来了,本次,我们邀请到长沙嗨鹿互动科技有限公司可可佩里工作室的3D开发资深工程师黄敏进行一些3D游戏研发的经验分享。



LayaAir引擎:你好,黄敏。这是我们第一次采用线上沟通的方式,与LayaAir引擎的游戏开发者进行访谈,感谢您为众多的LayaAir引擎使用者分享一些研发经验。在此之前,先简单介绍一下咱们的团队吧。

我们是长沙嗨鹿互动科技有限公司的研发部门。自称为可可佩里工作室,是一群经验丰富与年轻活力搭配,严谨又调皮自由的团队。

我们团队有30多款3D小游戏产品,都是采用LayaAir引擎研发,例如《指尖乐动》、《机械球快跑》、《推倒一切》、《车轮压一压》、《给脚就跑》、《叠高跑圈圈》、《搞把大宝剑》这些代表作品。其中也不乏百万DAU的热门产品。


《指尖乐动》小程序码



机械球快跑》小程序码


推倒一切》小程序码


车轮压一压》小程序码


给脚就跑》小程序码


叠高跑圈圈》小程序码



搞把大宝剑》小程序码



LayaAir引擎:能否为LayaAir引擎的开发者们分享一些游戏制作的技术亮点?

《搞把大宝剑》是我们最新的3D游戏作品,是技术挑战与市场风向的双向选择,我们就以这款游戏为例介绍一下。


站在技术角度来说,这款游戏主要亮点就是模型mesh的顶点变形和mesh切割算法,还有就是相关的uv贴图处理。


我们的磨刀材料模型是由几百个平均分布于模型Y轴2边的顶点组成,他们之间的坐标都具有对称关系。当发生磨刀石摩擦的时候,实际并未真实切割,而是将顶点在Y轴方向上进行位移并重新生成新的mesh,但是从外观上来看相当于这一块被磨掉了。而第2个环节则是将Z轴上的顶点位移到0位置,这样就会变成刃的状态,其实就是使用了顶点变形技术。


最后的切割部分则是真实的模型切割,将模型各个三角形根据切割平面分成2份,并将被切割断的三角形补偿2个顶点由一个三角形变成3个三角形,同时修改其UV贴图,这个补偿算法就是项目中比较复杂的地方。


还有一个就是切割面的覆盖问题,使用补偿算法中生成的新顶点可以构成结构几个多边形,根据这几个多边形进行三角形分组,形成一个补偿面即可生成覆盖完全的切割面。这个算法就是最复杂的部分,我这边还只实现了凸多边形,如果出现凹多边形就会出问题,这个算法还会继续优化!


LayaAir引擎:通常尝试一个新的游戏类型时,都会踩一些坑,团队在制作这个小游戏的时候,是否也遇到一些坑点经验可以分享的?

坑肯定是踩过不少,哈哈……,但是都趟过来了。其中一个就是计算量巨大的问题,最后用分帧计算的方式解决了。其他的坑就不说了,因为踩坑填坑是一个程序员最大的乐趣与成长的养料!

LayaAir引擎:逐个体验了一下你们的游戏,真的很赞。不过,里面有很多都是物理游戏。众所周知,iOS系统,小游戏平台是不能使用JIT的,这对性能是个比较大的考验,你们的物理小游戏在iOS上,有什么优化技巧没有?

是的,物理引擎的计算量实在巨大,这对性能影响非常大,而且效果不一定能达到游戏的设计。我们很多游戏只能通过抛掉物理引擎,通过自己计算来实现功能,比如磨刀时候的阻滞效果等等。无法抛掉的就碰撞体分组、减少iOS碰撞体、休眠部分未触发的刚体的等方式去优化性能。

LayaAir引擎:您还有什么其它研发方面的要点,值的对开发者说一下。

其他分享的话就是,有一个厉害的3D美术搭档真是一个赏心悦目的事情。还有就是游戏开发周期过长的话,一个有耐心的策划和制作人还有老板也是必须的。

另外,我们团队正在招收有丰富经验并且愿意从事小游戏开发,熟悉LayaAir引擎的开发人员。联系方式,微信号:xiaolianDDD,邮箱:zhoulian@hiillo.cn、yuanyuqing@hiillo.cn。


LayaAir引擎:最后一个问题,LayaAir 3D引擎当前是否能满足开发需要,对于引擎未来的开发,有什么建议没有?

LayaAir在3D方面完全可以满足开发的需求。对于引擎方面希望在文档和示例上能够多一些,有的时候只能自己去摸索。


写在最后,

再一次感谢可可佩里工作室黄敏对LayaAir引擎开发者分享的干货内容。
LayaAir引擎不断为开发者创作产品提供更多底层保障,但产品本身的发挥是靠开发者对引擎使用的熟练度以及对产品的理解。欢迎开发者来分享研发经验或者技术文章的投稿,Layabox将会为这些开发者赠送免费的LayaAir引擎技术答疑服务。
最后对于开发者反馈的文档和示例方面,我们也会逐步加强,尤其是更加丰富和炫酷的引擎功能示例,会逐步在官网中增加。

END



推荐阅读:


引擎版本更新说明:

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存