Skip to content
This repository has been archived by the owner on May 1, 2024. It is now read-only.

RenderSystem#execute not called in example/client #8

Open
meltzow opened this issue Nov 3, 2021 · 1 comment
Open

RenderSystem#execute not called in example/client #8

meltzow opened this issue Nov 3, 2021 · 1 comment

Comments

@meltzow
Copy link

meltzow commented Nov 3, 2021

hi,

I tried your implementation. And yes I know "it's just an experiment". But it's sound that's it have great potential.

Currently the execute method in Render (System) is not called. It's because the "mandatory: true" in queries field. If I understand correctly it's not the direct problem. You can see it, if you remove the mandatory field.

It's because: the world.entities in client are not correctly updated after "room.onStateChange".
May you help to explain, what can I do, to fix it?
perhaps the enableAutoDecoding method in class World is not fully implemented. There is also an TODO and perhaps entity.components.onRemove and entity.components.onChange must be implemented correctly.

do you have any ideas here?

@endel
Copy link
Owner

endel commented Nov 3, 2021

Hi @meltzow, thank you for trying out and going deep on this project. I've paused working on this project for a few reasons:

  • The ArraySchema is currently not very optimized on @colyseus/schema - its internal implementation needs to be improved to consume less bandwidth (every operation has to send the index), and "stream" adds and removals properly. For example, when you add and remove the same item on the server-side (without giving enough time for the add to propagate), that add + remove is going to be ignored, and not synched. This is "correct", but not intuitive if your client depends on that to give visual feedback for the user.
  • ECSY's development (the ECS library used on this project) has been halted, although it sparked the surge of many great ECS libraries out there, such as BitECS and BECSY. Given the OOP nature of Colyseus and the schemas, I believe BECSY would be the best library to use for the Colyseus + ECS integration.

I'm glad you're willing to help here, and you can count on my support to try to make this more stable. If we can make the basics work out, I'm sure the other points I've described above can be improved at a later stage.

Does your branch reproduce the problem you've described here? If you can give me a starting point for your particular issue I can help you inspect it out

Cheers!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants