scalaarchitecturegame-engineroguelikecomponent-based

Component based entity system in scala


I'm searching some library which implement the Component Based Entity System (ECS) framework used in multiple game and implementend in many game engine (unity, libgdx, etc.)

I'm starting a little game project in scala ( ECS roguelike), and at this time i only find a java library named ashley.

Do you know if other ECS libraries (in Scala) exists, or if the only way is to use or reimplement this library in scala (ashley) ?

Another related question, the Actor paradigm and Component Based Entity System is not so distant, what is the difference ?


Solution

  • Regarding the question about differences with an Actor system, the purpose of an Actor system is to allow asynchronous communication between actors. i don't see anything in ECS which is related to asynchronicity. In fact, from one of your links:

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

    This implies synchronous, blocking progress through the program, so quite different from an actor system where the components would be sending each other messages in a concurrent fashion.

    Regarding your need for an ECS library in Scala. Scala and Java are interoperable, is there any reason you can't simply use ashley within your scala code?