之前搞过OGRE,unity,UE4,现在工作需要又要搞O3DE了。
从引擎设计上看,O3DE设计的很规范,很多就是《游戏引擎架构》那本书上的经典设计思想。现代C++的使用,内存分配,RTTI,ECS,总线通信,都实现比较规范。但就是太TM难用了,原因无他,就是能查到的相关资料太少了,官网文档太简单,稍微自定义点的功能都要自己摸索。比如我现在要实现自己的一套鼠标操作,替换掉他默认的那套FPS游戏的操作方式,研究了一天,才明白要实现一个类似FlyCameraInputComponent的组件,然后怎么让这个组件在编辑器的entity添加列表里面能够被查找到,又花了半天。接下里还要实现通过鼠标获取的场景深度值辅助进行鼠标操作,又花了很久研究怎么渲染出一个场景深度图。后面还要解决大坐标的精度问题,貌似他没有像UE4那样的动态修改渲染中心点的方法,还要自己解决。反正一个坑连着另一个坑。
我可以接受一个游戏引擎难,但不希望他难得没有意义,像O3DE这种完全就是因为文档、资料缺失造成的难,并不会给攻克难题的人带来成就感。