From b4d422bf186253ef3cfc91996d07a668cd9c47e3 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Wed, 23 Oct 2024 22:31:48 +0200 Subject: update time.txt --- time.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/time.txt b/time.txt index 205c617..26efc12 100644 --- a/time.txt +++ b/time.txt @@ -80,6 +80,7 @@ loek: 2024-10-21 1h30m implementation :: global config interface loek: 2024-10-21 10m review :: PR review (#7) loek: 2024-10-22 15m review :: incorporate feedback and merge PR (#7 and #37) loek: 2024-10-23 30m implementation :: refactoring +loek: 2024-10-23 2h20m review :: PR review (#9) max: 2024-09-02 1h project kickoff max: 2024-09-02 45m first project meeting -- cgit v1.2.3 From 6ffc037d9fac51cebb438c294c3d0de93a9785cb Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Thu, 24 Oct 2024 10:58:36 +0200 Subject: update time.txt --- time.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/time.txt b/time.txt index 26efc12..b2fffe1 100644 --- a/time.txt +++ b/time.txt @@ -81,6 +81,8 @@ loek: 2024-10-21 10m review :: PR review (#7) loek: 2024-10-22 15m review :: incorporate feedback and merge PR (#7 and #37) loek: 2024-10-23 30m implementation :: refactoring loek: 2024-10-23 2h20m review :: PR review (#9) +loek: 2024-10-24 1h20m project meeting +loek: 2024-10-24 30m review :: PR review (merge only, #8 and #11) max: 2024-09-02 1h project kickoff max: 2024-09-02 45m first project meeting -- cgit v1.2.3 From 58a60c928e5da2e2e43dbd820284aceb1b0bea84 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Fri, 25 Oct 2024 20:49:09 +0200 Subject: update time.txt --- time.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/time.txt b/time.txt index b2fffe1..edde953 100644 --- a/time.txt +++ b/time.txt @@ -83,6 +83,7 @@ loek: 2024-10-23 30m implementation :: refactoring loek: 2024-10-23 2h20m review :: PR review (#9) loek: 2024-10-24 1h20m project meeting loek: 2024-10-24 30m review :: PR review (merge only, #8 and #11) +loek: 2024-10-25 30m implementation :: scripting interface max: 2024-09-02 1h project kickoff max: 2024-09-02 45m first project meeting -- cgit v1.2.3 From 52a9b8a458f056c5f318bef8aa45edc85cd28171 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Fri, 25 Oct 2024 21:35:16 +0200 Subject: update time.txt --- time.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/time.txt b/time.txt index edde953..b72e16a 100644 --- a/time.txt +++ b/time.txt @@ -84,6 +84,7 @@ loek: 2024-10-23 2h20m review :: PR review (#9) loek: 2024-10-24 1h20m project meeting loek: 2024-10-24 30m review :: PR review (merge only, #8 and #11) loek: 2024-10-25 30m implementation :: scripting interface +loek: 2024-10-25 20m review :: PR review (+errands, merge only, #12 and #13) max: 2024-09-02 1h project kickoff max: 2024-09-02 45m first project meeting -- cgit v1.2.3 From 6e870b621c663e09177fecf42810bc3b87c26ea6 Mon Sep 17 00:00:00 2001 From: WBoerenkamps Date: Sat, 26 Oct 2024 09:02:39 +0200 Subject: time update --- time.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/time.txt b/time.txt index b72e16a..7fde818 100644 --- a/time.txt +++ b/time.txt @@ -175,6 +175,16 @@ wouter: 2024-10-07 2h45m project meeting wouter: 2024-10-08 4h finishing keyboard and mouse events wouter: 2024-10-09 3h intergrating gameloop with events for testing wouter: 2024-10-10 1h30m project meeting +wouter: 2024-10-14 1h30m twelfth project meeting +wouter: 2024-10-14 2h kennisdeling +wouter: 2024-10-15 30m reviewing pull request sound +wouter: 2024-10-17 1h thirteenth project meeting +wouter: 2024-10-18 2h finished design diagram event manager +wouter: 2024-10-21 3h working on design document +wouter: 2024-10-12 30m reviewing pull request logging +wouter: 2024-10-24 1h20m project meeting +wouter: 2024-10-25 2h added collision functionality to event manager + niels: 2024-09-02 1h project meeting :: project kickoff -- cgit v1.2.3 From 370c72acdb43ddb79583c232af9f91155425fc8d Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Sat, 26 Oct 2024 15:58:11 +0200 Subject: WIP save manager design --- design.tex | 45 +++++++++++++++++++++++++++++++++------------ img/class-scripts.puml | 7 +++++-- projdoc.cls | 2 +- reqs.toml | 45 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 84 insertions(+), 15 deletions(-) diff --git a/design.tex b/design.tex index 08ea7cc..a3da41c 100644 --- a/design.tex +++ b/design.tex @@ -24,15 +24,15 @@ workflows. \section{Overview} -\subsection{Core} - -\subsection{Patterns} +% TODO: high-level design introduction +% - which parts of the design are prerequisites (and therefore not designed by us) +% - why are all parts in the following section arranged in the way they are \section{Design} -\subsection{Rendering} +% \subsection{Rendering} -\subsection{Physics} +% \subsection{Physics} \subsection{Scripting} @@ -91,10 +91,11 @@ follows:\noparbreak contains the following classes:\noparbreak \begin{description} \item[Script] This is the script \emph{interface}, and is used by the game - programmer to create derived script classes. All methods in this class are - declared virtual and have an empty implementation. + programmer to create derived script classes. All virtual methods in this class + have an empty implementation by default, and are optionally implemented by the + game programmer. - This class' methods are protected by default, and a friend relation to + This class' virtual methods are protected by default, and a friend relation to \codeinline{ScriptSystem} is used to ensure only \codeinline{ScriptSystem} is able to call these methods. @@ -103,6 +104,10 @@ contains the following classes:\noparbreak function returns a reference to the \codeinline{BehaviorScript} instance it was called on so it can be chained after the call to \codeinline{GameObject::add_component}. + + \codeinline{Script} also has a reference to its parent + \codeinline{BehaviorScript} instance so components can easily be retrieved using + the component manager. \item[BehaviorScript] This is the script \emph{component}, and is given as the template parameter to \codeinline{GameObject::add_component}. @@ -184,13 +189,29 @@ contains the following classes: \label{fig:class-audio-facade} \end{figure} -\subsection{Input} +\subsection{Save manager} + +The save manager \gls{api} is designed to give the game programmer an easy to use +interface for retrieving and storing game-specific data (\cref{req:savemgr}). + +Because the engine validation app only stores statistics and highscores, the save +manager is not required to support loading different save files +(\cref{req:savemgr:multi-file}), nor storing complicated data types +(\cref{req:savemgr:types-custom}). The save manager only supports storing simple +types (\cref{req:savemgr:types-scalar,req:savemgr:types-string}). -\subsection{Physics} +In order to reduce complexity for the game programmer further, the following +requirements were also set:\noparbreak + +\begin{itemize} + \item Prevent data loss in the case of crashes (\cref{req:savemgr:journalling}) + \item Handle opening/closing/flushing of the underlying file automatically + % (\cref{req:savemgr:???}) +\end{itemize} -\section{Tools} +% \subsection{Input} -\section{Conclusion} +% \subsection{Physics} \end{document} diff --git a/img/class-scripts.puml b/img/class-scripts.puml index 8fc36c9..44cbe85 100644 --- a/img/class-scripts.puml +++ b/img/class-scripts.puml @@ -10,10 +10,12 @@ package api { class Component <> class Script { + - Script() + -- # init() <> # update() <> -- - - Script() + - parent : BehaviorScript * } class BehaviorScript { @@ -26,7 +28,8 @@ package api { } BehaviorScript -u-|> Component - Script .u.> BehaviorScript + Script <.u. BehaviorScript : > friend + Script ..u> BehaviorScript } class System <> diff --git a/projdoc.cls b/projdoc.cls index b369b18..a0c8e10 100644 --- a/projdoc.cls +++ b/projdoc.cls @@ -330,7 +330,7 @@ % adjust scale for puml diagrams \newcommand{\includepumldiag}[1]{% \StrSubstitute{#1}{.puml}{.eps}[\filename]% - \fitimg{\includegraphics[scale=0.75]{\filename}}% + \fitimg{\includegraphics[scale=0.65]{\filename}}% } % prevent page break between two paragraphs diff --git a/reqs.toml b/reqs.toml index a83208e..8cf9bca 100644 --- a/reqs.toml +++ b/reqs.toml @@ -117,3 +117,48 @@ Unless explicitly changed by the game programmer, methods on instances of must be called by the script system. ''' +[savemgr] +type = 'user' +priority = 'must' +description = ''' +The engine provides an \gls{api} for saving various kinds of game data +(e.g.~progress, levels, statistics, unlocked items, achievements). +''' + +[savemgr:journalling] +type = 'system' +priority = 'should' +description = ''' +The save manager uses a journal to store data, such that partial saves do not +cause data loss. +''' + +[savemgr:types-custom] +type = 'system' +priority = 'will not' +description = ''' +The save manager can be extended to store and retrieve game programmer-defined +types and data structures. +''' + +[savemgr:types-scalar] +type = 'system' +priority = 'must' +description = ''' +The save manager is able to store and retrieve scalar types. +''' + +[savemgr:types-string] +type = 'system' +priority = 'must' +description = ''' +The save manager is able to store and retrieve strings. +''' + +[savemgr:multi-file] +type = 'system' +priority = 'will not' +description = ''' +The save manager can load multiple different save files. +''' + -- cgit v1.2.3 From ec0ec67936f03a3e44dcfde40d8398edf8afa517 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Sat, 26 Oct 2024 15:59:46 +0200 Subject: update time.txt --- time.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/time.txt b/time.txt index 7fde818..1abed63 100644 --- a/time.txt +++ b/time.txt @@ -85,6 +85,7 @@ loek: 2024-10-24 1h20m project meeting loek: 2024-10-24 30m review :: PR review (merge only, #8 and #11) loek: 2024-10-25 30m implementation :: scripting interface loek: 2024-10-25 20m review :: PR review (+errands, merge only, #12 and #13) +loek: 2024-10-26 3h20m implementation :: save manager max: 2024-09-02 1h project kickoff max: 2024-09-02 45m first project meeting -- cgit v1.2.3 From e147d964f22257035da954e398f6b898b942c3ac Mon Sep 17 00:00:00 2001 From: Jaro Date: Sat, 26 Oct 2024 19:34:32 +0200 Subject: Notulen notes en collision diagram en research toegevoegd --- figs.drawio | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- notulen/wk8-1.txt | 57 +++++++++++++++++++++++++++++ research.tex | 67 ++++++++++++++++++++++++++++++++++ 3 files changed, 227 insertions(+), 2 deletions(-) create mode 100644 notulen/wk8-1.txt diff --git a/figs.drawio b/figs.drawio index 5082752..5e6fc7a 100644 --- a/figs.drawio +++ b/figs.drawio @@ -736,7 +736,7 @@ - + @@ -1486,7 +1486,7 @@ - + @@ -1495,6 +1495,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/notulen/wk8-1.txt b/notulen/wk8-1.txt new file mode 100644 index 0000000..7702dfd --- /dev/null +++ b/notulen/wk8-1.txt @@ -0,0 +1,57 @@ + Documents + Research Document + Continue adding research information + Project plan + - + Document standard + Add updates when needed + Requirement + physics sub-requirements -> Jaro write document + eventmanager sub-requirements -> Wouter write document + gameloop sub-requirements -> Wouter write document + ecs sub-requirements + particles sub-requirement -> Jaro write document + resourceManager sub-requirement -> Niels write document + rendering sub-requirement + script requirements added. + design document + [closed] Discussing top-down + API in design document + Game design + - + Git + Code standard -> LOEK update + Show updates + Code standard with examples not in main? -> niels + Environments + - + Research (POC) + research eventmanager -> Wouter POC (goede voortgang) knoppen uitlezen + [closed] resource manager -> POC check datatype for conversion (na meeting afgerond) alleen implementatie tiled + start research ui -> wouter + start research ai + start research playback -> Max + start research scenes -> Max + star research camera -> Niels + start research savedata -> loek + start research renderer -> niels (sprite & color & transform) POC simple (SDL_GPU voor efficiency verbetering) + [closed] start research scripting -> loek + start research physics Starting POC -> Jaro + More research about physics + start reasearch collision detection -> Jaro + [closed] research ecs -> Loek will add fix for derived class for scripts + start research particles Starting research -> Jaro (start lifetime. spawning area) + Design + Adding design asset class -> niels + Adding design resource holder -> niels + How does a game designer make a scene? + Product + - + Test + - + Question Bob + mag de API gewoon een interface worden voor wat onderliggend een ECS is. + Overig + Timers voor systems (profiler van systems) + + diff --git a/research.tex b/research.tex index 791e9f1..01f25a0 100644 --- a/research.tex +++ b/research.tex @@ -670,6 +670,73 @@ The benefit of ECS is that all physics and collsions are handled by one system. What EC can not provide compared to ECS is a physics world. A physics world would be the physics that apply to all dynamic physics components. If you want to create gravity you can add the force to the world. The physics system would read all the Physics forces in the world and apply them to all dynamic entities. This would create an easier to use interface for the user and improve the efficiency of the physics 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} + + +1. Input Processing +2. Run Scripts (custom logic, AI, player input, etc.) +3. Apply Forces (gravity, directional forces, user-applied forces) +4. Calculate Movement (update positions based on velocity) +5. Collision Detection and Resolution +6. Post-Collision Adjustments (e.g., friction, constraints) + + \subsection{Conclusion} More components need te be created for both EC and ECS with the diagram provided by the customer. With ECS having the benefit of creating a world where all dynamic object can have a force they interact with. A physics system has the benefit that all physics functionalities are located within one system instead in each component. The flow of Physics updates can be change within the physics system instead of in the gameloop itself. -- cgit v1.2.3 From dda9f9b9eb5d46e240cd801643a5a73567749073 Mon Sep 17 00:00:00 2001 From: Jaro Date: Sat, 26 Oct 2024 19:45:22 +0200 Subject: time-update --- time.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/time.txt b/time.txt index 7fde818..b4c34e6 100644 --- a/time.txt +++ b/time.txt @@ -292,5 +292,11 @@ jaro: 2024-10-11 30m weekly update jaro: 2024-10-14 2h knowledge sharing jaro: 2024-10-14 1h30m project meeting jaro: 2024-10-17 1h project discussion - +jaro: 2024-10-19 15m weeklyupdate +jaro: 2024-10-20 3h components, physics,collision systems (design en onderzoek) +jaro: 2024-10-23 1h30m samenvoegen collision,physics en rendering. +jaro: 2024-10-24 1h20 project meeting +jaro: 2024-10-24 3h30m physics / collision (physics en collision detection) +jaro: 2024-10-24 1h static collision handeling +jaro: 2024-10-25 2h collision handeling + onderzoek collision event unity # vim:ft=cfg -- cgit v1.2.3 From 9a8842f38e63e7562eb5cb6e411451fa16ca8101 Mon Sep 17 00:00:00 2001 From: Jaro Date: Sat, 26 Oct 2024 19:54:23 +0200 Subject: update-time --- time.txt | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/time.txt b/time.txt index b4c34e6..58206e0 100644 --- a/time.txt +++ b/time.txt @@ -293,10 +293,15 @@ jaro: 2024-10-14 2h knowledge sharing jaro: 2024-10-14 1h30m project meeting jaro: 2024-10-17 1h project discussion jaro: 2024-10-19 15m weeklyupdate -jaro: 2024-10-20 3h components, physics,collision systems (design en onderzoek) -jaro: 2024-10-23 1h30m samenvoegen collision,physics en rendering. -jaro: 2024-10-24 1h20 project meeting -jaro: 2024-10-24 3h30m physics / collision (physics en collision detection) +jaro: 2024-10-20 3h components + physics + collision systems +jaro: 2024-10-23 1h30m samenvoegen collision + physics en rendering +jaro: 2024-10-24 1h20m project meeting +jaro: 2024-10-24 3h30m physics and collision jaro: 2024-10-24 1h static collision handeling -jaro: 2024-10-25 2h collision handeling + onderzoek collision event unity +jaro: 2024-10-25 2h collision handeling and onderzoek collision event unity + + + + + # vim:ft=cfg -- cgit v1.2.3 From 1e95409dc041f29d0edecc08edd4a2eb21149182 Mon Sep 17 00:00:00 2001 From: heavydemon21 Date: Sat, 26 Oct 2024 20:05:19 +0200 Subject: weekly update --- img/facade-audio-eps-converted-to.pdf | Bin 0 -> 15315 bytes img/facade-audio.puml | 2 +- time.txt | 15 +++++++++++---- 3 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 img/facade-audio-eps-converted-to.pdf diff --git a/img/facade-audio-eps-converted-to.pdf b/img/facade-audio-eps-converted-to.pdf new file mode 100644 index 0000000..476cf38 Binary files /dev/null and b/img/facade-audio-eps-converted-to.pdf differ diff --git a/img/facade-audio.puml b/img/facade-audio.puml index 60af60f..d3e732b 100644 --- a/img/facade-audio.puml +++ b/img/facade-audio.puml @@ -1,5 +1,5 @@ @startuml -!include theme.ipuml +!include ../img/theme.ipuml skinparam Linetype ortho package crepe { diff --git a/time.txt b/time.txt index 7fde818..235eb37 100644 --- a/time.txt +++ b/time.txt @@ -231,10 +231,17 @@ niels: 2024-10-09 2h adding the rendering components to api, and making the rend niels: 2024-10-09 3h researching and programming,debugging the rendersystem niels: 2024-10-10 3h Test jaro/particels branch to improve sdl functionalities. additionally, researching the necessary components niels: 2024-10-11 1h30m project meeting - - - - +niels: 2024-10-21 3h design of asset manager and rendering +niels: 2024-10-21 1h merging new master +niels: 2024-10-22 2h adjusted rendering to new master +niels: 2024-10-23 2h merge jaro/poc-physics branch to niels/rendering +niels: 2024-10-23 1h finalize rendering +niels: 2024-10-24 1h20m project meeting +niels: 2024-10-25 2h camera programming +niels: 2024-10-25 2h researching camera +niels: 2024-10-26 2h merge wouter events branch to niels/rendering +niels: 2024-10-26 1h fix my own git camera mistake +niels: 2024-10-26 2h programming camera poc with movement and script jaro: 2024-09-02 1h project meeting :: project kickoff jaro: 2024-09-02 45m project meeting -- cgit v1.2.3 From 34a57ededa7e3368ca10b05742e155fb80af17e0 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Sun, 27 Oct 2024 12:34:55 +0100 Subject: remove converted pdf file --- img/facade-audio-eps-converted-to.pdf | Bin 15315 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 img/facade-audio-eps-converted-to.pdf diff --git a/img/facade-audio-eps-converted-to.pdf b/img/facade-audio-eps-converted-to.pdf deleted file mode 100644 index 476cf38..0000000 Binary files a/img/facade-audio-eps-converted-to.pdf and /dev/null differ -- cgit v1.2.3 From 83475e6e8121756306917b9345c35091631732ce Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Sun, 27 Oct 2024 12:36:34 +0100 Subject: merge time.txt from loek/design into master --- time.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/time.txt b/time.txt index 235eb37..d7e00b1 100644 --- a/time.txt +++ b/time.txt @@ -85,6 +85,7 @@ loek: 2024-10-24 1h20m project meeting loek: 2024-10-24 30m review :: PR review (merge only, #8 and #11) loek: 2024-10-25 30m implementation :: scripting interface loek: 2024-10-25 20m review :: PR review (+errands, merge only, #12 and #13) +loek: 2024-10-26 3h20m implementation :: save manager max: 2024-09-02 1h project kickoff max: 2024-09-02 45m first project meeting -- cgit v1.2.3 From e4ec06b02288dbf3c9898e3d7c029b1fe3fc3e27 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Sun, 27 Oct 2024 12:38:17 +0100 Subject: restore audio facade puml theme include --- img/facade-audio.puml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/img/facade-audio.puml b/img/facade-audio.puml index d3e732b..60af60f 100644 --- a/img/facade-audio.puml +++ b/img/facade-audio.puml @@ -1,5 +1,5 @@ @startuml -!include ../img/theme.ipuml +!include theme.ipuml skinparam Linetype ortho package crepe { -- cgit v1.2.3 From 07a919befbdff9d7da8db95a890c2f647396cd23 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Sun, 27 Oct 2024 19:34:23 +0100 Subject: more WIP design --- design.tex | 16 +++++++++++++++- img/class-savemgr.puml | 13 +++++++++++++ reqs.toml | 20 ++++++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 img/class-savemgr.puml diff --git a/design.tex b/design.tex index a3da41c..761658c 100644 --- a/design.tex +++ b/design.tex @@ -206,9 +206,23 @@ requirements were also set:\noparbreak \begin{itemize} \item Prevent data loss in the case of crashes (\cref{req:savemgr:journalling}) \item Handle opening/closing/flushing of the underlying file automatically - % (\cref{req:savemgr:???}) + (\cref{req:savemgr:file-manage}) + \item Save file variables are uniquely identified (\cref{req:savemgr:var-key}) \end{itemize} +% \subsubsection{Architecture} +% \label{sec:savemgr:architecture} +% +% \begin{figure} +% \centering +% \includepumldiag{img/class-savemgr.puml} +% \caption{Save manager class diagram} +% \label{fig:class-savemgr} +% \end{figure} +% +% In order to realize \cref{req:savemgr:journalling,req:savemgr:var-key}, a third-party +% key-value database library is used. + % \subsection{Input} % \subsection{Physics} diff --git a/img/class-savemgr.puml b/img/class-savemgr.puml new file mode 100644 index 0000000..30bcd08 --- /dev/null +++ b/img/class-savemgr.puml @@ -0,0 +1,13 @@ +@startuml +!include theme.ipuml +skinparam Linetype ortho + +class SaveManager { + +} + +class ValueBroker { + +} + +@enduml diff --git a/reqs.toml b/reqs.toml index 8cf9bca..9ad0a86 100644 --- a/reqs.toml +++ b/reqs.toml @@ -162,3 +162,23 @@ description = ''' The save manager can load multiple different save files. ''' +[savemgr:file-manage] +type = 'system' +priority = 'must' +description = ''' +The save manager manages opening/closing the underlying file, and flushing +in-memory data to the file. +''' +done = ''' +The game programmer is able to use the save manager without explicit +(de)initialization. +''' + +[savemgr:var-key] +type = 'system' +priority = 'must' +description = ''' +The save manager provides access to variables uniquely identified by a key +string. +''' + -- cgit v1.2.3 From 0f1e2c876fe550862cb1201bf5cba9dc95707324 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Sun, 27 Oct 2024 19:34:53 +0100 Subject: update time.txt --- time.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/time.txt b/time.txt index d7e00b1..ef11729 100644 --- a/time.txt +++ b/time.txt @@ -86,6 +86,7 @@ loek: 2024-10-24 30m review :: PR review (merge only, #8 and #11) loek: 2024-10-25 30m implementation :: scripting interface loek: 2024-10-25 20m review :: PR review (+errands, merge only, #12 and #13) loek: 2024-10-26 3h20m implementation :: save manager +loek: 2024-10-27 4h implementation :: save manager max: 2024-09-02 1h project kickoff max: 2024-09-02 45m first project meeting -- cgit v1.2.3 From a819194e10c8afd9108fa102f4c105b0556829f2 Mon Sep 17 00:00:00 2001 From: Max-001 <80035972+Max-001@users.noreply.github.com> Date: Tue, 29 Oct 2024 17:26:10 +0100 Subject: Added tasks --- time.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/time.txt b/time.txt index fdae334..685cc37 100644 --- a/time.txt +++ b/time.txt @@ -126,6 +126,10 @@ max: 2024-10-16 30m investigated whether or not EnTT can handle multiple inherit max: 2024-10-16 3h rethinked scripting (to avoid mutliple inheritance) max: 2024-10-16 20m added new scripting idea to ecs-homemade max: 2024-10-17 1h thirteenth project meeting +max: 2024-10-24 2h10m fourteenth project meeting +max: 2024-10-25 3h started researching Scenes and Replay +max: 2024-10-29 2h worked on UIObjects and Camera +max: 2024-10-29 3h15m worked on Metadata Component, Camera and Scenes wouter: 2024-09-02 1h project meeting :: project kickoff wouter: 2024-09-02 45m project meeting -- cgit v1.2.3 From 9c9c7a9658655976e761ee8f97697ad7de10ec8f Mon Sep 17 00:00:00 2001 From: Jaro Date: Tue, 29 Oct 2024 21:11:58 +0100 Subject: removed force --- figs.drawio | 44 +++----------------------------------------- 1 file changed, 3 insertions(+), 41 deletions(-) diff --git a/figs.drawio b/figs.drawio index 5e6fc7a..7d04108 100644 --- a/figs.drawio +++ b/figs.drawio @@ -736,7 +736,7 @@ - + @@ -1523,20 +1523,6 @@ - - - - - - - - - - - - - - @@ -1547,23 +1533,13 @@ - - - - - - - - - - - + @@ -1577,21 +1553,7 @@ - - - - - - - - - - - - - - - + -- cgit v1.2.3 From 04237758d57884e3dea44720bcda373ede89b1d0 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Tue, 29 Oct 2024 21:51:22 +0100 Subject: remove dependency on plantuml bundled files --- img/facade-audio.puml | 2 +- img/theme.ipuml | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/img/facade-audio.puml b/img/facade-audio.puml index d3e732b..60af60f 100644 --- a/img/facade-audio.puml +++ b/img/facade-audio.puml @@ -1,5 +1,5 @@ @startuml -!include ../img/theme.ipuml +!include theme.ipuml skinparam Linetype ortho package crepe { diff --git a/img/theme.ipuml b/img/theme.ipuml index ae3b1c7..81391e2 100644 --- a/img/theme.ipuml +++ b/img/theme.ipuml @@ -1,6 +1,14 @@ ' vim:ft=plantuml -!theme plain + + skinparam ClassAttributeIconSize 0 skinparam ClassFontStyle bold skinparam DefaultFontName Inter -- cgit v1.2.3 From 606e29c0fc261854ed440fd7a7d57dc92158b9c5 Mon Sep 17 00:00:00 2001 From: jaroWMR Date: Tue, 29 Oct 2024 22:06:53 +0100 Subject: added fixed loop flowchart --- figs.drawio | 387 ++++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 327 insertions(+), 60 deletions(-) diff --git a/figs.drawio b/figs.drawio index 7d04108..2a2cb54 100644 --- a/figs.drawio +++ b/figs.drawio @@ -1,4 +1,4 @@ - + @@ -736,7 +736,7 @@ - + @@ -1068,7 +1068,7 @@ - + @@ -1094,7 +1094,7 @@ - + @@ -1108,21 +1108,24 @@ - + + + + - + - + - + @@ -1132,14 +1135,17 @@ + + + - + - + - + @@ -1156,7 +1162,7 @@ - + @@ -1169,11 +1175,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -1243,7 +1285,7 @@ - + @@ -1257,7 +1299,7 @@ - + @@ -1266,10 +1308,13 @@ - + - + + + + @@ -1282,8 +1327,8 @@ - - + + @@ -1354,12 +1399,12 @@ - + - - + + - + @@ -1368,27 +1413,27 @@ - + - - + + - - + + - - + + - - + + @@ -1397,8 +1442,7 @@ - - + @@ -1407,7 +1451,8 @@ - + + @@ -1416,7 +1461,7 @@ - + @@ -1453,7 +1498,7 @@ - + @@ -1491,55 +1536,90 @@ - + - - + + - + - - + + - - + + + + + + + + + + + + + + + + + - - + + + + + + + + - - + + - - + + - - + + + + + + + + + + + + + + + + + - - + - + - + @@ -1553,7 +1633,7 @@ - + @@ -1561,8 +1641,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + -- cgit v1.2.3 From 7c34b826719a9c89cebd126164bc98b99579d49e Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Tue, 29 Oct 2024 22:06:54 +0100 Subject: update time.txt --- time.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/time.txt b/time.txt index ef11729..511cfd4 100644 --- a/time.txt +++ b/time.txt @@ -87,6 +87,7 @@ loek: 2024-10-25 30m implementation :: scripting interface loek: 2024-10-25 20m review :: PR review (+errands, merge only, #12 and #13) loek: 2024-10-26 3h20m implementation :: save manager loek: 2024-10-27 4h implementation :: save manager +loek: 2024-10-29 10m tooling :: documentation (fix plantuml theme errors) max: 2024-09-02 1h project kickoff max: 2024-09-02 45m first project meeting -- cgit v1.2.3 From f1f70d5ae70c5cbcef9c19edc28af634a3289acb Mon Sep 17 00:00:00 2001 From: max-001 Date: Wed, 30 Oct 2024 09:22:03 +0100 Subject: Added figs.drawio from jaro/design --- figs.drawio | 412 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 371 insertions(+), 41 deletions(-) diff --git a/figs.drawio b/figs.drawio index 5082752..2a2cb54 100644 --- a/figs.drawio +++ b/figs.drawio @@ -1,4 +1,4 @@ - + @@ -736,7 +736,7 @@ - + @@ -1068,7 +1068,7 @@ - + @@ -1094,7 +1094,7 @@ - + @@ -1108,21 +1108,24 @@ - + + + + - + - + - + @@ -1132,14 +1135,17 @@ + + + - + - + - + @@ -1156,7 +1162,7 @@ - + @@ -1169,11 +1175,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -1243,7 +1285,7 @@ - + @@ -1257,7 +1299,7 @@ - + @@ -1266,10 +1308,13 @@ - + - + + + + @@ -1282,8 +1327,8 @@ - - + + @@ -1354,12 +1399,12 @@ - + - - + + - + @@ -1368,27 +1413,27 @@ - + - - + + - - + + - - + + - - + + @@ -1397,8 +1442,7 @@ - - + @@ -1407,7 +1451,8 @@ - + + @@ -1416,7 +1461,7 @@ - + @@ -1453,7 +1498,7 @@ - + @@ -1486,20 +1531,305 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + -- cgit v1.2.3 From 8be364d25a0d90ee264cc39b3bf9ef61d4c1c339 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Wed, 30 Oct 2024 10:43:08 +0100 Subject: update time.txt --- time.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/time.txt b/time.txt index c23e53a..03e83d3 100644 --- a/time.txt +++ b/time.txt @@ -88,6 +88,7 @@ loek: 2024-10-25 20m review :: PR review (+errands, merge only, #12 and #13) loek: 2024-10-26 3h20m implementation :: save manager loek: 2024-10-27 4h implementation :: save manager loek: 2024-10-29 10m tooling :: documentation (fix plantuml theme errors) +loek: 2024-10-30 30m project meeting (min/max component count constraints) max: 2024-09-02 1h project kickoff max: 2024-09-02 45m first project meeting -- cgit v1.2.3 From 32709ea7a80a0c9499d1ff7aecc817a256bfcb0e Mon Sep 17 00:00:00 2001 From: max-001 Date: Wed, 30 Oct 2024 11:25:53 +0100 Subject: Modified class diagram --- figs.drawio | 727 ++++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 408 insertions(+), 319 deletions(-) diff --git a/figs.drawio b/figs.drawio index 2a2cb54..79be325 100644 --- a/figs.drawio +++ b/figs.drawio @@ -736,41 +736,12 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -783,23 +754,24 @@ - + - - + + - + + - + - + @@ -807,164 +779,27 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - - - - + + - - + - - - - - - - - - - - - - - - - - - @@ -975,19 +810,19 @@ - + - + - + - + @@ -1031,7 +866,7 @@ - + @@ -1045,40 +880,43 @@ - + - + + + + - + - + - + - + - + - + - + - + @@ -1087,10 +925,10 @@ - + - + @@ -1115,7 +953,7 @@ - + @@ -1135,7 +973,7 @@ - + @@ -1145,24 +983,24 @@ - + - - + + - - + + - + - - + + - + @@ -1175,50 +1013,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1228,18 +1066,18 @@ - + - + - + - + @@ -1260,52 +1098,55 @@ - + + + + - + - + - + - - + + - - + + - + - + - + - + - + - + @@ -1322,13 +1163,13 @@ - + - - + + @@ -1337,41 +1178,41 @@ - + - - + + - + - + - + - + - + - + @@ -1380,12 +1221,12 @@ - + - + @@ -1404,7 +1245,7 @@ - + @@ -1413,7 +1254,8 @@ - + + @@ -1442,7 +1284,8 @@ - + + @@ -1451,8 +1294,8 @@ - - + + @@ -1461,7 +1304,8 @@ - + + @@ -1479,31 +1323,22 @@ - - - - - - - - - - - - - - - + - - + + + + + + + @@ -1525,8 +1360,13 @@ - - + + + + + + + @@ -1536,106 +1376,355 @@ - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3 From 29543b416e98b2842661609251db0048d5c74e03 Mon Sep 17 00:00:00 2001 From: max-001 Date: Wed, 30 Oct 2024 11:58:26 +0100 Subject: Modified class diagram --- figs.drawio | 327 +++++++++++++++++++++++++++++++----------------------------- 1 file changed, 170 insertions(+), 157 deletions(-) diff --git a/figs.drawio b/figs.drawio index 79be325..19cdb80 100644 --- a/figs.drawio +++ b/figs.drawio @@ -736,12 +736,12 @@ - + - + @@ -756,11 +756,11 @@ - - + + - - + + @@ -796,7 +796,7 @@ - + @@ -806,7 +806,7 @@ - + @@ -826,7 +826,7 @@ - + @@ -849,7 +849,7 @@ - + @@ -866,7 +866,7 @@ - + @@ -880,7 +880,7 @@ - + @@ -897,16 +897,16 @@ - + - + - + - + @@ -932,7 +932,7 @@ - + @@ -946,7 +946,7 @@ - + @@ -963,7 +963,7 @@ - + @@ -983,7 +983,7 @@ - + @@ -1000,7 +1000,7 @@ - + @@ -1056,7 +1056,7 @@ - + @@ -1073,7 +1073,7 @@ - + @@ -1105,7 +1105,7 @@ - + @@ -1123,53 +1123,54 @@ - - + + - + - + - - + + - + - + - - + + - + + - + - - + + - - + + @@ -1180,53 +1181,53 @@ - - + + - - + + - + - - + + - + - + - - + + - + - + - - + + - + @@ -1242,75 +1243,75 @@ - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + @@ -1325,63 +1326,75 @@ - - + + - + - - + + - - + + - - + + - + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - + - - + + - + - + @@ -1416,7 +1429,7 @@ - + @@ -1446,17 +1459,17 @@ - - + + - + - - + + @@ -1466,10 +1479,10 @@ - - + + - + @@ -1479,7 +1492,7 @@ - + @@ -1500,29 +1513,29 @@ - - + + - + - - + + - + - + - + @@ -1539,7 +1552,7 @@ - + @@ -1556,7 +1569,7 @@ - + @@ -1583,39 +1596,39 @@ - - + + - - + + - - + + - - + + - - + + - + - - + + - + @@ -1626,20 +1639,20 @@ - - + + - + - + - + @@ -1665,7 +1678,7 @@ - + @@ -1686,19 +1699,19 @@ - - + + - + - - + + - + @@ -1709,11 +1722,11 @@ - - + + - - + + -- cgit v1.2.3 From 020bc3f18bdf75cbbee2dfe0f36958c2970910d5 Mon Sep 17 00:00:00 2001 From: Max-001 <80035972+Max-001@users.noreply.github.com> Date: Wed, 30 Oct 2024 11:59:41 +0100 Subject: Added tasks --- time.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/time.txt b/time.txt index d1b525f..6862e38 100644 --- a/time.txt +++ b/time.txt @@ -144,6 +144,9 @@ max: 2024-10-24 2h10m fourteenth project meeting max: 2024-10-25 3h started researching Scenes and Replay max: 2024-10-29 2h worked on UIObjects and Camera max: 2024-10-29 3h15m worked on Metadata Component, Camera and Scenes +max: 2024-10-29 30m installing LaTeX on Linux +max: 2024-10-29 30m discussing paricles/physics/colliders with Jaro +max: 2024-10-30 4h refacting class diagram wouter: 2024-09-02 1h project meeting :: project kickoff wouter: 2024-09-02 45m project meeting -- cgit v1.2.3 From 186d6dd8c66052977d1c5e8d9e73cc43ceed313b Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Wed, 30 Oct 2024 12:13:18 +0100 Subject: cleanup research.tex --- research.tex | 119 ++++++++++++++++++++++++++++++----------------------------- 1 file changed, 60 insertions(+), 59 deletions(-) diff --git a/research.tex b/research.tex index 7502329..6853d5f 100644 --- a/research.tex +++ b/research.tex @@ -664,71 +664,72 @@ 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} + \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} -1. Input Processing -2. Run Scripts (custom logic, AI, player input, etc.) -3. Apply Forces (gravity, directional forces, user-applied forces) -4. Calculate Movement (update positions based on velocity) -5. Collision Detection and Resolution -6. Post-Collision Adjustments (e.g., friction, constraints) + \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} -- cgit v1.2.3 From d508cb6687b7178d7e78fe4776544ae653728196 Mon Sep 17 00:00:00 2001 From: max-001 Date: Wed, 30 Oct 2024 13:25:02 +0100 Subject: Fix --- figs.drawio | 136 +++++++++++++++++++++++++++--------------------------------- 1 file changed, 61 insertions(+), 75 deletions(-) diff --git a/figs.drawio b/figs.drawio index 19cdb80..c18d13d 100644 --- a/figs.drawio +++ b/figs.drawio @@ -736,7 +736,7 @@ - + @@ -779,20 +779,6 @@ - - - - - - - - - - - - - - @@ -887,7 +873,7 @@ - + @@ -1101,7 +1087,7 @@ - + @@ -1358,19 +1344,19 @@ - + - + - + - + @@ -1491,27 +1477,27 @@ - + - + - + - + - + - + - + @@ -1520,7 +1506,7 @@ - + @@ -1529,72 +1515,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1604,7 +1590,7 @@ - + @@ -1614,7 +1600,7 @@ - + @@ -1623,7 +1609,7 @@ - + @@ -1632,12 +1618,12 @@ - + - + @@ -1646,58 +1632,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1706,7 +1692,7 @@ - + @@ -1715,12 +1701,12 @@ - + - + @@ -1730,12 +1716,12 @@ - + - + -- cgit v1.2.3 From 4a3d3ac37e506a8c29653d57d6514c625491583c Mon Sep 17 00:00:00 2001 From: max-001 Date: Wed, 30 Oct 2024 14:36:58 +0100 Subject: Added SceneManager to the diagram --- figs.drawio | 184 +++++++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 151 insertions(+), 33 deletions(-) diff --git a/figs.drawio b/figs.drawio index c18d13d..68ad6c9 100644 --- a/figs.drawio +++ b/figs.drawio @@ -736,23 +736,29 @@ - + - - + + - - + + - + - - + + + + + + + + @@ -766,12 +772,12 @@ - + - + @@ -852,7 +858,7 @@ - + @@ -866,7 +872,7 @@ - + @@ -883,13 +889,13 @@ - + - + - + @@ -928,7 +934,7 @@ - + @@ -969,7 +975,7 @@ - + @@ -982,9 +988,12 @@ - + + + + @@ -1246,13 +1255,13 @@ - + - - + + @@ -1297,7 +1306,7 @@ - + @@ -1534,7 +1543,7 @@ - + @@ -1664,24 +1673,24 @@ - + - - + + - + - - + + - - + + - - + + @@ -1726,6 +1735,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3 From 80519fdfcf2ddb89e647704f7778c3c91a453eb4 Mon Sep 17 00:00:00 2001 From: max-001 Date: Wed, 30 Oct 2024 16:04:09 +0100 Subject: Modified class diagram --- figs.drawio | 2841 +++++++++++++++++++++++++++++++---------------------------- 1 file changed, 1493 insertions(+), 1348 deletions(-) diff --git a/figs.drawio b/figs.drawio index 68ad6c9..d4d5d3c 100644 --- a/figs.drawio +++ b/figs.drawio @@ -1,2083 +1,2228 @@ - - - + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - + + - - - - + + - - + + - - + + - - + + - + - - + + - + + - + - + - + - + - + - - + + + + + + + + + + + + + + - + - + - + - + - + - - - - - + + + - - - - + + - - - - + + - - - - + + - - - - - - + + - - + + + + + + + + - + - - + + - - + + - + - - + + - + - + + + + + + + + + + + + + + + - + - + - - + + + + + + + + + + + - + - + - + - + - - + + - - + + - + - - - - - + + + - - - - - - + + - - - - - - + + - - - - - - - - - + + - - - + + + - - - - + + - - - - + + - - + + + + + + + + - + - + - + - + - + - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - + - - - - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - - - - - - - - - - - - + + - - + + - + - + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - - + + - - + + - - + + - - - + + + + + + + - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + - + - + - + - - + + - - + + - + - + - + - - + + - - + + - + - + - + - - + + - - + + - + - + - + - - + + - - + - + - + - + - - + + - - + - + - + - + - - + + - + - + - + - + - - + + - - + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - + + - - + + - + - - + + - + + - - + + - + - + - + - - - + + + + + + + - - - - - - - - + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + - + + + + - - + + - - - + - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + - - - - - - - - + + + + - + - + - + + + - + - + - + - - + + - + - + - + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - + - - - - - - - - + + - + - - + + - - + + - + - - + + - + - - + + - - + + - - - - + + - - + + - - + + - - + + - - + + + + + + + + + - - + + + + + + + + + - - + + + + + + + + - - + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - - + + - - + + - + - - + + - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - - + + + + + + + - - + + + + + + + + - - + + + + - - + + + + + + + + + - - + + + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + + + + + + + + + - - + + + + - - + + + + - - + + - - + + - - + + - - + + + + + + + + + - - + + + + + + + - - + + - - + + + + + + + + + - - + + - - + + - - + + + + + + + + + - - + + + + + + + + + - - + + - - + + + + + + + + + - - + + - - + + + + + + + + + - - + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - - - - + + - - + + - - + + - - - - + + + + - + + - - - + + + - - - - + + + + - + + - - - - - - - - - - - - - + + + - - - - + + - - - - + + + + - - + + - - - - - - - - - + + + + - - + - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - + + - - - - + + - - - - - - - - + + - - - - + + - - - - + + - + - - - - + + - - - - + + - - - - - - - - + + - - - - - - - - - + + - - - - - - - - + + + - - - - - - - - - + + - - - - - - - - - + + - - - - - - - - - + + - - - - - - - - - + + - - - - + + - - + + - - + + - - + + - - - - - - - - + + - + - - + + - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - + - - + - - + + - - - - + + + + + + + + + + + - + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + + + + + + + - - + + + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + - - + + - - + + - + + + + - - - - - + + + - + - - + + + - - - + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - + + + + + + + + + + + + - + - + - + - + - + - + - - - - - + + + - - - - - - - + + + - - - + + + - - + + + + + + + + + + + + + + - + - + - + - + - - + + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - - - - - - + + + - + - - - - - - + + + - + - - - - - + + + - + - - + + - + + - - - + + + - - - - - - - + + + - - - + + + - - - + + + - + - + - + - - - - - + + - - + + - - + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - + + - - - - - - - + + + - - - - + + - - - - - - - - - + + - - - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - - - - - - - - + + - - - - + + - - + + + + + + + + - - + + - - + + - - + + - - - - - - - - - + + - - - - - - - + + - - + + - - - - - - - - + + + + + + - - + + - - + + - - - - - - - - - + + - - - - - - - - + + + - - - - - - - - - - + + - - + + - - + + - - + + + + - - + + - - - - - + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - - - - - + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - - - - - + + + + - - + + + + + + + + + - - + + + + - - + + + + - + + - - + + + + - - + + + + + + + + + - - + + + + - - + + + + + + + + + - - + + + + - - + + + + + + + + + - - + + + + - - + + + + + + + + + - - + + + + - - + + + + + + + + - - + + + + - - + + + + - - + + + + - - + + - - - + + + + + - - + + + + + + - - + + + + + + - - + + + + + + - - + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + - + - + - + - - - - - + + + - - - - - - + + - + + + + + + + - - - + + + + + + + + - + - - + + + + + + + -- cgit v1.2.3 From 7a1ba353e49017eba4da6b65be6e9f88740edb9d Mon Sep 17 00:00:00 2001 From: Max-001 <80035972+Max-001@users.noreply.github.com> Date: Wed, 30 Oct 2024 16:27:59 +0100 Subject: Added tasks --- time.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/time.txt b/time.txt index 6862e38..a8c2ae3 100644 --- a/time.txt +++ b/time.txt @@ -147,6 +147,8 @@ max: 2024-10-29 3h15m worked on Metadata Component, Camera and Scenes max: 2024-10-29 30m installing LaTeX on Linux max: 2024-10-29 30m discussing paricles/physics/colliders with Jaro max: 2024-10-30 4h refacting class diagram +max: 2024-10-30 1h50m added SceneManager design to class diagram +max: 2024-10-30 2h added ReplaySystem design to class diagram wouter: 2024-09-02 1h project meeting :: project kickoff wouter: 2024-09-02 45m project meeting -- cgit v1.2.3 From 020c56ce35551fea91101b9e0888ac66f62c0353 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Wed, 30 Oct 2024 16:55:54 +0100 Subject: update time.txt --- time.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/time.txt b/time.txt index 630555d..5237362 100644 --- a/time.txt +++ b/time.txt @@ -89,6 +89,7 @@ loek: 2024-10-26 3h20m implementation :: save manager loek: 2024-10-27 4h implementation :: save manager loek: 2024-10-29 10m tooling :: documentation (fix plantuml theme errors) loek: 2024-10-30 30m project meeting (min/max component count constraints) +loek: 2024-10-24 10m review :: PR review (#40, #41 and #42) max: 2024-09-02 1h project kickoff max: 2024-09-02 45m first project meeting -- cgit v1.2.3 From 6f15c07552793c247b925a09792b04fa77f55237 Mon Sep 17 00:00:00 2001 From: heavydemon21 Date: Wed, 30 Oct 2024 19:33:10 +0100 Subject: design --- .$figs.drawio.bkp | 2650 +++++++++++++++++++++++++++++++++++++++++++++++++++++ figs.drawio | 515 +++++++++-- 2 files changed, 3110 insertions(+), 55 deletions(-) create mode 100644 .$figs.drawio.bkp diff --git a/.$figs.drawio.bkp b/.$figs.drawio.bkp new file mode 100644 index 0000000..32b089c --- /dev/null +++ b/.$figs.drawio.bkp @@ -0,0 +1,2650 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/figs.drawio b/figs.drawio index d4d5d3c..e385c5e 100644 --- a/figs.drawio +++ b/figs.drawio @@ -1,6 +1,6 @@ - + - + @@ -18,10 +18,10 @@ - + - + @@ -69,10 +69,10 @@ - + - + @@ -198,7 +198,7 @@ - + @@ -255,7 +255,7 @@ - + @@ -336,34 +336,28 @@ - + - + - + - + - + - - - - - - - + - + - + @@ -519,7 +513,7 @@ - + @@ -751,24 +745,30 @@ - + - + - + - + + + + + + + - + - + @@ -807,7 +807,7 @@ - + @@ -999,30 +999,30 @@ - + - + - + - + - + - + - + - + @@ -1032,26 +1032,26 @@ - + - + - + - + - + - + @@ -1061,7 +1061,7 @@ - + @@ -1069,10 +1069,10 @@ - + - + @@ -1082,13 +1082,13 @@ - + - + - + @@ -1098,7 +1098,7 @@ - + @@ -1108,10 +1108,10 @@ - + - + @@ -1121,10 +1121,10 @@ - + - + @@ -2228,4 +2228,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3 From 3c51c9e866a53a734567fb781b62cbc3da59d199 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Wed, 30 Oct 2024 19:45:32 +0100 Subject: remove trash and update gitignore --- .$figs.drawio.bkp | 2650 ----------------------------------------------------- .gitignore | 1 + 2 files changed, 1 insertion(+), 2650 deletions(-) delete mode 100644 .$figs.drawio.bkp diff --git a/.$figs.drawio.bkp b/.$figs.drawio.bkp deleted file mode 100644 index 32b089c..0000000 --- a/.$figs.drawio.bkp +++ /dev/null @@ -1,2650 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.gitignore b/.gitignore index 74caed0..7b7818a 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,7 @@ *.nav *.snm *-SAVE-ERROR +*.bkp # output files *.pdf -- cgit v1.2.3 From 1d13f01699fb2337b71ef265bfb459b92b277f75 Mon Sep 17 00:00:00 2001 From: jaroWMR Date: Thu, 31 Oct 2024 08:57:21 +0100 Subject: updated design --- figs.drawio | 276 ++++++++++++++++++++++++++++++------------------------------ 1 file changed, 138 insertions(+), 138 deletions(-) diff --git a/figs.drawio b/figs.drawio index ef84f8d..a45199b 100644 --- a/figs.drawio +++ b/figs.drawio @@ -1,6 +1,6 @@ - + @@ -18,10 +18,10 @@ - + - + @@ -143,7 +143,7 @@ - + @@ -198,7 +198,7 @@ - + @@ -209,7 +209,7 @@ - + @@ -229,7 +229,7 @@ - + @@ -255,7 +255,7 @@ - + @@ -272,40 +272,40 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -360,7 +360,7 @@ - + @@ -519,7 +519,7 @@ - + @@ -617,19 +617,19 @@ - + - + - + - + @@ -652,83 +652,83 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -737,7 +737,7 @@ - + @@ -747,12 +747,12 @@ - + - + @@ -761,32 +761,32 @@ - + - + - + - + - + - + - + - + @@ -795,7 +795,7 @@ - + @@ -804,72 +804,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -879,7 +879,7 @@ - + @@ -889,7 +889,7 @@ - + @@ -898,7 +898,7 @@ - + @@ -907,12 +907,12 @@ - + - + @@ -921,58 +921,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -981,7 +981,7 @@ - + @@ -990,12 +990,12 @@ - + - + @@ -1005,40 +1005,40 @@ - + - + - + - + - + - + - + - + - + - + @@ -1048,26 +1048,26 @@ - + - + - + - + - + - + @@ -1077,7 +1077,7 @@ - + @@ -1085,10 +1085,10 @@ - + - + @@ -1098,13 +1098,13 @@ - + - + - + @@ -1114,7 +1114,7 @@ - + @@ -1124,10 +1124,10 @@ - + - + @@ -1137,10 +1137,10 @@ - + - + @@ -1150,20 +1150,20 @@ - + - + - + - + -- cgit v1.2.3 From 969b5d9b25be2b8840b4b6c33e9e4a13c2d7f898 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Thu, 31 Oct 2024 13:00:23 +0100 Subject: update time.txt --- time.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/time.txt b/time.txt index 1b463fa..10bef7e 100644 --- a/time.txt +++ b/time.txt @@ -90,6 +90,7 @@ loek: 2024-10-27 4h implementation :: save manager loek: 2024-10-29 10m tooling :: documentation (fix plantuml theme errors) loek: 2024-10-30 30m project meeting (min/max component count constraints) loek: 2024-10-24 10m review :: PR review (#40, #41 and #42) +loek: 2024-10-31 3h45m project meeting max: 2024-09-02 1h project kickoff max: 2024-09-02 45m first project meeting -- cgit v1.2.3 From 3b1a71db26fb9cbbfaa538781dddf8185cc23560 Mon Sep 17 00:00:00 2001 From: Max-001 <80035972+Max-001@users.noreply.github.com> Date: Thu, 31 Oct 2024 13:59:47 +0100 Subject: Added tasks --- time.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/time.txt b/time.txt index a8c2ae3..37927cf 100644 --- a/time.txt +++ b/time.txt @@ -149,6 +149,8 @@ max: 2024-10-29 30m discussing paricles/physics/colliders with Jaro max: 2024-10-30 4h refacting class diagram max: 2024-10-30 1h50m added SceneManager design to class diagram max: 2024-10-30 2h added ReplaySystem design to class diagram +max: 2024-10-31 30m discussing with Jaro +max: 2024-10-31 3h45m fiftheent project meeting wouter: 2024-09-02 1h project meeting :: project kickoff wouter: 2024-09-02 45m project meeting -- cgit v1.2.3 From c914e226cf9b21bcb307059ef44ab3ff4b3cb8de Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Thu, 31 Oct 2024 15:39:20 +0100 Subject: add manual plantuml upgrade instructions to readme --- readme.md | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index ece6512..6b578fa 100644 --- a/readme.md +++ b/readme.md @@ -11,7 +11,7 @@ snippets for specific formatting. Prerequisites: - A LaTeX distribution that includes XeLaTeX and latexmk -- PlantUML +- PlantUML ([1.2024.7 or later](#plantuml)!) - Python 3 - Fonts (see see [style.md](./style.md) for download links) @@ -33,7 +33,29 @@ additional configuration files for the following editors: - `sources.bib` contains all bibliography entries / references - `glossary.bib` contains all glossary entries +## PlantUML + +To check if your PlantUML version is recent enough, run: +``` +$ plantuml -version +``` + +To upgrade PlantUML manually, download the latest (GPL) \.jar from +[here][plantuml], and overwrite the \.jar file installed by your package +manager: + +``` +$ curl -sLo- https://github.com/plantuml/plantuml/releases/download/v1.2024.7/plantuml-1.2024.7.jar > plantuml.jar +# mv plantuml.jar /usr/share/plantuml/plantuml.jar +``` + +> NOTE: Ubuntu, Debian and Mint all place PlantUML's \.jar file under +> `/usr/share/plantuml/plantuml.jar`, while it's under +> `/usr/share/java/plantuml/plantuml.jar` on Arch. Check the contents of the +> file returned by `command -v plantuml` to confirm this. + [vscode]: https://code.visualstudio.com [latexworkshop]: https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop [vimtex]: https://github.com/lervag/vimtex +[plantuml]: https://plantuml.com/en/download -- cgit v1.2.3 From 4b12d1f1e6dbded47637ef8e2550741882d59329 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Thu, 31 Oct 2024 15:40:27 +0100 Subject: fix admonition format --- readme.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 6b578fa..858d319 100644 --- a/readme.md +++ b/readme.md @@ -49,7 +49,8 @@ $ curl -sLo- https://github.com/plantuml/plantuml/releases/download/v1.2024.7/pl # mv plantuml.jar /usr/share/plantuml/plantuml.jar ``` -> NOTE: Ubuntu, Debian and Mint all place PlantUML's \.jar file under +> [!NOTE] +> Ubuntu, Debian and Mint all place PlantUML's \.jar file under > `/usr/share/plantuml/plantuml.jar`, while it's under > `/usr/share/java/plantuml/plantuml.jar` on Arch. Check the contents of the > file returned by `command -v plantuml` to confirm this. -- cgit v1.2.3 From 8ea0137aeeb5cc32c0456a7e2b7c4cbd8b73f010 Mon Sep 17 00:00:00 2001 From: max-001 Date: Thu, 31 Oct 2024 16:40:59 +0100 Subject: Made chapter two of the design --- design.tex | 86 +++++++++++++++++++++++++++++++++++++++++++++++-- img/JetpackJoyride.jpg | Bin 0 -> 295103 bytes sources.bib | 12 +++++++ 3 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 img/JetpackJoyride.jpg diff --git a/design.tex b/design.tex index 08ea7cc..94ff3a7 100644 --- a/design.tex +++ b/design.tex @@ -23,10 +23,92 @@ Unity and are looking for a flexible, cost-effective solution with familiar workflows. \section{Overview} +As described above, the cr\^epe game engine's goal is to offer a Unity-like experience +tailored for developing 2D games similar to Jetpack Joyride. That is why Jetpack +Joyride and Unity provided the main inputs for this game engine design. Firstly, a +quick overview will be given of the Unity game engine, in particular the \gls{ecs}. +Secondly, this Overview will quickly talk you through some of the most important +parts of the game engine, and why these parts are needed to create the Jetpack +Joyride game. + +\subsection{ECS} +The Unity game engine is structured using the Entity Component System (\gls{ecs}) +(as shown in \cref{fig:ECS Block Diagram}). The \gls{ecs} is made out of three +main subsystems, namely entities, components and systems. Entities are just IDs. +An entity is also called a GameObject in Unity and it is made out of one (or +more) components. Components are the classes that hold the data. The components +determine what kind of entity it is (e.g. an enemy, audio, and so on). Systems take +care of the behavior of the entities. Systems mainly read and write the enity's +components data. The \gls{ecs} clearly distinguishes the data (components) from the +functionality (systems). -\subsection{Core} +\begin{figure} + \centering + \includegraphics[width=0.5\textwidth]{img/ECSBlockDiagram.png} + \caption{ECS design pattern} + Source: \autocite{img:ECSBlockDiagram} + \label{fig:ECS Block Diagram} +\end{figure} + +The \gls{ecs} will also be used at the cr\^epe game engine. Everything (from the +protagonist and bullets to the walls and enemies) in the cr\^epe game engine will +be a GameObject (a.k.a. entity). The game programmer must program his game by +creating all kind of GameObjects and placing them in one (or multiple) scenes, just +like Unity. + +\subsection{Jetpack Joyride} +Firstly, some background information about Jetpack Joyride. Jetpack Joyride is a +side-scrolling endless runner action video game created by Halfbrick Studios. The +protagonist is called Barry Steakfries, who the player controls as he steals a +bullet-powered jet pack from a top-secret laboratory \autocite{wiki:JetpackJoyride}. +A screenshot from the game can be seen in \cref{fig:JetpackJoyride} (pleae be +aware that the goal of this project is not to create an exact replica of Jetpack +Joyride, it is only used as a source of inspiration). + +\begin{figure} + \centering + \includegraphics[width=0.5\textwidth]{img/JetpackJoyride.jpg} + \caption{Jetpack Joyride} + Source: \autocite{img:JetpackJoyride} + \label{fig:JetpackJoyride} +\end{figure} -\subsection{Patterns} +The protagonist wears a jetpack with which he can float in the air. The player must +avoide obstacles (such as lasers, missiles and zappers) by floating at the right +height. The player can control the protagonist's jetpack, thereby also controlling +the protagonist's height. The protagonist experiences gravity and other forces (like +the force from his jetpack pushing him upwards). These forces should be easily +programmable by the game programmer. That is why a physics system is needed in the +cr\^epe game engine. Only very limited/easy physics are needed for Jetpack Joyride, +that is why this is only supported by the cr\^epe game engine. + +The protagonist must avoid obstacles. That is why the cr\^epe game engine should +also support a collision system. Again, only very limited/easy collision is needed +for Jetpack Joyride, that is why only very limited/easy collision is supported +by the cr\^epe game engine. + +The game must, of course, also be visible to and playable by the user. A rendering +system will take care of rendering (displaying) the game and its GameObjects. An +input system will take care of all the inputs (mouse and keyboard). + +Jetpack Joyride also offers audio. A system will take care of the audio in the cr\^epe +game engine. + +Particles are very common in Jetpack Joyride, e.g. underneath the jetpack and behind +the rockets. Particles will be supported by the particle system. + +The start of a scene is described in a scene. However, the game programmer might also +want to write game logic code which is running during the game (e.g. to switch to a +new scene or to perform a custom action at a collision). For these purposes, Unity +uses scripts. These scripts will also be supported by the cr\^epe game engine. + +Finally, as an extra, replay functionality will be supported by the cr\^epe game +engine. A dedicated replay system will be used to support replay. + +It turns out that a physics, collision, rendering, input, audio, particle, script, +and replay system are needed to create the Jetpack Joyride game. These systems form +the main part of the \gls{ecs}. The design of these eight systems in combination with +\gls{ecs}, will be briefly discussed in the next parts of this design document. \section{Design} diff --git a/img/JetpackJoyride.jpg b/img/JetpackJoyride.jpg new file mode 100644 index 0000000..d1c0e9e Binary files /dev/null and b/img/JetpackJoyride.jpg differ diff --git a/sources.bib b/sources.bib index 7d7b6f7..dc05a95 100644 --- a/sources.bib +++ b/sources.bib @@ -194,3 +194,15 @@ date = {2024} } +@online{wiki:JetpackJoyride, + title = {Jetpack Joyride wikipedia}, + url = {https://en.wikipedia.org/wiki/Jetpack_Joyride}, + urldate = {2024-10-22}, +} + +@misc{img:JetpackJoyride, + title = {Jetpack Joyride}, + author = {Halbrick}, + url = {https://www.halfbrick.com/games/jetpack-joyride-2}, + date = {2024} +} -- cgit v1.2.3 From 04e2060b7f17aae1467ef91b0d292d1398231119 Mon Sep 17 00:00:00 2001 From: Max-001 <80035972+Max-001@users.noreply.github.com> Date: Thu, 31 Oct 2024 16:49:19 +0100 Subject: Added task --- time.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/time.txt b/time.txt index 37927cf..f2bf0f6 100644 --- a/time.txt +++ b/time.txt @@ -151,6 +151,7 @@ max: 2024-10-30 1h50m added SceneManager design to class diagram max: 2024-10-30 2h added ReplaySystem design to class diagram max: 2024-10-31 30m discussing with Jaro max: 2024-10-31 3h45m fiftheent project meeting +max: 2024-10-31 3h30m creating chapter two of design wouter: 2024-09-02 1h project meeting :: project kickoff wouter: 2024-09-02 45m project meeting -- cgit v1.2.3 From 36f25d64abc37f6fa0fbd1c10f11dfe3ac10b5ea Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Thu, 31 Oct 2024 17:01:46 +0100 Subject: WIP more design --- design.tex | 41 ++++++++++++++++++++++++++++++++++++++++- img/activity-scripts.puml | 21 +++++++++++++++++++++ img/theme.ipuml | 14 ++++---------- 3 files changed, 65 insertions(+), 11 deletions(-) create mode 100644 img/activity-scripts.puml diff --git a/design.tex b/design.tex index 761658c..340a662 100644 --- a/design.tex +++ b/design.tex @@ -69,6 +69,7 @@ architecture:\noparbreak \end{itemize} \subsubsection{Architecture} +\label{sec:scripts:architecture} The restrictions detailed at the start of this section are mitigated as follows:\noparbreak @@ -115,7 +116,8 @@ contains the following classes:\noparbreak This class also uses a friend relation to \codeinline{ScriptSystem} to restrict access to its private reference member \codeinline{script}. \item[ScriptSystem] This is the system class that runs the methods implemented in - the derivative instances of \codeinline{Script}. + the derivative instances of \codeinline{Script}. Described further in + \cref{sec:scripts:sytem}. \end{description} \begin{figure} @@ -125,6 +127,32 @@ contains the following classes:\noparbreak \label{fig:class-scripts} \end{figure} +\subsubsection{System} +\label{sec:scripts:sytem} + +Because most of the complexity in the scripting interface comes from the containers +described in \cref{sec:scripts:architecture}, the script system class itself is +relatively simple. The script system provides a method +\codeinline{ScriptSystem::update} that calls all active script's update functions. + +Because of the limitation that types cannot be passed as parameters in C++, the +user-defined script class (derived from \codeinline{Script}) can not directly be +instantiated when adding the component to the component manager. To work around this +limitation, the method \codeinline{BehaviorScript::set_script} was created. This +results in the possibility that an instance of \codeinline{BehaviorScript} does not +reference an instance of \codeinline{Script}. In addition to the non-active script +components, the script system skips over these `invalid' instances. This is +illustrated in \cref{fig:activity-scripts}. + +\begin{figure} + \centering + \includepumldiag{img/activity-scripts.puml} + \caption{Script system update method} + \label{fig:activity-scripts} +\end{figure} + +A \gls{poc} for the script system + \subsection{Audio} Since writing a custom real-time audio mixing engine is outside the scope of this @@ -227,5 +255,16 @@ requirements were also set:\noparbreak % \subsection{Physics} +\appendix + +\section{\Glsfmtlongpl{poc}} + +\subsection{Script system} +\label{poc:scripts} + +\subsection{Global configuration interface} + +\subsection{Logging utilities} + \end{document} diff --git a/img/activity-scripts.puml b/img/activity-scripts.puml new file mode 100644 index 0000000..b833bdf --- /dev/null +++ b/img/activity-scripts.puml @@ -0,0 +1,21 @@ +@startuml +!include theme.ipuml + +start + +label continue +:Get list of ""BehaviorScript"" components from ""ComponentManager""; + +while (for each ""BehaviorScript"" in list) + if (""BehaviorScript"" is active) then (yes) + if (""BehaviorScript"" has an instance of ""Script"") then (yes) + :Call update function of ""BehaviorScript""'s ""Script"" instance; + else (no) + endif + else (no) + endif +endwhile + +stop + +@enduml diff --git a/img/theme.ipuml b/img/theme.ipuml index 81391e2..c44db05 100644 --- a/img/theme.ipuml +++ b/img/theme.ipuml @@ -1,18 +1,10 @@ ' vim:ft=plantuml - - - +!theme plain skinparam ClassAttributeIconSize 0 skinparam ClassFontStyle bold skinparam DefaultFontName Inter skinparam DefaultFontSize 10 +skinparam DefaultMonospacedFontName "JetBrains Mono" skinparam MaxMessageSize 200 skinparam Nodesep 25 ' skinparam Padding 0 @@ -20,6 +12,8 @@ skinparam Ranksep 50 skinparam RoundCorner 0 skinparam PackageStyle rectangle skinparam PackageFontStyle italic +skinparam ActivityStartColor black +skinparam ActivityEndColor black hide class circle -- cgit v1.2.3 From bc4353cba5323a1e60c41e357838edc0be67958b Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Thu, 31 Oct 2024 17:15:49 +0100 Subject: fix code style --- design.tex | 73 ++++++++++++++++++++++++++++++++----------------------------- sources.bib | 16 +++++++++----- 2 files changed, 48 insertions(+), 41 deletions(-) diff --git a/design.tex b/design.tex index 94ff3a7..88d7cc8 100644 --- a/design.tex +++ b/design.tex @@ -23,58 +23,61 @@ Unity and are looking for a flexible, cost-effective solution with familiar workflows. \section{Overview} -As described above, the cr\^epe game engine's goal is to offer a Unity-like experience -tailored for developing 2D games similar to Jetpack Joyride. That is why Jetpack -Joyride and Unity provided the main inputs for this game engine design. Firstly, a -quick overview will be given of the Unity game engine, in particular the \gls{ecs}. -Secondly, this Overview will quickly talk you through some of the most important -parts of the game engine, and why these parts are needed to create the Jetpack -Joyride game. + +As described above, the cr\^epe game engine's goal is to offer a Unity-like +experience tailored for developing 2D games similar to Jetpack Joyride. That is why +Jetpack Joyride and Unity provided the main inputs for this game engine design. +Firstly, a quick overview will be given of the Unity game engine, in particular the +\gls{ecs}. Secondly, this Overview will quickly talk you through some of the most +important parts of the game engine, and why these parts are needed to create the +Jetpack Joyride game. \subsection{ECS} -The Unity game engine is structured using the Entity Component System (\gls{ecs}) -(as shown in \cref{fig:ECS Block Diagram}). The \gls{ecs} is made out of three -main subsystems, namely entities, components and systems. Entities are just IDs. -An entity is also called a GameObject in Unity and it is made out of one (or -more) components. Components are the classes that hold the data. The components -determine what kind of entity it is (e.g. an enemy, audio, and so on). Systems take -care of the behavior of the entities. Systems mainly read and write the enity's -components data. The \gls{ecs} clearly distinguishes the data (components) from the -functionality (systems). + +The Unity game engine is structured using the Entity Component System (\gls{ecs}) (as +shown in \cref{fig:ecs-block-diagram}). The \gls{ecs} is made out of three main +subsystems, namely entities, components and systems. Entities are just IDs. An entity +is also called a GameObject in Unity and it is made out of one (or more) components. +Components are the classes that hold the data. The components determine what kind of +entity it is (e.g. an enemy, audio, and so on). Systems take care of the behavior of +the entities. Systems mainly read and write the enity's components data. The +\gls{ecs} clearly distinguishes the data (components) from the functionality +(systems). \begin{figure} \centering \includegraphics[width=0.5\textwidth]{img/ECSBlockDiagram.png} \caption{ECS design pattern} - Source: \autocite{img:ECSBlockDiagram} - \label{fig:ECS Block Diagram} + Source: \autocite{img:ecs-block-diag} + \label{fig:ecs-block-diagram} \end{figure} The \gls{ecs} will also be used at the cr\^epe game engine. Everything (from the -protagonist and bullets to the walls and enemies) in the cr\^epe game engine will -be a GameObject (a.k.a. entity). The game programmer must program his game by -creating all kind of GameObjects and placing them in one (or multiple) scenes, just -like Unity. +protagonist and bullets to the walls and enemies) in the cr\^epe game engine will be +a GameObject (i.e.~entity). The game programmer must program his game by creating all +kind of GameObjects and placing them in one (or multiple) scenes, just like Unity. \subsection{Jetpack Joyride} + Firstly, some background information about Jetpack Joyride. Jetpack Joyride is a side-scrolling endless runner action video game created by Halfbrick Studios. The protagonist is called Barry Steakfries, who the player controls as he steals a -bullet-powered jet pack from a top-secret laboratory \autocite{wiki:JetpackJoyride}. -A screenshot from the game can be seen in \cref{fig:JetpackJoyride} (pleae be -aware that the goal of this project is not to create an exact replica of Jetpack -Joyride, it is only used as a source of inspiration). +bullet-powered jet pack from a top-secret laboratory +\autocite{wikipedia:jetpack-joyride}. A screenshot from the game can be seen in +\cref{fig:jetpack-joyride} (pleae be aware that the goal of this project is not to +create an exact replica of Jetpack Joyride, it is only used as a source of +inspiration). \begin{figure} \centering \includegraphics[width=0.5\textwidth]{img/JetpackJoyride.jpg} \caption{Jetpack Joyride} - Source: \autocite{img:JetpackJoyride} - \label{fig:JetpackJoyride} + Source: \autocite{img:jetpack-joyride} + \label{fig:jetpack-joyride} \end{figure} The protagonist wears a jetpack with which he can float in the air. The player must -avoide obstacles (such as lasers, missiles and zappers) by floating at the right +avoid obstacles (such as lasers, missiles and zappers) by floating at the right height. The player can control the protagonist's jetpack, thereby also controlling the protagonist's height. The protagonist experiences gravity and other forces (like the force from his jetpack pushing him upwards). These forces should be easily @@ -82,17 +85,17 @@ programmable by the game programmer. That is why a physics system is needed in t cr\^epe game engine. Only very limited/easy physics are needed for Jetpack Joyride, that is why this is only supported by the cr\^epe game engine. -The protagonist must avoid obstacles. That is why the cr\^epe game engine should -also support a collision system. Again, only very limited/easy collision is needed -for Jetpack Joyride, that is why only very limited/easy collision is supported -by the cr\^epe game engine. +The protagonist must avoid obstacles. That is why the cr\^epe game engine should also +support a collision system. Again, only very limited/easy collision is needed for +Jetpack Joyride, that is why only very limited/easy collision is supported by the +cr\^epe game engine. The game must, of course, also be visible to and playable by the user. A rendering system will take care of rendering (displaying) the game and its GameObjects. An input system will take care of all the inputs (mouse and keyboard). -Jetpack Joyride also offers audio. A system will take care of the audio in the cr\^epe -game engine. +Jetpack Joyride also offers audio. A system will take care of the audio in the +cr\^epe game engine. Particles are very common in Jetpack Joyride, e.g. underneath the jetpack and behind the rockets. Particles will be supported by the particle system. diff --git a/sources.bib b/sources.bib index dc05a95..0ff00a1 100644 --- a/sources.bib +++ b/sources.bib @@ -164,7 +164,7 @@ date = {2016} } -@misc{img:ECSBlockDiagram, +@misc{img:ecs-block-diag, title = {ECS Diagram}, author = {{Unity}}, url = {https://docs.unity3d.com/Packages/com.unity.entities@0.1/manual/images/ECSBlockDiagram.png}, @@ -194,15 +194,19 @@ date = {2024} } -@online{wiki:JetpackJoyride, - title = {Jetpack Joyride wikipedia}, - url = {https://en.wikipedia.org/wiki/Jetpack_Joyride}, +@online{wikipedia:jetpack-joyride, + author = {{Wikipedia contributors}}, + title = {Jetpack Joyride --- {Wikipedia}{,} The Free Encyclopedia}, + year = {2024}, + url = {https://en.wikipedia.org/w/index.php?title=Jetpack_Joyride&oldid=1252734266}, urldate = {2024-10-22}, } -@misc{img:JetpackJoyride, +@misc{img:jetpack-joyride, title = {Jetpack Joyride}, author = {Halbrick}, url = {https://www.halfbrick.com/games/jetpack-joyride-2}, - date = {2024} + date = {2024}, + urldate = {2024-10-22}, } + -- cgit v1.2.3 From 84a307ad81d5b2ba0e92c70a1da2cd9075e7c191 Mon Sep 17 00:00:00 2001 From: jaroWMR Date: Thu, 31 Oct 2024 18:57:36 +0100 Subject: added flowcharts for systems --- figs.drawio | 518 ++++++++++++++++++++++++++++++------------------------ notulen/wk9-1.txt | 54 ++++++ 2 files changed, 339 insertions(+), 233 deletions(-) create mode 100644 notulen/wk9-1.txt diff --git a/figs.drawio b/figs.drawio index a45199b..ec66484 100644 --- a/figs.drawio +++ b/figs.drawio @@ -1,6 +1,6 @@ - + - + @@ -259,7 +259,7 @@ - + @@ -290,29 +290,26 @@ - - - - + - + - + - + - + - + - + @@ -481,25 +478,6 @@ - - - - - - - - - - - - - - - - - - - @@ -653,7 +631,7 @@ - + @@ -681,52 +659,46 @@ - + - + - - - - - - - + - + - + - + - + - + - + - + - + - - + + - + @@ -927,7 +899,7 @@ - + @@ -937,20 +909,17 @@ - - - - + - + - + - + @@ -1151,7 +1120,7 @@ - + @@ -1170,6 +1139,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1293,291 +1295,341 @@ - + - - - - + - - + + - + - - + + + + + - + - - - + - - - - + - - + + - + - - - + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - + - - + + - - + + - - + + - - - + + + - - - - - + + - - + + + - + - - + + - + - + + + + - - + + - + - + - - + + - - + + - + - - - - - - - - - + + - - + + - - + + - + - - + + - + - - - - - + + + + + + - - + + + + - - + + + + + + - - + + + + - - + + - + - + + + + - - + - - - + + + + + + + + - - + + - - + + + + + + + + + + + - - + + - - + + + + + - + - - - - - - - - - + + + + + + - - + + + + - - + + - + - - - - - + + - + - - + + - - + + - - + + - - - + + + + + + + + + + + + - - - - - - - + + + - - + + - - + + + + - + - - + + - - + + - - + + - + - - - + - - - - - + + - + - + + + + - - + + - - + + - - + + + + + + + + + - - + + + + + + + + + diff --git a/notulen/wk9-1.txt b/notulen/wk9-1.txt new file mode 100644 index 0000000..f897d96 --- /dev/null +++ b/notulen/wk9-1.txt @@ -0,0 +1,54 @@ + Documents + Research Document + Continue adding research information + Project plan + - + Document standard + Add updates when needed + Requirement + physics sub-requirements -> Jaro write document + eventmanager sub-requirements -> Wouter write document + gameloop sub-requirements -> Wouter write document + ecs sub-requirements + particles sub-requirement -> Jaro write document + resourceManager sub-requirement -> Niels write document + rendering sub-requirement + script requirements added. + design document + API in design document + Game design + - + Git + Code standard -> LOEK update + Show updates + Code standard with examples not in main? -> niels + Environments + - + Research (POC) + [closed] research eventmanager -> Wouter POC is af + start research ui -> wouter POC uit + start research ai + start research playback -> Max + start research scenes -> Max + star research camera -> Niels POC + start research savedata -> loek + start research renderer -> niels (sprite & color & transform) POC simple (SDL_GPU voor efficiency verbetering) + [closed] start research physics Starting POC -> Jaro + More research about physics + [closed] start reasearch collision detection -> Jaro + [closed] start research particles Starting research -> Jaro (start lifetime. spawning area) + start poc animatie -> niels + Design + Adding design asset class -> niels + Adding design resource holder -> niels + How does a game designer make a scene? + Product + - + Test + - + Question Bob + mag de API gewoon een interface worden voor wat onderliggend een ECS is. + Overig + Timers voor systems (profiler van systems) + + -- cgit v1.2.3 From cf6c883c5b09d2cd2d3f7a117b5ce2b31c92a00f Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Thu, 31 Oct 2024 19:00:06 +0100 Subject: more POC showcase --- design.tex | 64 +++++++++++++++++++++++++++++++++++++-------- img/poc-output-scripts.png | Bin 0 -> 31761 bytes 2 files changed, 53 insertions(+), 11 deletions(-) create mode 100644 img/poc-output-scripts.png diff --git a/design.tex b/design.tex index 340a662..9088528 100644 --- a/design.tex +++ b/design.tex @@ -151,7 +151,7 @@ illustrated in \cref{fig:activity-scripts}. \label{fig:activity-scripts} \end{figure} -A \gls{poc} for the script system +A \gls{poc} for the script system is showcased in \cref{poc:scripts}. \subsection{Audio} @@ -168,15 +168,7 @@ searching for libraries (search terms: `dynamic/adaptive audio', `real-time audi `audio library', `game audio engine'), several libraries were found. These libraries were checked against the audio engine requirements \autocite{crepe:requirements} and then tested by writing the same benchmark-style \gls{poc} using the remaining -qualifying libraries:\noparbreak -\begin{enumerate} - \item Load a background track (Ogg Vorbis) - \item Load three short samples (WAV) - \item Start the background track - \item Play each sample sequentially while pausing and resuming the background track - \item Play all samples simultaniously - \item Stop all audio and exit -\end{enumerate} +qualifying libraries. These \glspl{poc} are detailed in \cref{poc:audio}. Of these libraries the following were determined to be unsuitable for use in this project:\noparbreak @@ -217,6 +209,8 @@ contains the following classes: \label{fig:class-audio-facade} \end{figure} +A \gls{poc} for the final Audio fa\c{c}ade is also showcased in \cref{poc:audio}. + \subsection{Save manager} The save manager \gls{api} is designed to give the game programmer an easy to use @@ -251,6 +245,8 @@ requirements were also set:\noparbreak % In order to realize \cref{req:savemgr:journalling,req:savemgr:var-key}, a third-party % key-value database library is used. +\subsection{Global configuration interface} + % \subsection{Input} % \subsection{Physics} @@ -259,12 +255,58 @@ requirements were also set:\noparbreak \section{\Glsfmtlongpl{poc}} +The full (documented) source code of these \glspl{poc} is available on GitHub +\autocite{crepe:code-repo}. + \subsection{Script system} \label{poc:scripts} -\subsection{Global configuration interface} +The script system \gls{poc} \autocite[script example]{crepe:code-repo} consists of +the following:\noparbreak +\begin{itemize} + \item A user-defined class (\codeinline{MyScript}) derived from + \codeinline{Script}, which only implements the \codeinline{update()} function. + \item A main function that--- + \begin{itemize} + \item Creates a game object with \codeinline{Transform} and + \codeinline{BehaviorScript} components. + \item A call to \codeinline{ScriptSystem::update}, which results in + \codeinline{MyScript::update} being called. + \end{itemize} +\end{itemize} + +Running the \gls{poc} results in the output shown in \cref{fig:poc-output-scripts}, +demonstrating that the system works as intended. + +\begin{figure} + \centering + \fitimg{\includegraphics{img/poc-output-scripts.png}} + \caption{Script system \glsfmtshort{poc} output} + \label{fig:poc-output-scripts} +\end{figure} \subsection{Logging utilities} +\label{poc:log} + +\subsection{Audio} +\label{poc:audio} + +A test that consists of the following steps was written for each audio library +mentioned in \cref{sec:audio:libs}:\noparbreak +\begin{enumerate} + \item Load a background track (Ogg Vorbis) + \item Load three short samples (WAV) + \item Start the background track + \item Play each sample sequentially while pausing and resuming the background track + \item Play all samples simultaniously + \item Stop all audio and exit +\end{enumerate} + +The repository \autocite{crepe:code-repo} contains two finished \glspl{poc} under the +\codeinline{mwe/audio/} subdirectory for miniaudio and SoLoud. The SoLoud \gls{poc} +was later converted to a full audio fa\c{c}ade, which is currently part of the +cr\^epe engine. The \gls{poc} using the audio fa\c{c}ade is available from the same +repository, under the \codeinline{src/example/audio_internal.cpp} file. \end{document} diff --git a/img/poc-output-scripts.png b/img/poc-output-scripts.png new file mode 100644 index 0000000..068f345 Binary files /dev/null and b/img/poc-output-scripts.png differ -- cgit v1.2.3 From 299a59f4f9644d4584a39a5f2bcd5a8490645273 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Thu, 31 Oct 2024 19:00:57 +0100 Subject: update time.txt --- time.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/time.txt b/time.txt index dda4bbf..d426660 100644 --- a/time.txt +++ b/time.txt @@ -91,6 +91,7 @@ loek: 2024-10-29 10m tooling :: documentation (fix plantuml theme errors) loek: 2024-10-30 30m project meeting (min/max component count constraints) loek: 2024-10-24 10m review :: PR review (#40, #41 and #42) loek: 2024-10-31 3h45m project meeting +loek: 2024-10-31 2h50m docs :: design :: POCs max: 2024-09-02 1h project kickoff max: 2024-09-02 45m first project meeting -- cgit v1.2.3 From 9bffb077a944c8baa6a93415d65908a511f9a85f Mon Sep 17 00:00:00 2001 From: jaroWMR Date: Thu, 31 Oct 2024 19:16:41 +0100 Subject: updated main diagram --- figs.drawio | 91 +++++++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 74 insertions(+), 17 deletions(-) diff --git a/figs.drawio b/figs.drawio index ec66484..b3f6eea 100644 --- a/figs.drawio +++ b/figs.drawio @@ -1,6 +1,6 @@ - + @@ -135,22 +135,22 @@ - - + + - - + + - - + + - + - + @@ -209,7 +209,7 @@ - + @@ -229,7 +229,7 @@ - + @@ -281,7 +281,7 @@ - + @@ -635,7 +635,7 @@ - + @@ -676,7 +676,7 @@ - + @@ -1119,8 +1119,8 @@ - - + + @@ -1172,6 +1172,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1342,7 +1399,7 @@ - + -- cgit v1.2.3 From ed46b157f211c46d22ecd75e4e682f0c4f0665be Mon Sep 17 00:00:00 2001 From: WBoerenkamps Date: Fri, 1 Nov 2024 12:24:27 +0100 Subject: time update --- time.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/time.txt b/time.txt index d426660..1b4a5b3 100644 --- a/time.txt +++ b/time.txt @@ -203,7 +203,11 @@ wouter: 2024-10-21 3h working on design document wouter: 2024-10-12 30m reviewing pull request logging wouter: 2024-10-24 1h20m project meeting wouter: 2024-10-25 2h added collision functionality to event manager - +wouter: 2024-10-28 2h added iKeyListener and iMouseListener to poc +wouter: 2024-10-29 20m discusing api change for UI objects +wouter: 2024-10-30 15m helping out with gameloop question +wouter: 2024-10-29 4h created diagrams for gameloop/events/inputs system +wouter: 2024-10-31 3h45m fiftheent project meeting niels: 2024-09-02 1h project meeting :: project kickoff -- cgit v1.2.3 From 24611c757318be124c01a6c335d116e7d1529554 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Fri, 1 Nov 2024 15:09:03 +0100 Subject: add design for global configuration manager + appendix log poc --- design.tex | 58 ++++++++++++++++++++++++++++++++++++++++++-------- glossary.bib | 4 ++++ img/class-config.puml | 14 ++++++++++++ img/poc-log.png | Bin 0 -> 12526 bytes 4 files changed, 67 insertions(+), 9 deletions(-) create mode 100644 img/class-config.puml create mode 100644 img/poc-log.png diff --git a/design.tex b/design.tex index 9088528..75e9ec6 100644 --- a/design.tex +++ b/design.tex @@ -151,13 +151,13 @@ illustrated in \cref{fig:activity-scripts}. \label{fig:activity-scripts} \end{figure} -A \gls{poc} for the script system is showcased in \cref{poc:scripts}. +A \gls{poc} for the script system is shown in \cref{poc:scripts}. \subsection{Audio} Since writing a custom real-time audio mixing engine is outside the scope of this project\mref and C++ does not provide a built-in cross-platform audio \gls{api}, the -audio system inside the cr\^epe engine is implemented as a fa\c{c}ade around an +audio system inside the cr\^epe engine is implemented as a \gls{facade} around an existing audio library. \subsubsection{Libraries} @@ -184,12 +184,12 @@ project:\noparbreak The only library that remained after these tests is SoLoud \autocite{lib:soloud}. It is Zlib/LibPng licensed and provides a high-level object-oriented C++ \gls{api}. -\Cref{sec:audio:architecture} describes the fa\c{c}ade written for this library. +\Cref{sec:audio:architecture} describes the \gls{facade} written for this library. \subsubsection{Architecture} \label{sec:audio:architecture} -\Cref{fig:class-audio-facade} shows a class diagram of the audio fa\c{c}ade. It +\Cref{fig:class-audio-facade} shows a class diagram of the audio \gls{facade}. It contains the following classes: \begin{description} \item[SoundContext] This is a wrapper around the \codeinline{SoLoud::soloud} @@ -205,11 +205,11 @@ contains the following classes: \begin{figure} \centering \includepumldiag{img/facade-audio.puml} - \caption{Audio fa\c{c}ade class diagram} + \caption{Audio \glsfmtshort{facade} class diagram} \label{fig:class-audio-facade} \end{figure} -A \gls{poc} for the final Audio fa\c{c}ade is also showcased in \cref{poc:audio}. +A \gls{poc} for the final Audio \gls{facade} is also showcased in \cref{poc:audio}. \subsection{Save manager} @@ -247,6 +247,26 @@ requirements were also set:\noparbreak \subsection{Global configuration interface} +Because the game programmer only has access to interfaces within the public \gls{api} +namespace (\codeinline{crepe::api}), they would not be able to configure aspects of +engine-internal components. To work around this access restriction, a global +interface was made that stores arbitrary data, which can be accessed both internally +and via the public \gls{api}. + +\subsubsection{Architecture} +\label{sec:config:architecture} + +The global configuration interface consists of a single singleton class that can be +accessed globally (see \cref{fig:class-config}). This class holds several anonymous +structs, which are used to organize options per system or engine component. + +\begin{figure} + \centering + \includepumldiag{img/class-config.puml} + \caption{Global configuration interface class diagram} + \label{fig:class-config} +\end{figure} + % \subsection{Input} % \subsection{Physics} @@ -280,7 +300,7 @@ demonstrating that the system works as intended. \begin{figure} \centering - \fitimg{\includegraphics{img/poc-output-scripts.png}} + \fitimg{\includegraphics[scale=0.7]{img/poc-output-scripts.png}} \caption{Script system \glsfmtshort{poc} output} \label{fig:poc-output-scripts} \end{figure} @@ -288,6 +308,26 @@ demonstrating that the system works as intended. \subsection{Logging utilities} \label{poc:log} +A small \gls{poc} was written to test the engine's logging functions \autocite[log +example]{crepe:code-repo}. The following calls are used in this example: + +\begin{blockcode} +dbg_trace(); // the dbg_* macros automatically show +dbg_logf("test printf parameters: %d", 3); // where the message is coming from +logf(LogLevel::INFO, "info message"); +logf(LogLevel::WARNING, "warning"); +logf(LogLevel::ERROR, "error"); +\end{blockcode} + +The output of this test is shown in \cref{fig:poc-log}. + +\begin{figure} + \centering + \includegraphics[scale=0.7]{img/poc-log.png} + \caption{Logging function outputs} + \label{fig:poc-log} +\end{figure} + \subsection{Audio} \label{poc:audio} @@ -304,8 +344,8 @@ mentioned in \cref{sec:audio:libs}:\noparbreak The repository \autocite{crepe:code-repo} contains two finished \glspl{poc} under the \codeinline{mwe/audio/} subdirectory for miniaudio and SoLoud. The SoLoud \gls{poc} -was later converted to a full audio fa\c{c}ade, which is currently part of the -cr\^epe engine. The \gls{poc} using the audio fa\c{c}ade is available from the same +was later converted to a full audio \gls{facade}, which is currently part of the +cr\^epe engine. The \gls{poc} using the audio \gls{facade} is available from the same repository, under the \codeinline{src/example/audio_internal.cpp} file. \end{document} diff --git a/glossary.bib b/glossary.bib index fda634f..0842ff8 100644 --- a/glossary.bib +++ b/glossary.bib @@ -51,4 +51,8 @@ long = {proof-of-concept}, } +@entry{facade, + name = {fa\c{c}ade}, + description = {Design pattern used to provide an abstraction from other software}, +} diff --git a/img/class-config.puml b/img/class-config.puml new file mode 100644 index 0000000..72e5e6c --- /dev/null +++ b/img/class-config.puml @@ -0,0 +1,14 @@ +@startuml +!include theme.ipuml + +class Config <> { + - Config() + + ~Config() + -- + + get_instance() : Config & <> + -- + + log : struct ... + ... +} + +@enduml diff --git a/img/poc-log.png b/img/poc-log.png new file mode 100644 index 0000000..12e2c61 Binary files /dev/null and b/img/poc-log.png differ -- cgit v1.2.3 From f316e5582c40cbfe18567c7fd34cbb1bfff3ddbb Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Fri, 1 Nov 2024 15:42:06 +0100 Subject: comment out WIP design --- design.tex | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/design.tex b/design.tex index 4a8208d..4c4794d 100644 --- a/design.tex +++ b/design.tex @@ -296,27 +296,27 @@ contains the following classes: A \gls{poc} for the final Audio \gls{facade} is also showcased in \cref{poc:audio}. -\subsection{Save manager} - -The save manager \gls{api} is designed to give the game programmer an easy to use -interface for retrieving and storing game-specific data (\cref{req:savemgr}). - -Because the engine validation app only stores statistics and highscores, the save -manager is not required to support loading different save files -(\cref{req:savemgr:multi-file}), nor storing complicated data types -(\cref{req:savemgr:types-custom}). The save manager only supports storing simple -types (\cref{req:savemgr:types-scalar,req:savemgr:types-string}). - -In order to reduce complexity for the game programmer further, the following -requirements were also set:\noparbreak - -\begin{itemize} - \item Prevent data loss in the case of crashes (\cref{req:savemgr:journalling}) - \item Handle opening/closing/flushing of the underlying file automatically - (\cref{req:savemgr:file-manage}) - \item Save file variables are uniquely identified (\cref{req:savemgr:var-key}) -\end{itemize} - +% \subsection{Save manager} +% +% The save manager \gls{api} is designed to give the game programmer an easy to use +% interface for retrieving and storing game-specific data (\cref{req:savemgr}). +% +% Because the engine validation app only stores statistics and highscores, the save +% manager is not required to support loading different save files +% (\cref{req:savemgr:multi-file}), nor storing complicated data types +% (\cref{req:savemgr:types-custom}). The save manager only supports storing simple +% types (\cref{req:savemgr:types-scalar,req:savemgr:types-string}). +% +% In order to reduce complexity for the game programmer further, the following +% requirements were also set:\noparbreak +% +% \begin{itemize} +% \item Prevent data loss in the case of crashes (\cref{req:savemgr:journalling}) +% \item Handle opening/closing/flushing of the underlying file automatically +% (\cref{req:savemgr:file-manage}) +% \item Save file variables are uniquely identified (\cref{req:savemgr:var-key}) +% \end{itemize} +% % \subsubsection{Architecture} % \label{sec:savemgr:architecture} % -- cgit v1.2.3 From 0cfe85c3a8766992f9b04c082143283698d756d7 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Fri, 1 Nov 2024 15:46:11 +0100 Subject: update time.txt --- time.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/time.txt b/time.txt index 1b4a5b3..ba7d6ed 100644 --- a/time.txt +++ b/time.txt @@ -92,6 +92,7 @@ loek: 2024-10-30 30m project meeting (min/max component count constraints) loek: 2024-10-24 10m review :: PR review (#40, #41 and #42) loek: 2024-10-31 3h45m project meeting loek: 2024-10-31 2h50m docs :: design :: POCs +loek: 2024-11-01 1h05m docs :: design (log POC & Global configuration interface) max: 2024-09-02 1h project kickoff max: 2024-09-02 45m first project meeting -- cgit v1.2.3