最近几天我学到了很多关于 Erlang 的知识,并且熟悉组件实体系统。
使用 Erlang 的以流程为中心的方法,我建议每个实体都是一个 Erlang 流程实例。至于 CES(组件实体系统)方法,对于拥有一个 MovementComponent(例如)的实体,我会有一个类似“MovementSystem”的过程。然后,我将使用尾递归“迭代”所有注册实体并向它们发送消息以让它们更新自己的进程状态,而不是由 MovementSystem 本身作为批处理......(我不会称之为不再是实体系统,因为据我了解,CES 拥有它正在处理的所有实体和组件的所有信息,这意味着“共享内存”,这在概念上不是 Erlang 的一部分)
这两种方法/范式 - Erlang 和“组件实体系统” - 是相互排斥的,还是我遗漏了什么?
(我什至不会在 GitHub ( https://gist.github.com/sntran/2986790 ) 上称这个原型为真正的组件实体系统。这种方法看起来更像实体系统,在我看来它更像是一个基于 gen_event 的 MQ 方法,我可能会使用 RabbitMQ 来代替......但这与这里无关......)
现在我看不出这两个概念是如何结合起来的......