Chris Cromer
fa66ed5b32
Reviewed-on: #11 Co-authored-by: Martin Araneda <martix.araneda@gmail.com> Reviewed-on: #13
210 lines
8.4 KiB
TeX
210 lines
8.4 KiB
TeX
\documentclass[
|
|
spanish,
|
|
12pt]{article}
|
|
|
|
\usepackage[T1]{fontenc}
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage{babel}
|
|
\usepackage[
|
|
backend=biber,
|
|
style=apa
|
|
]{biblatex}
|
|
\addbibresource{references.bib}
|
|
\usepackage{csquotes}
|
|
\usepackage{graphicx}
|
|
\usepackage{mathptmx}
|
|
\usepackage{array}
|
|
\usepackage{float}
|
|
\usepackage{soul}
|
|
\sethlcolor{blue}
|
|
\usepackage{listings}
|
|
\usepackage[table,xcdraw]{xcolor}
|
|
|
|
\usepackage{setspace}
|
|
|
|
\usepackage{caption}
|
|
|
|
\usepackage[left=3.3cm,
|
|
right=2.3cm,
|
|
top=3.5cm,
|
|
bottom=3.0cm,
|
|
letterpaper]{geometry}
|
|
|
|
\usepackage{ragged2e}
|
|
\justifying
|
|
|
|
\usepackage{hyperref}
|
|
\hypersetup{
|
|
colorlinks=true,
|
|
linkcolor=blue,
|
|
citecolor=blue,
|
|
allcolors=blue,
|
|
pdftitle={Propuesta Anteproyecto de título}
|
|
}
|
|
\usepackage{hypcap}
|
|
|
|
\begin{document}
|
|
|
|
\title{Propuesta\\Anteproyecto de título}
|
|
\maketitle
|
|
|
|
\section{Identificación}
|
|
|
|
\subsection{Estudiantes}
|
|
|
|
\begin{itemize}
|
|
\item \textbf{NOMBRE:} Martín Araneda Acuña
|
|
\item \textbf{DIRECCIÓN:} Psje Veintidós, \#85, La Floresta IV, Hualpén
|
|
\item \textbf{TELÉFONO:} +56983828885
|
|
\item \textbf{CARRERA:} Ingeniería Civil en Informática
|
|
\item \textbf{E-MAIL:} martin.araneda1501@alumnos.ubiobio.cl
|
|
\end{itemize}
|
|
\vspace{1mm}
|
|
\begin{itemize}
|
|
\item \textbf{NOMBRE:} Christopher Cromer
|
|
\item \textbf{DIRECCIÓN:} Roberto Matta 204, Departamento 625, Concepción
|
|
\item \textbf{TELÉFONO:} +56990864256
|
|
\item \textbf{CARRERA:} Ingeniería Civil en Informática
|
|
\item \textbf{E-MAIL:} christopher.cromer1501@alumnos.ubiobio.cl
|
|
\end{itemize}
|
|
|
|
\subsection{Profesor Guía}
|
|
|
|
\begin{itemize}
|
|
\item \textbf{NOMBRE:} Clemente Rubio-Manzano
|
|
\item \textbf{E-MAIL:} clrubio@ubiobio.cl
|
|
\end{itemize}
|
|
|
|
\subsection{Personas, Instituciones O Empresas En Que Se Solicitará Apoyo Y Asesoría}
|
|
|
|
\begin{itemize}
|
|
\item \textbf{NOMBRE:} Clemente Rubio-Manzano
|
|
\item \textbf{RUBRO:} Educación Superior - Universidad del Bío - Bío
|
|
\item \textbf{E-MAIL:} clrubio@ubiobio.cl
|
|
\item \textbf{FIRMA:}
|
|
\end{itemize}
|
|
|
|
\subsection{Nombre De La Persona Responsable De La Empresa Que Supervisara Al Alumno}
|
|
|
|
\begin{itemize}
|
|
\item \textbf{NOMBRE:} Clemente Rubio-Manzano
|
|
\item \textbf{CARGO:} Profesor Jornada Completa Departamento Sistemas de Información
|
|
\item \textbf{E-MAIL:} clrubio@ubiobio.cl
|
|
\end{itemize}
|
|
|
|
\section{Título Anteproyecto}
|
|
|
|
Diseño e Implementación de un lenguaje de programación {\color{white}\hl{de tipo declarativo inspirado en Prolog}} para control de agentes en videojuegos.
|
|
|
|
\section{Descripción del Problema}
|
|
|
|
Los videojuegos de plataformas son un género de videojuegos que se basan en completar niveles, obtener objetos y sortear obstáculos tales como\
|
|
acantilados o plataformas (dado así el nombre del género). Este tipo de videojuegos usualmente utilizan una vista de desplazamiento horizontal\
|
|
de izquierda a derecha.
|
|
|
|
\begin{figure}[!h]
|
|
\centering
|
|
\includegraphics[width=0.4\textwidth, height=0.4\textheight, keepaspectratio]{prototipo.png}
|
|
\caption{Prototipo de Platformer}
|
|
\label{fig:prototipo_platfomer}
|
|
\end{figure}
|
|
|
|
Uno de los juegos más influyentes y populares en este género es Super Mario Bros., lanzado en 1985. Este juego sentó las bases de lo que hoy\
|
|
se considera un videojuego de plataforma, incluyendo los elementos típicos, como distribución en niveles por cada mundo y obtención\
|
|
de objetos para tener una vida extra.
|
|
|
|
En el trabajo se va a utilizar un lenguaje lógico de programación para diseñar e implementar un agente inteligente para ser incorporado en un video\
|
|
juego implementado mediante el motor Godot.
|
|
|
|
Un lenguaje lógico es una manera de modelar el comportamiento de los seres humanos empleando reglas del tipo ''if...then...'' para\
|
|
resolver una dificultad, con la diferencia de poder elegir qué problema queremos solucionar y\
|
|
desarrollando relaciones entre objetos (agentes y/o obstáculos).
|
|
|
|
Todo esto es creando un sistema que será capaz de resolver un problema como lo hace un ser humano y superarlos.\
|
|
Este sistema es llamado\
|
|
''Inteligencia Artificial'', una combinación de programación y lógica, que tiene las mismas capacidades racionales de un ser humano.
|
|
|
|
Por tanto, se va a abordar un típico problema que incluye la toma de decisiones para superar obstáculos.
|
|
|
|
|
|
\section{Objetivos de la Actividad}
|
|
|
|
\subsection{Objetivo General:}
|
|
|
|
Desarrollar un lenguaje de programación {\color{white}\hl{de tipo declarativo inspirado en Prolog}} que permita modelar el comportamiento de los agentes de un vídeojuego empleando\
|
|
reglas declarativas.
|
|
|
|
\subsection{Objetivos Específicos:}
|
|
|
|
\begin{enumerate}
|
|
\item Revisar bibliografía sobre Prolog, el motor Godot y programación de video juegos.
|
|
\item Analizar la información recopilada de la bibliografía investigada.
|
|
\item Crear el lenguaje de programación {\color{white}\hl{de tipo declarativo inspirado en Prolog.}}
|
|
\item Desarrollar un videojuego usando una inteligencia artificial {\color{white}\hl{inspirado en Prolog.}}
|
|
\item Evaluar el desempeño del lenguaje creado {\color{white}\hl{,analizando el cumplimiento exitoso del nivel y comparando metricas especificas versus un ser humano.}}.
|
|
\end{enumerate}
|
|
|
|
\section{Descripción de las actividades (Plan de trabajo)}
|
|
|
|
\begin{enumerate}
|
|
\item Fase 1. Revisión y descarte de bibliografía relacionada al desarrollo de videojuegos con implementación de inteligencia artificial\
|
|
basado en Prolog y motor Godot.
|
|
\item Fase 2. Estudio de la información recopilada para posible implementación en el software.
|
|
\item Fase 3. Creación del lenguaje de programación lógico basado en Prolog.
|
|
\item Fase 4. Implementación de un videojuego en el motor Godot de estilo plataforma formado por agentes inteligentes programados mediante\
|
|
el lenguaje recientemente creado.
|
|
\item Fase 5. Evaluación del sistema para verificar el comportamiento del lenguaje creado y su correcto desempeño.
|
|
\end{enumerate}
|
|
|
|
|
|
\section{Justificación del Proyecto}
|
|
|
|
El beneficio de usar un lenguaje lógico en vez de funcional es poder programar una inteligencia artificial que tome decisiones\
|
|
de la misma forma que una persona real piensa usando datos basado en el entorno.
|
|
|
|
Es necesario para así simular de manera más realista el comportamiento humano de una inteligencia artificial y poder ser\
|
|
adaptado a otros tipos de juegos y motores.
|
|
|
|
Adicionalmente, al utilizar un lenguaje de programación compilado en vez de scripting, se puede desarrollar una inteligencia artificial\
|
|
que sea capaz de tomar decisiones complejas con mayor rapidez.
|
|
|
|
\section{Análisis de los Principales Trabajos Realizados en el área o tema de la propuesta }
|
|
|
|
En el Short Paper Prolog-Scripted Tactics Negotiation and Coordinated Team Actions for Counter-Strike Game Bots \cite{Prolog-Scripted2016},\
|
|
se implementa un script de prolog para controlar los agentes presentes en el juego.
|
|
|
|
Una de las características del lenguaje de scripting usado en el paper es que se interpreta a medida que va ejecutándose, lo que provoca que\
|
|
el rendimiento del software sea peor, acentuándose mas en inteligencias artificiales mas complejas.
|
|
|
|
En cambio, el lenguaje compilado tiene mejor rendimiento y se pueden encontrar errores de compilación antes de ejecutarse, lo que facilita\
|
|
la corrección y el feedback para evitar problemas futuros.
|
|
|
|
\section{Resultados Esperados de la investigación (INV) o Descripción del ambiente de Software esperado (SW)}
|
|
|
|
Esencialmente se espera que un agente en el video juego pueda evitar obstáculos a través de la toma de decisiones utilizando\
|
|
la inteligencia artificial implementada y así llegar a la meta.
|
|
|
|
\section{Planificación del trabajo a desarrollar: Carta Gantt}
|
|
|
|
En esta sección se presenta la carta gantt del plan de trabajo a desarrollar para el software
|
|
|
|
\begin{table}[!h]
|
|
\begin{center}
|
|
\begin{tabular}{|l|l|l|}
|
|
\hline
|
|
\textbf{Actividad} & \textbf{Duración} & \textbf{I/F} \\ \hline
|
|
Revisión y descarte de bibliografia & 1 mes & Marzo \\ \hline
|
|
Estudio de información recopilada & 1 mes & Abril \\ \hline
|
|
Creación de lenguage tipo Prolog & 3 meses & Mayo-Julio \\ \hline
|
|
Implementación de lenguaje tipo Prolog en Godot & 1 mes & Agosto \\ \hline
|
|
Desarrollo de videojuego con I.A. & 3 meses & Septiembre-Noviembre \\ \hline
|
|
\end{tabular}
|
|
\end{center}
|
|
\end{table}
|
|
|
|
\section{Referencias}
|
|
|
|
\printbibliography[
|
|
heading=none]
|
|
|
|
\end{document} |