\documentclass{beamer} \usepackage[fontsize=24pt]{fontsize} \usepackage{graphicx} \graphicspath{ {./images/} } \usetheme{Warsaw} %Information to be included in the title page: \title{Match-three game engine} \author{Krzysztof Rudnicki} \beamertemplatenavigationsymbolsempty \setbeamertemplate{headline}{} \addtobeamertemplate{navigation symbols}{}{% \usebeamerfont{footline}% \hspace{1em}% \insertframenumber/\inserttotalframenumber } \begin{document} \frame{\titlepage} \begin{frame} \frametitle{Presentation plan} \tableofcontents \end{frame} \section{Why} \begin{frame} \frametitle{Game-engine} Software framework designed for developing video games \end{frame} \begin{frame} \frametitle{General engines} \includegraphics[width=0.4\textwidth]{unity.jpg} \includegraphics[width=0.4\textwidth]{unreal} \end{frame} \begin{frame} \frametitle{Specialized engines} \includegraphics[width=0.4\textwidth]{renpy} \includegraphics[width=0.4\textwidth]{rpgmaker} \end{frame} \begin{frame} \frametitle{Succesful games} \includegraphics[width=0.4\textwidth]{ddlc} \includegraphics{tothemoon} \end{frame} \begin{frame} \frametitle{Why specialized engine} \begin{itemize} \item Smaller scope (easier) \item Existing success stories \item Less competition \item Unix philosophy \end{itemize} \end{frame} \begin{frame} \frametitle{match-three example} \includegraphics[width=0.9\textwidth]{bejewield} \end{frame} \begin{frame} \frametitle{Match-three concepts} \begin{itemize} \item Board Representation \item Game Logic \item User Interaction \item Animation and Graphics \end{itemize} \end{frame} \begin{frame} \frametitle{Why match-three games} \begin{itemize} \item Relatively easy to program \item Popular \item Work on everything \item Graphics dependable \end{itemize} \end{frame} \begin{frame} \frametitle{Multiplatform} \begin{itemize} \item Linux \item Windows \item Android/iOS \item Mac \end{itemize} \end{frame} \section{How} \begin{frame} \frametitle{Project scope} \begin{itemize} \item Custom graphics (tiles/backgrounds) \item Custom shaders \item Defining game rules \item Building multiplatform \end{itemize} \end{frame} \begin{frame} \frametitle{Technology} \begin{itemize} \item C++ \item OpenGL ES (API) \item GLFW (windows/input) \item GLM (math) \end{itemize} \end{frame} \begin{frame} \frametitle{Ease of match 3} \includegraphics[height=0.6\textwidth]{easy} Smaller scope \end{frame} \begin{frame} \frametitle{Engine design overhaul} \begin{itemize} \item Window/Input management \item Graphics/Rendering \item Gems attributes \item Game Logic \end{itemize} \end{frame} \begin{frame} \frametitle{Window/Input} GLFW: \begin{itemize} \item Create window \item Handle input \item Rendering context \end{itemize} \end{frame} \begin{frame} \frametitle{User inputs} \includegraphics[width=0.4\textwidth]{keyboard.jpg} \includegraphics[width=0.4\textwidth]{xbox360.jpg} \includegraphics[width=0.4\textwidth]{finger.jpg} \end{frame} \begin{frame} \frametitle{Graphics/Rendering} \begin{itemize} \item Shaders \item Vertex Buffer Objects \item Vertex Array Objects \end{itemize} \end{frame} \begin{frame} \frametitle{Gems attributes} \begin{itemize} \item Type \item Status \item Position \item Value \end{itemize} \end{frame} \begin{frame} \frametitle{Game Logic} \begin{itemize} \item Check for matches \item Remove matched \item Fill board \end{itemize} \end{frame} \begin{frame} \frametitle{Animation} \includegraphics[width=0.9\textwidth]{swap.png} \end{frame} \section{Summary} \begin{frame} Thesis is about creating a game engine specialized in match-three multiplatform games using OpenGL \frametitle{Summary} \end{frame} \section{References} \begin{frame} \begin{itemize} \item \href{https://docs.gl/}{https://docs.gl/} \item \href{https://learnopengl.com/}{https://learnopengl.com/} \item \href{https://www.youtube.com/c/gameengineseries}{The Cherno} \item Game Engine Architecture, Jason Gregory \end{itemize} \frametitle{References/sources} \end{frame} \end{document}