diff --git a/latex/main.pdf b/latex/main.pdf index 4a5fe1c..180249e 100644 Binary files a/latex/main.pdf and b/latex/main.pdf differ diff --git a/latex/main.tex b/latex/main.tex index 0347d66..050fc08 100644 --- a/latex/main.tex +++ b/latex/main.tex @@ -136,14 +136,13 @@ Game development, Frame time, Engine architecture, Version control, GPU \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} +\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 \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} +\input{tex/8-podsumowanie} %--------------- % Bibliografia diff --git a/latex/tex/6-analiza-mozliwosci.tex b/latex/tex/6-analiza-mozliwosci.tex index 3fc07d9..8c8535c 100644 --- a/latex/tex/6-analiza-mozliwosci.tex +++ b/latex/tex/6-analiza-mozliwosci.tex @@ -19,7 +19,7 @@ Unreal Engine wykorzystuje zaawansowany deferred rendering pipeline z~obsługą \begin{itemize} \item \textbf{Deferred shading} -- standardowy pipeline dla~większości projektów~\cite{gregory2018game} - \item \textbf{Forward shading} -- opcjonalny tryb dla~projektów VR wymagających niskiej latencji~\cite{anthes2016state} + \item \textbf{Forward shading} -- opcjonalny tryb dla~projektów VR wymagających niskiej latencji~\cite{unreal_docs} \item \textbf{Ray tracing} -- pełne wsparcie dla~Lumen (global illumination) i~ray-traced reflections \item \textbf{Nanite} -- zwirtualizowana geometria pozwalająca na~renderowanie miliardów poligonów \end{itemize} @@ -27,7 +27,7 @@ Unreal Engine wykorzystuje zaawansowany deferred rendering pipeline z~obsługą \subsubsection{Systemy materiałów i shaderów} \paragraph{Unity} -Unity oferuje Shader Graph -- wizualny edytor do~tworzenia shaderów bez~pisania kodu. Dodatkowo wspiera shadery pisane w~HLSL oraz~Cg~\cite{farina2013shader}. +Unity oferuje Shader Graph -- wizualny edytor do~tworzenia shaderów \\ bez~pisania kodu. Dodatkowo wspiera shadery pisane w~HLSL oraz~Cg~\cite{farina2013shader}. \begin{itemize} \item \textbf{Shader Graph} -- intuicyjny, oparty na~węzłach interfejs @@ -77,7 +77,7 @@ Unity wykorzystuje NVIDIA PhysX jako~silnik fizyki~\cite{nvidia_physx}. \end{itemize} \paragraph{Unreal Engine} -Unreal przeszedł z~PhysX na~Chaos Physics -- +Unreal przeszedł z~PhysX \\ na~Chaos Physics -- własny silnik fizyki~\cite{unreal_docs}. \begin{itemize} @@ -121,7 +121,7 @@ własny silnik fizyki~\cite{unreal_docs}. \subsubsection{Przestrzenny dźwięk 3D} -Oba silniki oferują zaawansowane systemy dźwięku przestrzennego z~obsługą~\cite{firat2022sound}: +Oba silniki oferują zaawansowane systemy dźwięku przestrzennego \\ z~obsługą~\cite{firat2022sound}: \begin{itemize} \item Attenuation curves (krzywe tłumienia) \item Occlusion i~obstruction (przesłanianie i~blokowanie) @@ -179,11 +179,11 @@ Oba silniki oferują zaawansowane systemy dźwięku przestrzennego z~obsługą~\ \hline \textbf{Platforma} & \textbf{Unity} & \textbf{Unreal} \\ \hline\hline - Windows & ✓ & ✓ \\ + Windows & + & + \\ \hline - macOS & ✓ & ✓ \\ + macOS & + & + \\ \hline - Linux & ✓ & ✓ \\ + Linux & + & + \\ \hline \end{tabular} \end{table} @@ -198,9 +198,9 @@ Oba silniki oferują zaawansowane systemy dźwięku przestrzennego z~obsługą~\ \hline \textbf{Platforma} & \textbf{Unity} & \textbf{Unreal} \\ \hline\hline - iOS & ✓ & ✓ \\ + iOS & + & + \\ \hline - Android & ✓ & ✓ \\ + Android & + & + \\ \hline Optymalizacja mobilna & Doskonała & Dobra \\ \hline @@ -221,15 +221,15 @@ Oba silniki oferują wsparcie dla~głównych konsol (PlayStation 5, Xbox Series \hline \textbf{Platforma VR/AR} & \textbf{Unity} & \textbf{Unreal} \\ \hline\hline - Meta Quest & ✓ & ✓ \\ + Meta Quest & + & + \\ \hline - SteamVR & ✓ & ✓ \\ + SteamVR & + & + \\ \hline - PlayStation VR2 & ✓ & ✓ \\ + PlayStation VR2 & + & + \\ \hline - ARCore (Android) & ✓ & ✓ \\ + ARCore (Android) & + & + \\ \hline - ARKit (iOS) & ✓ & ✓ \\ + ARKit (iOS) & + & + \\ \hline \end{tabular} \end{table} @@ -285,7 +285,7 @@ Wielkość i~aktywność społeczności deweloperskiej jest istotnym czynnikiem \begin{itemize} \item \textbf{Dokumentacja oficjalna} -- ponad 5000 stron dokumentacji API \item \textbf{Unity Learn} -- ponad 750 darmowych kursów i~tutoriali~\cite{christopoulou2017overview} - \item \textbf{Certyfikacje} -- 4 poziomy certyfikacji (User, Associate, Professional, Expert)~\cite{barczak2019comparative} + \item \textbf{Certyfikacje} -- 4 poziomy certyfikacji \\ (User, Associate, Professional, Expert)~\cite{barczak2019comparative} \end{itemize} \paragraph{Unreal Engine} diff --git a/latex/tex/8-podsumowanie.tex b/latex/tex/8-podsumowanie.tex index 618afde..9b4d077 100644 --- a/latex/tex/8-podsumowanie.tex +++ b/latex/tex/8-podsumowanie.tex @@ -1,219 +1,235 @@ \clearpage \section{Podsumowanie i wnioski} -\subsection{Główne wyniki badań} +\subsection{Realizacja celów pracy} -\subsubsection{Odpowiedzi na pytania badawcze} - -\paragraph{Pytanie 1: Który silnik oferuje lepszą wydajność dla gier 2D?} - -\textbf{Odpowiedź}: Unity wykazuje lepszą wydajność dla~gier 2D dzięki dedykowanemu pipeline renderowania 2D oraz~mniejszemu narzutowi architektonicznemu dla~prostych scen. - -\paragraph{Pytanie 2: Który silnik jest bardziej przystępny dla początkujących?} - -\textbf{Odpowiedź}: Unity charakteryzuje się znacząco niższym progiem wejścia ze~względu na: -\begin{itemize} - \item Lepszą dokumentację i~materiały edukacyjne - \item Prostszy język programowania (C\# vs C++) - \item Bardziej intuicyjny interfejs edytora - \item Większą społeczność gotową do~pomocy -\end{itemize} - -\paragraph{Pytanie 3: Jak różnią się możliwości graficzne obu silników?} - -\textbf{Odpowiedź}: Unreal Engine oferuje zaawansowansze możliwości graficzne out-of-the-box, w~tym technologie Nanite (wirtualizowana geometria) i~Lumen (dynamiczne global illumination), które~nie~mają bezpośrednich odpowiedników w~Unity. - -\paragraph{Pytanie 4: Który silnik lepiej wspiera platformy mobilne?} - -\textbf{Odpowiedź}: Unity dominuje na~platformach mobilnych z~70\% udziałem w~rynku, oferując lepszą optymalizację, mniejsze rozmiary buildów oraz~bogatszy ekosystem mobile-specific rozwiązań. - -\paragraph{Pytanie 5: Jak różnią się przepływy pracy w obu silnikach?} - -\textbf{Odpowiedź}: Unity promuje podejście komponentowe z~większą elastycznością, podczas gdy~Unreal narzuca bardziej ustrukturyzowany workflow oparty na~Blueprintach i~architekturze Actor-Component. - -\subsubsection{Weryfikacja hipotez} - -Wszystkie cztery postawione hipotezy badawcze zostały potwierdzone: +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 Unreal Engine rzeczywiście oferuje lepszą wydajność renderowania 3D - \item Unity charakteryzuje się niższym progiem wejścia - \item Unity ma~lepsze wsparcie dla~platform mobilnych - \item Unreal Engine umożliwia osiągnięcie wyższej jakości grafiki + \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{Wnioski praktyczne} +\subsection{Weryfikacja hipotezy badawczej} -\subsubsection{Rekomendacje dla deweloperów} +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.''} -\paragraph{Wybierz Unity jeśli}: +Wyniki badań \textbf{częściowo potwierdzają} tę hipotezę, jednak obraz jest bardziej złożony niż początkowo zakładano: + +\paragraph{Wydajność w~fazie maksymalnego obciążenia} +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. + +\paragraph{Wykorzystanie zasobów GPU} +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. + +\paragraph{Architektura renderowania} +Analiza wywołań Vulkan API ujawniła fundamentalne różnice architektoniczne: \begin{itemize} - \item Jesteś początkującym deweloperem - \item Tworzysz grę 2D - \item Celujesz w~platformy mobilne - \item Potrzebujesz szybkiego prototypowania - \item Pracujesz solo lub w~małym zespole - \item Masz ograniczony budżet na~assety + \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} -\paragraph{Wybierz Unreal Engine jeśli}: -\begin{itemize} - \item Tworzysz grę 3D AAA - \item Grafika jest najwyższym priorytetem - \item Masz doświadczenie z~C++ - \item Pracujesz w~dużym zespole - \item Celujesz w~PC/konsole nowej generacji - \item Potrzebujesz zaawansowanych funkcji wizualnych -\end{itemize} +\paragraph{Stabilność wydajności} +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). -\subsubsection{Wytyczne dla różnych typów projektów} +\subsection{Główne wyniki badań} -\begin{table}[h!] - \centering - \caption{Rekomendacje wyboru silnika według typu projektu} - \label{tab:recommendations} - \begin{tabular}{|l|c|c|} - \hline - \textbf{Typ projektu} & \textbf{Rekomendacja} & \textbf{Alternatywa} \\ - \hline\hline - Gra 2D indie & Unity & -- \\ - \hline - Gra 3D indie & Unity & Unreal (dla~AAA look) \\ - \hline - Gra mobilna & Unity & -- \\ - \hline - Gra AAA 3D & Unreal & -- \\ - \hline - Gra VR high-end & Unreal & Unity \\ - \hline - Gra VR mobilna & Unity & -- \\ - \hline - Aplikacja edukacyjna & Unity & -- \\ - \hline - Architectural viz & Unreal & Unity (HDRP) \\ - \hline - Symulatory & Unreal & Unity \\ - \hline - \end{tabular} +\subsubsection{Wyniki testów wydajnościowych} + +\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} -\subsection{Wkład naukowy} +\subsubsection{Wyniki analizy implementacji} -\subsubsection{Nowatorskie aspekty badań} +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} + +\subsubsection{Wyniki wywiadów z~deweloperami} + +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: + +\subsubsection{Wybór Unity jest wskazany gdy} + +\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} + +\subsubsection{Wybór Unreal Engine jest wskazany gdy} + +\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{itemize} - \item \textbf{Zunifikowana metodyka pomiaru} -- wykorzystanie NVIDIA Nsight jako niezależnego narzędzia eliminuje różnice w~profilowaniu wbudowanym - \item \textbf{Triangulacja danych} -- połączenie testów wydajnościowych, analizy funkcjonalności i~wywiadów jakościowych - \item \textbf{Praktyczne przypadki użycia} -- konkretne rekomendacje oparte na~danych empirycznych - \item \textbf{Perspektywa polskiej społeczności} -- uwzględnienie specyfiki rynku polskiego -\end{itemize} +\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 -\subsubsection{Znaczenie dla branży} + \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 -Wyniki pracy mogą być wykorzystane przez: + \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 -\begin{itemize} - \item \textbf{Nowych deweloperów} -- jako przewodnik przy~wyborze pierwszego silnika - \item \textbf{Studia gamedev} -- przy~podejmowaniu decyzji technologicznych - \item \textbf{Uczelnie} -- jako materiał dydaktyczny w~kursach game development - \item \textbf{Firmy szkoleniowe} -- do~planowania ścieżek edukacyjnych -\end{itemize} + \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 i przyszłe badania} - -\subsubsection{Identyfikacja ograniczeń} +\subsection{Ograniczenia badań} Przeprowadzone badania posiadają następujące ograniczenia: \begin{enumerate} - \item \textbf{Zakres czasowy} -- silniki ewoluują szybko; wyniki mogą się zdezaktualizować w~ciągu 12-24 miesięcy - \item \textbf{Zakres gatunkowy} -- koncentracja na~grach typu bullet-hell nie~pokrywa wszystkich możliwych zastosowań - \item \textbf{Konfiguracja sprzętowa} -- testy na~pojedynczej maszynie nie~uwzględniają różnorodności sprzętu graczy - \item \textbf{Próba badawcza} -- 8~wywiadów to~relatywnie mała próba, choć~wystarczająca dla~badań jakościowych - \item \textbf{Perspektywa geograficzna} -- fokus na~polskiej społeczności może nie~odzwierciedlać trendów globalnych + \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} -\subsubsection{Propozycje dalszych badań} +\subsection{Propozycje dalszych badań} Na~podstawie zidentyfikowanych ograniczeń proponuje się następujące kierunki przyszłych badań: -\paragraph{Badania longitudinalne} -Śledzenie wydajności obu silników przez~2-3~lata, dokumentując wpływ kolejnych aktualizacji na~wydajność i~funkcjonalność. - \paragraph{Rozszerzenie zakresu gatunkowego} -Przeprowadzenie analogicznych testów dla: -\begin{itemize} - \item Gier RPG (open world) - \item Gier strategicznych czasu rzeczywistego - \item Gier puzzle - \item Symulatorów -\end{itemize} +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. \paragraph{Testy wieloplatformowe} -Porównanie wydajności na~różnych konfiguracjach sprzętowych: -\begin{itemize} - \item PC low-end, mid-range, high-end - \item Urządzenia mobilne (Android, iOS) - \item Konsole (PlayStation, Xbox, Switch) -\end{itemize} - -\paragraph{Badania społeczności międzynarodowej} -Rozszerzenie wywiadów na~deweloperów z~różnych krajów i~kultur, co~pozwoliłoby na~identyfikację różnic regionalnych w~preferencjach i~doświadczeniach. +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. \paragraph{Analiza ekonomiczna} -Badanie Total Cost of Ownership (TCO) dla~projektów w~Unity vs Unreal, uwzględniające: -\begin{itemize} - \item Czas nauki dla~zespołu - \item Koszt licencji i~narzędzi dodatkowych - \item Koszt assetów i~rozszerzeń - \item Czas rozwoju projektu - \item Koszty maintenance i~aktualizacji -\end{itemize} +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. -\paragraph{Badania UX deweloperów} -Szczegółowa analiza user experience programistów i~artystów pracujących w~obu silnikach, z~wykorzystaniem metod: -\begin{itemize} - \item Eye tracking podczas pracy w~edytorze - \item Think-aloud protocols - \item Kwestionariusze SUS (System Usability Scale) - \item Pomiary czasu wykonania typowych zadań -\end{itemize} +\paragraph{Badania longitudinalne} +Ś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. -\subsubsection{Rozwój metodologii} - -Przyszłe badania mogłyby udoskonalić metodologię poprzez: - -\begin{itemize} - \item \textbf{Automatyzację testów} -- stworzenie frameworka do~automatycznego uruchamiania i~profilowania scenariuszy testowych - \item \textbf{Standaryzację metryk} -- opracowanie branżowego standardu pomiaru wydajności silników gier - \item \textbf{Większą próbę} -- przeprowadzenie badań ilościowych na~próbie 100+ deweloperów - \item \textbf{Testy A/B} -- eksperymentalne porównanie czasu rozwoju tych samych projektów w~obu silnikach -\end{itemize} +\paragraph{Automatyzacja metodologii} +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''. Zarówno Unity, jak i~Unreal Engine mają swoje unikalne zalety i~są optymalizowane pod~różne przypadki użycia. +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. -Unity dominuje na~rynku gier mobilnych i~2D oraz~stanowi lepszy wybór dla~początkujących, podczas gdy~Unreal Engine jest standardem dla~produkcji AAA wymagających najwyższej jakości grafiki. +\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} -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ą. +\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} -\subsection{Znaczenie wyników w kontekście rozwoju technologii} +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. -Obserwowany rozwój silników gier wskazuje na~kilka kluczowych trendów: +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. -\begin{enumerate} - \item \textbf{Demokratyzacja tworzenia gier} -- oba silniki stają się coraz bardziej dostępne dla~indywidualnych twórców - \item \textbf{Konwergencja funkcjonalności} -- Unity dogania Unreal w~zakresie grafiki, Unreal staje się bardziej przyjazny dla~początkujących - \item \textbf{Wzrost znaczenia ekosystemu} -- assety, pluginy i~społeczność stają się równie ważne jak~sam silnik - \item \textbf{Cloud gaming} -- nowe platformy strumieniowania gier mogą zmienić wymagania wydajnościowe -\end{enumerate} - -Przyszłość prawdopodobnie przyniesie dalszą specjalizację -- Unity będzie dominować na~mobile i~indie, Unreal w~AAA i~wysokobudżetowych produkcjach -- ale~z~rosnącą obszarem nakładania się możliwości, co~daje deweloperom większą swobodę wyboru. - -\vspace{1cm} - -\noindent -Niniejsza praca stanowi wkład w~systematyzację wiedzy o~współczesnych silnikach gier i~może służyć jako punkt odniesienia dla~przyszłych badań w~tej dynamicznie rozwijającej się dziedzinie. +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.