aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.vscode/extensions.json1
-rw-r--r--.vscode/settings.json3
-rw-r--r--comparison.sty80
-rw-r--r--example.tex27
-rw-r--r--research.tex67
-rw-r--r--time.txt26
6 files changed, 192 insertions, 12 deletions
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index e2e2139..1ce5b20 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -1,5 +1,6 @@
{
"recommendations": [
+ "James-Yu.latex-workshop",
"EditorConfig.EditorConfig"
]
}
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 25effcc..4a05df8 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,7 +1,4 @@
{
- "editor.wordWrap": "wordWrapColumn",
- "editor.wrappingIndent": "same",
- "editor.wordWrapColumn": 85,
"files.trimTrailingWhitespace": true,
"latex-workshop.latex.recipe.default": "latexmk",
"latex-workshop.latex.tools": [
diff --git a/comparison.sty b/comparison.sty
new file mode 100644
index 0000000..d10f95f
--- /dev/null
+++ b/comparison.sty
@@ -0,0 +1,80 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{comparison}[2024-01-19 package comparison]
+
+\RequirePackage{booktabs}
+\RequirePackage{etoolbox}
+\RequirePackage{tabularx}
+\RequirePackage{environ}
+\RequirePackage{enumitem}
+
+% comparison environment, usage:
+%
+% \begin{comparison}
+% \pro{reason why thing is good}
+% \pro{...}
+% \con{reason why thing is bad}
+% \con{...}
+% \end{comparison}
+%
+% output:
+%
+% Pros (2) Cons (2)
+% ----------------------------------------------------------
+% - reason why thing is good - reason why thing is bad
+% - ... - ...
+%
+
+\newcounter{pro-count}
+\newcounter{pro-index}
+\newcounter{con-count}
+\newcounter{con-index}
+\newcounter{cmp-count}
+\newcounter{cmp-index}
+\NewEnviron{comparison}{%
+ \par%
+ \setcounter{pro-count}{0}%
+ \newcommand{\pro}[1]{%
+ \stepcounter{pro-count}%
+ \csdef{pro-\the\value{pro-count}}{##1}%
+ }%
+ \setcounter{con-count}{0}%
+ \newcommand{\con}[1]{%
+ \stepcounter{con-count}%
+ \csdef{con-\the\value{con-count}}{##1}%
+ }%
+ \BODY%
+ \def\spacing{3mm}%
+ \newcommand{\halfbox}[1]{%
+ \begin{minipage}[t]{\dimexpr(\linewidth - \spacing) / 2\relax}%
+ ##1%
+ \end{minipage}%
+ }%
+ \begin{minipage}{\linewidth}%
+ \halfbox{\strut\centering\textsc{Benefits}~(\the\value{pro-count})\strut}%
+ \hfill%
+ \halfbox{\strut\centering\textsc{Drawbacks}~(\the\value{con-count})\strut}%
+ \par%
+ \vspace*{\dimexpr-\parskip-0.5\baselineskip\relax}%
+ \noindent\rule{\linewidth}{0.66pt}\par%
+ \vspace*{\dimexpr-\parskip\relax}%
+ \halfbox{%
+ \begin{itemize}[leftmargin=5mm]%
+ \setcounter{pro-index}{0}%
+ \whileboolexpr{test{\ifnumcomp{\value{pro-index}}{<}{\value{pro-count}}}}{%
+ \stepcounter{pro-index}%
+ \item \csuse{pro-\the\value{pro-index}}%
+ }%
+ \end{itemize}%
+ }\hfill\halfbox{%
+ \begin{itemize}[leftmargin=5mm]%
+ \setcounter{con-index}{0}%
+ \whileboolexpr{test{\ifnumcomp{\value{con-index}}{<}{\value{con-count}}}}{%
+ \stepcounter{con-index}%
+ \item \csuse{con-\the\value{con-index}}%
+ }%
+ \end{itemize}%
+ }%
+ \end{minipage}%
+ \par%
+}
+
diff --git a/example.tex b/example.tex
index 8525973..ce45f6f 100644
--- a/example.tex
+++ b/example.tex
@@ -108,7 +108,7 @@ The \codeinline{blockcode} environment can be used to insert a code block:
This is all included verbatim: \verb|asdf| \ $%!(*@#&)$
\end{blockcode}
-\subsection{Lists}
+\subsection{Information dumps}
Unordered (bullet) list:
@@ -136,9 +136,34 @@ Numbered list:
(See \cref{item:enum-nest-ref})
+Description:
+
+\begin{description}
+ \item[Item one] description of item one
+ \item[Item two] description of item two
+ \item[Item three] ...
+\end{description}
+
+\subsection{Comparisons}
+
+\begin{comparison}
+ \pro{Good thing}
+ \con{Bad thing}
+ \pro{Good thing 2}
+ \con{Bad thing 2}
+\end{comparison}
+
\subsection{Citations}
Citations are inserted using the \codeinline{\autocite} command \autocite{rfc:3339}.
+The bibliography is automatically printed after \codeinline{\end{document}}.
+
+\subsection{Glossary}
+
+Glossary entries can be inserted using the \codeinline{\gls} commands. Example:
+``\Gls{sdl2} handles \glspl{hid} as well!''. In following occurrences of acronyms,
+only their short form is printed: `\gls{sdl2}' and `\gls{hid}'. All of these link to
+the glossary that is automatically printed after \codeinline{\end{document}}.
\end{document}
diff --git a/research.tex b/research.tex
index ca2afed..1d44c92 100644
--- a/research.tex
+++ b/research.tex
@@ -152,7 +152,7 @@ for audio some options could be: FMOD, Wwise, or iirKlang
\subsection{Conclusion}
-\section{Gameloop/resource manager}
+\section{Resource manager}
\subsection{Introduction}
@@ -168,7 +168,7 @@ for audio some options could be: FMOD, Wwise, or iirKlang
\subsection{Conclusion}
-\section{Event manager}
+\section{Event manager/game loop}
\subsection{Introduction}
@@ -176,7 +176,7 @@ for audio some options could be: FMOD, Wwise, or iirKlang
\subsection{Conclusion}
-\section{Memory/debugging}
+\section{Profiling/debugging}
\subsection{Introduction}
@@ -184,7 +184,7 @@ for audio some options could be: FMOD, Wwise, or iirKlang
\subsection{Conclusion}
-\section{Physics/scripting}
+\section{Physics}
\subsection{Introduction}
@@ -192,14 +192,71 @@ for audio some options could be: FMOD, Wwise, or iirKlang
\subsection{Conclusion}
-\section{Conclusion}
+\section{Scripting}
+
+\subsection{Introduction}
+
+\subsection{Findings}
+
+\subsection{Conclusion}
+\section{Audio}
+
+\subsection{Introduction}
+
+\subsection{Findings}
+
+\subsection{Conclusion}
\section{Gameobjects/components}
\subsection{Introduction}
+One of the requirements of our customer, is that the game engine's structure is
+similar to Unity. The customer has created a class diagram of the game engine's API,
+which is (of course) very similar to Unity. One of the most important parts of the
+class diagram is a so-called gameObject (with several components). It's needed to
+understand the exact meaning/function of these gameObjects, that's why this research
+question arose.
+
\subsection{Findings}
+A gameObject is the most important concept in Unity. Every object in a game is a
+GameObject, from characters and collectible items to the lights, cameras and special
+effects. However, a gameObject itself can't do anything on its own. A gameObject
+needs to be given properties before it can become a character, an envirnment, or a
+special effect.
+% TODO: cite https://docs.unity3d.com/Manual/GameObjects.html
+
+\subsection{Conclusion}
+
+\section{AI}
+
+\subsection{Introduction}
+
+\subsection{Findings}
+
+A gameObject can be seen as a container for components. Components are the properties
+of the gameObject. A few examples of components are sprites, animators, audioSources,
+and so on. Multiple (different) components can be assigned to a single gameObject
+(e.g.~a sprite and an audioSource).
+
+Since we now know that a gameObject needs components to do something, it's obvious
+that there should be a way to add components to a gameObject. Some components
+(e.g.~the behaviorScript component) should also be able to reference to its
+gameObject.
+
+Each gameObject always has one transform class. The transform class describes the
+position, rotation, and scale within the scene. Some component use this information
+to e.g. scale a sprite. Other components eddit this information to e.g.~model
+gravity.
+% TODO: cite https://docs.unity3d.com/Manual/class-Transform.html
+
+A gameObject can have one (or multiple) children gameObject(s). All children
+gameObjects, of course, also have one transform class. However, the position,
+rotation, and scale of this class, is always the same as the child's parent. A child
+can not have more than one parent.
+% TODO: cite https://docs.unity3d.com/Manual/class-Transform.html
+
\subsection{Conclusion}
\section{Conclusion}
diff --git a/time.txt b/time.txt
index d0ddf37..d25d83b 100644
--- a/time.txt
+++ b/time.txt
@@ -17,13 +17,25 @@ loek: 2024-09-09 25m documentation 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 30m project meeting
+loek: 2024-09-12 15m integration :: PR merge
-max: 2024-09-02 1h project meeting :: project kickoff
-max: 2024-09-02 45m project meeting
+max: 2024-09-02 1h project kickoff
+max: 2024-09-02 45m first project meeting
+max: 2024-09-03 1h30m first project lesson
max: 2024-09-04 1h30m installing and configuring latex
max: 2024-09-04 2h reading project info
max: 2024-09-05 20m discussing GitHub with Jaro
-max: 2024-09-05 1h30m first group meeting
+max: 2024-09-05 1h30m second project meeting
+max: 2024-09-06 45m writing email and fixing clang-format/-tidy
+max: 2024-09-09 3h10m investigating Unity (in relation to the class diagram)
+max: 2024-09-10 1h30m third project meeting
+max: 2024-09-10 20m discussing about class diagram
+max: 2024-09-10 40m second project lesson (one-to-one meeting with Bob)
+max: 2024-09-11 1h50m first review of Jaro's Plan document
+max: 2024-09-12 1h trying to fix LaTeX and VS code settings
+max: 2024-09-12 1h worked on gameObject research
wouter: 2024-09-02 1h project meeting :: project kickoff
wouter: 2024-09-02 45m project meeting
@@ -33,6 +45,8 @@ wouter: 2024-09-04 1h30m researching 3rd party tools
wouter: 2024-09-05 1h30m first group meeting
wouter: 2024-09-05 20m setting up research document
wouter: 2024-09-05 1h researching game enigne
+wouter: 2024-09-06 3h researching game enigne
+wouter: 2024-09-09 2h researching SDL and SFML2
niels: 2024-09-02 1h project meeting :: project kickoff
niels: 2024-09-02 45m project meeting
@@ -56,5 +70,11 @@ jaro: 2024-09-09 1h project plan
jaro: 2024-09-10 1h preparing meeting and project plan
jaro: 2024-09-10 1h30m project meeting
jaro: 2024-09-10 1h project disussing research
+jaro: 2024-09-10 45m project videos
+jaro: 2024-09-10 1h project plan research physics
+jaro: 2024-09-13 1h project preparing meeting and reading review project plan
+jaro: 2024-09-13 1h30m project meeting
+jaro: 2024-09-13 30m weekly update
+
# vim:ft=cfg