Initial commit

This commit is contained in:
Benedikt Galbavy 2025-01-13 16:11:17 +00:00
commit a57c35de74
3 changed files with 429 additions and 0 deletions

307
.gitignore vendored Normal file
View File

@ -0,0 +1,307 @@
## Core latex/pdflatex auxiliary files:
*.aux
*.lof
*.log
*.lot
*.fls
*.out
*.toc
*.fmt
*.fot
*.cb
*.cb2
.*.lb
## Intermediate documents:
*.dvi
*.xdv
*-converted-to.*
# these rules might exclude image files for figures etc.
# *.ps
# *.eps
*.pdf
## Generated if empty string is given at "Please type another file name for output:"
.pdf
## Bibliography auxiliary files (bibtex/biblatex/biber):
*.bbl
*.bbl-SAVE-ERROR
*.bcf
*.blg
*-blx.aux
*-blx.bib
*.run.xml
## Build tool auxiliary files:
*.fdb_latexmk
*.synctex
*.synctex(busy)
*.synctex.gz
*.synctex.gz(busy)
*.pdfsync
*.rubbercache
rubber.cache
## Build tool directories for auxiliary files
# latexrun
latex.out/
## Auxiliary and intermediate files from other packages:
# algorithms
*.alg
*.loa
# achemso
acs-*.bib
# amsthm
*.thm
# beamer
*.nav
*.pre
*.snm
*.vrb
# changes
*.soc
# comment
*.cut
# cprotect
*.cpt
# elsarticle (documentclass of Elsevier journals)
*.spl
# endnotes
*.ent
# fixme
*.lox
# feynmf/feynmp
*.mf
*.mp
*.t[1-9]
*.t[1-9][0-9]
*.tfm
#(r)(e)ledmac/(r)(e)ledpar
*.end
*.?end
*.[1-9]
*.[1-9][0-9]
*.[1-9][0-9][0-9]
*.[1-9]R
*.[1-9][0-9]R
*.[1-9][0-9][0-9]R
*.eledsec[1-9]
*.eledsec[1-9]R
*.eledsec[1-9][0-9]
*.eledsec[1-9][0-9]R
*.eledsec[1-9][0-9][0-9]
*.eledsec[1-9][0-9][0-9]R
# glossaries
*.acn
*.acr
*.glg
*.glo
*.gls
*.glsdefs
*.lzo
*.lzs
*.slg
*.slo
*.sls
# uncomment this for glossaries-extra (will ignore makeindex's style files!)
# *.ist
# gnuplot
*.gnuplot
*.table
# gnuplottex
*-gnuplottex-*
# gregoriotex
*.gaux
*.glog
*.gtex
# htlatex
*.4ct
*.4tc
*.idv
*.lg
*.trc
*.xref
# hypdoc
*.hd
# hyperref
*.brf
# knitr
*-concordance.tex
# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files
# *.tikz
*-tikzDictionary
# listings
*.lol
# luatexja-ruby
*.ltjruby
# makeidx
*.idx
*.ilg
*.ind
# minitoc
*.maf
*.mlf
*.mlt
*.mtc[0-9]*
*.slf[0-9]*
*.slt[0-9]*
*.stc[0-9]*
# minted
_minted*
*.pyg
# morewrites
*.mw
# newpax
*.newpax
# nomencl
*.nlg
*.nlo
*.nls
# pax
*.pax
# pdfpcnotes
*.pdfpc
# sagetex
*.sagetex.sage
*.sagetex.py
*.sagetex.scmd
# scrwfile
*.wrt
# svg
svg-inkscape/
# sympy
*.sout
*.sympy
sympy-plots-for-*.tex/
# pdfcomment
*.upa
*.upb
# pythontex
*.pytxcode
pythontex-files-*/
# tcolorbox
*.listing
# thmtools
*.loe
# TikZ & PGF
*.dpth
*.md5
*.auxlock
# titletoc
*.ptc
# todonotes
*.tdo
# vhistory
*.hst
*.ver
# easy-todo
*.lod
# xcolor
*.xcp
# xmpincl
*.xmpi
# xindy
*.xdy
# xypic precompiled matrices and outlines
*.xyc
*.xyd
# endfloat
*.ttt
*.fff
# Latexian
TSWLatexianTemp*
## Editors:
# WinEdt
*.bak
*.sav
# Texpad
.texpadtmp
# LyX
*.lyx~
# Kile
*.backup
# gummi
.*.swp
# KBibTeX
*~[0-9]*
# TeXnicCenter
*.tps
# auto folder when using emacs and auctex
./auto/*
*.el
# expex forward references with \gathertags
*-tags.tex
# standalone packages
*.sta
# Makeindex log files
*.lpz
# xwatermark package
*.xwm
# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib
# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
# Uncomment the next line to have this generated file ignored.
#*Notes.bib

1
.latexmkrc Normal file
View File

@ -0,0 +1 @@
$pdflatex = 'xelatex -shell-escape %O %S'

121
slides.tex Normal file
View File

@ -0,0 +1,121 @@
\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}