Skip to content

Commit

Permalink
Release 0.9.0-beta.0 (#136)
Browse files Browse the repository at this point in the history
  • Loading branch information
LastTalon authored Nov 15, 2024
1 parent c793b25 commit 6f39460
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 15 deletions.
44 changes: 30 additions & 14 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,31 +10,44 @@ The format is based on [Keep a Changelog][kac], and this project adheres to

## [Unreleased]

## [0.9.0-beta.0] - 2024-11-15

### Added

- Added `Loop:setWorlds({world})`. This is a breaking change and is now required for the Loop and Debugger to operate properly.
- Added a `Loop:setWorlds({ World })` method for informing the Loop of your
Worlds.
- Implemented a deferred command mode for the registry.
- The `Loop` turns deferring on for all worlds given to it.
- The command buffer is flushed between systems.
- Iterator invalidation is now only prevented in deferred mode.
- The debugger now supports `Loop` parameters of any kind.
- For example, you can now have a single `Loop` state table that contains your World, and the debugger will display it properly.
- Added a button to the Debugger's system list to sort by run time.
- The debugger now supports `Loop` parameters with nested worlds.
- For example, you can now have a single `Loop` state table that contains your
World, and the debugger will display both properly.
- The Debugger system list can sort by run time via button.

### Changed
- Internal storage layout has been completely reworked.
- Queries bottlenecked by iteration speed will see a 7.5-15x performance improvement.
- Archetypes are now their own data structure and their layout tries to keep all information densely packed and cache friendly.
- `Loop` system names are now cached, resulting in fewer calls to `debug.info`.

### Fixed
- Fixed archetypes being skipped in queries and `World:queryChanged` causing entities to be missed.
- The `Loop` now requires a `setWorlds` call to be made before it can be used.
- Consequently, the `Debugger` also requires this.
- The internal storage layout has been completely reworked.
- Queries bottlenecked by iteration speed will see a 7.5-15x performance
improvement.
- Archetypes are now their own data structure and their layout tries to keep
all information densely packed and cache friendly.
- `Loop` system names are now cached, resulting in fewer calls to `debug.info`.
- This reduces overhead as `debug.info` is a slow operation.

### Deprecated

- Deprecated the return type of `World:remove()` because it can now be inaccurate.
- Deprecated the return type of `World:remove()` because it can now misleadingly
indicate a component is removed or vice versa.
- Deprecated `World:optimizeQueries()` because it no longer does anything.

### Fixed

- Fixed archetypes being skipped in queries and `World:queryChanged` missing
entities.

## [0.8.4] - 2024-08-15

### Added
Expand All @@ -60,14 +73,16 @@ The format is based on [Keep a Changelog][kac], and this project adheres to
- Removed extra new-lines in component data strings within the debugger entity
inspect tables.
- Fixed alt-hover erroring when hovered entity is despawned.
- Fixed flashing buttons ("View queries" and "View logs") in system inspect panel
- Fixed flashing buttons ("View queries" and "View logs") in system inspect
panel

## [0.8.3] - 2024-07-02

### Fixed

- Converted the remaining lua files in the example project to luau files.
- Iterating empty views properly iterates over nothing rather than the data structure members.
- Iterating empty views properly iterates over nothing rather than the data
structure members.

## [0.8.2] - 2024-06-25

Expand Down Expand Up @@ -341,7 +356,8 @@ The format is based on [Keep a Changelog][kac], and this project adheres to

- Initial release

[unreleased]: https://github.com/matter-ecs/matter/compare/v0.8.4...HEAD
[unreleased]: https://github.com/matter-ecs/matter/compare/v0.9.0-beta.0...HEAD
[0.9.0-beta.0]: https://github.com/matter-ecs/matter/releases/tag/v0.9.0-beta.0
[0.8.4]: https://github.com/matter-ecs/matter/releases/tag/v0.8.4
[0.8.3]: https://github.com/matter-ecs/matter/releases/tag/v0.8.3
[0.8.2]: https://github.com/matter-ecs/matter/releases/tag/v0.8.2
Expand Down
3 changes: 2 additions & 1 deletion wally.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "matter-ecs/matter"
description = "A modern ECS library for Roblox"
version = "0.8.4"
version = "0.9.0-beta.0"
license = "MIT"
authors = [
"Eryn L. K.",
Expand All @@ -18,6 +18,7 @@ exclude = [
"build",
"pages",
"tests",
"benchmarks",
"AttackOfTheKillerRoombas.rbxl",
"AttackOfTheKillerRoombas.rbxl.lock",
"matter.rbxl",
Expand Down

0 comments on commit 6f39460

Please sign in to comment.