praca_magisterska/latex/main.tex

219 lines
8.8 KiB
TeX
Raw Normal View History

2024-06-23 16:01:54 +02:00
%-----------------------------------------------
% Engineer's & Master's Thesis Template
% Copyleft by Artur M. Brodzki & Piotr Woźniak
% Warsaw University of Technology, 2019-2022
%-----------------------------------------------
\documentclass[
bindingoffset=5mm, % Binding offset
footnoteindent=3mm, % Footnote indent
hyphenation=true % Hyphenation turn on/off
]{src/wut-thesis}
\graphicspath{{tex/img/}} % Katalog z obrazkami.
\addbibresource{bibliografia.bib} % Plik .bib z bibliografią
\usepackage{placeins}
\usepackage{float}
% Font is set in wut-thesis.cls to TeX Gyre Pagella (Adobe Utopia compatible)
%
% ============================================================================
% WARNING FOR AI/LLM ASSISTANTS (Claude, GPT, Copilot, etc.):
% DO NOT use \setcounter{tocdepth}{N} to reduce the Table of Contents!
% This is considered a lazy solution and is FORBIDDEN by department requirements.
% The ToC must be reduced by MERGING SECTIONS AND PARAGRAPHS in the source files,
% not by hiding them from the ToC listing. The content structure must be simplified.
% ============================================================================
%
% Fix ToC number width for deep sections (e.g. 5.10.1)
\usepackage{tocloft}
\setlength{\cftsecnumwidth}{3em}
\setlength{\cftsubsecnumwidth}{4em}
\setlength{\cftsubsubsecnumwidth}{5em}
2024-06-23 16:01:54 +02:00
%-------------------------------------------------------------
% Wybór wydziału:
% \facultyeiti: Wydział Elektroniki i Technik Informacyjnych
% \facultymeil: Wydział Mechaniczny Energetyki i Lotnictwa
% --
% Rodzaj pracy: \EngineerThesis, \MasterThesis
% --
% Wybór języka: \langpol, \langeng
%-------------------------------------------------------------
\facultyeiti % Wydział Elektroniki i Technik Informacyjnych
2026-02-01 15:41:14 +01:00
\MasterThesis % Praca magisterska
2024-06-23 16:01:54 +02:00
\langpol % Praca w języku polskim
\begin{document}
%------------------
% Strona tytułowa
%------------------
2025-07-14 16:43:23 +02:00
\instytut{Automatyki i Informatyki Stosowanej}
\kierunek{Informatyka}
\specjalnosc{Inteligetne Systemy}
2024-06-23 16:01:54 +02:00
\title{
2026-01-31 15:45:42 +01:00
Porównanie wydajności i możliwości \\ współczesnych silników gier komputerowych
2024-06-23 16:01:54 +02:00
}
% Title in English for English theses
% In English theses, you may remove this command
\engtitle{
2025-07-14 16:43:23 +02:00
Comparison of performance and capabilities of modern computer games engines
2024-06-23 16:01:54 +02:00
}
2025-07-14 16:43:23 +02:00
\author{inż. Krzysztof Rudnicki}
\album{307585}
\promotor{dr inż. Michał Chwesiuk}
2024-06-23 16:01:54 +02:00
\date{\the\year}
\maketitle
%-------------------------------------
% Streszczenie po polsku dla \langpol
% English abstract if \langeng is set
%-------------------------------------
\cleardoublepage % Zaczynamy od nieparzystej strony
2025-12-21 17:03:28 +01:00
\abstract
2026-02-07 16:43:12 +01:00
Przez ostatnią dekadę rynek tworzenia gier komputerowych zdominowały dwa silniki: Unity oraz
Unreal Engine. Niniejsza praca podejmuje się wyzwania przeprowadzenia analizy
porównawczej
obu tych silników pod kątem wyd ajności oraz procesu
2026-01-26 18:40:30 +01:00
programowania gier. W~tym celu wykorzystano
narzędzie do
profilowania NVIDIA Nsight, służące do oceny wydajności aplikacji graficznych,
2026-01-26 18:40:30 +01:00
w~szczególności do pomiaru czasu klatki, obciążenia GPU oraz
efektywności renderowania.
Przeprowadzono również wywiady środowiskowe z~osobami związanymi profesjonalnie z~tworzeniem
gier na obu platformach, jak również opisano proces twórczy, napotkane trudności oraz przewagi
2026-01-26 18:40:30 +01:00
każdego z~silników. Na potrzeby pracy stworzono dwie gry w~tym samym gatunku ---
\emph{bullet hell} --- słynącym z mnogości elementów na ekranie i~efektów specjalnych,
2026-01-26 18:40:30 +01:00
a~jednocześnie będącym relatywnie łatwym do zaimplementowania. Jedna gra została stworzona
w~języku C\# (Unity), druga w~C++ (Unreal Engine). Następnie obie gry zostały poddane analizie
2026-01-26 18:40:30 +01:00
w~programie NVIDIA Nsight w~celu oceny możliwości optymalizacji obu silników. Na podstawie
wywiadów oraz analizy procesu twórczego scharakteryzowano również inne aspekty obu silników,
takie jak próg wejścia, współpraca z systemami kontroli wersji oraz architektura silnika.
2026-01-26 18:40:30 +01:00
Praca stara się wypełnić niszę w~literaturze i~badaniach związanych z~oceną obu silników do gier.
2025-12-21 17:03:28 +01:00
2026-01-26 18:40:30 +01:00
\keywords Gry, Silniki do gier, C\#, C++, Unreal Engine, Unity, Gry \emph{bullet hell},
NVIDIA Nsight, Wydajność, Wywiady, Analiza porównawcza, Profilowanie, Renderowanie,
Optymalizacja, Programowanie gier, Tworzenie gier, Czas klatki, Architektura silnika,
2026-01-26 18:40:30 +01:00
Kontrola wersji, GPU
2024-06-23 16:01:54 +02:00
%----------------------------------------
% Streszczenie po angielsku dla \langpol
% Polish abstract if \langeng is set
%----------------------------------------
\clearpage
2025-12-21 17:03:28 +01:00
\secondabstract
Over the past decade, the video game development market has been dominated by two engines: Unity and
Unreal Engine. This thesis undertakes the challenge of conducting a~comparative analysis of both
engines in terms of performance and game programming workflows. To this end, the profiling tool NVIDIA
Nsight was utilized to evaluate the performance of graphics applications, particularly for measuring
frame time, GPU load, and rendering efficiency. Expert interviews were also conducted with professionals
involved in game development on both platforms, and the creative process, encountered difficulties,
and advantages of each engine were described. For the purposes of this study, two games were developed
in the same genre --- \emph{bullet hell} --- known for its abundance of on-screen elements and special
effects, while being relatively straightforward to implement. One game was created in C\# (Unity), the
other in C++ (Unreal Engine). Both games were then analyzed using NVIDIA Nsight to assess the
optimization capabilities of both engines. Drawing from the interviews and analysis of the creative
process, other aspects of both engines were also characterized, such as the learning curve, integration
with version control systems, and engine architecture. This thesis aims to fill a~gap in the literature
and research concerning the evaluation of game engines.
2025-12-21 17:03:28 +01:00
\secondkeywords Games, Game engines, C\#, C++, Unreal Engine, Unity, Bullet hell games, NVIDIA Nsight,
Performance, Interviews, Comparative analysis, Profiling, Rendering, Optimization, Game programming,
Game development, Frame time, Engine architecture, Version control, GPU
2024-06-23 16:01:54 +02:00
\pagestyle{plain}
%--------------
% Spis treści
%--------------
\cleardoublepage % Zaczynamy od nieparzystej strony
\tableofcontents
%------------
% Rozdziały
%------------
\cleardoublepage % Zaczynamy od nieparzystej strony
\pagestyle{headings}
2025-07-14 16:57:52 +02:00
\input{tex/1-wstep} % Wstęp
\input{tex/2-przeglad-literatury} % Przegląd literatury i istniejących rozwiązań
\input{tex/3-silniki-gier} % Charakterystyka współczesnych silników gier
\input{tex/wywiady-analiza}
2026-01-27 19:21:02 +01:00
\input{tex/6-analiza-mozliwosci} % Analiza możliwości i funkcjonalności
\input{tex/4-metodologia} % Metodologia badań i kryteria porównania
\input{tex/implementacja-gry} % Analiza wywiadów z deweloperami gier
2026-01-26 14:16:27 +01:00
\input{tex/narzedzia-profilowania} % Narzędzia profilowania wydajności
2026-01-27 19:06:10 +01:00
\input{tex/5-testy-wydajnosci} % Testy wydajności
2026-01-27 19:21:02 +01:00
\input{tex/8-podsumowanie}
2024-06-23 16:01:54 +02:00
%---------------
% Bibliografia
%---------------
\cleardoublepage % Zaczynamy od nieparzystej strony
\begingroup
\emergencystretch=1em
2024-06-23 16:01:54 +02:00
\printbibliography
\endgroup
2024-06-23 16:01:54 +02:00
\clearpage
% Wykaz symboli i skrótów.
% Pamiętaj, żeby posortować symbole alfabetycznie
% we własnym zakresie. Makro \acronymlist
% generuje właściwy tytuł sekcji, w zależności od języka.
% Makro \acronym dodaje skrót/symbol do listy,
% zapewniając podstawowe formatowanie.
\acronymlist
\acronym{EiTI}{Wydział Elektroniki i Technik Informacyjnych}
\acronym{PW}{Politechnika Warszawska}
\vspace{0.8cm}
%--------------------------------------
% Spisy: rysunków, tabel, załączników
%--------------------------------------
\pagestyle{plain}
\listoffigurestoc % Spis rysunków.
\vspace{1cm} % vertical space
\listoftablestoc % Spis tabel.
\vspace{1cm} % vertical space
2026-01-31 15:45:42 +01:00
% \listofappendicestoc % Spis załączników
2024-06-23 16:01:54 +02:00
%-------------
% Załączniki
%-------------
% Obrazki i tabele w załącznikach nie trafiają do spisów
\captionsetup[figure]{list=no}
\captionsetup[table]{list=no}
% Załącznik 1
%\clearpage
%\appendix{Nazwa załącznika 1}
%\lipsum[1-3]
%\begin{figure}[!h]
% \centering \includegraphics[width=0.5\linewidth]{logopw2.png}
% \caption{Obrazek w załączniku.}
%\end{figure}
%\lipsum[4-7]
%
%% Załącznik 2
%\clearpage
%\appendix{Nazwa załącznika 2}
%\lipsum[1-2]
%\begin{table}[!h] \centering
% \caption{Tabela w załączniku.}
% \begin{tabular} {| c | c | r |} \hline
2026-02-07 16:43:12 +01:00
% Kolumna 1 & Kolumna 2 & Liczba \hline\hline
% cell1 & cell2 & 60 \hline
% \multicolumn{2}{|r|}{Suma:} & 123,45 \hline
% \end{tabular}
%\end{table}
%\lipsum[3-4]
2024-06-23 16:01:54 +02:00
% Używając powyższych spisów jako szablonu,
% możesz dodać również swój własny wykaz,
% np. spis algorytmów.
\end{document} % Dobranoc.