ECS 与面向数据的设计

来自"玻璃渣"的 Timothy Ford 在 GDC 2017 大会做了一个专题演讲“《守望先锋》架构设计与网络同步(Overwatch Gameplay Architecture and Netcode)”,其中介绍的 ECS 架构一时引起众多关注。在转过年来的 Unity 2018 新版中也支持了 ECS 架构,并且性能有大幅提升!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MMxdhyHJ-1597498726824)(https://neil3d.github.io/assets/img/ecs/overwatch.png)]

ECS - Entity, Component, System 这一系列概念都是非常简单清晰的,那么为什么 ECS 会成为游戏行业的主流设计思想呢?这还要从"面向数据的设计(Data-Oriented Design)"讲起。ECS 是一种面向数据的设计在咱们游戏、引擎行业中的成功应用,要想理解“WHY”,就必须要理解面向数据的设计这一思想!

面向数据的设计

现代的程序设计思想要求我们以计算机的方式去解决问题(而不是以人脑的方式),“面向数据的设计”思想可以说是沿着这个方向又前进了一大步。这种程序设计的思想的出现和流行和计算机硬件的发展是息息相关的。乔布斯曾经引用过 Alan Kay 的一句名言说软件开发者必须关心硬件。下面我就结合计算机硬件的发展现状来说明一下这种设计思路的优势在哪里,也就是说为什么 ECS 之类是更好的设计!

内存与 CPU 的性能差距

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ljtiw6um-1597498726825)(https://neil3d.github

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值