All Projects → jprochazk → uecs

jprochazk / uecs

Licence: MIT license
Micro ECS

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to uecs

Entitycomponentsystemsamples
No description or website provided.
Stars: ✭ 4,218 (+13960%)
Mutual labels:  system, ecs, entity
URSA
[DEPRECATED] integrated ECS framework for Unity
Stars: ✭ 30 (+0%)
Mutual labels:  system, ecs, entity
Ecs Snake
Simple snake game powered by ecs framework.
Stars: ✭ 41 (+36.67%)
Mutual labels:  system, ecs, entity
Entia
Entia is a free, open-source, data-oriented, highly performant, parallelizable and extensible Entity-Component-System (ECS) framework written in C# especially for game development.
Stars: ✭ 28 (-6.67%)
Mutual labels:  system, ecs, entity
Geotic
Entity Component System library for javascript
Stars: ✭ 97 (+223.33%)
Mutual labels:  system, ecs, entity
entitas-python
Entitas ECS implementation in Python.
Stars: ✭ 41 (+36.67%)
Mutual labels:  system, ecs, entity
entity-system-js
ensy - A very simple Entity System for JavaScript
Stars: ✭ 90 (+200%)
Mutual labels:  ecs, entity
ecs
A dependency free, lightweight, fast Entity-Component System (ECS) implementation in Swift
Stars: ✭ 79 (+163.33%)
Mutual labels:  ecs, entity
Kengine
Entity-Component-System (ECS) with a focus on ease-of-use, runtime extensibility and compile-time type safety and clarity.
Stars: ✭ 417 (+1290%)
Mutual labels:  ecs, entity
Htframework
Unity HTFramework, a rapid development framework of client to the unity.
Stars: ✭ 179 (+496.67%)
Mutual labels:  ecs, entity
Entitas-Redux
An entity-component framework for Unity with code generation and visual debugging
Stars: ✭ 84 (+180%)
Mutual labels:  ecs, entity
Actors.unity
🚀Actors is a framework empowering developers to make better games faster on Unity.
Stars: ✭ 437 (+1356.67%)
Mutual labels:  ecs, entity
Entitas Cpp
Entitas++ is a fast Entity Component System (ECS) C++11 port of Entitas C#
Stars: ✭ 229 (+663.33%)
Mutual labels:  ecs, entity
ECS-Phyllotaxis
Learning ECS - 100k Cubes in Phyllotaxis pattern
Stars: ✭ 17 (-43.33%)
Mutual labels:  ecs, entity
Entitas Csharp
Entitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity
Stars: ✭ 5,393 (+17876.67%)
Mutual labels:  ecs, entity
SpaceWar-ECS
A space war game made with ECS and JobSystem in Unity.
Stars: ✭ 26 (-13.33%)
Mutual labels:  ecs, entity
system-designer-electron
System Designer for macOS, Windows & Linux
Stars: ✭ 32 (+6.67%)
Mutual labels:  system
typeorm-factory
Typeorm factory that makes testing easier
Stars: ✭ 28 (-6.67%)
Mutual labels:  entity
android manifest
The beginnings
Stars: ✭ 26 (-13.33%)
Mutual labels:  system
terraform-all-in-one
Get fine-grained Kubernetes + Infrastructure on AWS in 30 mins 🚀
Stars: ✭ 71 (+136.67%)
Mutual labels:  ecs

μECS is an ECS library.

It is:

μECS is available on NPM and the unpkg CDN, for use in both browsers and Node.

What is ECS?

Entity Component System is an architectural pattern. It it used to decouple a game's state from its logic, which makes reasoning about your game much easier. Instead of a complex game object hierarchy, you're left with components, composed into entities, all living in a shared world, manipulated by systems. It has the additional benefit of performing well on modern CPUs, due to being data oriented.

For a proper introduction to what ECS is, what it's aiming to fix and how it works, I recommend reading this series of articles.

Usage

Visit the this page to see a full walk-through of the entire API, auto-generated documentation (which contains more examples and API explanations), as well as a simple demo!

import { World } from 'uecs';

class Position { x = 0; y = 0; }
class Velocity { x = 10; y = 10; }

const world = new World;
for (let i = 0; i < 100; ++i) {
    world.create(new Position, new Velocity);
}

function physics(world, dt) {
    world.view(Position, Velocity).each((entity, position, velocity) => {
        position.x += velocity.x * dt;
        position.y += velocity.y * dt;
    });
}

Benchmark

This library focuses on being small and simple, but without compromising on performance. μECS is one of the fastest ECS libraries available, according to this benchmark.

Notes

Even though the library's version is currently below 1.0, the API should be considered stable, because the library is feature-complete. The only thing that may change are the internals, in hopes of increasing performance or decreasing built size.

This is because μECS has been in the works for many months, but it was only made public recently. Now that it is, I'd like to see what people have to say about it- maybe there are some huge flaws which can be addressed before commiting to 1.0.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].