aboutsummaryrefslogtreecommitdiff
path: root/research.tex
diff options
context:
space:
mode:
authorMax-001 <80035972+Max-001@users.noreply.github.com>2024-09-20 15:13:48 +0200
committerMax-001 <80035972+Max-001@users.noreply.github.com>2024-09-20 15:13:48 +0200
commit110ffb785a8eaf54106b92f49f008f0003193a2b (patch)
tree93be048d63e7d9471c8f2edd8e0b1397c7e97e67 /research.tex
parent6f802231674685b9d1bb365d345c96aa15cdd311 (diff)
Continued ECS research
Diffstat (limited to 'research.tex')
-rw-r--r--research.tex20
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