aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax-001 <80035972+Max-001@users.noreply.github.com>2024-09-16 16:53:41 +0200
committerMax-001 <80035972+Max-001@users.noreply.github.com>2024-09-16 16:53:41 +0200
commitf923835a5e82d727dc27d61ef9ef9d731580b0c9 (patch)
tree4996829395283dfa9629fca3de46ebd46de0d30a
parentfc4df693f53b369b79e3f5c72a29110862390744 (diff)
Added popular ECS
-rw-r--r--research.tex24
1 files changed, 22 insertions, 2 deletions
diff --git a/research.tex b/research.tex
index ad33d10..3e2e103 100644
--- a/research.tex
+++ b/research.tex
@@ -66,10 +66,30 @@ must be stored efficiently, and entities must be provided with the required beha
such as audio, position, or physics. To create diverse entities with specific
functions: A scene can contain many different kinds of entities, each with different
properties and functions. But no matter how different each entity is, it remains an
-entity. To assign properties and functions to entities, components are used. Entt is
-an example of an \gls{ecs}.
+entity. To assign properties and functions to entities, components are used.
% TODO: ref?entt
+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 based
+on the amount of stars on GitHub.
+\begin{table}
+ \begin{tabularx}{\linewidth}{lXr}
+ \toprule
+ \textbf{Name} & \textbf{Short Description} & \textbf{GitHub Stars} \\
+ \midrule
+ EnTT & Fast and reliable entity-component system & 10k \\
+ Flecs & A Multithreaded Entity Component System written for C89 and C99 & 6.3k \\
+ EntityX & Fast, type-safe C++ entity component system & 2.2k \\
+ \bottomrule
+ \end{tabularx}
+ \caption{Popular \gls{ecs} libraries}
+ \label{tab:popularECSLibraries}
+\end{table}
+https://github.com/abeimler/ecs_benchmark
+
+It is, of course, not necessary to use a library to implement an \gls{ecs} architecture.
+However, it seems very hard to achieve the same performance as a library. https://github.com/SanderMertens/ecs-faq?tab=readme-ov-file#should-i-write-my-own-ecs
+
\subsection{Conclusion}
\section{Third-party Tools}