scala - Scala中基于组件的实体系统

标签 scala architecture game-engine roguelike component-based

我正在搜索一些库,这些库实现了多个游戏中使用的Component Based Entity System (ECS)框架,并在许多游戏引擎(unity,libgdx等)中实现了

我正在scala(ECS roguelike)中启动一个小游戏项目,目前我只找到一个名为ashley的Java库。

您是否知道其他ECS库(在Scala中)是否存在,或者唯一的方法是在scala(ashley)中使用或重新实现此库?

另一个相关的问题,Actor范例和基于组件的实体系统不是那么遥远,有什么区别?

最佳答案

关于与Actor系统的差异的问题,Actor系统的目的是允许Actor之间进行异步通信。我在ECS中看不到与异步相关的任何内容。实际上,从您的链接之一:

Each system will be updated once per frame in a logical order



这意味着整个程序的同步,阻塞进度,与actor系统大不相同,在actor系统中,组件将以并发方式互相发送消息。

关于您在Scala中对ECS库的需求。 Scala和Java是可互操作的,有什么理由不能在Scala代码中简单地使用ashley吗?

关于scala - Scala中基于组件的实体系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32380202/

相关文章:

java - (LibGDX) - 在调用角色的渲染方法时出现 NullPointerException

c++ - btDefaultMotionState 的多个实例,全部被忽略,但有一个

scala - 如何使用日志编写清晰的代码?

postgresql - PSQLException : The column index is out of range: 2, 列数:1

java - DAO 和服务层(JPA/Hibernate + Spring)

architecture - 在多模块和单模块设计之间进行选择

scala - Shapeless:元组上的 flatMap 无法编译

scala - ScalaCheck Arbitrary[T] 和 Scalacheck Gen[T] 的区别

javascript - 抽象 jQuery

android - libgdx Stage 和 Screen 的区别