Skip to main content

Matter

Matter is a modern Entiy-Component-System library for Roblox, featuring:

  • a standard, no-frills ECS implementation
  • fast, archetypical entity storage
  • automatic system scheduling
  • a slick API featuring topologically-aware state

Matter empowers users to build games that are extensible, performant, and easy to debug.

Goals​

  • Simple, obvious API
  • Performant
  • Great debuggability, error handling and insight into what's actually happening each frame
  • Common patterns are easy to fall into and hard to mess up

Non-goals​

  • Many similar libraries, ECS or not, end up with a bloated API, requiring significant cognitive overhead to use. We want to avoid this as much as possible.
  • We don't want to provide every thing the user could ever want in our library. Instead, it should be easy for users to write obvious code that does those things.

Performance today​

Matter currently achieves an average frame time of 0.65ms spent inside Matter code for the following benchmark:

  • World with 1000 entities
  • Between 2-30 components on each entity
  • 300 unique component types
  • 200 systems
  • Each system queries between 1 and 10 components

Prior art​

Matter is inspired by hecs by Railith from the Rust ecosystem!