praca_magisterska/latex/tex/7-porownanie-wynikow.tex

227 lines
8.5 KiB
TeX

\clearpage
\section{Porównanie wyników i analiza}
\subsection{Synteza wyników badań}
Na~podstawie przeprowadzonych testów wydajności (rozdział~\ref{sec:testy-wydajnosci}) można stwierdzić, że~oba silniki wykazują odmienne charakterystyki wydajnościowe w~zależności od~scenariusza testowego.
\begin{table}[h!]
\centering
\caption{Zestawienie zbiorcze wyników wydajnościowych}
\label{tab:performance-summary}
\begin{tabular}{|l|c|c|}
\hline
\textbf{Kryterium} & \textbf{Unity} & \textbf{Unreal Engine} \\
\hline\hline
Średni FPS (scenariusz niski) & [DATA] & [DATA] \\
\hline
Średni FPS (scenariusz średni) & [DATA] & [DATA] \\
\hline
Średni FPS (scenariusz wysoki) & [DATA] & [DATA] \\
\hline
Średnie zużycie VRAM & [DATA] MB & [DATA] MB \\
\hline
Średnia liczba draw calls & [DATA] & [DATA] \\
\hline
Stabilność frame time & [DATA] & [DATA] \\
\hline
\end{tabular}
\end{table}
Analiza możliwości (rozdział~6) wykazała, że~oba silniki oferują bogate zestawy funkcjonalności, jednak~skierowane do~nieco odmiennych grup docelowych.
\subsection{Analiza wielokryterialna}
\begin{table}[h!]
\centering
\caption{Macierz wielokryterialnego porównania silników gier}
\label{tab:comparison-matrix}
\begin{tabular}{|l|c|c|p{3cm}|}
\hline
\textbf{Kryterium} & \textbf{Unity} & \textbf{Unreal} & \textbf{Uwagi} \\
\hline\hline
Wydajność 2D & ★★★★★ & ★★★☆☆ & Unity zoptymalizowane pod~2D \\
\hline
Wydajność 3D & ★★★★☆ & ★★★★★ & Unreal lepsze w~AAA 3D \\
\hline
Jakość grafiki & ★★★★☆ & ★★★★★ & Unreal oferuje Nanite, Lumen \\
\hline
Łatwość nauki & ★★★★★ & ★★★☆☆ & Unity bardziej przystępne \\
\hline
Dokumentacja & ★★★★★ & ★★★☆☆ & Unity ma~lepszą dokumentację \\
\hline
Wsparcie mobilne & ★★★★★ & ★★★☆☆ & Unity dominuje na~mobile \\
\hline
Społeczność & ★★★★★ & ★★★★☆ & Większa społeczność Unity \\
\hline
Asset Store & ★★★★★ & ★★★★☆ & Więcej zasobów dla~Unity \\
\hline
Blueprint/Visual & ★★★☆☆ & ★★★★★ & Blueprints bardziej zaawansowane \\
\hline
Kod C\# vs C++ & ★★★★☆ & ★★★★☆ & C\# łatwiejszy, C++ wydajniejszy \\
\hline
Licensing & ★★★★★ & ★★★★★ & Oba bezpłatne dla~indie \\
\hline
\end{tabular}
\end{table}
Znaczenie poszczególnych kryteriów różni się w~zależności od~typu projektu:
\begin{itemize}
\item \textbf{Gry indie} -- priorytet: łatwość nauki, koszt, społeczność.
\item \textbf{Gry mobilne} -- priorytet: wydajność, optymalizacja, wsparcie platform.
\item \textbf{Gry AAA} -- priorytet: jakość grafiki, zaawansowane funkcje, skalowalność.
\item \textbf{Gry edukacyjne} -- priorytet: prostota, dokumentacja, stabilność.
\end{itemize}
\subsection{Przypadki użycia}
\begin{itemize}
\item Niższy próg wejścia dla~początkujących deweloperów.
\item Bogaty Asset Store z~dostępnymi cenowo zasobami.
\item Większa społeczność -- łatwiej znaleźć pomoc.
\item Szybsze prototypowanie.
\item Mniejsze wymagania sprzętowe dla~deweloperów.
\end{itemize}
Jeśli gra wymaga grafiki najwyższej jakości (photorealistic), rozważ Unreal Engine.
\begin{itemize}
\item Lepsza optymalizacja pod~platformy mobilne.
\item Mniejsze rozmiary buildu.
\item Lepsze wsparcie dla~starszych urządzeń.
\item Więcej narzędzi i~assetów mobilnych.
\item Większość gier mobilnych używa Unity (udowodniona skuteczność).
\end{itemize}
Według danych z~2023 roku, około 70\% gier mobilnych na~iOS i~Android zostało stworzonych w~Unity~\cite{statista_unity_market, unity_gaming_report}.
\begin{itemize}
\item Wyższa jakość grafiki out-of-the-box.
\item Nanite -- rendering miliardów poligonów.
\item Lumen -- dynamiczne global illumination.
\item Lepsze wsparcie dla~dużych zespołów.
\item Sprawdzone w~produkcjach AAA (Fortnite, Gears of~War).
\end{itemize}
Unreal Engine wykorzystywano w~produkcjach takich jak: Final Fantasy VII Remake, Jedi: Fallen Order, Borderlands 3.
\begin{itemize}
\item Aplikacje edukacyjne VR/AR.
\item Mobilny AR (ARCore, ARKit).
\item Projekty wymagające szybkiego rozwoju.
\end{itemize}
\begin{itemize}
\item High-end VR experiences.
\item Architekturalna wizualizacja VR.
\item Training simulations wymagające fotorealizmu.
\end{itemize}
\subsection{Weryfikacja hipotez badawczych}
Na~początku pracy (rozdział~\ref{sec:wstep}) postawiono następujące hipotezy badawcze:
\textbf{Hipoteza}: Unreal Engine oferuje lepszą wydajność renderowania złożonych scen 3D niż~Unity.
\textbf{Weryfikacja}: [POTWIERDZONA/ODRZUCONA -- wypełnij po~analizie danych]
\textbf{Uzasadnienie}: Na~podstawie testów wydajności (Tabela~\ref{tab:results-high}) zaobserwowano, że...
\textbf{Hipoteza}: Unity charakteryzuje się niższym progiem wejścia dla~początkujących deweloperów niż~Unreal Engine.
\textbf{Weryfikacja}: POTWIERDZONA
\textbf{Uzasadnienie}: Analiza wywiadów (rozdział~wywiady-analiza) wykazała, że~100\% respondentów z~doświadczeniem poniżej 2~lat oceniło Unity jako bardziej przystępne. Składają się na~to:
\begin{itemize}
\item Lepiej udokumentowane API.
\item Większa dostępność tutoriali dla~początkujących.
\item C\# jako język bardziej przyjazny niż~C++.
\item Prostszy interfejs edytora.
\end{itemize}
\textbf{Hipoteza}: Unity oferuje lepsze wsparcie i~optymalizację dla~platform mobilnych niż~Unreal Engine.
\textbf{Weryfikacja}: POTWIERDZONA
\textbf{Uzasadnienie}:
\begin{itemize}
\item Mniejsze rozmiary buildów mobilnych w~Unity.
\item Lepsza optymalizacja dla~urządzeń niskiej klasy.
\item Większy ekosystem mobile-specific assetów.
\item Dominacja na~rynku gier mobilnych (70\% udziału).
\end{itemize}
\textbf{Hipoteza}: Unreal Engine umożliwia osiągnięcie wyższej jakości grafiki niż~Unity przy~porównywalnym nakładzie pracy.
\textbf{Weryfikacja}: POTWIERDZONA
\textbf{Uzasadnienie}:
\begin{itemize}
\item Technologie Nanite i~Lumen oferują funkcje niedostępne w~Unity.
\item Lepsze domyślne materiały i~shadery.
\item Zaawansowane efekty post-processingu out-of-the-box.
\item Większość projektów wymagających fotorealizmu wykorzystuje Unreal.
\end{itemize}
\subsection{Ograniczenia badań}
\begin{itemize}
\item \textbf{Ograniczona liczba scenariuszy testowych} -- skupiono się na~grze typu bullet-hell, co~nie~pokrywa wszystkich możliwych zastosowań silników.
\item \textbf{Pojedyncza konfiguracja sprzętowa} -- testy przeprowadzono tylko na~jednym zestawie komputerowym.
\item \textbf{Mała próba wywiadów} -- 8~respondentów może nie~reprezentować całej społeczności deweloperów.
\end{itemize}
\begin{itemize}
\item \textbf{Wersje silników} -- wyniki dotyczą konkretnych wersji Unity i~Unreal; nowsze wersje mogą mieć odmienną wydajność.
\item \textbf{Wpływ object poolingu} -- optymalizacja wpływa na~wyniki; bez~niej różnice mogłyby być większe.
\item \textbf{Profilowanie} -- NVIDIA Nsight może wprowadzać własny narzut wydajnościowy.
\end{itemize}
\begin{itemize}
\item Silniki gier rozwijają się dynamicznie -- wyniki mogą dezaktualizować się w~ciągu roku.
\item Nie~testowano funkcji wprowadzonych w~najnowszych wersjach beta.
\end{itemize}
\subsection{Implikacje praktyczne}
\begin{itemize}
\item Rozpoczynając naukę tworzenia gier, Unity stanowi bezpieczniejszy wybór.
\item Dla projektów 2D, Unity jest jednoznacznie lepszym wyborem.
\item Inwestycja w~naukę C++ może być wartościowa długoterminowo.
\end{itemize}
\begin{itemize}
\item Unity pozwala na~szybsze MVP i~iteracje.
\item Unreal wymaga co~najmniej jednego doświadczonego programisty C++.
\item Asset Store Unity oferuje więcej ready-to-use rozwiązań.
\end{itemize}
\begin{itemize}
\item Unreal Engine jest standardem przemysłowym dla~gier 3D wysokiej jakości.
\item Wsparcie Epic Games dla~dużych projektów jest lepsze.
\item Source code access w~Unreal daje większą kontrolę.
\end{itemize}