Ape Ecs

screenshot of Ape Ecs

Entity-Component-System library for JavaScript.

Overview

Ape-ECS is a performant and featureful Entity-Component-System (ECS) library for JavaScript. It is written in ECMAScript ES2018 and is designed for use in games and simulations. With Ape-ECS, entities are dynamically composed of any combination of types, allowing for more complex and dynamic composition than traditional object-oriented programming. The library aims to improve performance through its lack of API methods and offers emergent gameplay with logical behavior extended beyond the programmer's vision.

Features

  • Advanced Queries for entities
  • Persisted Queries (indexes) that are updated as Entity composition changes
  • Component reference properties to Entities (EntityRef, EntitySet, EntityObject)
  • Subscribe-able events for adding and removing references
  • Reverse query from entity to entity-components that reference it
  • Support for saving and restoring state with component-level serialization configuration
  • 100% Test Coverage

Summary

Ape-ECS is a powerful ECS library for JavaScript, designed for use in games and simulations. It offers advanced querying capabilities, persisted queries, component reference properties, and event subscription. With Ape-ECS, developers can create complex and dynamic compositions of entities, leading to improved performance and emergent gameplay. The library also provides support for saving and restoring state, along with comprehensive test coverage. Overall, Ape-ECS is a valuable tool for developers looking to implement the Entity-Component-System paradigm in their projects.

typescript
Typescript

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.

webpack
Webpack

Webpack is a popular open-source module bundler for JavaScript applications that bundles and optimizes the code and its dependencies for production-ready deployment. It can also be used to transform other types of assets such as CSS, images, and fonts.