Skip to content

Releases: PepeElToro41/replecs

Replecs v0.3.1

Choose a tag to compare

@PepeElToro41 PepeElToro41 released this 23 Feb 21:30

Replecs v0.3.1

Replecs is a fast, powerful, and runtime/library agnostic replication library for ECS.

Changes:

Fixes

  • Fixed collect_entity() bug
  • Fixed pairs getting serialized incorrectly
  • Bumped to jecs 0.10.0

Replecs v0.3.0

Choose a tag to compare

@PepeElToro41 PepeElToro41 released this 17 Feb 21:30

Replecs v0.3.0

Replecs is a fast, powerful, and runtime/library agnostic replication library for ECS.

Changes:

New Features

  • Specific pair tracking, You can do this with replicator:set_pair(entity, jecs.pair(r, t)), multiple pairs of the same relation can be added, and each one can have a different filter.
  • replicator:collect_entity(entity) / replicator:apply_entity(buf, var). This allows you to send the full state of a single entity. Can use this as a temporal workaround of replecs not calculating filter changes,
    so you can manually send the full entity to players that got added to a filter.

Improvements/ API additions

  • Bandwidth optimizations. One byte is saved per target of a relationship of an entity.
  • Added a keep boolean for replication stop methods. This allows to stop tracking an entity or a component without the client destroying/removing it.
  • Added replicator:get_shared_count()
  • Added replicator:set_serdes(), replicator:remove_serdes() as an imperative way to add serdes. This is relevant for adding serdes for pair tracking. pair(rel, wildcard) is supported.
  • You are not able to add/remove components marked as unreliable.

Fixes

  • Fixed custom id entities not getting lifetime tracked.
  • Fixed custom ids not creating a client -> server lookup.
  • Fixed error when destroying/stopping entities that triggered with a specific hook firing order.
  • Fixed tags not getting correctly moved to a different storage group.
  • Added __index to the CustomHandler metatable (Accidentally forgot).
  • replicator:encode_component() and replicator:decode_component() now recalculates shared components if needed.
  • Replecs will now error when two or more shared components have the same jecs.Name
  • Replecs will now show a warning if it finds with replecs.shared without jecs.Name

BREAKING CHANGES

  • replecs.pair has been renamed to replecs.relation
  • replicator:set_pair() has been renamed to replicator:set_relation()
  • replicator:stop_pair() has been renamed to replicator:stop_relation()
  • Replecs will no longer apply unreliable updates if the entity does not have the component.

Replecs v0.2.3

Choose a tag to compare

@PepeElToro41 PepeElToro41 released this 27 Nov 05:32

Replecs v0.2.3

Replecs is a fast, powerful, and runtime/library agnostic replication library for ECS.

Changes:

Fixes:

  • Fixed bitmasks having a stale value after getting compacted
  • Fixed component additions incorrectly getting moved to another storage

Replecs v0.2.2

Choose a tag to compare

@PepeElToro41 PepeElToro41 released this 27 Oct 23:56

Replecs v0.2.2

Replecs is a fast, powerful, and runtime/library agnostic replication library for ECS.

Changes:

Fixes:

  • Fixed command buffers applying wrong values to pairs

Replecs v0.2.1

Choose a tag to compare

@PepeElToro41 PepeElToro41 released this 27 Oct 23:28

Replecs v0.2.1

Replecs is a fast, powerful, and runtime/library agnostic replication library for ECS.

Changes:

Fixes:

  • Fixed command buffers applying wrong values to components

Replecs v0.2.0

Choose a tag to compare

@PepeElToro41 PepeElToro41 released this 27 Oct 04:58

Replecs v0.2.0

Replecs is a fast, powerful, and runtime/library agnostic replication library for ECS.

Changes:

Additions:

  • Added advanced custom ids.
  • Added handshake verification for making sure client and server are setup correctly.
  • Added register_entity, unregister_entity in client replicator as a way to edit the server/client ids lookup map

Improvements:

  • Added Imperative api: set_networked, set_reliable, set_unreliable, set_pair, stop_networked, stop_reliable, stop_unreliable ,stop_pair, set_custom,
  • Now entities can be marked as networked as well as marking its components before the server is inited

Fixes:

  • Fixed component addition events not getting correctly removed when an entity was deleted
  • Fixed replecs not correctly unregistring players when they left
  • Fixed replecs using bitmask indexes of other players when a new player joined
  • Fixed bug with old custom ids where the server didnt send destroy events for entities that were created with custom ids
  • Fixed replecs not registring already existing players on start
  • Fixed edge case where you could use a player in a filter that hasnt been registered yet when used inside a PlayerAdded event

Breaking Changes:

  • Custom Ids with components now need the component to be replicated reliably.
  • replecs.bytespan was removed, bytespan is now provided in the serdes table

Notes:

  • No big breaking changes for custom ids fortunately
  • Imperative api does not add the components to the entity. This is more efficient and wont grow the archetypes, but it will disable query-ability