\clearpage \raggedbottom \section{Podsumowanie i wnioski} Celem niniejszej pracy było porównanie wydajności i~możliwości dwóch wiodących silników gier komputerowych -- Unity oraz Unreal Engine -- ze~szczególnym uwzględnieniem ich wpływu na~proces tworzenia gier oraz~końcową jakość produktu. Cel ten został zrealizowany poprzez: \begin{enumerate} \item Przeprowadzenie szczegółowych testów wydajnościowych z~wykorzystaniem niezależnego narzędzia NVIDIA Nsight Systems. \item Implementację identycznej gry typu bullet hell w~obu silnikach. \item Analizę porównawczą funkcjonalności i~możliwości obu silników. \item Przeprowadzenie wywiadów jakościowych z~ośmioma deweloperami gier. \end{enumerate} \subsection{Weryfikacja hipotezy badawczej} Postawiona hipoteza badawcza brzmiała: \textit{,,Silnik Unity, dzięki natywnemu wsparciu dla~grafiki 2D, osiągnie lepszą wydajność w~grze typu bullet hell niż Unreal Engine, który jest zoptymalizowany przede wszystkim pod~kątem aplikacji 3D.''} Wyniki badań \textbf{częściowo potwierdzają} tę hipotezę, jednak obraz jest bardziej złożony niż początkowo zakładano: W~fazie 3 testu (60--90 sekund), reprezentującej maksymalne obciążenie sceny, oba silniki osiągnęły zbliżoną wydajność: Unity z~wartością 1\% low na~poziomie 132~FPS oraz Unreal Engine ze~średnią 162~FPS. Różnica około 23\% na~korzyść Unreal wynika częściowo z~różnych konfiguracji synchronizacji pionowej. Unity wykorzystywał jedynie 23\% mocy obliczeniowej GPU (ograniczony przez V-Sync), podczas gdy Unreal Engine osiągał 91\% wykorzystania w~fazach 1--2. Sugeruje to znaczny potencjał wydajnościowy Unity przy wyłączonej synchronizacji pionowej. Analiza wywołań Vulkan API ujawniła fundamentalne różnice architektoniczne: \begin{itemize} \item Unity: prosty, dwuetapowy potok renderowania (2 wywołania \\ \texttt{vkQueueSubmit} na~klatkę), zdominowany przez oczekiwanie na~GPU \\ (\texttt{vkWaitForFences} -- 95,2\% czasu). \item Unreal Engine: złożony potok z~16 wywołaniami \texttt{vkQueueSubmit} na~klatkę, zdominowany przez dynamiczną kompilację potoków (47--72\% czasu). \end{itemize} Unity wykazał większą stabilność czasów klatek (98,24\% klatek w~przedziale 5--10~ms), podczas gdy Unreal Engine doświadczył spadku wydajności o~ponad 50\% między fazami niskiego (332--339~FPS) a~wysokiego obciążenia (162~FPS). \subsection{Główne wyniki badań} \begin{table}[H] \centering \caption{Zestawienie kluczowych wyników testów wydajności} \label{tab:podsumowanie-wydajnosc} \begin{tabular}{|l|r|r|} \hline \textbf{Metryka} & \textbf{Unity} & \textbf{Unreal Engine} \\ \hline Średni FPS (niskie obciążenie) & 164 (V-Sync) & 332--339 \\ FPS w~wymagającej scenie & 132 (1\% low) & 162 (faza 3) \\ Wykorzystanie GPU (\%) & 23 & 91 / 50 \\ Wywołania Vulkan API & $\sim$0,5 mln & $\sim$32 mln \\ Wywołania synchronizacji OS & 29\,383 & $\sim$9 mln \\ Potoki graficzne utworzone & 3 & $\sim$2\,400 \\ \hline \end{tabular} \end{table} Praktyczna implementacja gry bullet hell potwierdziła przewagę Unity dla~tego typu projektów: \begin{itemize} \item \textbf{Czas implementacji}: Unity wymagał około 60\% czasu potrzebnego na~implementację w~Unreal Engine. \item \textbf{Wsparcie 2D}: Unity oferuje natywne komponenty 2D (\texttt{Rigidbody2D}, \texttt{Collider2D}), podczas gdy Unreal symuluje 2D w~środowisku 3D. \item \textbf{Object pooling}: Implementacja w~Unity jest prostsza (pojedyncza metoda \\ \texttt{SetActive}) vs Unreal (trzy osobne metody: \texttt{SetActorHiddenInGame}, \\ \texttt{SetActorEnableCollision}, \texttt{SetActorTickEnabled}). \item \textbf{Instalacja na~Linux}: Unity -- około 30 minut, Unreal -- 2--4 godziny. \end{itemize} Badania jakościowe z~udziałem 8~deweloperów potwierdziły: \begin{itemize} \item Unity charakteryzuje się niższym progiem wejścia i~lepszą dokumentacją. \item Unreal Engine wymusza bardziej uporządkowaną strukturę projektu. \item System Blueprints ułatwia współpracę z~osobami nietechnicznymi. \item Problemy z~garbage collectorem w~Unity są znane, ale~rzadko doświadczane przy stosowaniu dobrych praktyk (object pooling). \item Obie społeczności deweloperskie są aktywne, choć Unity ma~przewagę ilościową w~materiałach edukacyjnych. \end{itemize} \subsection{Rekomendacje praktyczne} Na~podstawie przeprowadzonych badań sformułowano następujące rekomendacje: \begin{itemize} \item Projekt dotyczy gry 2D lub mobilnej. \item Zespół składa się z~początkujących deweloperów. \item Wymagany jest szybki cykl iteracji (hot reload). \item Projekt ma~ograniczony budżet czasowy na~naukę narzędzia. \item Preferowany jest język C\# nad C++. \item Wymagana jest dobra integracja z~Git (tekstowa serializacja scen). \end{itemize} \begin{itemize} \item Projekt wymaga fotorealistycznej grafiki 3D. \item Zespół posiada doświadczenie w~C++. \item Projekt jest typu FPS lub AAA. \item W~zespole znajdują się osoby nietechniczne (designerzy, artyści). \item Wymagane są zaawansowane funkcje wizualne (Nanite, Lumen). \item Projekt wymaga dostępu do~kodu źródłowego silnika. \end{itemize} \begin{table}[H] \centering \caption{Macierz rekomendacji wyboru silnika} \label{tab:macierz-rekomendacji} \begin{tabular}{|l|c|c|} \hline \textbf{Typ projektu} & \textbf{Rekomendacja} & \textbf{Uzasadnienie} \\ \hline Gra 2D indie & Unity & Natywne wsparcie 2D \\ \hline Gra mobilna & Unity & Optymalizacja, rozmiar buildu \\ \hline Gra bullet hell & Unity & Prosty potok renderowania \\ \hline Gra 3D AAA & Unreal & Nanite, Lumen, fotorealizm \\ \hline Gra VR high-end & Unreal & Zaawansowane oświetlenie \\ \hline Gra VR mobilna & Unity & Optymalizacja mobilna \\ \hline Prototyp & Unity & Szybki cykl iteracji \\ \hline \end{tabular} \end{table} \subsection{Wkład naukowy pracy} Niniejsza praca wnosi następujące elementy do~dziedziny badań nad~silnikami gier: \begin{enumerate} \item \textbf{Zunifikowana metodyka pomiaru} -- wykorzystanie NVIDIA Nsight Systems jako niezależnego narzędzia profilowania eliminuje różnice wynikające z~wbudowanych profilerów silników, zapewniając porównywalność wyników. \item \textbf{Szczegółowa analiza wywołań API} -- dokumentacja ponad 32~milionów wywołań Vulkan API dla~Unreal Engine i~0,5~miliona dla~Unity dostarcza wglądu w~architekturę renderowania obu silników. \item \textbf{Triangulacja metod badawczych} -- połączenie testów wydajnościowych, analizy funkcjonalności, doświadczeń implementacyjnych i~wywiadów jakościowych daje kompleksowy obraz porównawczy. \item \textbf{Praktyczne przypadki użycia} -- konkretne rekomendacje oparte na~danych empirycznych mogą służyć jako przewodnik dla~deweloperów. \end{enumerate} \subsection{Ograniczenia badań} Przeprowadzone badania posiadają następujące ograniczenia: \begin{enumerate} \item \textbf{Zakres gatunkowy} -- koncentracja na~grach typu bullet hell nie~pokrywa wszystkich możliwych zastosowań silników gier; inne gatunki (RPG, RTS, puzzle) mogą wykazywać odmienne charakterystyki wydajnościowe. \item \textbf{Pojedyncza konfiguracja sprzętowa} -- testy na~wysokowydajnym sprzęcie (RTX 3090, Ryzen 9 7900X3D) nie~odzwierciedlają wydajności na~typowych konfiguracjach graczy. \item \textbf{Próba badawcza} -- 8~wywiadów stanowi relatywnie małą próbę, choć~wystarczającą dla~badań jakościowych o~charakterze eksploracyjnym. \item \textbf{Ewolucja silników} -- szybki rozwój obu silników może spowodować dezaktualizację wyników w~ciągu 12--24 miesięcy. \end{enumerate} \subsection{Propozycje dalszych badań} Na~podstawie zidentyfikowanych ograniczeń proponuje się następujące kierunki przyszłych badań: Przeprowadzenie analogicznych testów dla~gier RPG (open world), strategii czasu rzeczywistego, gier puzzle oraz symulatorów pozwoliłoby na~bardziej kompleksową ocenę wydajności silników. Porównanie wydajności na~różnych konfiguracjach sprzętowych (PC low-end, \\ mid-range, high-end; urządzenia mobilne; konsole) dostarczyłoby praktycznych informacji dla~deweloperów celujących w~różne platformy. Badanie Total Cost of Ownership (TCO) uwzględniające czas nauki zespołu, koszty licencji, assetów, czas rozwoju i~koszty utrzymania projektu mogłoby dostarczyć cennych informacji biznesowych. Śledzenie wydajności obu silników przez~2--3 lata, dokumentując wpływ kolejnych aktualizacji, pozwoliłoby na~ocenę długoterminowej stabilności i~kierunków rozwoju. Stworzenie frameworka do~automatycznego uruchamiania i~profilowania scenariuszy testowych umożliwiłoby powtarzalne badania na~większą skalę. \subsection{Refleksje końcowe} Przeprowadzone badania potwierdzają, że~nie~istnieje jednoznaczna odpowiedź na~pytanie ,, który silnik jest lepszy''. Unity i~Unreal Engine reprezentują różne filozofie projektowe i~są zoptymalizowane pod~odmienne przypadki użycia. \textbf{Unity} wyróżnia się jako silnik oferujący: \begin{itemize} \item Niższy próg wejścia i~szybszą krzywą uczenia. \item Lepsze natywne wsparcie dla~grafiki 2D. \item Prostszy i~bardziej przewidywalny potok renderowania. \item Efektywniejszą pracę na~platformach mobilnych. \item Większą społeczność i~więcej materiałów edukacyjnych. \end{itemize} \textbf{Unreal Engine} natomiast dominuje w~obszarach: \begin{itemize} \item Zaawansowanej grafiki 3D i~fotorealizmu. \item Produkcji wysokobudżetowych (AAA). \item Współpracy z~osobami nietechnicznymi (Blueprints). \item Dostępu do~kodu źródłowego silnika. \item Wbudowanych zaawansowanych funkcji (Nanite, Lumen). \end{itemize} \newpage W~kontekście testowanej gry bullet hell hipoteza o~przewadze Unity została częściowo potwierdzona -- silnik oferuje prostszą architekturę renderowania, stabilniejsze czasy klatek i~znacznie łatwiejszy proces implementacji. Jednakże Unreal Engine wykazał zdolność do~osiągania porównywalnej wydajności w~wymagających scenach, co~sugeruje, że~różnice wydajnościowe są mniejsze niż różnice w~doświadczeniu deweloperskim. Kluczem do~sukcesu jest \textbf{świadomy wybór narzędzia dopasowanego do~konkretnego projektu}, zespołu i~celów biznesowych. W~dynamicznie rozwijającej się branży gier znajomość obu silników staje się coraz bardziej wartościową umiejętnością, pozwalającą na~elastyczne dostosowanie się do~wymagań różnorodnych projektów. Niniejsza praca stanowi wkład w~systematyzację wiedzy o~współczesnych silnikach gier i~może służyć jako punkt odniesienia dla~deweloperów podejmujących decyzję o~wyborze technologii oraz~dla~przyszłych badań w~tej dynamicznie rozwijającej się dziedzinie.