-
Notifications
You must be signed in to change notification settings - Fork 173
Description
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:
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:
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