Releases: evaera/matter
Matter 0.7.0
[0.7.0] 2023-12-19
Added
- Created a debugger configuration
Debugger.componentRefreshFrequency
to change the unique component list's refresh frequency.
Changed
- Change
Matter.log
to return nothing as expected. - Exported Matter object is now read only, which prevents invalid mutations to it.
- Improve documentation for
Matter.useEvent
. - Systems with both after and priority defined will error.
- Error message for cycles should be more descriptive.
- Systems with dependencies should be scheduled after the system with the highest priority in it's "after" list.
- Improve error message for when a component instance is passed where a component is expected, e.g
world:remove(id, componentInstance())
. - Improve implementation of the debugger's mouse hover feature, which now supports debugging the player's character model.
Fixed
- Fix the debugger not showing a system's widgets properly when switching from one to another.
- Fix slider debugger widget returning 0 when not being rendered.
Pull Requests
- Tidy up analysis noise by @Anaminus in #27
- Correct comment for _getStorageWithEntity by @noahwillcrow in #26
- Fix broken link by @samcparker in #34
- Fix typo in Replication.md by @rimuy in #36
- Update Reconciliation Page for the new QueryChanged API by @Aloroid in #37
- Correct typo in "Why ECS" docs in #42
- Ensure exported matter object is read only in #41
- Change
Matter.log
to return nothing as expected in #43 - Improve docs for
Matter.useEvent
in #44 - Update Rojo's version to 7.2.1 to mitigate attribute error by @Nidoxs in #47
- Cleanup example game's codebase in #48
- Improve error message when a component instance is accidentally passed instead of a component in #46
- Debugger Appears Above Ingame UI by @ambergamefam in #49
- Improve system scheduler logic by @metrowaii in #54
- Sort component list in World Inspector by @benbrimeyer in #55
- Prevented systems with undefined dependencies from being scheduled by @metrowaii in #57
- Allow debugger states views to be toggled like systems by @benbrimeyer in #60
- Replaced return statement with continue by @Fizzyhex in #61
- Re-implement Mouse.Target for debugger mouse highlight by @jackTabsCode in #68
- use ViewportPointToRay in mouse highlight implementation by @jackTabsCode in #74
- Fix system widgets not appearing sometimes by @jackTabsCode in #75
- Support functions in dummyHandles to support widget configs by @jackTabsCode in #76
- Provide a debugger config for component refresh frequency by @jackTabsCode in #77
New Contributors
- @Anaminus made their first contribution in #27
- @samcparker made their first contribution in #34
- @rimuy made their first contribution in #36
- @Aloroid made their first contribution in #37
- @Nidoxs made their first contribution in #47
- @ambergamefam made their first contribution in #49
- @metrowaii made their first contribution in #54
- @Fizzyhex made their first contribution in #61
- @jackTabsCode made their first contribution in #68
Full Changelog: v0.6.2...v0.7.0
Matter v0.6.2
[0.6.2] - 2022-07-22
Fixed
- Debugger no longer interferes with
queryChanged
in order to display it in the debugger view. Previously, this caused the storage to get reset. This feature may return in the future.
Matter v0.6.1
[0.6.1] - 2022-07-10
Added
- Added
Matter.log
, and a logs viewer per-system to the Matter debugger. - Added error logging and inspection to the Matter debugger.
- Added Query inspection to the Matter debugger.
Fixed
- Fixed bug with server-side debugger when game was in deferred events mode
Full Changelog: v0.6.0...v0.6.1
Matter v0.6.0
[0.6.0] - 2022-07-08
Changed
- The first time you call
queryChanged
, all existing entities in the world that match the component are now returned as "new" change records. Previously, nothing was returned. - Improved Debugger with highlight selections and tooltips.
Matter.useEvent
now supports events that have aConnect
,connect
, or anon
method. Additionally, it also supports custom connection objects (returned by custom events), which have aDestroy
or aDisconnect
method, or are just a cleanup function.
Pull requests
- Add caution tip for autoInitialize docs by @benbrimeyer in #23
- Suggest compatible Plasma in debugger docs by @benbrimeyer in #22
- Support custom events for
matter.useEvent
through duck typing by @bubshayz in #20
New Contributors
- @benbrimeyer made their first contribution in #23
- @bubshayz made their first contribution in #20
Full Changelog: v0.5.3...v0.6.0
Matter v0.5.3
[0.5.3] - 2022-07-05
Added
- Added performance information to debugger
- Add World inspector to debugger
Fixed
- Fix confusing error when a system yields inside a plasma context
Full Changelog: v0.5.2...v0.5.3
Matter v0.5.2
[0.5.2] - 2022-07-01
Fixed
- Fixed debugger panel not scrolling.
- In the debugger panel, the module name is now used when function is not named.
Pull requests
New Contributors
Full Changelog: v0.5.1...v0.5.2
Matter v0.5.1
[0.5.1] - 2022-06030
Fixed
- Fix custom debugger widgets not using the Plasma instance the user passed in.
Matter v0.5.0
[0.5.0] - 2022-06-30
This release adds the Matter debugger, which can be used to visually debug systems with UI widgets.
Added
- Added Matter debugger.
Changed
- Middleware now receive event name as a second parameter
Matter v0.4.0
[0.4.0] - 2022-06-25
Changed
- Modifying the World while inside
World:query
can no longer cause iterator invalidation. All operations to World while inside a query are now safe. 🎉- If you aren't using
Loop
, you must callWorld:optimizeQueries
periodically (e.g., every frame)
- If you aren't using
- If a system stops calling
queryChanged
, its internal storage will now be cleaned up. It is no longer a requirement that a system callsqueryChanged
forever. Matter.merge
(an undocumented function) now only accepts two parameters.
Fixed
replaceSystem
now correctly works when other systems reference a system being reloaded in theirafter
table- If
spawnAt
is called with an entity ID that already exists, it now errors as expected.
Matter v0.3.0
[0.3.0] - 2022-06-22
This release adds support for saving and restoring World state, hot reloading, and client replication.
Saving and restoring World state
World now has an __iter
metamethod which allows iteration over all entities in the World. This can be used to serialize the data however you want.
World now also has a method called spawnAt
, which lets you spawn an entity with a specific entity ID. This can be used to restore all entities from a save file and ensure they still have the same ID on the other end.
Hot reloading
Hot reloading is now officially supported in Matter. The Matter example game supports hot reloading automatically. Check it out
ywXqBncg.mp4
Client replication
The Matter example game has been updated to support client replication.
Most of this was possible before this release, but it makes use of the ability to iterate over a World to send the initial payload to a client when they connect.
Added
- Added
World:spawnAt
to spawn a new entity with a specified ID. - Added
World:__iter
to allow iteration over all entities in the world the world from a for loop. - Added
Loop:evictSystem(system)
, which removes a previously-scheduled system from the Loop. Evicting a system also cleans up any storage from hooks. This is intended to be used for hot reloading. Dynamically loading and unloading systems for gameplay logic is not recommended. - Added
Loop:replaceSystem(before, after)
, which replaces an older version of a system with a newer version of the system. Internal system storage (which is used by hooks) will be moved to be associated with the new system. This is intended to be used for hot reloading. - The Matter example game has been updated and adds support for both replication and hot reloading.
Changed
- The first entity ID is now
1
instead of0
- Events that have no systems scheduled to run on them are no longer skipped upon calling
Loop:begin
.
Fixed
- Old event listeners created by
useEvent
were not properly disconnected when the passed event changed after having been already created. The event parameter passed to useEvent is not intended to be dynamically changed, so an warning has been added when this happens.
Pull requests since the last release
New Contributors
Full Changelog: v0.2.0...v0.3.0