Skip to content

Latest commit

 

History

History
802 lines (396 loc) · 46.6 KB

File metadata and controls

802 lines (396 loc) · 46.6 KB

Changelog

0.18.0 (2026-03-22)

⚠ BREAKING CHANGES

  • ecs: new TriggerEntity({ target }) no longer sets the trigger target. Use new TriggerEntity({ trigger: { target } }) and access the value via TriggerEntity.trigger.target.

Features

Bug Fixes

  • core: fix optional checks not resolving inheritance tree (#764) (8fc82f2)

0.17.9 (2026-03-01)

Features

  • ecs: add ability to remove components from entities (92836a6)

0.17.8 (2026-02-01)

Features

  • core: add isOptionallyInstanceOf (fa341bc)
  • ecs: allow to set/update frames at any time (8e8420b)

Bug Fixes

  • core: fix optional properties not being listed when retrieving all public properties in a class (b801e59)

0.17.7 (2026-01-04)

Features

  • core: use strongly typed enums (#749) (ec6219c)
  • ecs: add ability to retrieve all components in a given entity (7a986bc)

0.17.6 (2026-01-01)

Features

  • core: add @Optional decorator (ccb1a3f)
  • ecs: add utilities to list publicly available properties on any given component (ccb1a3f)
  • ecs: properly mark optional properties in components (ccb1a3f)

0.17.5 (2025-12-24)

Features

  • core: add ability to infer type from class name (4ac70e9)

0.17.4 (2025-11-30)

Features

  • ecs: add ability to retrieve all registered components (c685368)

0.17.3 (2025-08-31)

Bug Fixes

  • ecs: fix camera scaling factor (c9a392a)
  • gfx: fix setTransform to scale relatively to its own position (#644) (9ab0f90)

0.17.2 (2025-08-27)

Bug Fixes

  • gfx: fix camera scale to be screen-centered (#636) (2bf8647)

0.17.1 (2025-08-24)

Features

  • ecs: add camera zoom in/out (#629) (a8d9506)
  • ecs: add transform scale property (a8d9506)
  • gfx: add image smoothing enable/disable (#633) (6aee64f)
  • gfx: add support for primitives scaling factor (#632) (f2f565b)

0.17.0 (2025-08-19)

⚠ BREAKING CHANGES

  • gfx: The 0,0 position in the world is now found at the center of the screen, affecting how entities are placed in the world space. May require reviewing the entities' position
  • gfx: The objects' origin is now placed at the center of their position, affecting how they are placed in space

Features

  • core: add utility to convert Vec2 into world space coordinates (ea4616f)
  • core: add utility to convert Vec2 to screen space (e7d87af)
  • gfx: make world coordinates origin screen centered (1a30c64)
  • gfx: move object origin from top-left to center (562f00a)

Bug Fixes

  • gfx: fix setResolution logic (9b8db21)

0.16.3 (2025-08-12)

Performance Improvements

  • renderer: avoid unnecessary commands (94e32d9)

0.16.2 (2025-08-05)

Features

  • ecs: add onTriggerCB prop setting on new TriggerEntity construction (8756c35)

0.16.1 (2025-08-04)

Bug Fixes

  • ecs: fix TriggerEntity not passing params in callback call (cbf9c90)

0.16.0 (2025-08-04)

⚠ BREAKING CHANGES

  • ecs: TriggerEntity.onTriggerCB and BoundingBox.onCollisionCB do not accept plain functions anymore. Use SerializableCallback.fromFunction Instead.

Features

  • ecs: add SerializableCallback to preserve serialized source code when needed (#596) (6b799ba)

0.15.3 (2025-08-02)

Miscellaneous Chores

0.15.2 (2025-08-02)

Miscellaneous Chores

0.15.2 (2025-08-02)

Features

  • ecs: add onCollisionCb serialization (0323201)

0.15.1 (2025-07-19)

Features

  • ecs: add dynamic components serialization (#559) (3c48416)

0.15.0 (2025-06-01)

⚠ BREAKING CHANGES

  • engine: GameEngine.renderSystem has been removed in favour of GameEngine.renderSystems

Features

  • engine: add support to additional RenderSystem(s) (#524) (3aa9360)

0.14.0 (2025-05-20)

⚠ BREAKING CHANGES

  • engine: allow scenes to be built before engine is ready

Features

  • engine: hide scene from previous engine instance when drawn into new engine instance (2332c62)

Code Refactoring

  • engine: allow scenes to be built before engine is ready (36809a8)

0.13.4 (2025-04-20)

Features

  • core: add rgb to hex string conversion (c188d07)

0.13.3 (2025-04-20)

Features

  • ecs: prevent the same component from being added twice (5379a4c)

0.13.2 (2025-04-16)

Features

  • ecs: add ability to remove diffuseColor from materialComponent (db75342)

0.13.1 (2025-04-12)

Features

  • ecs: use ImageLoader interface for DOMImageLoader (#466) (9798ed2)

0.13.0 (2025-04-08)

⚠ BREAKING CHANGES

  • gfx: rename ImageLoader to DOMImageLoader and add ImageLoader interface

Features

  • engine: add ability to override engine image loader (2c25dff)
  • gfx: rename ImageLoader to DOMImageLoader and add ImageLoader interface (ff84e5d)

0.12.3 (2024-10-07)

Features

  • engine: add scene dispose functionality (238001a)

0.12.2 (2024-10-04)

Features

  • engine: add ability to draw scene by default on Engine.createScene invoke (99af115)
  • engine: add ability to remove a scene from the engine (ec6922d)

0.12.1 (2024-10-02)

Features

  • engine: add ability to control when scene should be drawn/hidden (#420) (3b8de5e)

Bug Fixes

  • engine: make sure only first scene created is automatically drawn (3b8de5e)

0.12.0 (2024-09-17)

⚠ BREAKING CHANGES

  • renderer: add texture loading when ShapeComponent material draw (#398)

Features

  • renderer: add texture loading when ShapeComponent material draw (#398) (64ea774)

0.11.5 (2024-08-16)

Bug Fixes

  • ecs: fix material props serialization (6edae6b)

0.11.4 (2024-08-14)

Bug Fixes

  • fix incrementally unique names colliding with already registered names (#377) (8239b54)

0.11.3 (2024-08-12)

Bug Fixes

  • core: fix issue with unique names colliding with each other (ad055af)

0.11.2 (2024-08-12)

Bug Fixes

  • engine: fix scene load not cleaning up existing data properly (34e3fd4)

0.11.1 (2024-08-10)

Features

  • ecs: add .toJson() method to get json representation of any component (#352) (c189dd9)
  • ecs: add entities .toJson() serialization (#367) (8c3ef7a)
  • engine: add scene .toJson() serialization (#368) (4c4ee7d)

0.11.0 (2024-07-08)

⚠ BREAKING CHANGES

  • rename uniqueness decorators

Bug Fixes

  • engine: fix scene trowhing exception when entity name is removed and added back again (14d48c0)

Code Refactoring

  • rename uniqueness decorators (8a2e6e3)

0.10.12 (2024-07-01)

Features

  • ecs: add the ability to pause/resume any given system (#308) (53a6c52)
  • engine: add scene loading from given JSON object (e621de0)

0.10.11 (2024-06-01)

Features

  • engine: add public access pattern to renderer (bf614f2)

0.10.10 (2024-05-31)

Features

  • renderer: add support to wireframe thickness (#296) (41a3ec2)

0.10.9 (2024-05-27)

Features

  • ecs: add "isWireframe" property in ShapeComponent constructor props (c3c4950)

0.10.8 (2024-05-17)

Features

  • ecs: add wireframe rendering mode to ShapeComponent (5a0f8e6)

0.10.7 (2024-05-09)

Features

  • ecs: add optional target in TriggerEntity (#277) (b423994)
  • ecs: add TriggerEntity target setter to change or remove target (b423994)
  • ecs: add unregisterComponent method to system (901fc23)
  • ecs: add uuid to entities (901fc23)
  • ecs: make target optional in TriggerEntity constructor (b423994)
  • engine: add unregisterEntity in Scene (901fc23)
  • scene: add unregisterEntity to remove an entity from a scene (#274) (901fc23)

Bug Fixes

  • ecs: return early if component not found (901fc23)

0.10.6 (2024-05-01)

Continuous Integration

0.10.5 (2024-05-01)

Miscellaneous Chores

0.10.4 (2024-04-19)

Miscellaneous Chores

0.10.3 (2024-04-19)

Bug Fixes

  • fix distributable missing in release artifact (18bd2ce)

0.10.2 (2024-04-19)

Features

  • add compiled source in release package (1107763)

0.10.1 (2024-04-01)

Features

  • animations: add animation assets loading (22ebea4)
  • gfx: add textures opacity (899a76e)
  • platform: add assets cache to ImageLoader (a435a03)

0.10.0 (2024-04-01)

⚠ BREAKING CHANGES

  • ecs: apply BaseSystem abstract class to HierarchySystem

Features

  • animations: add animation controls (9cc570f)
  • animations: apply idle pose when stopping the animation (8bbb401)
  • ecs: add animations (1cd95d8)
  • ecs: add BaseSystem abstract class (1bfdaa4)
  • ecs: add support to multiple components of the same type in Entities (2d18ecf)
  • engine: add animationCompont to scene (57ee76b)
  • engine: add AnimationSystem to engine (63d0dde)
  • gfx: add type to ImageAsset (a17e998)

Code Refactoring

  • ecs: apply BaseSystem abstract class to HierarchySystem (bbeddcd)

0.9.0 (2024-03-26)

⚠ BREAKING CHANGES

  • gfx: - DrawImageCommand.constructor.image

Features

  • gfx: switch image rendering from HTMLImageElement to ImageBitmap (12e20cb)

Bug Fixes

  • core: fix rgb alpha value being wrongly defaulted when 0 (fec7fd3)

0.8.5 (2024-03-24)

Features

  • ecs: add diffuse texture rendering in MaterialComponent (7db1cc0)
  • ecs: add support to diffuse texture rendering (7db1cc0)
  • ecs: avoid using MaterialComponent default diffuse color when texture is applied (17be7d0)
  • gfx: add drawImage command (7db1cc0)
  • gfx: add ImageLoader (7db1cc0)

0.8.4 (2024-03-21)

Features

  • add camera mechanism (a1b480c)
  • ecs: add abstraction for drawable components (abdc5c5)
  • ecs: add CameraComponent (a1b480c)
  • renderer: add SetTransformCommand render command (a1b480c)

Bug Fixes

  • physx: fix collision detection being broken when same object added twice (f7ed740)

0.8.3 (2024-03-18)

Features

  • core: add whole type chain in type decorator (9f90175)
  • ecs: make added component retrievable with any type in its types chain (bbef3b1)

Bug Fixes

  • core: fix types decortator to not overwrite other constructors types chain (54049e5)
  • physx: fix broken physics in pong example due to values being used by reference (dc9a4e4)

0.8.2 (2024-03-14)

Features

0.8.1 (2024-03-06)

Features

  • physx: add post simulation position on container collision (#171) (e9b92dc)
  • physx: improve collisions detection and resolution (bca7507)

Bug Fixes

  • physx: fix wrong uuid being used in post simulation and avoid unnecessary collision check (b93c447)

0.8.0 (2024-02-19)

⚠ BREAKING CHANGES

  • ecs: Removes @IncrementallyUnique property decorator due to buggy implementation. use incrementallyUnique() function instead

Features

  • ecs: implement entity unique name setter and getter (#150) (935e887)

0.7.2 (2024-02-18)

Features

  • ecs: add default entity name with automatic incremental uniqueness (#146) (60c7b08)

Bug Fixes

  • engine: fix stuttering due to incorrect framepacing (#149) (fbefc1e)

0.7.1 (2024-02-17)

Features

0.7.0 (2024-02-12)

⚠ BREAKING CHANGES

  • ecs: removes target param in favor of required props param
  • ecs: SoundComponent constructor does not require SoundLoader anymore which is now needed in SoundComponent.load

Features

  • add entities init config (21783d5)
  • ecs: add GameObject init configuration (21783d5)
  • ecs: add StaticObject init config (21783d5)
  • ecs: add TriggerEntity init config (21783d5)

Code Refactoring

  • ecs: pass SoundLoader in SoundComponent.load (2bfd28b)

0.6.0 (2024-02-11)

⚠ BREAKING CHANGES

  • ecs: SoundComponentProps is required to create a new SoundComponent

Features

  • ecs: add BoundingBoxComponentProps to construct boundingBox from config (#121) (522265d)
  • ecs: add MaterialComponentProps to quickly initialize the component (#122) (d1373e4)
  • ecs: add ShapeComponentProps to quickly initialize the component (#123) (7792fc1)
  • ecs: add SoundComponentProps to quickly initialize the component (#124) (3c7ba92)
  • ecs: add TransformComponentProps to init the component (#119) (6803e9f)

0.5.1 (2024-02-10)

Features

  • engine: add Scene to automatically register components inside a scene systems [#111][#113] (368fa4e)
  • inputs: trigger input listener only once per frame (9845b8c)

0.5.0 (2024-02-09)

⚠ BREAKING CHANGES

  • inputs: fix delayed inputs when keeping button pressed - #82 (#107)

Bug Fixes

  • inputs: fix delayed inputs when keeping button pressed - #82 (#107) (91401aa)

0.4.3 (2024-02-08)

Features

  • core: return Vec2 this instance in in place methods (cd552c8)

0.4.2 (2024-02-01)

Features

Bug Fixes

  • SoundComponent: avoid flagging as non playing if not loaded (f423223)

0.4.1 (2024-01-31)

Features

  • game: add GameEngine class (6b247c9)

0.4.0 (2024-01-29)

⚠ BREAKING CHANGES

  • renderer: Renderer requires new parameter to be succesfully created

Features

  • renderer: impelement resolution indipendent rendering - #84 (40047ca)

0.3.1 (2024-01-28)

Features

  • ecs: add uuid to every component created (7946b05)
  • phsyx: pass through the uuid of the physical objects colliding (09d5437)

0.3.0 (2024-01-28)

⚠ BREAKING CHANGES

  • physx: rename "simulationResult" property to "postSimulation"

Features

  • phsyx: add reflected velocity in collision detection (585c57c)
  • physx: add reflected velocity from collision in non container collision (bfc2500)
  • physx: calculate post collision position with non container objects more precisely (382dd15)
  • physx: improved collision detection precision (eab8341)
  • physx: refine collision detection logic (4d0f016)

Code Refactoring

  • physx: rename "simulationResult" property to "postSimulation" (1ab7000)

0.2.5 (2024-01-26)

Bug Fixes

  • physx: fix velocity not accounted in collisions (953412a)

0.2.4 (2024-01-24)

Features

  • core: add vec2 math utils (bf49313)
  • math: add reflect and static from constructor (6c371f1)
  • physx: add objects velocity (#76) (2d22191)
  • vec2: add scalar multiplication (8d0d87a)

0.2.3 (2024-01-23)

Features

  • ecs: add isConatiner property to bounding box (#69) (20d3394)

Bug Fixes

  • physx: send informations about the colliding object in the callback (7a7533c)

0.2.2 (2024-01-22)

Features

  • ecs: add velocity to the transform component (#63) (c88b6cd)

0.2.1 (2024-01-09)

Features

  • platform: add Keyboard Input device (#61) (72b208d)

0.2.0 (2023-12-12)

⚠ BREAKING CHANGES

  • ecs: TransformComponent.position needs to be an instance of Vec2 now

Features

  • math: add negate operation to Vec2 (4134e81)
  • math: add vec2 math utility (893de02)

Code Refactoring

  • ecs: replace transform position plain object with Vec2 (45d3dd6)

0.1.4 (2023-12-12)

Bug Fixes

  • docs: fix documentation by changing tech (04c30b5)

0.1.3 (2023-12-11)

Features

  • ecs: add StaticObjectEntity (7db7723)

0.1.2 (2023-12-10)

Features

  • physx: add Physics engine and BoundingBoxComponent for collision detection (0546f1c)

Bug Fixes

  • remove generating pr in ci (693637e)

0.1.1 (2023-12-08)

Features

  • core: add Color (27143fc)
  • core: add Color (e81080a)
  • core: add color core utility (25da3db)
  • ecs: add automatic key assign to component (9b6beda)
  • ecs: add base component and base entity (293240f)
  • ecs: add behaviour interfaces (c6c8854)
  • ecs: add GameObject with default components (4419b69)
  • ecs: add render system and shape component (778b486)
  • ecs: add TransformComponent (e210d03)
  • ecs: implement base component get/set container (e460c4d)
  • ecs: retrieve ShapeComponent needed components from parent container when present (6e6604d)
  • ecs: set container when adding component to entity (4e80c04)
  • make transform getter public (e6440b0)
  • material: add MaterialComponent with diffuse color (95d534f)
  • material: pass material to draw call in ShapeComponent (4fc3518)
  • renderer: add support for blending methods (92bfdc9)
  • rendering: add rect rendering (3825ef0)
  • rendering: add render commands (4569a9d)
  • rendering: add rendering order based on depthIndex (0100a3a)
  • rendering: handle transparent objects (a44a791)
  • rendering: implement rendering system (5fb7cef)

Bug Fixes

  • build: fix broken build (b4f2b03)
  • ci: add plugin eslint for test required in CI (bd7d0e4)
  • force a release (6e17ce2)
  • rendering: fix rendering order in renderSystem (ae82e50)
  • rendering: remove missing file (2ef8d06)