0.4.0-alpha.4 • Published 4 years ago

@colyseus/ecs v0.4.0-alpha.4

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

ATTENTION: THIS IS JUST AN EXPERIMENT

NOT READY TO USE

The current state of this repository is very messy - basically a bunch of glue code trying to make @colyseus/schema work along with ECSY.

If you're feeling brave enough, you're encouraged to continue performing some experiments with this repository and help it reach a not that bad state.

Goal

There are quite a few Entity Component Systems written in JavaScript available out there. I'm currently experimenting integrating @colyseus/schema with ECSY.

The goal of this project is to have a good way to use ECS along with Colyseus - being able to synchronize entities and components defined in the Entity Component System.

Progress so far

  • This module defines a Component that extends from Schema.
  • ECSY and @colyseus/schema require the end user to to define the "schema" of the data structure
    • I'm overriding the ECSY's registerComponent() to replicate the definitions from @colyseus/schema (through the @type() annotation) into ECSY's schema.
  • ~ECSY has a component called TagComponent that does not have any data on it. This conflicts with @colyseus/schema, as every Schema instance is required to hold at least one property.~ - @colyseus/schema@^1.0.0-alpha.29 now allows to have intermediary "abstract" structures with no fields.
  • The test scenario is able to encode the World into ~1236 bytes.
    • The test scenario has 50 entities with 3 components on each of them - two vectors and a component holding a string.

Troubleshooting

Make sure you create or join the room on the client by passing in a concrete type, not just the generic. For instance instead of:

await client.joinById<MyGameState>(roomId)

you should use

await client.joinById(roomId, {}, MyGameState)
0.4.0-alpha.4

4 years ago

0.4.0-alpha.3

4 years ago

0.4.0-alpha.2

4 years ago

0.4.0-alpha.1

4 years ago

0.4.0-alpha.0

4 years ago

0.3.0-alpha.17

4 years ago

0.3.0-alpha.15

4 years ago

0.3.0-alpha.16

4 years ago

0.3.0-alpha.14

4 years ago

0.3.0-alpha.13

4 years ago

0.3.0-alpha.12

4 years ago

0.3.0-alpha.11

4 years ago

0.3.0-alpha.10

4 years ago

0.3.0-alpha.7

4 years ago

0.3.0-alpha.8

4 years ago

0.3.0-alpha.9

4 years ago

0.3.0-alpha.6

4 years ago

0.3.0-alpha.5

4 years ago

0.3.0-alpha.4

4 years ago

0.3.0-alpha.3

4 years ago

0.3.0-alpha.2

4 years ago

0.3.0-alpha.1

4 years ago

0.3.0-alpha.0

4 years ago