Compare commits
No commits in common. "f9eb278c33dd42d71c4189ed52eb52d19b962762" and "3be7a1c64614acafe91f7dcea35dcf4348c3552a" have entirely different histories.
f9eb278c33
...
3be7a1c646
35
slides.tex
35
slides.tex
@ -13,9 +13,6 @@
|
|||||||
%\usepackage{xcolor}
|
%\usepackage{xcolor}
|
||||||
%\definecolor{codecolor}{HTML}{FFC300}
|
%\definecolor{codecolor}{HTML}{FFC300}
|
||||||
|
|
||||||
\usepackage[super]{nth}
|
|
||||||
\usepackage{csquotes}
|
|
||||||
|
|
||||||
\title{VEGO-Engine}
|
\title{VEGO-Engine}
|
||||||
\subtitle{A student project}
|
\subtitle{A student project}
|
||||||
\author{Benedikt, Nicole}
|
\author{Benedikt, Nicole}
|
||||||
@ -42,7 +39,7 @@
|
|||||||
\subsection{The project}
|
\subsection{The project}
|
||||||
\begin{frame}{The assigment}
|
\begin{frame}{The assigment}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \enquote{Development of a fantasy game console} (similar to Pico8)
|
\item "Development of a fantasy game console" (similar to Pico8)
|
||||||
\item For simple Arcade like games (think Pong/Space Invaders)
|
\item For simple Arcade like games (think Pong/Space Invaders)
|
||||||
\item Goal was to teach how to manage and program within a larger project
|
\item Goal was to teach how to manage and program within a larger project
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
@ -50,22 +47,22 @@
|
|||||||
\begin{frame}{Our interpretation and goals}
|
\begin{frame}{Our interpretation and goals}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Started out with a Minigame
|
\item Started out with a Minigame
|
||||||
\item Realized we can split it into \enquote{Engine} and \enquote{Game Specific} Content
|
\item Realized we can split it into "Engine" and "Game Specific" Content
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\Rightarrow We could then build on what we have while simultaneously having an implementation using the engine
|
\Rightarrow We could then build on what we have while simultaneously having an implementation using the engine
|
||||||
|
|
||||||
Smart right :D ?\dots
|
Smart right :D ?...
|
||||||
\end{frame}
|
\end{frame}
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
What awaited us was about the equivalent of trying to neatly sort single spaghetti strands next to each other after
|
What awaited us was about the equivalent of trying to neatly sort single spaghetti strands next to each other after
|
||||||
it has previously been generously mixed with some *juicy* pasta sauce.
|
it has previously been generously mixed with some *juicy* pasta sauce.
|
||||||
|
|
||||||
In other words, quite a messy endeavor\dots
|
In other words, quite a messy endeavor...
|
||||||
\end{frame}
|
\end{frame}
|
||||||
\begin{frame}{Roadmap}
|
\begin{frame}{Roadmap}
|
||||||
\nth{3} Semester - learning SDL
|
3st Semester - learning SDL
|
||||||
|
|
||||||
\nth{4} and \nth{5} Semester - making the engine
|
4th/5th Semester - making the engine
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\section{Learnings}
|
\section{Learnings}
|
||||||
@ -89,8 +86,6 @@ Hate
|
|||||||
\item git-modules - do not bloat contributions
|
\item git-modules - do not bloat contributions
|
||||||
}
|
}
|
||||||
|
|
||||||
\subsection{ECS}
|
|
||||||
% ECS slides, split into 3 sections
|
|
||||||
\begin{frame}[allowframebreaks, fragile]{We made an ECS}
|
\begin{frame}[allowframebreaks, fragile]{We made an ECS}
|
||||||
Why an ECS - Entity Component System?
|
Why an ECS - Entity Component System?
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
@ -103,7 +98,7 @@ Why an ECS - Entity Component System?
|
|||||||
\note[itemize]{
|
\note[itemize]{
|
||||||
\item Reusable code mainly on engine side, but also applies to game dev components
|
\item Reusable code mainly on engine side, but also applies to game dev components
|
||||||
\item plug and play mostly an advantage for game dev - i.e. "I want physics, here are physics"
|
\item plug and play mostly an advantage for game dev - i.e. "I want physics, here are physics"
|
||||||
\item \enquote{video series} - tease issue of abruptly ending
|
\item \say{video series} - tease issue of abruptly ending
|
||||||
\item Components usually only have data, and are querried by the system (hence ecS)
|
\item Components usually only have data, and are querried by the system (hence ecS)
|
||||||
\item System part used for rendering
|
\item System part used for rendering
|
||||||
}
|
}
|
||||||
@ -154,8 +149,6 @@ projectile.addComponent<ColliderComponent>(0.6f);
|
|||||||
\end{minted}
|
\end{minted}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
\note{mention: this ease of use is our goal}
|
\note{mention: this ease of use is our goal}
|
||||||
|
|
||||||
\subsection{Memory Management}
|
|
||||||
\begin{frame}[allowframebreaks, fragile]{Memory Management}
|
\begin{frame}[allowframebreaks, fragile]{Memory Management}
|
||||||
\begin{minted}[linenos,autogobble]{c++}
|
\begin{minted}[linenos,autogobble]{c++}
|
||||||
class Manager
|
class Manager
|
||||||
@ -174,20 +167,12 @@ private:
|
|||||||
\end{minted}
|
\end{minted}
|
||||||
\framebreak
|
\framebreak
|
||||||
Does that solve memory management? Not quite:
|
Does that solve memory management? Not quite:
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Missing separation of concern - manager also propagates update call
|
\item Missing separation of concern - manager also propagates update call
|
||||||
\item Does not allow "saving" existing entities
|
\item What if I want to "save" existing entities
|
||||||
|
\item Everything is an entity
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
Architectural issues like this are hard to solve this late in development
|
|
||||||
|
|
||||||
However it does solve memory management\footnote{For \texttt{Entity} classes only, there are some leaks due to bad usage of the \texttt{SDL\_mixer} library}
|
|
||||||
\end{frame}
|
|
||||||
\note[itemize]{
|
|
||||||
\item \enquote{Perfect example of why our ECS is not ideal}
|
|
||||||
\item scene management - would replace manager - however manager is too widely used - break API consistency
|
|
||||||
\item classic example of good on surface level only for a beginner; transition to more such examples
|
|
||||||
}
|
|
||||||
|
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
%code example
|
%code example
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user