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 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 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 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 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 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