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
2026-01-31 20:46:37 +01: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-01-31 20:46:37 +01:00
2026-02-06 19:17:22 +01:00
Współczesny rynek gier komputerowych charakteryzuje się dynamicznym
2026-01-26 19:52:58 +01:00
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ą,
2026-01-26 19:52:58 +01:00
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
2026-01-24 20:40:22 +01: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}
2026-01-31 20:46:37 +01:00
\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}
2026-01-26 19:52:58 +01:00
(z jap. ,,kurtyna pocisków'') lub \textbf { manic shooter} .
2025-12-21 16:56:38 +01:00
2026-01-31 20:46:37 +01:00
\textbf { Charakterystyka gatunku}
2024-06-23 16:01:54 +02:00
2026-01-24 20:40:22 +01: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}
2026-01-26 19:52:58 +01:00
\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.
2026-01-24 20:40:22 +01:00
\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.
2026-01-24 20:40:22 +01:00
\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}
2026-01-24 20:40:22 +01:00
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}
2025-12-21 16:56:38 +01:00
2026-01-31 20:46:37 +01:00
\textbf { Uzasadnienie wyboru gatunku}
2025-12-21 16:56:38 +01:00
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.
2025-12-21 16:56:38 +01:00
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++).
2025-12-21 16:56:38 +01:00
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.
2025-12-21 16:56:38 +01:00
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.
2025-12-21 16:56:38 +01:00
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.
2025-12-21 16:56:38 +01:00
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.
2025-12-21 16:56:38 +01:00
2024-06-23 16:01:54 +02:00
\end { enumerate}
2026-01-31 20:46:37 +01:00
\textbf { Parametry gry testowej}
2025-12-21 16:56:38 +01:00
2026-02-06 19:17:22 +01:00
Zaimplementowana gra testowa charakteryzuje się następującymi parametrami:
2025-12-21 16:56:38 +01:00
\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.
2025-12-21 16:56:38 +01:00
\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.
2026-01-31 20:46:37 +01:00
\textbf { Struktura pracy}
2025-12-21 16:56:38 +01:00
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.
2025-12-21 16:56:38 +01:00
\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.
2025-12-21 16:56:38 +01:00
\end { itemize}