aboutsummaryrefslogtreecommitdiff
path: root/research.tex
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-10-31 15:57:24 +0100
committerLoek Le Blansch <loek@pipeframe.xyz>2024-10-31 15:57:24 +0100
commit388d1c218572a55fb0dd413939083ecfc185888d (patch)
treee04a82984f1e67bcf565536332ca258008a87850 /research.tex
parent07a919befbdff9d7da8db95a890c2f647396cd23 (diff)
parent4b12d1f1e6dbded47637ef8e2550741882d59329 (diff)
Merge branch 'master' into loek/design
Diffstat (limited to 'research.tex')
-rw-r--r--research.tex68
1 files changed, 68 insertions, 0 deletions
diff --git a/research.tex b/research.tex
index 5dd01a6..6853d5f 100644
--- a/research.tex
+++ b/research.tex
@@ -663,6 +663,74 @@ an easier to use interface for the user and improve the efficiency of the physic
because the total forces can be calcualted ones and then applied to all dynamic
entities.
+\subsubsection{Components physics}
+
+This is a list that could be needed for additonal phisics components
+
+\begin{itemize}
+ \item Gravity
+ \begin{itemize}
+ \item Rigidbody (for mass, gravity scale, etc.)
+ \item Transform (to modify position based on gravity)
+ \end{itemize}
+
+ \item Directional Force (e.g.~wind or gravity in a specific direction)
+ \begin{itemize}
+ \item ForceComponent (for direction and magnitude of the force)
+ \item Rigidbody (for mass and velocity affected by force)
+ \item Transform (to update position based on force)
+ \end{itemize}
+
+ \item Collision (detection + handling)
+ \begin{itemize}
+ \item Rigidbody (for collision detection mode and velocity handling)
+ \item ColliderComponent (defines the shape and behavior of the collider, like bounce)
+ \item Transform (for object position, rotation updates)
+ \end{itemize}
+
+ \item Player Movement
+ \begin{itemize}
+ \item MovementComponent (for handling player input and movement speed)
+ \item Rigidbody (to handle physics-based movement, like velocity changes)
+ \item Transform (to apply movement to the object's position)
+ \end{itemize}
+
+ \item Bounce (elastic collisions)
+ \begin{itemize}
+ \item Rigidbody (for bounce coefficient and velocity adjustments)
+ \item ColliderComponent (to detect collisions and calculate bounce)
+ \item Transform (to adjust position after bouncing)
+ \end{itemize}
+
+ \item Rotation (torque or angular forces)
+ \begin{itemize}
+ \item Rigidbody (for rotational inertia and angular velocity)
+ \item Transform (to apply rotation to the object)
+ \end{itemize}
+
+ \item Directional Force (e.g.~explosions, pushing)
+ \begin{itemize}
+ \item ForceComponent (to apply the force in a direction with a magnitude)
+ \item Rigidbody (for velocity changes due to the force)
+ \item Transform (to update position based on the force)
+ \end{itemize}
+
+ \item Particles (e.g.~smoke, explosions)
+ \begin{itemize}
+ \item ParticleComponent (to define particle effects like lifetime, velocity)
+ \item Transform (to emit particles from the object’s position)
+ \end{itemize}
+\end{itemize}
+
+\begin{enumerate}
+ \item Input Processing
+ \item Run Scripts (custom logic, AI, player input, etc.)
+ \item Apply Forces (gravity, directional forces, user-applied forces)
+ \item Calculate Movement (update positions based on velocity)
+ \item Collision Detection and Resolution
+ \item Post-Collision Adjustments (e.g.~friction, constraints)
+\end{enumerate}
+
\subsection{Conclusion}
More components need te be created for both EC and ECS with the diagram provided by