-
-
Notifications
You must be signed in to change notification settings - Fork 198
Excalibur ECS Implementation Goals and Guide #1361
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
This is the ECS foundational work for Excalibur Related #1361 ## Changes: - New `Entity`, `Component`, `System`, `Query` and management types with tests
Nice, I've been waiting for this feature! |
@DaVince let me know how it goes, it is missing some some convenience features at the moment. All systems need to be loaded in by hand for each Scene |
Thanks. I will check this out when I can, but time/energy has been scarce. It's been slow going as well as I've been running into having to figure out what goes where. Is it possible to add a very basic snippet containing the minimally required code to use it? |
Good point @DaVince I'll get some documentation on ECS usage as a part of this PR |
Hey! Just wanted to drop in and say this is amazing. I've been lurking watching this project for awhile. Built my first game last night in a few hours (first time reading the docs, they're awesome!) and it was such a breath of fresh air from other frameworks like Phaser. The ECS change is also a key differentiator. Before I saw this, my plan had been to attempt to combine Excalibur with ECSY from Mozilla. I'm curious about what drove the decision to create an ECS from scratch? Although the future of ECSY might be a bit in doubt at the moment, the key win it had was a Devtools extension. At the least I wonder if the same events that the ECSY Devtools expects could be emitted so that the tool can interop with Excalibur? And having another team drive that infrastructure might help keep Excalibur lean. ECSY ECSY Devtools |
@AndrewCraswell Thanks for checking us out! Please do send us any feedback you have in the discussions! And we'd love to see your game as well! There are a few reasons we decided chart our own course on an ECS in TypeScript:
We will look into the dev tools idea, no promises on anything anytime soon 😄 but building a plugin/extension/hook that can interop with an existing devtools is worth exploring. |
This change comes with a lot of advantages, everything including TileMaps can make use of z-indexing, anything with a pos, rotation, scale, and draw() method can be drawn. Related #1361 Closes #1018 #888 Docs PR: excaliburjs/excaliburjs.github.io#57 ## Changes: - Moves existing drawing functionality to ECS - Updates to ECS implementation to facilitate Excalibur integration
This issue hasn't had any recent activity lately and is being marked as stale automatically. |
This might give some inspiration (all js) |
This issue hasn't had any recent activity lately and is being marked as stale automatically. |
Just to note: Javelin is another performant and handy ECS-Framework directly developed in TypeScript with many good automatic types. The current developer version v1.0.0-alpha.12 is even better although v0.21.0 is already very good. |
This issue hasn't had any recent activity lately and is being marked as stale automatically. |
Thanks for all the awesome comments on this issue! I'm closing this issue for now but we may open more when we have changes to make. We will definitely reference all the links posted! |
Goals
Guide
The current plan is to avoid breaking changes or regressions as much as possible. The plan is to add ECS in 2 steps:
First step the ECS foundations will be installed
Second step ECS everywhere
The text was updated successfully, but these errors were encountered: