praca_magisterska/latex/main.tex

176 lines
7.9 KiB
TeX

%-----------------------------------------------
% 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ą
%-------------------------------------------------------------
% 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
\MasterThesis % Praca inżynierska
\langpol % Praca w języku polskim
\begin{document}
%------------------
% Strona tytułowa
%------------------
\instytut{Automatyki i Informatyki Stosowanej}
\kierunek{Informatyka}
\specjalnosc{Inteligetne Systemy}
\title{
Porównanie wydajności i możliwości współczesnych silników gier komputerowych
}
% Title in English for English theses
% In English theses, you may remove this command
\engtitle{
Comparison of performance and capabilities of modern computer games engines
}
\author{inż. Krzysztof Rudnicki}
\album{307585}
\promotor{dr inż. Michał Chwesiuk}
\date{\the\year}
\maketitle
%-------------------------------------
% Streszczenie po polsku dla \langpol
% English abstract if \langeng is set
%-------------------------------------
\cleardoublepage % Zaczynamy od nieparzystej strony
\abstract
Niniejsza praca przedstawia kompleksowe porównanie dwóch wiodących silników gier komputerowych: Unity oraz Unreal Engine. Badania obejmują zarówno analizę ilościową (testy wydajnościowe z~wykorzystaniem NVIDIA Nsight Graphics), jak i~jakościową (wywiady z~ośmioma deweloperami gier posiadającymi praktyczne doświadczenie w~obu silnikach). W~ramach pracy zaimplementowano identyczną grę z~gatunku bullet hell w~obu środowiskach, co pozwoliło na bezpośrednie porównanie procesu deweloperskiego oraz wydajności końcowych aplikacji.
Wyniki badań wskazują, że Unity oferuje niższy próg wejścia, lepsze wsparcie dla gier 2D oraz szybszy cykl iteracji dzięki natywnej obsłudze hot reload. Unreal Engine natomiast wyróżnia się zaawansowanymi możliwościami graficznymi, systemem wizualnego programowania Blueprints oraz lepszym wsparciem dla produkcji AAA. Testy wydajnościowe wykazały różnice w~zarządzaniu pamięcią wynikające z~odmiennych podejść architektonicznych: garbage collector w~Unity (C\#) versus ręczne zarządzanie pamięcią w~Unreal (C++).
Praca dostarcza praktycznych rekomendacji dotyczących wyboru silnika w~zależności od typu projektu, doświadczenia zespołu oraz wymagań technicznych. Wyniki mogą być przydatne zarówno dla początkujących deweloperów podejmujących decyzję o~wyborze pierwszego silnika, jak i~dla doświadczonych zespołów rozważających migrację między platformami.
\keywords silnik gier, Unity, Unreal Engine, porównanie wydajności, bullet hell, profilowanie GPU, NVIDIA Nsight, tworzenie gier
%----------------------------------------
% Streszczenie po angielsku dla \langpol
% Polish abstract if \langeng is set
%----------------------------------------
\clearpage
\secondabstract
This thesis presents a~comprehensive comparison of two leading game engines: Unity and Unreal Engine. The research encompasses both quantitative analysis (performance testing using NVIDIA Nsight Graphics) and qualitative analysis (interviews with eight game developers with practical experience in both engines). As part of the study, an identical bullet hell game was implemented in both environments, enabling direct comparison of the development process and final application performance.
The findings indicate that Unity offers a~lower entry barrier, better support for 2D games, and a~faster iteration cycle due to native hot reload support. Unreal Engine, on the other hand, excels in advanced graphical capabilities, the Blueprints visual programming system, and better support for AAA productions. Performance tests revealed differences in memory management resulting from distinct architectural approaches: garbage collector in Unity (C\#) versus manual memory management in Unreal (C++).
The thesis provides practical recommendations for engine selection depending on project type, team experience, and technical requirements. The results may be useful for both novice developers making decisions about their first engine choice and experienced teams considering migration between platforms.
\secondkeywords game engine, Unity, Unreal Engine, performance comparison, bullet hell, GPU profiling, NVIDIA Nsight, game development
\pagestyle{plain}
%--------------
% Spis treści
%--------------
\cleardoublepage % Zaczynamy od nieparzystej strony
\tableofcontents
%------------
% Rozdziały
%------------
\cleardoublepage % Zaczynamy od nieparzystej strony
\pagestyle{headings}
\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/4-metodologia} % Metodologia badań i kryteria porównania
\input{tex/wywiady-analiza} % Analiza wywiadów z deweloperami gier
\input{tex/implementacja-gry} % Doświadczenia z implementacji gry testowej
\input{tex/narzedzia-profilowania} % Narzędzia profilowania wydajności
\input{tex/5-testy-wydajnosci} % Testy wydajności
\input{tex/6-analiza-mozliwosci} % Analiza możliwości i funkcjonalności
\input{tex/7-porownanie-wynikow} % Porównanie wyników i analiza
\input{tex/8-podsumowanie} % Podsumowanie i wnioski
%---------------
% Bibliografia
%---------------
\cleardoublepage % Zaczynamy od nieparzystej strony
\begingroup
\emergencystretch=1em
\printbibliography
\endgroup
\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}
\acronym{WEIRD}{ang. \emph{Western, Educated, Industrialized, Rich and Democratic}}
\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
\listofappendicestoc % Spis załączników
%-------------
% 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
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]
% 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.