diff options
-rw-r--r-- | .vscode/extensions.json | 1 | ||||
-rw-r--r-- | .vscode/settings.json | 3 | ||||
-rw-r--r-- | comparison.sty | 80 | ||||
-rw-r--r-- | example.tex | 27 | ||||
-rw-r--r-- | research.tex | 67 | ||||
-rw-r--r-- | time.txt | 26 |
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} @@ -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 |