mirror of
https://github.com/kuhyx/praca_magisterska.git
synced 2026-07-04 13:43:05 +02:00
feat: first full draft of the thesis
This commit is contained in:
parent
0c5549733d
commit
58abbd92ab
BIN
latex/main.pdf
BIN
latex/main.pdf
Binary file not shown.
@ -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
|
||||
|
||||
@ -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}
|
||||
|
||||
@ -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.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user