diff options
author | Max-001 <80035972+Max-001@users.noreply.github.com> | 2024-09-20 15:13:48 +0200 |
---|---|---|
committer | Max-001 <80035972+Max-001@users.noreply.github.com> | 2024-09-20 15:13:48 +0200 |
commit | 110ffb785a8eaf54106b92f49f008f0003193a2b (patch) | |
tree | 93be048d63e7d9471c8f2edd8e0b1397c7e97e67 /research.tex | |
parent | 6f802231674685b9d1bb365d345c96aa15cdd311 (diff) |
Continued ECS research
Diffstat (limited to 'research.tex')
-rw-r--r-- | research.tex | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/research.tex b/research.tex index bec9471..8a2ad7b 100644 --- a/research.tex +++ b/research.tex @@ -141,7 +141,25 @@ or entities. This makes the \gls{ecs} very fast, which is of course an advantage \label{fig:ECS Component manager} \end{figure} -Disadvantage: systems have to cummincate with each other... +Another aspect that makes the \gls{ecs} very fast, is that a system can handle all +components (of the same type) together at once. This is possible because all entities +are independent of each other. + +There are many ways of implementing the systems. Some say that each component type has +their own system. This interpretation of the systems does not take the interplay of +different component types, into account. A less restrictive approach is to let different +systems deal with all components they should be concerned with. For instance a Physics +Systems should be aware of Collision Components and Rigidbody Components, as both +probably contain necessary information regarding physics simulation. It's best to see +systems as “closed environments”. That is, they do not take ownership of entities nor +components. They do access them through independent manager objects, which in turn will +take care of the entities and components life-cycle. + +Sometimes systems, entities and even components need to cummincate with each other. This +might be very hard because systems, entities and components are more or less independent. +One option is to use an event systems. A system, entity and component can raise an event +and other systems, entities and components can react to that event. This is what makes the +\gls{ecs} a complicated system (disadvantage). There are many C/C++ libraries available, completely dedicated to \gls{ecs}. The most popular libraries are shown in \cref{tab:popularECSLibraries}. The popularity is |