aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.vscode/extensions.json1
-rw-r--r--.vscode/settings.json3
-rw-r--r--plan.tex294
-rw-r--r--projdoc.cls30
-rw-r--r--sources.bib36
-rw-r--r--time.txt9
6 files changed, 363 insertions, 10 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/plan.tex b/plan.tex
index 4ad9bad..076ce11 100644
--- a/plan.tex
+++ b/plan.tex
@@ -1,9 +1,299 @@
\documentclass{projdoc}
\input{meta.tex}
+% @Jaro: Zie hieronder
+% Version 0.0 seems not right
+% I'm also missing a 'version table'
+% Shall we use this version system?:
+% Version numbers after the comma indicate an interim version and version numbers
+% before the comma indicate versions ready for publication
+
\title{Project Plan}
+\version{0.1}
\begin{document}
-hoi
-\end{document}
+\tablestables
+\newpage
+
+\section{Background}
+
+This project is part of the fourth-year minor `Systems Programming in C++'. The minor
+consists of several courses troughout 20 weeks, which create the basis for this
+project. The project is focussed on building a game engine using the programming
+language C++. This document describes our plan of attack for the project.
+
+\section{Problem Definition}
+
+% The assignments will be discussed with the project supervisor on specifics for this
+% project. This will give the team the ability to direct the project.
+
+% @Jaro: Ik snap niet wat je met deze zinnen wil zeggen. Het lijkt een soort van
+% background information, maar toch niet helemaal ofzo. Hoe dan ook heb ik het er nu
+% even uit gehaald en een nieuw kopje background toegevoegd.
+
+\subsection{Problem Analysis}
+
+CodedFun Games is a small, single-person game company looking to scale up. The owner,
+who is also a game programmer, and graphical artist, has received government funding,
+which he wants to invest in a custom-built game engine. The owner has no interest in
+developing or maintaining a game engine himself, so he has hired a part-time engine
+programmer. This programmer does not have time to create an entire engine but is
+willing to maintain or expand an existing engine one day per week.
+
+The client seeks a custom game engine that is easy to maintain, easy to extend, and
+user-friendly. Additionally, the engine should be well-documented, which is
+considered an essential aspect of being user-friendly.
+
+So far, the client has made all his games in Unity and is very fond of the structure.
+Therefore, he wants the new engine to adhere to a similar structure. A simple
+requirements document is defined to specify how strictly this structure should be
+followed.
+
+Finally, because the client does not want to dive deeply into the engine himself, he
+wants a secondary application (preferably a game) that can be used to test the
+engine's features. This is referred to as the \emph{validation application}.
+
+\subsection{Goal}
+
+The goal is to develop a custom game engine that meets the client's requirements for
+maintainability, extensibility, user-friendliness, and adherence to a Unity-like
+structure. In addition, a validation application should be created to show and test
+the engine's features.
+
+\subsection{Result}
+
+The expected result is a well-documented, custom game engine that follows a structure
+similar to Unity. Additionally, a validation application should be provided to test
+and showcase the engine's capabilities.
+
+\section{Planning}
+
+The customer specified multiple deliverables troughout the 20 weeks of this project.
+Despite the fact that 20 weeks have been reserved for this project, the intention is
+that the game will be delivered in week 17. Any delay/resit will take place between
+weeks 17 and 20. A rough planning can be found in \cref{tab:planning}.
+
+\begin{table}
+ \begin{tabularx}{\linewidth}{lX}
+ \toprule
+ \textbf{Week\#} & \textbf{Deliverable}\\
+ \midrule
+ 4 & Project Plan\\
+ 7 & Requirements document\\
+ 10 & POCs and Design document\\
+ 17 & Game engine, Validation application, Research document, and Qualification
+ document\\
+ \bottomrule
+ \end{tabularx}
+ \caption{Planning}
+ \label{tab:planning}
+\end{table}
+
+\section{Risks}
+
+\subsection{Techincal Risks}
+
+\begin{description}
+ \item[Multiplatform] The team works in both linux and windows, which poses a risk
+ for the development if there is a platform dependency.
+ \item[Integration] Users can make a wrong integration causing for delay or risk of
+ losing code.
+\end{description}
+
+\subsection{Project Management Risks}
+
+\begin{description}
+ \item[Scope Expansion] There is a risk of creating a scope that is bigger than the
+ requirements. Lack of Team Collaboration: Insufficient collaboration among team
+ members may hinder progress.
+\end{description}
+
+\subsection{Measures}
+
+\begin{description}
+ \item[Multiplatform] The team can switch any time to a single platform, so this
+ risk is metigated.
+ \item[Integration] By following standards and having an integrator, which checks
+ every pull request, this risk is minimilised.
+ \item[Scope Expansion] By writing detailed requirements and having weekly team
+ meetings, to check if the progress is within the scope, should be sufficient to
+ decrease the risk.
+ \item[Lack of Team Collaboration] Weekly team meetings will result in collaboration
+ among team members and discussing what each other tasks is, will decease this
+ risk.
+\end{description}
+
+\section{Documentation}
+
+This section describes the required documentation for the project, including the
+types of documents to be created and the standards they must adhere to.
+
+\subsection{Documents}
+
+This project consists of seven main documents:\noparbreak
+\begin{description}
+ \item[Project Plan] Contains all elements related to the organization of the
+ project, including timelines, milestones, roles, and responsibilities.
+ \item[Requirements] Details the requirements and user stories, including both
+ functional and non-functional requirements.
+ \item[Research] Consists of all research related to this project.
+ \item[Design] Describes the design choices, including architecture, user interface,
+ and system components.
+ \item[Qualification] Includes test cases, test plans, and quality measures to
+ ensure the project meets its requirements and standards.
+ \item[Working hours] A table which includes all working hours of each team member.
+ \item[API Reference] Details the available endpoints, request and response formats,
+ authentication methods, error codes, and examples for interacting with the
+ project's API.
+\end{description}
+
+\subsection{Documentation Standard}
+
+The documentation standard can be found in the contributing.md
+\autocite{crepe:docs-standard}.
+
+\section{Work Agreements}
+
+Work agreements are the expectations and commitments made by the team members. This
+section includes details on roles and responsibilities, documentation of work hours,
+protocols for handling absences or delays, guidelines for addressing inconsistent
+participation, and procedures for weekly updates and meetings. All team members
+reviewed and agreed to these terms.
+
+\subsection{Project roles}
+\begin{description}
+ \item[Loek Le Blansch] Integrator
+ \item[Wouter Boerenkamps] Project Member
+ \item[Jaro Rutjes] Team Leader / Scrum Master
+ \item[Max Smits] Project Member
+ \item[Niels Stunnebrink] Project Member
+\end{description}
+
+\subsection{Work hours}
+
+Each project member will keep track of their own working hours and add them to the
+`file'.
+
+\subsection{Absence or delay}
+
+If a project member is going to be absent or delayed, they are required to
+notify the team through either WhatsApp or Outlook. Additionally, the teacher
+should be informed of the absence as well.
+
+\subsection{Inconsistent participation}
+
+Inconsistent participation will be addressed in a structured manner:
+
+\begin{description}
+ \item[Initial Discussion] The team leader will first discuss the issue of
+ inconsistent participation with the individual team member.
+ \item [Team Discussion] If no improvement is observed, the issue will be brought up
+ with the entire team to seek a collective solution.
+ \item [Project Supervisor Involvement] Should the problem persist, despite these
+ efforts, it will be escalated to the project supervisor (Bob van der Putten) for
+ further action.
+\end{description}
+
+Valid reasons for absence or inconsistency will be considered, and no repercussions
+will be necessary in such cases. However, if the inconsistency is due to other
+factors, potential repercussions may include additional assignments or actions as
+determined by the project supervisor.
+
+A team member is considered to have inconsistent participation if their hours
+are significantly behind the team’s average or if tasks are not completed
+without valid reasons. It is essential that any concerns regarding a team
+member's performance, should be resolved through unanimous agreement within the team.
+
+\subsection{Weekly Update}
+
+Each team member is required to send their technical weekly update to Jaro Rutjes
+before 12:00 on Friday. Personal updates may also be included and will be
+confidential between the team member, the Team Leader, and/or the teacher, if
+requested.
+
+Jaro Rutjes will compile and send a team update to the project supervisor, Bob
+van der Putten, also by Friday. This update will include technical information
+on what has been accomplished, plans for upcoming work, and an overview of the
+team's overall progress.
+
+\subsection{Weekly Meetings}
+
+The project team will hold at least two meetings each week, with each meeting lasting
+a maximum of 30 minutes. Following these meetings, an additional one hour will be
+scheduled for discussions on the topics covered.
+
+Meetings will be planned and discussed one week in advance, with invitations sent via
+Outlook. Additional meetings may be scheduled if necessary to address issues or
+project needs.
+
+% Information about how and when Scrum will be used in this project (using Miro).
+\section{Scrum (Miro)}
+
+The team will start using scrum after the initial phase, of structering the project,
+is finished. This phase is over when proof of concepts are being made.
+
+\subsection{Scrum Board}
+
+The Scrum board \autocite{miro:scrum-board} will consist of the following tabs:
+
+\begin{description}
+ \item[Backlog] This tab contains a list of all tasks and user stories that are
+ planned for future sprints.
+ \item[Next Sprint] This tab includes tasks and user stories that have been selected
+ for the upcoming sprint.
+ \item[Current Sprint] This tab displays the tasks and user stories that are
+ actively being worked on in the current sprint.
+ \item[In Progress] Tasks that are actively being worked on are moved to this tab.
+ \item[Review] Completed tasks that are awaiting review or testing will be placed in
+ this tab.
+ \item[Done] Once tasks have been reviewed and are considered complete, they are
+ moved to the Done tab.
+ \item [Blocked] This tab is used for tasks that cannot proceed due to obstacles or
+ dependencies.
+\end{description}
+
+To manage tasks effectively:
+
+\begin{itemize}
+ \item A task from the \emph{Current Sprint} tab should be selected and moved to the
+ \emph{In Progress} tab when work begins.
+ \item The status of the task should be updated to \emph{In Progress} as soon as
+ work starts.
+ \item Once the task is completed and reviewed, it should be moved to the
+ \emph{Done} tab, and its status should be updated to \emph{Done}.
+\end{itemize}
+
+Each task or user story will be assigned user points, which indicate the relative
+size or complexity of the task compared to these examples.
+% TODO: add examples
+
+\subsection{Burn Down Chart}
+
+The Burn Down Chart will be generated using Excel from the Scrum board data every
+week. Each user story or task marked as done, will burn the chart downwards. This
+Burn Down Chart is shared in the weekly updates with the team and the project
+supervisor.
+
+% Information regarding the git workflow of this project.
+% TODO: Diagram explaining the workflow
+\section{Git Workflow}
+
+GitHub is used for version management of both code \autocite{crepe:code-repo} and
+documentation \autocite{crepe:docs-repo}, each in its own respective repository. This
+keeps the documentation and code seperate, resulting in ordened and manageable
+repositories.
+
+\subsection{Git New Branch}
+
+% TODO: add here details from contributing.md?
+
+\subsection{Git Merge To Master}
+
+% TODO: add here diagram on what actions are taken before merge.
+
+\subsection{Code Standard}
+
+The code standard can be found in the contributing.md \autocite{crepe:code-standard}.
+
+\end{document}
diff --git a/projdoc.cls b/projdoc.cls
index 388f901..c0257ca 100644
--- a/projdoc.cls
+++ b/projdoc.cls
@@ -119,6 +119,16 @@
itemsep=\dimexpr\style@itemsep-\style@parsep\relax,
parsep=\style@parsep,
}
+\def\projdoc@setdescriptionstyle{%
+ \renewcommand\makelabel[1]{%
+ {\bfseries ##1}:%
+ }%
+}
+\setdescription{
+ before={\projdoc@setdescriptionstyle},
+ leftmargin=3em,
+ labelindent=3ex,
+}
\makeatother
% create a label using \customlabel[<creftype>]{<refname>}{<reftext>} that displays
@@ -206,19 +216,29 @@
\thispagestyle{empty}
\end{titlepage}
}
-\newbool{projdoc@cited}
-\apptocmd{\abx@aux@cite}{\global\booltrue{projdoc@cited}}{}{}
+\newbool{projdoc@used@cite}
+\newbool{projdoc@used@gls}
+\apptocmd{\abx@aux@cite}{\global\booltrue{projdoc@used@cite}}{}{}
+\apptocmd{\glsxtr@record}{\global\booltrue{projdoc@used@gls}}{}{}
\def\projdoc@trailer{
% bibliography (if citations used)
- \ifbool{projdoc@cited}{\printbibliography}{}%
+ \ifbool{projdoc@used@cite}{%
+ \hfuzz=50pt% reduce overfull hbox warnings for bibliography (mostly URLs)
+ \printbibliography%
+ }{}%
% glossary
- \ifcsundef{printunsrtglossary}{}{%
+ \ifbool{projdoc@used@gls}{%
+ \setdescription{
+ before={\projdoc@setdescriptionstyle},
+ leftmargin=2ex,
+ labelindent=0pt,
+ }%
\section*{Glossary}%
\begin{multicols}{2}%
\renewcommand{\glossarysection}[2][]{}%
\printunsrtglossary%
\end{multicols}%
- }%
+ }{}%
}
\AtBeginDocument{\projdoc@header}
\AtEndDocument{\projdoc@trailer}
diff --git a/sources.bib b/sources.bib
index b088784..50f5ead 100644
--- a/sources.bib
+++ b/sources.bib
@@ -12,3 +12,39 @@
institution = {RFC Editor},
}
+@misc{miro:scrum-board,
+ author = {Loek Le Blansch and Wouter Boerenkamps and Jaro Rutjes and Max Smits and Niels Stunnebrink},
+ title = {Scrum Board on Miro},
+ url = {https://miro.com/app/board/uXjVKjtdM64=/?share_link_id=303851465474},
+ date = {2024-09-10},
+}
+
+@misc{crepe:code-repo,
+ author = {Loek Le Blansch and Wouter Boerenkamps and Jaro Rutjes and Max Smits and Niels Stunnebrink},
+ title = {Crepe Code Repository},
+ url = {https://github.com/lonkaars/crepe},
+ date = {2024-09-10},
+}
+
+@misc{crepe:docs-repo,
+ author = {Loek Le Blansch and Wouter Boerenkamps and Jaro Rutjes and Max Smits and Niels Stunnebrink},
+ title = {Crepe Documentation Repository},
+ url = {https://github.com/lonkaars},
+ date = {2024-09-10},
+}
+
+@misc{crepe:docs-standard,
+ author = {Loek Le Blansch and Wouter Boerenkamps and Jaro Rutjes and Max Smits and Niels Stunnebrink},
+ title = {Crepe Documentation Standard},
+ url = {https://github.com/lonkaars/crepe-docs/blob/master/contributing.md},
+ date = {2024-09-10},
+}
+
+@misc{crepe:code-standard,
+ author = {Loek Le Blansch and Wouter Boerenkamps and Jaro Rutjes and Max Smits and Niels Stunnebrink},
+ title = {Crepe Code Standard},
+ url = {https://github.com/lonkaars/crepe/blob/master/contributing.md},
+ date = {2024-09-10},
+}
+
+
diff --git a/time.txt b/time.txt
index d9190f5..e345cde 100644
--- a/time.txt
+++ b/time.txt
@@ -20,7 +20,10 @@ 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-11 1h40m research :: profiling and debugging
+loek: 2024-09-12 15m integration :: PR merge
loek: 2024-09-12 30m research :: audio
+loek: 2024-09-13 1h10m project meeting
+loek: 2024-09-13 45m integration :: PR merge
max: 2024-09-02 1h project kickoff
max: 2024-09-02 45m first project meeting
@@ -71,5 +74,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