Компонентная система сущностей в Scala
Я ищу какую-то библиотеку, которая реализует инфраструктуру Component Based Entity System (ECS), используемую в нескольких играх, и реализую во многих игровых движках (unity, libgdx и т. Д.)
Я начинаю небольшой игровой проект в scala ( ECS roguelike), и в настоящее время я нахожу только библиотеку java с именем ashley.
Знаете ли вы, если существуют другие библиотеки ECS (в Scala), или единственный способ использовать или переопределить эту библиотеку в Scala (Эшли)?
Другой связанный с этим вопрос - парадигма актера и система сущностей, основанная на компонентах, не столь далека, в чем разница?
1 ответ
Что касается вопроса о различиях с системой Actor, целью системы Actor является обеспечение асинхронного взаимодействия между участниками. Я не вижу ничего в ECS, что связано с асинхронностью. На самом деле, по одной из ваших ссылок:
Каждая система будет обновляться один раз за кадр в логическом порядке.
Это подразумевает синхронность, блокирующую прохождение программы, поэтому она сильно отличается от системы акторов, где компоненты будут отправлять друг другу сообщения одновременно.
Относительно вашей потребности в библиотеке ECS в Scala. Scala и Java совместимы, есть ли причина, по которой вы не можете просто использовать ashley
в вашем скала коде?