3 ms·
This kind of reminds me of the article: https://spacetimedb.com/blog/databases-and-data-oriented-design https://spacetimedb.com/blog/databases-and-data-oriented
by LarsDu88 3y ago
This kind of reminds me of the article: https://spacetimedb.com/blog/databases-and-data-oriented-design https://spacetimedb.com/blog/databases-and-data-oriented-des...
Where basically the ECS boils down to what is essentially a relational database, and here it looks like that's being leveraged to do snapshotting and point-in-time queries!
- teh_cmc 3y agoOh for sure, there's a lot of overlap between traditional relational databases and ECS designs. As always, in the end the hard part is to match the performance requirements. If you squint enough, most ECS out there are pretty much very specialized relational databases that trade off flexibility in favor of performance for common gamedev use cases (very wide joins, very deep hierarchies (e.g. transform trees), full-table filters, etc). Rerun's ECS goes one step further and makes time a first-class citizen, allowing for efficient joins across different components across different timestamps. This is what makes it possible to only log diffs in Revy (we only snapshot the components that were modified during the last frame), rather than having to full snapshots every frame, which would be prohibitively expensive (both time and space). Rerun then stitches back everything together during visualization, in real-time!
- tbillington 3y agoThis is another excellent read https://ajmmertens.medium.com/why-it-is-time-to-start-thinking-of-games-as-databases-e7971da33ac3 https://ajmmertens.medium.com/why-it-is-time-to-start-thinki...