aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaro <jarorutjes07@gmail.com>2024-10-19 14:29:04 +0200
committerJaro <jarorutjes07@gmail.com>2024-10-19 14:29:04 +0200
commit314baff9cdc711eee2f307f22e1def778360d9e8 (patch)
tree5f66275b8e6d92ea4147da6349d36fbde0a8f367
parentd4fbaad4ad83e430b8a28436c63a8e0f34abc762 (diff)
parent4760be8c90297857ba5c9cf82e2478039fdc9365 (diff)
Merge branch 'master' of github.com:lonkaars/crepe-docs into jaro/research
-rw-r--r--design.tex24
-rw-r--r--img/facade-audio.puml49
-rw-r--r--img/theme.ipuml20
-rw-r--r--latexmkrc2
-rw-r--r--projdoc.cls2
-rwxr-xr-xscripts/time2tex.py17
-rw-r--r--time.txt163
7 files changed, 227 insertions, 50 deletions
diff --git a/design.tex b/design.tex
index c5bd017..7b232fe 100644
--- a/design.tex
+++ b/design.tex
@@ -38,6 +38,30 @@ workflows.
\subsection{Audio}
+\subsubsection{Library}
+
+\subsubsection{Fa\c{c}ade}
+
+\Cref{fig:class-audio-facade} shows a class diagram of the audio fa\c{c}ade. It
+contains the following classes:
+\begin{description}
+ \item[SoundContext] This is a wrapper around the \codeinline{SoLoud::soloud}
+ `engine' class, and is therefore implemented as a singleton. This ensures the
+ audio engine is initialized before \codeinline{Sound} is able to use it.
+
+ This class is friends with \codeinline{Sound}, so only \codeinline{Sound} is able
+ to get the \codeinline{SoundContext} instance.
+ \item[Sound] This is a wrapper around the \codeinline{SoLoud::Wav} class, and uses
+ cr\^epe's \codeinline{Asset} class to load an audio sample instead.
+\end{description}
+
+\begin{figure}
+ \centering
+ \includepumldiag{img/facade-audio.puml}
+ \caption{Audio fa\c{c}ade class diagram}
+ \label{fig:class-audio-facade}
+\end{figure}
+
\subsection{Input}
\subsection{Physics}
diff --git a/img/facade-audio.puml b/img/facade-audio.puml
new file mode 100644
index 0000000..60af60f
--- /dev/null
+++ b/img/facade-audio.puml
@@ -0,0 +1,49 @@
+@startuml
+!include theme.ipuml
+skinparam Linetype ortho
+
+package crepe {
+ class Asset <<irrelevant>>
+
+ class Sound {
+ +Sound(asset)
+ --
+ +pause()
+ +play()
+ +rewind()
+ -volume : float <<+set>> <<+get>>
+ -looping : bool <<+set>> <<+get>>
+ --
+ -sample : SoLoud::Wav
+ -handle : SoLoud::handle
+ --
+ -load(asset)
+ }
+
+ class SoundContext <<Singleton>> {
+ -instance() : SoundContext& <<static>>
+ --
+ -SoundContext()
+ -~SoundContext()
+ --
+ -engine : SoLoud::Soloud
+ }
+
+ Sound .> SoundContext
+ SoundContext .> Sound
+
+ Sound .left> Asset
+}
+
+package SoLoud {
+ class Soloud <<irrelevant>>
+ class Wav <<irrelevant>>
+}
+
+crepe.Sound --> SoLoud.Wav
+crepe.SoundContext --> SoLoud.Soloud
+
+' LAYOUT
+crepe -[hidden]down- SoLoud
+
+@enduml
diff --git a/img/theme.ipuml b/img/theme.ipuml
index 4e3613e..ae3b1c7 100644
--- a/img/theme.ipuml
+++ b/img/theme.ipuml
@@ -1,10 +1,26 @@
+' vim:ft=plantuml
+
!theme plain
skinparam ClassAttributeIconSize 0
skinparam ClassFontStyle bold
skinparam DefaultFontName Inter
-skinparam DefaultFontSize 14
+skinparam DefaultFontSize 10
skinparam MaxMessageSize 200
skinparam Nodesep 25
-skinparam Padding 2
+' skinparam Padding 0
skinparam Ranksep 50
skinparam RoundCorner 0
+skinparam PackageStyle rectangle
+skinparam PackageFontStyle italic
+
+hide class circle
+
+' class <<irrelevant>> for third-party classes
+hide <<irrelevant>> stereotype
+hide <<irrelevant>> members
+
+' rectangle <<group>>
+hide <<group>> stereotype
+skinparam Rectangle<<group>>BorderStyle dashed
+skinparam Rectangle<<group>>BorderColor gray
+
diff --git a/latexmkrc b/latexmkrc
index d2c3cdc..cdc2001 100644
--- a/latexmkrc
+++ b/latexmkrc
@@ -12,6 +12,8 @@ $clean_ext .= ' %R.ist %R.xdy bbl run.xml';
'plan',
'research',
'timerep',
+ 'design',
+ 'requirements',
);
push @file_not_found, '^Package .* No file `([^\\\']*)\\\'';
diff --git a/projdoc.cls b/projdoc.cls
index 8a2c05d..b369b18 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.6]{\filename}}%
+ \fitimg{\includegraphics[scale=0.75]{\filename}}%
}
% prevent page break between two paragraphs
diff --git a/scripts/time2tex.py b/scripts/time2tex.py
index a5d6802..f3f8de9 100755
--- a/scripts/time2tex.py
+++ b/scripts/time2tex.py
@@ -11,7 +11,7 @@ def fmt_duration(sec):
hour = mins // 60
if hour > 0:
- out.append("%02dh" % (hour, ))
+ out.append("%dh" % (hour, ))
mins = mins % 60
out.append("%02dm" % (mins, ))
@@ -91,16 +91,13 @@ def fmt_weekly_overview(times):
return tex.env('table', tex.join(
tex.cmd('centering'),
tex.cmd('fitimg',
- tex.env('tabular', r'l' + r'r@{~}l' * len(members) + r'@{\qquad}r', tex.join(
+ tex.env('tabular', r'l' + r'r@{~}l' * len(members) + r'>{\quad}r', tex.join(
tex.cmd('toprule'),
- tex.tabrule(*[
- tex.cmd('textbf', cell)
- for cell in [
- tex.esc("#"),
- *tex.explist([ member, "" ] for member in members),
- "Subtotal",
- ]
- ]),
+ tex.tabrule(
+ tex.cmd("textbf", tex.esc("#")),
+ *[tex.cmd("multicolumn", "2", "c", tex.cmd("textbf", member)) for member in members],
+ tex.cmd("textbf", "Subtotal"),
+ ),
tex.cmd('midrule'),
*[
tex.tabrule(*[
diff --git a/time.txt b/time.txt
index 07c04c6..301e70f 100644
--- a/time.txt
+++ b/time.txt
@@ -1,57 +1,80 @@
-loek: 2024-09-02 1h project meeting :: project kickoff
+loek: 2024-09-02 1h project meeting (project kickoff)
loek: 2024-09-02 45m project meeting
-loek: 2024-09-02 1h4m repository scaffolding
-loek: 2024-09-03 25m repository scaffolding
-loek: 2024-09-03 1h30m repository scaffolding :: engine repository, unit testing
-loek: 2024-09-04 1h30m repository scaffolding :: latex example code
+loek: 2024-09-02 1h4m tooling :: repository (scaffolding)
+loek: 2024-09-03 25m tooling :: repository (scaffolding)
+loek: 2024-09-03 1h30m tooling :: unit testing
+loek: 2024-09-04 1h30m tooling :: documentation (add latex example code)
loek: 2024-09-04 50m poc :: dynamic library linking test example
-loek: 2024-09-04 45m repository scaffolding :: visual studio code latex configuration
-loek: 2024-09-04 20m repository scaffolding :: visual studio code cmake configuration
-loek: 2024-09-05 15m repository scaffolding :: additional latex contributing guidelines
+loek: 2024-09-04 45m tooling :: repository (visual studio code latex configuration)
+loek: 2024-09-04 20m tooling :: repository (visual studio code cmake configuration)
+loek: 2024-09-05 15m tooling :: documentation (additional latex contributing guidelines)
loek: 2024-09-05 1h40m project meeting
-loek: 2024-09-05 1h24m time report script
-loek: 2024-09-06 55m time report script
-loek: 2024-09-09 30m feedback :: niels code style guide
-loek: 2024-09-09 45m review :: wouter research PR#5
-loek: 2024-09-09 25m documentation style guide
+loek: 2024-09-05 1h24m tooling :: time report script
+loek: 2024-09-06 55m tooling :: time report script
+loek: 2024-09-09 30m review :: style (niels code style guide)
+loek: 2024-09-09 45m review :: PR review (#5 wouter research)
+loek: 2024-09-09 25m docs :: style guide
loek: 2024-09-10 1h55m project meeting
-loek: 2024-09-10 25m briefing :: watch bob videos
-loek: 2024-09-10 5m docs :: update readme
-loek: 2024-09-10 12m docs :: add comparison package and more example latex code
+loek: 2024-09-10 25m research :: watch bob's videos
+loek: 2024-09-10 5m tooling :: repository (update readme)
+loek: 2024-09-10 12m tooling :: documentation (comparison package & more example latex code)
loek: 2024-09-10 30m project meeting
loek: 2024-09-11 1h40m research :: profiling and debugging
-loek: 2024-09-12 15m integration :: PR merge
+loek: 2024-09-12 15m review :: PR review
loek: 2024-09-12 30m research :: audio
loek: 2024-09-13 1h10m project meeting
-loek: 2024-09-13 45m integration :: PR merge
-loek: 2024-09-14 45m refactoring :: clean up LaTeX build system
-loek: 2024-09-14 1h10m docs :: requirements
-loek: 2024-09-15 2h55m docs :: requirements
-loek: 2024-09-16 2h30m docs :: requirements
+loek: 2024-09-13 45m review :: PR review
+loek: 2024-09-14 45m tooling :: documentation (clean up LaTeX build system)
+loek: 2024-09-14 1h10m tooling :: requirements
+loek: 2024-09-15 2h55m tooling :: requirements
+loek: 2024-09-16 2h30m tooling :: requirements
loek: 2024-09-17 1h20m project meeting
-loek: 2024-09-17 55m bugs :: cross-platform latexmk filespec
-loek: 2024-09-17 2h25m docs :: requirements
+loek: 2024-09-17 55m tooling :: documentation (cross-platform latexmk filespec bug)
+loek: 2024-09-17 2h25m tooling :: requirements
loek: 2024-09-18 2h20m docs :: requirements
loek: 2024-09-18 1h50m research :: audio
-loek: 2024-09-18 1h05m integration :: PR merge
-loek: 2024-09-19 30m docs :: requirements
+loek: 2024-09-18 1h05m review :: PR review
+loek: 2024-09-19 30m tooling :: requirements
loek: 2024-09-19 15m project meeting
loek: 2024-09-19 1h30m project meeting
loek: 2024-09-19 45m project meeting
-loek: 2024-09-19 15m docs :: remove versioning
-loek: 2024-09-19 30m PR merge and style guide update
+loek: 2024-09-19 15m tooling :: documentation (move to git commit versioning)
+loek: 2024-09-19 30m review :: PR review (+ style guide update)
loek: 2024-09-22 2h15m docs :: research
loek: 2024-09-24 1h45m project meeting
-loek: 2024-09-25 3h implementation :: audio facade and API
+loek: 2024-09-25 3h implementation :: audio API
loek: 2024-09-26 2h project meeting
-loek: 2024-09-25 1h20m implementation :: audio facade and API
-loek: 2024-09-27 20m PR merge and style guide update
-loek: 2024-09-27 55m implementation :: fix library import structure
-loek: 2024-09-28 2h20m implementation :: audio facade and API
+loek: 2024-09-25 1h20m implementation :: audio API
+loek: 2024-09-27 20m review :: PR review (+ style guide update)
+loek: 2024-09-27 55m tooling :: build system (fix library import structure)
+loek: 2024-09-28 2h20m implementation :: audio API
loek: 2024-09-29 1h55m implementation :: debug logging facilities
-loek: 2024-09-29 20m implementation :: audio facade
-loek: 2024-09-29 45m docs :: audio facade design
+loek: 2024-09-29 20m implementation :: audio API
+loek: 2024-09-29 45m docs :: design :: audio API
loek: 2024-09-30 1h40m project meeting
+loek: 2024-10-01 2h20m review :: feedback & discussing software design
+loek: 2024-10-01 30m implementation :: audio API
+loek: 2024-10-03 1h30m project meeting
+loek: 2024-10-04 15m research :: read others' research
+loek: 2024-10-04 1h15m project meeting
+loek: 2024-10-05 1h10m tooling :: unit testing (unify unit tests + update code style)
+loek: 2024-10-06 3h40m implementation :: scripting interface
+loek: 2024-10-07 2h45m project meeting
+loek: 2024-10-08 40m review :: Max' ECS code
+loek: 2024-10-08 5m review :: incorporate feedback and merge PR
+loek: 2024-10-09 25m review :: feedback discussion + code style update
+loek: 2024-10-10 1h05m tooling :: build system (fix libraries + update readmes)
+loek: 2024-10-10 1h30m project meeting
+loek: 2024-10-12 1h15m implementation :: scripting interface
+loek: 2024-10-13 1h implementation :: scripting interface
+loek: 2024-10-14 2h project meeting (class)
+loek: 2024-10-14 1h30m project meeting
+loek: 2024-10-16 1h40m implementation :: scripting interface
+loek: 2024-10-16 40m implementation :: scripting interface
+loek: 2024-10-16 20m implementation :: scripting interface
+loek: 2024-10-17 40m project meeting
+loek: 2024-10-17 10m review :: PR review (#5 and #6)
+loek: 2024-10-18 1h40m docs :: design :: scripting interface
max: 2024-09-02 1h project kickoff
max: 2024-09-02 45m first project meeting
@@ -86,6 +109,25 @@ max: 2024-09-25 1h wrote email to Bob
max: 2024-09-25 2h40m make my own ECS (homemade ECS)
max: 2024-09-26 2h eight project meeting
max: 2024-09-26 1h wrote email to Bob (after project meeting)
+max: 2024-09-30 1h30m nineth project meeting
+max: 2024-10-02 6h15m improved own ECS (POC)
+max: 2024-10-03 30m tenth project meeting
+max: 2024-10-03 1h30m fifth project lesson
+max: 2024-10-04 2h20m creating class diagram of ecs-homemade (and researching other possibilities for the ecs-homemade)
+max: 2024-10-05 2h made memory efficient ecs
+max: 2024-10-07 30m sixth project lesson
+max: 2024-10-07 2h15m eleventh project meeting
+max: 2024-10-09 2h trying to get clang-format working (ending up upgrading Linux)
+max: 2024-10-09 30m reviewing feedback of ecs-homemade
+max: 2024-10-09 30m expanding class diagram
+max: 2024-10-09 2h50m investigating compiler error options for game programmer when adding too much or too little Components of a specific type
+max: 2024-10-13 30m preparing 'kennisdeling' and 'functioneringsgesprek'
+max: 2024-10-14 2h kennisdeling
+max: 2024-10-14 1h30m twelfth project meeting
+max: 2024-10-16 30m investigated whether or not EnTT can handle multiple inheritance
+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
wouter: 2024-09-02 1h project meeting :: project kickoff
wouter: 2024-09-02 45m project meeting
@@ -108,9 +150,21 @@ wouter: 2024-09-18 3h finishing gameloop poc and starting event manager
wouter: 2024-09-19 15m project meeting
wouter: 2024-09-19 1h30m project meeting
wouter: 2024-09-19 45m project meeting
-wouter: 2024-09-19 15m docs :: remove versioning
wouter: 2024-09-26 2h eight project meeting
wouter: 2024-09-26 3h researching event manager
+wouter: 2024-09-28 6h researching and developing event poc
+wouter: 2024-09-29 3h researching and developing event poc
+wouter: 2024-09-30 1h40m project meeting
+wouter: 2024-10-03 1h30m discussing event with seger
+wouter: 2024-10-03 4h developing event poc
+wouter: 2024-10-03 1h30m creating gameloop design
+wouter: 2024-10-03 1h30m project meeting
+wouter: 2024-10-04 2h developing event poc
+wouter: 2024-10-04 1h15m project meeting
+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
niels: 2024-09-02 1h project meeting :: project kickoff
@@ -142,7 +196,25 @@ niels: 2024-09-23 2h researching and POC tiled library tmxlite
niels: 2024-09-24 2h project Meeting
niels: 2024-09-24 45m meeting with Bob
niels: 2024-09-25 6h integrate the resource manager spritesheet, tmxlite, texture.
-niels: 2024-09-26 2h project meeting
+niels: 2024-09-26 2h project meeting
+niels: 2024-09-30 1h40m project meeting
+niels: 2024-10-01 2h design resource manager and making resource manager singleton
+niels: 2024-10-01 1h meeting loek refactoring resource manager
+niels: 2024-10-01 1h20m meeting jaro & loek about questions regarding design and ownership pointers
+niels: 2024-10-01 45m starting refactoring code after feedback
+niels: 2024-10-01 1h30m try implementating library in git submodule. And refactoring code further
+niels: 2024-10-02 1h finishing adding git submodule and bugs related to compiling external library
+niels: 2024-10-02 4h refacting code further so that textures and spritesheet work and fixing bugs.
+niels: 2024-10-04 1h10m project meeting
+niels: 2024-10-07 2h45m project meeting
+niels: 2024-10-09 2h adding the rendering components to api, and making the rendering system
+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
+
+
+
+
jaro: 2024-09-02 1h project meeting :: project kickoff
jaro: 2024-09-02 45m project meeting
@@ -181,4 +253,21 @@ jaro: 2024-09-26 2h30m physics research and poc
jaro: 2024-09-26 30m preparing meeting
jaro: 2024-09-26 2h team meeting
jaro: 2024-09-27 45m converting notes
+jaro: 2024-09-27 2h30m weeklyupdate + Physics
+jaro: 2024-09-30 1h30m project meeting
+jaro: 2024-10-01 3h research physics + collisions
+jaro: 2024-10-01 1h meeting facade
+jaro: 2024-10-01 3h15m research physics + collisions
+jaro: 2024-10-01 1h30m Particels poc
+jaro: 2024-10-03 2h project meeting + project lesson
+jaro: 2024-10-04 1h15m project meeting
+jaro: 2024-10-07 2h particle system
+jaro: 2024-10-07 30m project lesson
+jaro: 2024-10-07 2hm project meeting
+jaro: 2024-10-07 4h30m particle system
+jaro: 2024-10-09 30m particle system with ECS
+jaro: 2024-10-10 3h30m particle system with ECS
+jaro: 2024-10-10 1h30m project meeting
+jaro: 2024-10-11 30m weekly update
+
# vim:ft=cfg