diff --git a/NotProgramming/SDM/presentations/my_thesis/images/GameMaker.png b/NotProgramming/SDM/presentations/my_thesis/images/GameMaker.png new file mode 100644 index 00000000..416f5302 Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/GameMaker.png differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/RPG_Maker_MV_Logo.webp b/NotProgramming/SDM/presentations/my_thesis/images/RPG_Maker_MV_Logo.webp new file mode 100644 index 00000000..bb3e3149 Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/RPG_Maker_MV_Logo.webp differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/RenPy.png b/NotProgramming/SDM/presentations/my_thesis/images/RenPy.png new file mode 100644 index 00000000..919fa36b Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/RenPy.png differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/bad_fps.png b/NotProgramming/SDM/presentations/my_thesis/images/bad_fps.png new file mode 100644 index 00000000..da5af607 Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/bad_fps.png differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/dx12_frame_health.png b/NotProgramming/SDM/presentations/my_thesis/images/dx12_frame_health.png new file mode 100644 index 00000000..3e7cb278 Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/dx12_frame_health.png differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/fps_overview.png b/NotProgramming/SDM/presentations/my_thesis/images/fps_overview.png new file mode 100644 index 00000000..f7d838c7 Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/fps_overview.png differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/fps_pick.png b/NotProgramming/SDM/presentations/my_thesis/images/fps_pick.png new file mode 100644 index 00000000..7a8f5181 Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/fps_pick.png differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/godot.png b/NotProgramming/SDM/presentations/my_thesis/images/godot.png new file mode 100644 index 00000000..86acb15e Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/godot.png differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/logo_vertical_color_light.svg b/NotProgramming/SDM/presentations/my_thesis/images/logo_vertical_color_light.svg new file mode 100644 index 00000000..bd2e2e8d --- /dev/null +++ b/NotProgramming/SDM/presentations/my_thesis/images/logo_vertical_color_light.svg @@ -0,0 +1 @@ + diff --git a/NotProgramming/SDM/presentations/my_thesis/images/maxresdefault (1).jpg b/NotProgramming/SDM/presentations/my_thesis/images/maxresdefault (1).jpg new file mode 100644 index 00000000..01d5bfb2 Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/maxresdefault (1).jpg differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/maxresdefault.jpg b/NotProgramming/SDM/presentations/my_thesis/images/maxresdefault.jpg new file mode 100644 index 00000000..1281f02c Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/maxresdefault.jpg differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/memory_utilization.png b/NotProgramming/SDM/presentations/my_thesis/images/memory_utilization.png new file mode 100644 index 00000000..5a93fa6f Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/memory_utilization.png differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/memory_utilization_gpu_vram.png b/NotProgramming/SDM/presentations/my_thesis/images/memory_utilization_gpu_vram.png new file mode 100644 index 00000000..e2e246a3 Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/memory_utilization_gpu_vram.png differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/memory_utilization_memory_transfer.png b/NotProgramming/SDM/presentations/my_thesis/images/memory_utilization_memory_transfer.png new file mode 100644 index 00000000..39bd7734 Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/memory_utilization_memory_transfer.png differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/memory_utilization_resource_migrations.png b/NotProgramming/SDM/presentations/my_thesis/images/memory_utilization_resource_migrations.png new file mode 100644 index 00000000..21d984c2 Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/memory_utilization_resource_migrations.png differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/nvida_nsighty.jpg b/NotProgramming/SDM/presentations/my_thesis/images/nvida_nsighty.jpg new file mode 100644 index 00000000..b9dd79bb Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/nvida_nsighty.jpg differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/steamdb_filter b/NotProgramming/SDM/presentations/my_thesis/images/steamdb_filter new file mode 100644 index 00000000..e5cd0ed6 --- /dev/null +++ b/NotProgramming/SDM/presentations/my_thesis/images/steamdb_filter @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NotProgramming/SDM/presentations/my_thesis/images/steamdb_filter.drawio.pdf b/NotProgramming/SDM/presentations/my_thesis/images/steamdb_filter.drawio.pdf new file mode 100644 index 00000000..6c71c2fe Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/steamdb_filter.drawio.pdf differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/steamdb_main.png b/NotProgramming/SDM/presentations/my_thesis/images/steamdb_main.png new file mode 100644 index 00000000..8287d788 Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/steamdb_main.png differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/steamdb_release.png b/NotProgramming/SDM/presentations/my_thesis/images/steamdb_release.png new file mode 100644 index 00000000..c473c373 Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/steamdb_release.png differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/steamdb_technologia.png b/NotProgramming/SDM/presentations/my_thesis/images/steamdb_technologia.png new file mode 100644 index 00000000..6e9f0558 Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/steamdb_technologia.png differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/steamdb_type.png b/NotProgramming/SDM/presentations/my_thesis/images/steamdb_type.png new file mode 100644 index 00000000..4bf2ee55 Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/steamdb_type.png differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/stutter_row.png b/NotProgramming/SDM/presentations/my_thesis/images/stutter_row.png new file mode 100644 index 00000000..2e4c9185 Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/stutter_row.png differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/unisex-black-gamemaker-logo-gamemaker.jpg b/NotProgramming/SDM/presentations/my_thesis/images/unisex-black-gamemaker-logo-gamemaker.jpg new file mode 100644 index 00000000..4716bb2b Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/unisex-black-gamemaker-logo-gamemaker.jpg differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/unity.png b/NotProgramming/SDM/presentations/my_thesis/images/unity.png new file mode 100644 index 00000000..e9020bc6 Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/unity.png differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/unity_profiler.png b/NotProgramming/SDM/presentations/my_thesis/images/unity_profiler.png new file mode 100644 index 00000000..2ced8b9f Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/unity_profiler.png differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/unreal.png b/NotProgramming/SDM/presentations/my_thesis/images/unreal.png new file mode 100644 index 00000000..b709db88 Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/unreal.png differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/unreal_profiler.jpg b/NotProgramming/SDM/presentations/my_thesis/images/unreal_profiler.jpg new file mode 100644 index 00000000..b22cff4b Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/unreal_profiler.jpg differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/usedEngines.pdf b/NotProgramming/SDM/presentations/my_thesis/images/usedEngines.pdf new file mode 100644 index 00000000..411e58dd Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/usedEngines.pdf differ diff --git a/NotProgramming/SDM/presentations/my_thesis/images/vulkan_frame_health.png b/NotProgramming/SDM/presentations/my_thesis/images/vulkan_frame_health.png new file mode 100644 index 00000000..7676f2fb Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/images/vulkan_frame_health.png differ diff --git a/NotProgramming/SDM/presentations/my_thesis/main.pdf b/NotProgramming/SDM/presentations/my_thesis/main.pdf new file mode 100644 index 00000000..67e5a3ae Binary files /dev/null and b/NotProgramming/SDM/presentations/my_thesis/main.pdf differ diff --git a/NotProgramming/SDM/presentations/my_thesis/main.tex b/NotProgramming/SDM/presentations/my_thesis/main.tex new file mode 100644 index 00000000..5762e89a --- /dev/null +++ b/NotProgramming/SDM/presentations/my_thesis/main.tex @@ -0,0 +1,332 @@ +\documentclass{beamer} +\usepackage[fontsize=20pt]{fontsize} +\usepackage{graphicx} +\usepackage{tikz} +\usepackage{svg} +\usepackage[polish]{babel} +\graphicspath{ {./images/} } +\usetheme{Warsaw} + +%Information to be included in the title page: + +% Custom title page layout adjustments +\title{\large Porównanie wydajności i możliwości współczesnych silników do gier komputerowych} +\author{Krzysztof Rudnicki} +\institute{ + \textbf{Promotor} \\ + dr inż. Michał Chwesiuk +} +\date{\scriptsize \today} % Adjust the font size here + + +\setbeamertemplate{footline}[frame number]{} +\beamertemplatenavigationsymbolsempty +\setbeamertemplate{headline}{} + + + + + + +\begin{document} + +\begin{frame} + \vspace{-0.5cm} % Adjust vertical space above title + \maketitle + % Alternatively, use a completely custom layout: + %\begin{center} + % {\Large\inserttitle\par} + % \vskip1em + % {\insertauthor\par} + % \vskip1em + % {\insertinstitute\par} + % \vskip1em + % {\insertdate\par} + %\end{center} +\end{frame} + +\begin{frame} +\frametitle{Plan prezentacji} +\tableofcontents +\end{frame} + +\section{Definicje} +\begin{frame} + \frametitle{Gra komputerowa} + \large Aplikacja dostępna na platformie "Steam" oznaczona typem "Game" +\end{frame} +\begin{frame} +\frametitle{Silnik do gier} +\large Oprogramowanie zaprojektowane i stworzone do kreacji gier komputerowych +\end{frame} + +\begin{frame} + \frametitle{Nowoczesne} + \large Ponad 1000 gier w tej dekadzie na platformie "Steam" +\end{frame} + + +{ + \setbeamercolor{footline}{fg=white} +\usebackgroundtemplate{\includegraphics[width=\paperwidth, height=\paperheight]{steamdb_main.png}} +\begin{frame} +\end{frame} +} + + +{ +\usebackgroundtemplate{\includegraphics[width=\paperwidth, height=\paperheight]{steamdb_filter.drawio.pdf}} +\begin{frame} +\end{frame} +} + +\begin{frame} + \frametitle{Wybrane silniki - start} + \begin{center} + \includegraphics[width=0.8\paperwidth, height=0.8\paperheight]{usedEngines.pdf} +\end{center} +\end{frame} + +\begin{frame} + \frametitle{Wybrane silniki} + \begin{itemize} + \item Wyeliminowanie nie generycznych - Ren'Py, RPGMaker + \item Wybór najpopularniejszych - Unity, Unreal + % Prawie 25k i ponad 7.5k + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Wydajność silnika} + \begin{itemize} + \item Klatki na sekundę (FPS) + \item Zużycie CPU, GPU, RAM i VRAM + \item Liczba draw calls + \item Czas ładowania assetów + \item Czas odpowiedzi na interakcję gracza + \end{itemize} +\end{frame} +\begin{frame} + \frametitle{Możliwości Silnika} + \begin{itemize} + \item Renderowanie grafiki + % Ray tracing, HDR lighting, dynamic shadows, particle systems, animacja + \item Silnik Fizyczny + \item Multiplatformowość (VR) + % Linux, Windows, MacOS, Android, IOs, Xbox, PlayStation, Nintendo, VR + \item Skryptowanie logiki gier (AI) + \item Gry online + \item Sklepy z assetami + \end{itemize} + \end{frame} + \section{Narzędzia} + \frametitle{Unity Profiler} + { + \setbeamercolor{footline}{fg=white} + \usebackgroundtemplate{ + \includegraphics[width=\paperwidth, height=\paperheight] + {unity_profiler.png}} + \begin{frame} + \end{frame} + } + + \frametitle{Unreal Profiler} + { + \setbeamercolor{footline}{fg=white} + \usebackgroundtemplate{ + \includegraphics[width=\paperwidth, height=\paperheight] + {unreal_profiler.jpg}} + \begin{frame} + \end{frame} + } + + \frametitle{Nvidia nsight} + { + \setbeamercolor{footline}{fg=white} + \usebackgroundtemplate{ + \includegraphics[width=\paperwidth, height=\paperheight] + {nvida_nsighty.jpg}} + \begin{frame} + \end{frame} + } + + + \begin{frame} + \frametitle{Nsight - Analiza FPS} + \center + \includegraphics[width=1\textwidth]{fps_overview.png} + % Ile klatek pokazaliśmy na ile + % ile trwała średnio klatka + % Ile trwała najkrótsza klatka + % Ile trwała najdłuższa klatka + % Przeciętne klatki na sekundę dla pokazanego wycinka + % Tyle lub mniej czasu trwało 99% klatek + \end{frame} + + \begin{frame} + \frametitle{Nsight - Analiza FPS} + \center + \includegraphics[width=1\textwidth]{stutter_row.png} + % Wykrywanie "zawieszek" + % Wykrywamy klatki których długość + % jest znacznie dłuższa od długości mediany pobliskich 19 klatek + % zawieszka musi być dłuższa niż 4 milisekundy + \end{frame} + + \begin{frame} + \frametitle{Nsight - Analiza FPS} + \center + \includegraphics[width=1\textwidth]{dx12_frame_health.png} + % Możemy sprawdzić jaka klatka miała zawieszkę + % I jaka metoda w api tę zawieszkę spowodowała + \end{frame} + + \begin{frame} + \frametitle{Nsight - Zużycie VRAM} + \center + \includegraphics[width=1\textwidth]{memory_utilization.png} + % Zielony -> ile pamięci mamy dostępnej + % Pomarańczowy -> ile pamięci zużyliśmy + \end{frame} + + \begin{frame} + \frametitle{Nsight - Zużycie VRAM} + \center + \includegraphics[width=1\textwidth]{memory_utilization_gpu_vram.png} + % VidMm Device Suspension -> okresy czasku kiedy przetransferowano + % Jeden duży zasób pamięci + % Demoted Memory -> w GPU mamy local memory (szybsze) i global memory + % (wolniejsze) to może nam mówić o "wyciekach" pamięci + % źle zooptymalizowanej pamięci itd. + % Allokacja pamięci -> zielone aplikacja, szare -> system + \end{frame} + + \begin{frame} + \frametitle{Nsight - Zużycie VRAM} + \center + \includegraphics[width=1\textwidth]{memory_utilization_resource_migrations.png} + % W kolejności co najwięcej zużyło zasobów + % Konkretnie ile i kiedy + \end{frame} + + \begin{frame} + \frametitle{Nsight - Zużycie VRAM} + \center + \includegraphics[width=1\textwidth]{memory_utilization_memory_transfer.png} + % W kolejności co najwięcej zużyło zasobów + % Konkretnie ile i kiedy + \end{frame} + + \begin{frame} + \frametitle{Jak porównywać?} + \begin{itemize} + \item Stworzenie gry na obu + \item Porównywanie istniejących gier + \item Porównanie samych edytorów + \end{itemize} + \end{frame} + + { + \setbeamercolor{footline}{fg=white} + \usebackgroundtemplate{ + \includegraphics[width=\paperwidth, height=\paperheight] + {maxresdefault (1).jpg}} + \begin{frame} + \end{frame} + } + + \begin{frame} + \frametitle{Wybór gatunku} + FPS: + \begin{itemize} + \item Wystarczająco skomplikowany + \item Grafika + \item Fizyka + \item Klasyczny benchmark + % Wolfenstein, Doom, Quake, Crysis + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Problem} + Inklinacja Silnika \\ + \begin{itemize} + \item $ \frac{2478}{39713} \approx 6\% $ gier Unity to FPS \\ + \item $ \frac{1765}{11158} \approx 15\% $ gier Unreal to FPS \\ + \end{itemize} + Źródło: steamdb.info + \end{frame} + + \begin{frame} + \frametitle{Wybór gatunku} + Bullet hell: + \begin{itemize} + \item Wystarczająco skomplikowany + \item Grafika + \item Czas jest ważny + % W Bullet hell czas jest ważny, gra musi być płynna + \end{itemize} + \end{frame} + + { + \setbeamercolor{footline}{fg=white} + \usebackgroundtemplate{ + \includegraphics[width=\paperwidth, height=\paperheight] + {maxresdefault.jpg}} + \begin{frame} + \end{frame} + } + \begin{frame} + \frametitle{Wyzwania} + \begin{itemize} + \item Sprzęt + % Ten sam, jeden i ten sam komputer użyty w procesie kreacji obu + \item Umiejętności + % Nie mam + \item Podobne wersje silnika + % Użyje ostatniego LTS + \item Inklinacja Silnika \\ (3\% Unity, 2.4\% Unreal) + % ??? Ch + % 1577 FPS UNITY, 271 FPS UNREAL + % 39713 Total Unity, 11158 Total Unreal (proporcjonalnie 2 razy więcej :<) + \end{itemize} + \end{frame} + + \begin{frame} + \frametitle{Ocena łatwości użycia} + \begin{itemize} + \item Dokumentacja + \item Intuicyjność + \item Materiały + \item Zasoby (Assety) + \item Dostępne funkcje + \end{itemize} + \end{frame} + + + + \begin{frame} + \frametitle{Po stworzeniu} + Przejść obie gry, monitorując używając Nvidia Nsight i porównać wyniki + \end{frame} + + + \section{Źródła} +\begin{frame} + \frametitle{Źródła} + \begin{itemize} + \item \href{https://steamdb.info/}{https://steamdb.info/} + \item \href{https://docs.nvidia.com/nsight-systems}{https://docs.nvidia.com/nsight-systems} + \item An Overview Study of Game Engines, Faizi Noor Ahmad + \item Game Engine Architecture, Jason Gregory + \end{itemize} + \end{frame} + + \begin{frame} + \frametitle{Źródła obrazów} + \begin{itemize} + \item Crysis - kanał youtube \href{https://www.youtube.com/watch?v=vGjOALIrL_U}{Thronefull} + \item BulletHell - kanał youtube \href{https://www.youtube.com/watch?app=desktop&v=h-wr6LoETA0}{Beat that boss} + \end{itemize} + \end{frame} + +\end{document} \ No newline at end of file diff --git a/NotProgramming/SDM/presentations/my_thesis/script.txt b/NotProgramming/SDM/presentations/my_thesis/script.txt new file mode 100644 index 00000000..2ae14544 --- /dev/null +++ b/NotProgramming/SDM/presentations/my_thesis/script.txt @@ -0,0 +1,15 @@ +Dzień dobry państwu, nazywam się Krzysztof Rudnicki i chciałbym opowiedzieć o mojej pracy magisterskiej pod promotorstwem Pana doktora Michała Chwesiuka, o tytule Porównanie wydajnośći i możliwości współczesnych silników gier komputerowych + +Jeżeli pojawią się jakieś pytania to można je jak najbardziej zadawać w trakcie + +Plan prezentacji wygląda następująco, najpierw omówię krótko co +rozumiem pod pojęciem silnika do gier, +jakie są współczesne silniki do gier, +które z nich będę porównywał, +czym są możliwości i wydajności tych silników +i jak zamierzam je porównywać + +Chciałbym aby po tej prezentacji wiedzieli Państwo więcej o tym jak można +porównywać silniki graficzne niż przed nią + +