An ECS¹ engine built from ground up in Scala 3 with architectural support for Cats Effect and modularity in mind.
- Entity composition
- Platform-agnostic object and event abstraction
- Synchronous (main-thread) code execution
- Input/output support in queries with FS2
- State/scene preservation and loading
- Query composition with entities and streams
- Data persistence and (de)serialization to Circe
Inspired by Bevy Engine – a data-driven game engine written in Rust – ECS implementation, we focus on logic built on top of resources, entities, and systems (could be simplified as data and functions). This approach is really nice because it's a very flexible and powerful design pattern that allows code to be easily reused, extended, and quickly written.
¹: Software architectural pattern "Entity component system".