mirror of
https://github.com/kuhyx/WUT_Computer_Science.git
synced 2026-07-04 20:43:06 +02:00
205 lines
5.2 KiB
TeX
205 lines
5.2 KiB
TeX
\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} |