praca_magisterska/latex/tex/1-wstep.tex

124 lines
6.3 KiB
TeX
Raw Normal View History

2024-06-23 16:01:54 +02:00
\clearpage % Rozdziały zaczynamy od nowej strony.
2025-07-14 16:57:52 +02:00
\section{Wstęp}
2024-06-23 16:01:54 +02:00
W tym rozdziale przedstawiono motywację, cel oraz zakres pracy, wybór gry testowej oraz przyjętą metodologię.
2025-07-14 16:57:52 +02:00
\subsection{Motywacja i cel pracy}
2026-02-06 19:17:22 +01:00
Współczesny rynek gier komputerowych charakteryzuje się dynamicznym
rozwojem technologicznym i~rosnącymi wymaganiami zarówno twórców,
2026-02-06 19:17:22 +01:00
jak i graczy. Wybór odpowiedniego silnika gier jest kluczową decyzją,
która wpływa na cały proces tworzenia gry, jej wydajność oraz możliwości techniczne.
2024-06-23 16:01:54 +02:00
Celem niniejszej pracy jest porównanie wydajności i~możliwości dwóch głównych, współczesnych
silników gier komputerowych, ze szczególnym uwzględnieniem ich wpływu na proces tworzenia gier
oraz końcową jakość produktu.
2025-07-14 16:57:52 +02:00
\subsection{Zakres pracy}
Praca obejmuje analizę następujących aspektów:
\begin{itemize}
2026-02-07 16:43:12 +01:00
\item Wydajność renderowania grafiki.
\item Możliwości i~funkcjonalności oferowane przez różne silniki.
\item Łatwość użycia i~krzywa uczenia się.
\item Praca z narzędziem przy użycji dużych modeli językowch.
\item Ekosystem narzędzi i~społeczność deweloperska.
2025-07-14 16:57:52 +02:00
\end{itemize}
\subsection{Wybór gry testowej -- gatunek bullet hell}\label{subsec:bullet-hell}
2025-07-14 16:57:52 +02:00
2026-02-06 19:17:22 +01:00
W~celu przeprowadzenia praktycznych testów wydajnościowych
zdecydowano się na implementację gry z~gatunku \textbf{bullet hell}
(dosł. ,,piekło pocisków''), znanego również jako \textbf{danmaku}
(z jap. ,,kurtyna pocisków'') lub \textbf{manic shooter}.
\textbf{Charakterystyka gatunku}
2024-06-23 16:01:54 +02:00
Bullet hell to podgatunek gier typu shoot 'em up, w~którym gracz steruje zwykle
niewielkim statkiem kosmicznym lub postacią, mierząc się z~falami przeciwników wystrzeliwujących
ogromne ilości pocisków tworzących skomplikowane wzory na ekranie. Kluczowe cechy gatunku obejmują:
2024-06-23 16:01:54 +02:00
\begin{itemize}
\item \textbf{Masowa ilość pocisków} -- na ekranie jednocześnie może znajdować się od kilkuset
2026-02-07 16:43:12 +01:00
do kilku tysięcy pocisków, tworzących złożone formacje geometryczne.
\item \textbf{Precyzyjne hitboxy} -- obszar kolizji postaci gracza jest znacznie mniejszy niż
jej wizualna reprezentacja (często ograniczony do kilku pikseli), co umożliwia nawigację między
2026-02-07 16:43:12 +01:00
pociskami.
\item \textbf{Duża liczba przeciwników} -- na ekranie jednocześnie pojawia się wiele jednostek przeciwnika, co zwiększa złożoność sytuacji i obciążenie systemu.
\item \textbf{Ciągły ruch} -- gracz musi nieustannie przemieszczać się po ekranie, unikając kolizji.
\item \textbf{Eskalacja trudności} -- wraz z~postępem gry wzrasta liczba przeciwników
2026-02-07 16:43:12 +01:00
i~gęstość pocisków.
2024-06-23 16:01:54 +02:00
\end{itemize}
Klasyczne przykłady gatunku to serie \textit{Touhou Project},
\textit{DoDonPachi}, \textit{Ikaruga} lub
\textit{Geometry Wars}.
\begin{figure}[!h]
\centering
\includegraphics[width=1\linewidth]{touhou.jpg}
\caption{Przykład gry z gatunku bullet hell (seria Touhou). \cite{glau2021touhou}}
\label{fig:touhou}
\end{figure}
\textbf{Uzasadnienie wyboru gatunku}
Gatunek bullet hell został wybrany jako podstawa testów wydajnościowych z~następujących powodów:
2024-06-23 16:01:54 +02:00
\begin{enumerate}
2026-02-07 16:43:12 +01:00
\item \textbf{Intensywne wykorzystanie zasobów} -- jednoczesne renderowanie setek lub tysięcy obiektów (pocisków) stanowi znaczące obciążenie dla systemu renderowania.
2026-01-26 18:40:30 +01:00
\item \textbf{Testowanie zarządzania pamięcią} -- ciągłe tworzenie i~niszczenie obiektów
2026-02-07 16:43:12 +01:00
pocisków eksponuje różnice w~implementacji garbage collectora (Unity/C\#) versus ręcznego
zarządzania pamięcią (Unreal/C++).
2026-02-07 16:43:12 +01:00
\item \textbf{Wymagania systemu fizyki} -- wykrywanie kolizji między graczem a~setkami pocisków w~każdej klatce obciąża system fizyki.
2026-02-07 16:43:12 +01:00
\item \textbf{Prostota implementacji} -- podstawowa mechanika gry jest stosunkowo prosta koncepcyjnie, co pozwala skupić się na porównaniu wydajności, a~nie złożoności logiki gry.
2026-02-07 16:43:12 +01:00
\item \textbf{Skalowalność testu} -- łatwo kontrolować poziom obciążenia poprzez modyfikację liczby aktywnych pocisków i~przeciwników.
2026-02-07 16:43:12 +01:00
\item \textbf{Reprezentatywność dla gier 2D} -- gatunek jest typowym przedstawicielem gier 2D, co pozwala ocenić wsparcie silników dla tego segmentu rynku.
2024-06-23 16:01:54 +02:00
\end{enumerate}
\textbf{Parametry gry testowej}
2026-02-06 19:17:22 +01:00
Zaimplementowana gra testowa charakteryzuje się następującymi parametrami:
\begin{itemize}
2026-02-07 16:43:12 +01:00
\item Czas rozgrywki: 90 sekund.
\item Eskalacja trudności: liniowy wzrost częstotliwości spawnu przeciwników.
\item Typy przeciwników: 3 warianty z~różnymi wzorami strzelania.
\item System punktacji oparty na eliminacji przeciwników.
\end{itemize}
Te parametry zapewniają wystarczające obciążenie systemu do ujawnienia różnic wydajnościowych między silnikami, pozostając jednocześnie w~granicach typowych dla gier indie z~tego gatunku.
\textbf{Struktura pracy}
Praca składa się z~następujących rozdziałów:
\begin{enumerate}
2026-02-07 16:43:12 +01:00
\item \textbf{Wstęp} -- wprowadzenie do tematyki, motywacja, cel i~zakres pracy.
\item \textbf{Przegląd literatury} -- analiza istniejących badań porównawczych silników gier.
\item \textbf{Charakterystyka silników} -- szczegółowy opis Unity i~Unreal Engine.
\item \textbf{Metodologia} -- opis metodyki badawczej i~kryteriów porównania.
\item \textbf{Analiza wywiadów} -- wyniki badań jakościowych z~deweloperami.
\item \textbf{Implementacja gry testowej} -- doświadczenia z~tworzenia gry w~obu silnikach.
\item \textbf{Narzędzia profilowania} -- opis NVIDIA Nsight i~metodyki pomiarów.
\item \textbf{Testy wydajności} -- wyniki pomiarów wydajnościowych.
\item \textbf{Analiza możliwości} -- porównanie funkcjonalności silników.
\item \textbf{Porównanie wyników} -- synteza i~analiza zebranych danych.
\item \textbf{Podsumowanie} -- wnioski i~rekomendacje.
\end{enumerate}
\subsection{Metodologia}
\begin{itemize}
2026-02-07 16:43:12 +01:00
\item \textbf{Testy wydajnościowe} -- Pomiary z~wykorzystaniem NVIDIA Nsight Graphics, zapewniające porównywalność wyników między silnikami.
\item \textbf{Wywiady z~deweloperami} -- badania jakościowe dostarczające kontekstu praktycznego użytkowania silników.
\item \textbf{Implementacja porównawcza} -- stworzenie identycznej gry w~obu silnikach, dokumentując różnice w~procesie deweloperskim.
\end{itemize}