Skip to content
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

Integrate gestalt-entity-system in place of embedded entity system #3145

Open
Cervator opened this issue Nov 18, 2017 · 0 comments
Open

Integrate gestalt-entity-system in place of embedded entity system #3145

Cervator opened this issue Nov 18, 2017 · 0 comments
Assignees
Labels
Category: Doc Requests, Issues and Changes targeting javadoc and module documentation Category: Performance Requests, Issues and Changes targeting performance Multiplayer Affects aspects not visible in Singleplayer mode only Size: L Very big effort likely requiring a lot of research and work in many areas across the codebase Status: Needs Investigation Requires to be debugged or checked for feasibility, etc. Topic: Architecture Requests, Issues and Changes related to software architecture, programming patterns, etc.

Comments

@Cervator
Copy link
Member

This is for now just a relatively short placeholder for a very large and complex issue with lots of history, not so much a viable issue for somebody to pick up that hasn't been ingrained in that part of the engine for a long time already.

Actually surprised we didn't have an outright issue for this before. Kinda-sorta related to #1234 (but that was focused on assets) or #1770 (which may be too out of date at this point).

@immortius extracted parts of our embedded entity system to https://github.com/MovingBlocks/gestalt/tree/develop/gestalt-entity-system a while ago, but it isn't quite complete enough to re-apply to Terasology yet. We had considered it for GSOC 2017 and the DestSol item had some related effort from @vampcat (and it was on @rzats' list if he had gone for it) but that's where it turned out to be too tricky still.

The new Gestalt version of the ES has a series of new and useful features, but the line is blurry for where Terasology's existing embedded ES would be cut in favor of having Gestalt plugged in. Some parts of the functionality/utility within the engine at present wasn't extracted, either from it not necessarily being considered within Gestalt's scope by @immortius or it just hasn't happened yet.

In the meantime the embedded ES has slowly encountered additional problems yet in some cases those wouldn't be issues with the new system completed and in place. The Sectors item for GSOC 2017 somewhat backed off from going deep into independent entity pools since the ES is likely to change a fair bit with this re-integration complete. Multi-world and some world generation / life cycle changes probably also would be better to do after.

DestSol probably remains the better initial candidate to overhaul with the external ES, although there may be a fair amount of work in pulling out remaining needed pieces from the embedded system within Terasology's engine first.

More documentation and tutorials would also be highly relevant to this item to help make Gestalt and developing with entities more approachable.

Alternatively it may be worth some thought to consider the overall direction here. Flowing into gestalt-entity-system has seemed the natural next step for me personally but thinking long term possibilities do we risk getting ourselves painted into a problematic corner somehow? Would we end up clashing / overlapping with anything sizable if we later adopt LibGDX? Is Android support (known issue: lack of java.nio on Android means Gestalt hits issues, probably resolvable) very important to us? Will we risk performance issues? And so on.

@Cervator Cervator added API Topic: Architecture Requests, Issues and Changes related to software architecture, programming patterns, etc. Category: Doc Requests, Issues and Changes targeting javadoc and module documentation Size: M Medium-sized effort likely requiring some research and work in multiple areas Multiplayer Affects aspects not visible in Singleplayer mode only Category: Performance Requests, Issues and Changes targeting performance Status: Needs Investigation Requires to be debugged or checked for feasibility, etc. Category: Security Requests, Issues and Changes targeting security labels Nov 18, 2017
@Cervator Cervator added this to the v3.0.0 milestone Nov 18, 2017
@syntaxi syntaxi added Size: L Very big effort likely requiring a lot of research and work in many areas across the codebase and removed Size: M Medium-sized effort likely requiring some research and work in multiple areas Category: Security Requests, Issues and Changes targeting security labels Jan 29, 2018
@skaldarnar skaldarnar removed the Api label May 15, 2021
@jdrueckert jdrueckert removed the GSoC label May 15, 2021
@DarkWeird DarkWeird self-assigned this Sep 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Category: Doc Requests, Issues and Changes targeting javadoc and module documentation Category: Performance Requests, Issues and Changes targeting performance Multiplayer Affects aspects not visible in Singleplayer mode only Size: L Very big effort likely requiring a lot of research and work in many areas across the codebase Status: Needs Investigation Requires to be debugged or checked for feasibility, etc. Topic: Architecture Requests, Issues and Changes related to software architecture, programming patterns, etc.
Projects
None yet
Development

No branches or pull requests

5 participants