\documentclass[aspectratio=169]{beamer}

% pdfpc slides.pdf --notes=right
% comment out to disable notes
%\setbeameroption{show notes on second screen=right}

\usetheme{metropolis}

\usepackage{minted}
\setminted{fontsize=\footnotesize,samepage=true}
%\usepackage{xcolor}
%\definecolor{codecolor}{HTML}{FFC300}

\title{VEGO-Engine}
\subtitle{A student project}
\author{Benedikt, Nicole}

\begin{document}

\maketitle
\note{Tone: light hearted "What did we learn"}

\begin{frame}{Outline}
\tableofcontents
\end{frame}

\section{Context}

\subsection{The team}
\begin{frame}{Who are we?}
Hello, this us

We had help - 3 other students with similar experience
\end{frame}
\subsection{The project}
\begin{frame}{The assigment}
UAS Technikum Project
\end{frame}
\begin{frame}{Our interpretation and goals}
A cool engine
\end{frame}
\begin{frame}{Roadmap}
3st Semester - learning SDL

4th/5th Semester - making the engine
\end{frame}

\section{Learnings}
\subsection{Project environment}

\begin{frame}{Baby's first \texttt{CMakeLists.txt}}
\begin{itemize}
    \item On UAS: Only ever Make or no project setup
\end{itemize}
\end{frame}
\begin{frame}{Visual Studio}
Hate
\end{frame}
\begin{frame}{How the \_ do I import a library?}
\begin{itemize}
    \item git-modules
\end{itemize}
\end{frame}
\note[itemize]{
    \item SDL is a library, static compile
    \item git-modules - do not bloat contributions
}

\begin{frame}[allowframebreaks, fragile]{We made an ECS - almost?}
Why an ECS - Entity Component System?
\begin{itemize}
    \item Encourages reusable code
\end{itemize}
\end{frame}
\begin{frame}[allowframebreaks, fragile]{Memory Management}
\begin{minted}[linenos,autogobble]{c++}
class Manager
{
public:
    Entity& addEntity()
    {
        Entity* e = new Entity(*this);
        std::unique_ptr<Entity> uPtr{ e };
        this->entities.emplace_back(std::move(uPtr));
        return *e;
    }
private:
    std::vector<std::unique_ptr<Entity>> entities;
}
\end{minted}
\framebreak
Does that solve memory management? Not quite:

\begin{itemize}
    \item Missing separation of concern - manager also propagates update call
    \item What if I want to "save" existing entities
    \item Everything is an entity
\end{itemize}
\end{frame}

%code example
\begin{frame}[fragile]
\begin{minted}[linenos,autogobble]{c}
#include <stdio.h>

int main()
{
  printf("Hello, World!");
  return 0;
}
\end{minted}
\end{frame}
\begin{frame}
\begin{enumerate}
  \item Eins
  \item Zwei
  \item Drei
\end{enumerate}
\end{frame}

\end{document}