ECS使用体验

简介: ECS已经拥有成为未来主流游戏架构的潜力,作为一个游戏开发人员,有必要对相关的知识进行一个系统的了解。本系列以Unity Entites包的相关源码为基础,对ECS中有关的相关概念和设计思想进行一个简单的剖析。这个系列文章从开始构思,到动笔开写大约用了三周时间,这部分时间主要用在理解Unity Entities包的相关代码,整体来说相关的代码量较大(数十万行),且由于代码涉及到底层的内存管理相关逻辑(C# Unsafe代码),对于平时较少接触这部分逻辑的我来说还是有一定理解难度,在完整理解了几个我认为比较关键的知识点后,我才能安心地下笔开始写这个文章。

ECS的全称为Entity Component System,是最早由暴雪在GDC2017上提出的一个新的游戏设计框架,数据的组织和对象的处理上都和目前主流的OO模型有很大的差距,这里引用一下云风在浅谈《守望先锋》中的 ECS 构架中的总结:
Entity Component System (ECS) 是一个 gameplay 层面的框架,它是建立在渲染引擎、物理引擎之上的,主要解决的问题是如何建立一个模型来处理游戏对象 (Game Object) 的更新操作。
简单来讲,这里的Entity是一个实体,类似于Unity中的GameObject,可以表示游戏中的单个对象。Component是Entity的一个属性,或者说一个Entity是由多个Component组合而成的,类似Unity中的Component,但一般定义为一个结构体,不包含任何函数。System来处理含有某些特定Component的Entity的某一类行为,如一个MoveSystem处理所有包含Position和Velocity组件的Entity的移动过程。
这边最主要区别就是把对象上的数据和行为剥离,由专门的System来处理某一种行为,而不是每个对象在自己的一个更新函数中处理所有和自己相关的操作。当然我们在平时面向对象设计过程中,也会有类似的管理器来处理对象的一部分行为,但ECS在架构设计的时候就将需要将这部分操作和需要的数据提前考虑清楚,使得每一个系统的都能符合ECS的要求。

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
弹性计算 数据可视化 Java
ECS使用体验
ECS使用体验
|
3月前
|
弹性计算
ECS使用体验
ECS使用体验
|
3月前
|
弹性计算 运维 安全
阿里云ecs使用体验
整了台服务器部署项目上线
|
3月前
|
弹性计算
ECS使用体验
ECS使用体验
|
4月前
|
弹性计算 Java Linux
ECS使用体验的文章
ECS使用体验的文章
|
3月前
|
弹性计算 Java Linux
ECS使用体验的文章
ECS使用体验的文章
|
3月前
|
弹性计算 运维 安全
阿里云ecs使用体验
整了台服务器部署项目上线
|
3月前
|
弹性计算 运维 安全
阿里云ecs使用体验
整了台服务器部署项目上线
|
3月前
|
弹性计算 NoSQL Java
阿里云ECS使用体验
在申请高校学生免费体验阿里云ECS云服务器后的一些使用体验和感受。
|
3月前
|
弹性计算 Java Linux
ECS使用体验的文章
ECS使用体验的文章
下一篇
开通oss服务