快捷搜索:   创业  准备    游戏 

3d格斗游戏引擎,为什么3A游戏场景庞大很吃机器,3D格斗场景较小也很吃机器?

引:

为什么3A游戏场景庞大很吃机器,3D格斗场景较小也很吃机器?

Unity、Unreal、CryEngine这三个引擎各有什么特点?哪一种最适合用来开发大型3D网游?

有没有国产的游戏引擎?为什么很多游戏公司都是去购买的引擎?

用函数式编程,从0开发3D引擎和编辑器(一)

为什么3A游戏场景庞大很吃机器,3D格斗场景较小也很吃机器?

机器里面的短板有:

cpu,gpu,硬盘,ram,总线

3a场景主要是巨大的贴图数量对显卡要求比较高,另外读取材质,加载和卸载显存也优化一环,比如说gta5开车会卡。

3d格斗场景,场景基本不变,贴图数量稳定。那么会卡的原因应该是显卡算力不足,那么还有可能是cpu计算,对于bullet等引擎,很多物理引擎都是单线程的,如果3d格斗是用仿真引擎,那么cpu单核压力也是很大的

Unity、Unreal、CryEngine这三个引擎各有什么特点?哪一种最适合用来开发大型3D网游?

贴一下wiki百科:

  CryEngine是由德国游戏开发商Crytek设计的游戏引擎。它已经在所有游戏中使用,初始版本在FarCry中使用,并且不断更新以支持其游戏的新游戏机和硬件。它也被用于Crytek许可方案下的许多第三方游戏,包括狙击手:幽灵战士2和SNOW。WarhorseStudios为其中世纪的RPGKingdomCome:Deliverance使用了改进版引擎。Ubisoft在最初的“孤岛惊魂”中保留了一个内部的,经过大量修改的CryEngine版本称为DuniaEngine,用于FarCry系列的后续迭代。

  Unity是由UnityTechnologies开发的跨平台游戏引擎,于2005年6月在苹果公司的全球开发者大会上首次宣布并发布,作为MacOSX独有的游戏引擎。截至2018年,该引擎已扩展至支持超过25个平台。该引擎可用于创建三维,二维,虚拟现实和增强现实游戏,以及模拟和其他体验。[4][5]该引擎已被视频游戏以外的行业所采用,如电影,汽车等,建筑,工程和建筑。

  虚幻引擎是一个游戏引擎所开发EpicGames公司,在1998年的第一次展示了第一人称射击游戏的虚幻。虽然最初的第一人称射击游戏的发展,它已经成功地在各种其他类型,包括所使用的平台游戏,格斗游戏,MMORPG游戏,和其他RPG游戏。凭借其用C++编写的代码,虚幻引擎具有高度的可移植性,是当今许多游戏开发人员使用的工具,它具有源代码可用性。最新版本是2014年发布的虚幻引擎4。CE我自己没用过,据说它更多是一个图像渲染引擎。

  那么再说Unity和UE4,这两款引擎都可以开发大型3D网游,具体要看你们团队的技术流了。

但就我个人使用而言。两者的策略是不同的。

  Unity给与用户尽可能的自由度,包括编辑器扩展。但缺点就是很多东西要自己造轮子,Unity通过素材商店很大程度上解决了这个问题。模块化的方式,让我每天大量的时间都在找插件找插件找插件。

  UE4做了很多封装,如果你按照它的规矩办事,可以事半功倍。但是你也完全可以将它当做一个图像渲染引擎来用,为什么,因为它开源了!只不过这样会显得有点暴殄天物吧。

有没有国产的游戏引擎?为什么很多游戏公司都是去购买的引擎?

时代在变化。

  当一项技术走向产业化并不断成熟时,角色的分化是不可避免的,就像操作系统的出现,就像高级语言的出现。技术发展的过程当中,我们总是在试图解决超越自己能力问题,于是当人们看透过去失败的教训时,他们便停下来思考,达成共识,构造抽象,搭建阶梯,制造一个巨人的肩膀来让后人站得更高,不必再担心脚下是否坚实可靠。如此循环往复,技术进步,时代变迁,我们的创造力也从中解放。这是人类进步的必然,游戏也不例外,不过游戏业发展到如今,早已是一个远离先驱的时代。

  然而分化仅仅是个开端。依稀记得当年Unreal和id的引擎大战,游戏引擎这一概念第一次在人们眼中变得鲜明起来。就像操作系统的出现改变了人们编程的方式一样,游戏引擎的出现也势必颠覆人们创造游戏的方式,于是各大技术实力深厚的公司纷纷开始打造自己的引擎来支援游戏开发。

  但分化还在继续,游戏引擎逐渐从游戏创作中剥离出来,就意味着它将不断专业化,为了克服复杂度,变得更加强大,引擎本身也将作为一个独立的个体继续分化下去,从开始的图形引擎,音效引擎,碰撞引擎,到后来的脚本引擎,物理引擎,动画引擎,再到更加细分的格斗引擎,动作捕捉,美术框架,场景设计,资源管理。而现今流行的体感,多平台,3D视觉在以后也将更加清晰和专业化,融入游戏引擎的大家族。

  引擎在不断复杂和细化,也在不断解放游戏创作人员的创造力,让他们摆脱繁杂的底层处理,把所有精力真正投入到那些有价值的异质的部分:设计,艺术与游戏性。然而时隔多年,游戏引擎早已从一组API变成了一整套庞大的创作环境,直到一家游戏公司再也承受不了引擎维护的巨大成本,一个崭新的市场和产业呼之欲出。

  这接下来的一切都正在发生。一些公司面临抉择,有的选择逐渐摒弃游戏业务,开始专心研发商业游戏引擎,想要成为这一新市场的先驱者;有的选择放弃引擎维护,把成本投入到更有价值的内容创作中;还有为数不少的技术型厂商依然沿着老路在走,或外包,或自己做。

  随着去年Unreal和CryEngine相继开放使用,越来越多的引擎加入到这一新市场的争夺上,「寒霜」、「RedEngine」,个个都有备而来,素质不凡。然而Unreal作为行业的先驱者,拥有庞大的社区和完善的开发者支持,优势是很明显的。随着下个家用机世代的到来和Unreal4的发布,好戏才刚刚开始。未来5到10年,商业引擎产业的格局将会越来越清晰,更多的公司将会采用商业引擎,一些引擎的霸主地位也将逐步确立,为群雄割据的时代画上一个句号,整个游戏业也会完成它的进化。

  当商业引擎产业不断稳定和成熟,它将是难以进入的,这和任何一个其他产业的情况都是类似的。就像PC大潮结束时一样,一个发展成熟的操作系统是复杂而无所不及的,上面连带着大量的产品和服务,平台价值无法估量,此时它已经是不可替代的。一家公司可能能够创造一款独一无二的操作系统,但已经几乎没有机会去创造一个成功的生态系统了。所以国内即使有自己的操作系统,也只能是极其细分的小规模应用。

  成就「巨人肩膀」的是牛顿手中的苹果,而不是「巨人肩膀」本身,PC浪潮时中国已经错过了摘苹果的时机,而商业引擎时代中国厂商也正在错过。Unreal和CryEngine在做正确的事情,他们在开放平台。等到基于它们的构造不断被创造出来,平台价值开始井喷,没有人能阻止他们成为霸主。技不如人就只能在平台竞争中落败,也就只能不断地错过成为霸主的机会,直到有一天我们真正地作为一个民族超越了其他民族,我们才有机会站在浪潮之巅。

  如今的游戏业商业上的主战场在家用机平台,PC游戏平台几乎已经沦为了新技术的试验田。而游戏引擎作为技术力的代表是要靠单机游戏来竞争的,网络游戏天然的实时性不足让它难以成为技术竞争的主战场。这也是国内引擎行业尴尬之处所在,为数不多的国产引擎均以网络游戏为核心,最多画面引擎出彩一些,很难产生真正有核心竞争力的引擎产品,更别提开创一个生态系统。

  时代在变化。国产引擎正在错过成功的时机,购买引擎已经像购买SDK一样自然,未来也将更加普遍。现在开发引擎已经颇难,随着大型引擎的开放化,这将越来越变成一件不可能,也不值得去完成的事情。

用函数式编程,从0开发3D引擎和编辑器(一)

  注意:本系列已弃坑!已经重新开了一个新系列:

  wonder-yyc:从0开发3D引擎:目录请读者转到该系列阅读,谢谢!

介绍大家好,欢迎你踏上3D编程之旅~

  本系列的素材来自我们的产品:Wonder-WebGL3D引擎和编辑器的整个开发过程,探讨了在从0开始构建3D引擎和编辑器的过程中,每一个重要的功能点、设计方案的思考、讨论、总结和延伸。

  本系列避免陷入细节的实现代码,使用伪代码代替。所以没有可直接运行的代码,取而代之的是经过抽象和提炼的伪代码模式。

为什么要写这个系列我有三个小目标:

1.完全创造

  完全从0开始,创造一个有深度、有难度、有挑战的产品。

  所以Wonder被创造出来了,并且会持续地发展。

2.完全纪录

  完全纪录创造的过程,把我整个人生都沉淀下来。

  所以有了打造3D引擎,第8000小时开始。

3.完全分享

  完全分享所有的创造、纪录,把我走过的路分享给需要的人。

所以有了Wonder开源。

  本系列为了完成第2个和第3个目标,会把开发Wonder的思考沉淀下来,进行提炼和升华,分享给世界,也分享给我自己。

希望对你有所帮助~

  技术栈使用Reason语言写伪代码使用WebGL作为底层api本系列特色1.完全从0开始,素材来自我们的产品Wonder

  我们会一边开发Wonder,一边在本系列写文章分享。

  因为Wonder在不断更新中,所以本系列也会不断更新。

2.完全、彻底地使用函数式编程。

  现在3D领域使用函数式编程的资料很少,主流还是使用面向对象。

  我以前也是用面向对象,不过自从我开始接触函数式编程,就拥抱了它。

  面向对象很好,函数式编程也很好。使用哪一个,是每个人的自由。

  本系列希望能扩展大家的视野和思维,展示函数式编程的魅力。

3.不仅探讨3D引擎,而且以编辑器作为主线。

  讨论编辑器的资料很少,讨论3D引擎+编辑器的更少。

  本系列完全基于我们的实战经验,以编辑器作为主线,3D引擎作为底层实现。

两者的关系如下图:

4.重点放在设计和思考上,避免实现细节

  本系列希望展示来自于实战的思考和设计,在较高的层面进行探讨,所以会用伪代码作为实现的说明,避免细节的干扰。

5.类型驱动设计。尽量用Type和伪代码替代UML来探讨设计。

Curry-Howard同构:

  类型即命题,程序即证明类型既然对应逻辑命题,那能用它来表示设计吗?

具体就是:

1)能表达领域模型吗?

2)能表达领域模型的交互关系吗?

3)能替代单元测试?

  使用类型进行约束,然后在编译时检查和发现错误,从而不再需要单元测试。

4)能驱动设计吗?

这样就能快速验证设计方案:

  通过定义类型来描述需求和设计,不需要具体实现;

验证通过后,再一一实现。

  本系列使用Reason语言,大部分满足1和2,部分满足3和4。

  这是因为Reason语言的类型没有Idris强大,所以3和4不能完全满足。。。。。。

  或许以后可以使用Idris来重写。。。。。。

  不过总的来说,我对Reason语言还是非常满意的,详见我们在知乎上的总结-如何评价reasonml?。

参考资料程序与证明

  能给你带来什么收益?1.了解Wonder的技术内幕

2.学习从0开发3D引擎和编辑器

3.学习函数式编程及其在3D领域的应用

4.学习3D编程的功能实现,如纹理、光照、模型等功能的实现

5.学习设计和架构,如DataOriented、多线程、管道job等设计

  写作规划Wonder目前开发到1.0版本,因此本系列对应Wonder0.1-1.0版本的内容。

  随着Wonder不断更新新版本,本系列也会对应更新)

Wonder1.0产品展示:

  本系列目录序言函数式编程准备初步需求分析初步设计搭建基础框架操作GameObject操作ComponentRedoUndo端对端测试输出多线程渲染运行停止事件和CameraContronller组件IMGUI增加资产Asset导入导出发布本地包快捷键PickingTransformGizmoPWA致谢感谢你能读到这里,欢迎你提出各种建议或意见,为你服务是我的荣幸~感谢~

  参考资料Wonder-WebGL3D引擎和编辑器

Curry-Howard同构

程序与证明

Reason语言

  欢迎浏览下一篇博文:用函数式编程,从0开发3D引擎和编辑器(二):函数式编程准备

留言与评论(共有 条评论)

   
验证码: