其实ECS并不是什么新的东西,它的思想早在程序刚开始的时候就有了,学过C语言的同学都知道
C语言写代码基于 函数逻辑+结构体数据,来完成对应的功能。函数逻辑,可以看作就是System。
结构体可以看作是(Entity + ComponentData)。
这里有个unity学习交流小组点击可以直接加入 一起学习交流吧
游戏开发,比如MMORPG游戏,Moba游戏,它是非常适合ECS的架构的。为什么这么说呢?
比如,角色的AI思考,游戏中的大量角色(Entity),做AI的时候,其实只需要包含AI的ComponentData,
AI算法(AI的System)基于AI CompoenntData,完成整个角色的AI决策。 比如角色的寻路和导航,也很适合ECS,
把寻路导航的所需数据做成寻路导航的ComponentData, 每次有导航请求的时候,导航System迭代每一个角色(玩家+NPC)的
导航ComponentData, 来计算, 驱动角色的导航。
ECS的优点就是将数据更扁平化的管理,来代替,庞大而臃肿的继承体系。获得高性能的同时,代码维护扩展也方便,
实体包含【功能1ComponentData, 功能2ComponentData】, .这样我们给大量觉得扩展的时候,只要做好ComponentData+System的
算法与设计,实体包含这个ComponentData,进入迭代,就能添加功能。管理实现了扁平化。
很多程序员的基础并不好,特别是设计思想,不是所有人都能驾驭,如果你的团队驾驭不了,对你的团队而言
就不实用,不适合,能够驾驭,可以尝试。
总之适合自己的就是好的,就像武大郎娶了潘金莲,最后招来杀生之祸。
网友评论