Skip to content

[DOCS] EC, ECS and CES acronyms #2689

@Andre-LA

Description

@Andre-LA

Describe the issue briefly

O3DE model works with entities and components, where the entities are the objects composed by components, which has the data and the behaviour. The documentation describes its model as "CES", although sometimes using ECS acronym instead.

The issue is with the confusion that these acronyms causes.

ECS means that entities are the objects, composed by components that defines only the data, processed by the systems to implement behaviour.

sources:
https://en.wikipedia.org/wiki/Entity_component_system#Characteristics
https://github.com/SanderMertens/ecs-faq/#what-is-ecs

The difference between both is that on O3DE, the game entity behaviour is implemented on components, not in systems.

The problem of using "CES" though, is that it is sometimes used interchangeably with ECS, like in this tutorial:

https://gamedev.net/articles/programming/general-and-gameplay-programming/understanding-component-entity-systems-r3013/

I also did not found almost no reference of "CES" as a description to components defining behaviour on the internet.

Options

The most common term for O3DE's case is "EC", like "EC system", "Entity-Component system" or "EC framework" using "ECF" as a acronym as we can see described by ECS-FAQ:

https://github.com/SanderMertens/ecs-faq/?tab=readme-ov-file#how-is-ecs-different-from-entity-component-frameworks

The reason for adopting this is, by doing some researching with search engines, I did found much more references to "EC" to describe logic on components than with CES (to be honest, it was none, with an specific exception of a wiki page that called Unity an example of CES).

Another reason is that, by searching on O3DE's discord about this discussion, O3DE's model is generally described as "EC", like "Entity-Component Architecture" or "Entity-Component Framework".

The problem is that's still pretty similar to ECS.

Another option is to adopt "component-entity model", as used by the Programming Guide documentation.

Finally, the other option is to keep using "Component Entity System" and CES, and replace ECS usage with CES.

Which page(s) / section(s) are affected?

https://docs.o3de.org/docs/user-guide/programming/messaging/ebus/
https://docs.o3de.org/docs/contributing/to-docs/terminology/
https://docs.o3de.org/docs/user-guide/programming/
https://docs.o3de.org/docs/welcome-guide/key-concepts/
https://docs.o3de.org/docs/user-guide/gems/reference/design/white-box/
https://docs.o3de.org/docs/welcome-guide/tours/create-intro/
https://docs.o3de.org/docs/user-guide/programming/components/
https://docs.o3de.org/docs/user-guide/programming/
https://docs.o3de.org/docs/user-guide/programming/components/system-components/
https://docs.o3de.org/docs/user-guide/scripting/lua/

Does this work have an engineering dependency? What is it?

No

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/cleanupCategorizes issue or PR as related to cleaning up code process or technical debt.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions