mirror of
https://github.com/kuhyx/praca_magisterska.git
synced 2026-07-04 12:03:01 +02:00
107 lines
7.0 KiB
TeX
107 lines
7.0 KiB
TeX
\clearpage
|
|
\section{Przegląd literatury i istniejących rozwiązań}
|
|
|
|
W tym rozdziale przedstawiono historię rozwoju silników, ich klasyfikację, aktualny stan badań oraz najnowsze trendy technologiczne.
|
|
|
|
\subsection{Historia rozwoju silników gier}
|
|
Silniki gier ewoluowały znacząco od prostych bibliotek graficznych
|
|
lat 80. i 90. XX wieku po współczesne, kompleksowe środowiska
|
|
deweloperskie \cite{gregory2018game}. Wczesne biblioteki, takie
|
|
jak Allegro (1990), OpenGL (1992), DirectX (1995) czy SDL (1998),
|
|
dostarczały podstawowe funkcje graficzne i obsługę wejścia,
|
|
lecz nie oferowały zintegrowanych narzędzi do tworzenia gier.
|
|
Według Ullmann \cite{ullmann2022game}, współczesne silniki
|
|
gier charakteryzują się modularną architekturą, która umożliwia
|
|
ponowne wykorzystanie komponentów między różnymi projektami.
|
|
|
|
Gregory \cite{gregory2018game} w~swojej pracy ,,Game Engine Architecture''
|
|
przedstawia kompleksowy przegląd ewolucji silników gier, definiując je jako
|
|
,,oprogramowanie zaprojektowane specjalnie do tworzenia gier''.
|
|
Jego analiza pokazuje, że współczesne silniki gier składają się z~kilku
|
|
kluczowych warstw: warstwy platformy (platform layer),
|
|
warstwy podstawowych systemów (core systems), warstwy zasobów
|
|
(resource manager), warstwy renderingu (rendering engine),
|
|
systemów animacji, fizyki oraz gameplay.
|
|
Ta architektura warstwowa umożliwia modularność i~ponowne
|
|
wykorzystanie komponentów.
|
|
|
|
Pierwsze silniki gier były ściśle powiązane z konkretnym sprzętem
|
|
i grami, jak np. silniki do gier id Software (Doom, Quake).
|
|
Według Gregory'ego \cite{gregory2018game}, przełomem było
|
|
zrozumienie, że oddzielenie logiki gry od podstawowej
|
|
infrastruktury technicznej pozwala na tworzenie bardziej
|
|
uniwersalnych rozwiązań. Przełomem było wprowadzenie pierwszych
|
|
uniwersalnych silników, które mogły być adaptowane do różnych
|
|
rodzajów gier. Dzisiejsze silniki oferują zintegrowane środowiska
|
|
deweloperskie z edytorami wizualnymi, systemami skryptowymi i
|
|
zaawansowanymi narzędziami do debugowania.
|
|
|
|
\subsection{Klasyfikacja silników gier}
|
|
|
|
\subsubsection{Architektura silników według Gregory'ego}
|
|
Gregory \cite{gregory2018game} przedstawia taksonomię architektur silników gier,
|
|
wyróżniając kilka kluczowych typów organizacji:
|
|
|
|
\begin{itemize}
|
|
\item \textbf{Silniki obiektowe} - bazujące na hierarchii obiektów gry z dziedziczeniem.
|
|
\item \textbf{Silniki komponentowe} - wykorzystujące systemy entity-component-system (ECS).
|
|
\item \textbf{Silniki hybrydowe} - łączące elementy różnych podejść architektonicznych.
|
|
\end{itemize}
|
|
|
|
Autor podkreśla, że wybór architektury ma fundamentalny wpływ na wydajność, skalowalność i łatwość rozwoju gier. Systemy ECS zyskują na popularności ze względu na lepszą wydajność cache procesora i większą elastyczność w definiowaniu zachowań obiektów gry.
|
|
|
|
\textbf{Silniki komercyjne vs. open source}
|
|
Analiza literatury pokazuje wyraźne różnice między rozwiązaniami komercyjnymi a otwartymi. Christopoulou i Xinogalos \cite{christopoulou2017overview} wskazują, że silniki komercyjne jak Unity czy Unreal Engine oferują lepsze wsparcie techniczne i dokumentację, podczas gdy rozwiązania open source zapewniają większą elastyczność i kontrolę nad kodem źródłowym.
|
|
|
|
Sharif i Ameen \cite{sharif2021game} podkreślają, że wybór między rozwiązaniem komercyjnym a open source zależy głównie od budżetu projektu i wymagań dotyczących dostosowania silnika do specyficznych potrzeb.
|
|
|
|
\textbf{Silniki specjalistyczne vs. uniwersalne}
|
|
Pavkov \cite{pavkov2017comparison} przedstawiają podział na silniki
|
|
dedykowane konkretnym gatunkom gier (np.~silniki do gier strategicznych
|
|
czasu rzeczywistego) oraz rozwiązania uniwersalne mogące obsługiwać
|
|
różnorodne typy gier. Silniki specjalistyczne oferują zoptymalizowane
|
|
funkcjonalności dla określonego zastosowania, podczas gdy uniwersalne
|
|
zapewniają większą wszechstronność kosztem specjalizacji.
|
|
|
|
\textbf{Aktualny stan badań}
|
|
|
|
\textbf{Badania wydajności}
|
|
Messaoudi \cite{messaoudi2017performance} przeprowadzili kompleksową analizę wydajności silnika Unity na urządzeniach mobilnych i stacjonarnych, koncentrując się na zużyciu CPU i optymalizacji logiki gry. Ich badania pokazują znaczące różnice w wydajności między platformami mobilnymi a desktop.
|
|
|
|
Abramowicz i Borczuk \cite{abramowicz2024comparative} porównali wydajność Unity i Unreal Engine w grach 3D, skupiając się na renderowaniu, systemach fizyki i zarządzaniu pamięcią. Wyniki wskazują na przewagę Unreal Engine w renderowaniu zaawansowanej grafiki 3D, podczas gdy Unity wykazuje lepszą wydajność na urządzeniach o ograniczonych zasobach.
|
|
|
|
\textbf{Metodologie porównawcze}
|
|
Pattrasitidecha \cite{pattrasitidecha2014comparison}
|
|
opracował macierz porównawczą dla silników gier mobilnych 3D,
|
|
definiując kryteria selekcji i kluczowe aspekty oceny.
|
|
|
|
Vohera \cite{vohera2021game} przedstawili architekturę silników gier i przeprowadzili studium porównawcze Unity, GameMaker, Unreal Engine i CryEngine, koncentrując się na parametrach wydajności, funkcjonalności i łatwości użycia.
|
|
|
|
\textbf{Specjalizowane zastosowania}
|
|
Marks \cite{marks2008evaluation} oceniali silniki gier pod kątem zastosowań w symulacjach medycznych i szkoleniach klinicznych, wprowadzając specyficzne kryteria oceny dla aplikacji edukacyjnych.
|
|
|
|
Ali i Usman \cite{ali2016framework} opracowali framework do selekcji
|
|
silników gier dla zastosowań w gamifikacji i serious games,
|
|
uwzględniając specyficzne wymagania tych dziedzin.
|
|
|
|
\textbf{Badania społeczności i ekosystemu}
|
|
Barczak i Woźniak \cite{barczak2019comparative} przeprowadzili kompleksowe studium porównawcze silników gier, analizując nie tylko aspekty techniczne, ale również dostępność zasobów edukacyjnych, aktywność społeczności i długoterminowe wsparcie.
|
|
\newpage
|
|
\textbf{Motywacja i cel pracy}
|
|
|
|
Przegląd literatury pokazuje, że istnieje wiele badań porównawczych
|
|
silników gier, jednak większość z nich koncentruje się na wybranych
|
|
aspektach, takich jak wydajność renderowania, łatwość użycia czy
|
|
wsparcie dla konkretnych platform. Niniejsza praca wpisuje się w ten
|
|
nurt, przeprowadzając praktyczne porównanie silników Unity i Unreal
|
|
Engine pod kątem wydajności w wybranych scenariuszach testowych.
|
|
|
|
\textbf{Trendy technologiczne}
|
|
Ostatnie badania wskazują na rosnące znaczenie technologii ray tracing,
|
|
sztucznej inteligencji w grach oraz wsparcia dla rzeczywistości wirtualnej i rozszerzonej. Masood et al. \cite{masood2022high} analizują wykorzystanie silników gier do wysokowydajnego renderowania terenu GPU, pokazując nowe kierunki rozwoju technologii renderowania.
|
|
|
|
Badania Firat. \cite{firat2022sound} dotyczące przestrzennego dźwięku 3D w silnikach gier wskazują na rosnące znaczenie immersyjnych doświadczeń audio jako czynnika różnicującego poszczególne rozwiązania.
|
|
|
|
% Bibliografia zawiera odniesienia do kluczowych publikacji naukowych,
|
|
% dokumentacji technicznej oraz raportów branżowych
|