informe/sections/marco_teorico/desarrollo_videojuegos/motor.tex

34 lines
2.6 KiB
TeX

\subsubsection{Motor de Videojuegos}
El motor de videojuegos es, en pocas palabras, un conjunto de rutinas de programación que tiene como objetivo proveer facilidad en la utilización de elementos gráficos, sonidos, físicas, redes y varios otros aspectos que ayudan en el desarrollo de un videojuego.
El motor que se utilizará en este proyecto tiene por nombre ''Godot''. \cite{Desarrollo-de-Videojuegos,Game-Mechanics,Godot-Projects}
\begin{figure}[H]
\centering
\includegraphics[width=0.2\textwidth, height=0.2\textheight, keepaspectratio]{figures/godot.png}
\caption{Godot Engine}
\label{fig:godot_engine}
\end{figure}
El motor Godot tiene un gran valor en el desarrollo del proyecto, principalmente por su capacidad para implementar arte de píxel, en comparación con motores similares como Unity o Unreal, porque en Godot las distancias entre los elementos es medido en píxeles mientras que otros motores utilizan metros, lo que facilita en gran medida la eficacia al trabajar en juegos 2D, que usualmente para este género de videojuegos se usan píxeles y no metros.
Otro factor importante es que Godot posee un elemento llamado ''GDNative''. GDNative es una API que permite usar lenguajes de programación como C, C++ o Rust, siendo estos capaces de compilar código a lenguaje máquina. Lo anterior posee especial importancia para el proyecto, puesto que permite implementar otro lenguaje de programación que hará interacción con GDNative. \cite{Godot-24-Hours}
También la API permite que la Inteligencia Artificial tome decisiones con mayor rapidez dado que el código objeto de máquina se ejecuta con mayor velocidad que un lenguaje interpretado o que se compila a bytecode, como se puede notar en los siguientes gráficos que comparan GDScript(lenguaje interpretado similar a Python), C\# y C++.
\begin{figure}[H]
\centering
\includegraphics[width=0.9\textwidth, height=0.9\textheight, keepaspectratio]{figures/godot-gdnative.png}
\caption{Voxel Data Generation} \cite{GDNative-Benchmarks}
\label{fig:godot_gdnative_comparison}
\end{figure}
En el caso de generación de datos voxel, existe un aumento de 8,846.43\% en su rendimiento comparando GDNative con GDScript y un aumento de 651.07\% comparando GDNative con C\#.
\begin{figure}[H]
\centering
\includegraphics[width=0.9\textwidth, height=0.9\textheight, keepaspectratio]{figures/godot-gdnative2.png}
\caption{Mesh Generation} \cite{GDNative-Benchmarks}
\label{fig:godot_gdnative_comparison2}
\end{figure}
En la prueba de generación de mallas, GDNative tiene un aumento de 651.07\% en su rendimiento comparado con C\#.