Anda di halaman 1dari 6

Desarrollo de un motor de videojuegos para el género de aventura Point-and-Click

Ingeniero Junior ROJAS DÁVALOS


Grupo AVATAR PUCP – Facultad de Ciencias e Ingeniería – Pontificia Universidad Católica del Perú
Lima - Perú
Ingeniero Johan BALDEÓN MEDRANO
Grupo AVATAR PUCP – Departamento de Ingeniería – Pontificia Universidad Católica del Perú
Lima - Perú
RESUMEN

En la actualidad, los videojuegos tienen una participación activa Por lo expuesto, se ha desarrollado un motor de juegos, que
en el rubro del entretenimiento y su industria es considerada una provea de las herramientas específicas necesarias para nuevos
de las más atractivas. Además, el desarrollo de un videojuego desarrollos de videojuegos de aventura point-and-click, tales
implica la participación de distintas disciplinas como la de como bibliotecas que manejen las características ya
computación, arte, comunicaciones, y las especialidades que mencionadas de este género, así como editores gráficos que
estuvieran interesadas en su temática y reglas. permitan administrar el contenido del juego, como diálogos,
objetos y escenarios. La solución brinda el soporte al desarrollo
Para lograr desarrollos rápidos de juegos es necesario contar de juegos 2D de aventura point-and-click, ya que si bien existen
con la ayuda de un motor de videojuegos que facilite su juegos con gráficos 3D, normalmente los entornos 2D son la
creación, encapsulando las reglas computacionales y elección para el desarrollo de este género.
permitiendo la entrada de reglas propias de la temática que se
estaría abordando en el juego. La solución está a dirigida a cualquier tipo de usuarios, que
puede ser una comunidad de desarrolladores de software de
Parte del presente trabajo consiste en explicar el proyecto de entretenimiento, comunicadores que deseen proponer una
desarrollo de una herramienta de apoyo al proceso de desarrollo historia de aventura, profesionales que deseen plasmar un guión
de videojuegos de aventura point-and-click, mediante el de su tema mediante un juego de aventura, etc.
desarrollo de un motor de juegos del género en mención. Los
juegos de este tipo presentan una serie de características básicas Como objetivos del trabajo se lograron:
que pueden ser implementadas en una herramienta que permita
su reutilización. - La identificación de las características principales comunes a
los juegos de aventura point-and-click e implementación de una
Palabras Claves: motor de videojuegos, point and click biblioteca con clases y métodos que permiten controlar las
videojuegos, ingeniería, computación. características identificadas.
1. INTRODUCCIÓN - Una revisión de otros motores de juegos de aventura point-
and-click y las funcionalidades que ofrecen.
Según estadísticas del 2011 de la Entertainment Software
Association [1], el 72% de los hogares en Estados Unidos - La adaptación de un algoritmo basado en heurística (A*) para
consume videojuegos y el 29% de los jugadores son mayores de la búsqueda de rutas sobre escenarios 2D con un rendimiento
50 años, lo cual confirma que la industria de los videojuegos es aceptable en entornos en tiempo real (se considera que un
una de las principales industrias de entretenimiento e incluso algoritmo es heurístico cuando la solución no se determina en
compite con la del cine en cuanto a popularidad y tamaño [2]. forma directa, sino mediante ensayos, pruebas y reensayos, y en
el contexto descrito, el término aceptable quiere decir que los
Hoy en día, hay muchas organizaciones dedicadas al desarrollo cálculos realizados por el algoritmo no deben afectar a la
de videojuegos que, sin mucho presupuesto, han logrado velocidad de rendering del juego, que, para este caso, se fijó en
publicar títulos destacables debido a que las barreras de un mínimo deseable de 25 cuadros por segundo).
mercado que existían antiguamente se han visto disminuidas.
Esto es gracias a nuevos modelos de negocio que facilitan la - El desarrollo de herramientas gráficas para administrar el
distribución de los juegos y permiten que los videojuegos de contenido específico del juego como diálogos, objetos y
éxito comercial no sean exclusividad de grandes empresas. Por escenarios, que sirven como datos de entrada a los métodos de
este mismo crecimiento, han aparecido herramientas para la biblioteca encargados de procesarlos.
desarrollar videojuegos que están al alcance de muchas personas
de manera gratuita. 2. MARCO CONCEPTUAL Y ESTADO DEL ARTE

Estas herramientas cada vez incluyen más funcionalidades de El tema de los videojuegos presenta una gran variedad de
uso recurrente en el desarrollo de este tipo de software, pero conceptos, que, por lo general, se han originado de la misma
existen tantos géneros y modalidades dentro de todo lo que se evolución de la industria y, en muchos casos, no ha existido una
puede considerar como videojuegos que existen ciertas áreas en motivación por definirlos de manera rigurosa. Sin embargo, es
las cuales aún se pueden desarrollar herramientas con necesario definir de manera clara los conceptos que son usados
funcionalidades más específicas que faciliten el desarrollo. de manera recurrente.

El marco del presente artículo se centra en los videojuegos de Asimismo, se realiza un primer acercamiento a las tecnologías
aventura del tipo point-and-click, pues es un género que que existen actualmente y que pueden ser usadas para
presenta una serie de características que podrían incluirse dentro desarrollar videojuegos de aventura point-and-click, pues
de una herramienta que las implemente para agilizar el proceso sirvieron como referencias para definir las funcionalidades del
de desarrollo. motor desarrollado. Al hacer la revisión, se encontraron que
existen ciertas carencias en las herramientas actuales, las cuales
fueron consideradas para ser cubiertas por el producto
desarrollado en este proyecto. De similar manera, las principales - Cada escenario contiene elementos que pueden estar en
ventajas encontradas en determinadas tecnologías fueron cualquier ubicación del mismo y estos elementos pueden ser
adoptadas para ser incluidas en el motor de juegos. objetos o personajes con los cuales el jugador puede interactuar.
- Otro elemento con el cual se puede interactuar es el escenario
Marco Conceptual mismo. Se puede señalar cualquier punto del escenario que no
Se presentan términos y temas clave relacionados con el contenga un elemento y, en ese caso, normalmente la acción por
proyecto. defecto a considerar, a pesar de no haberla seleccionado de un
Videojuego: Para definir lo que es un videojuego, es menú, es caminar, es decir, mover al personaje principal al
fundamental comenzar por una definición de juego en general. punto objetivo seleccionado.
Un juego puede ser definido como una actividad interactiva que - No todo punto del escenario es una zona sobre la cual se pueda
brinda al jugador una secuencia de patrones desafiantes que caminar.
eventualmente logra vencer [3]. Además, es importante destacar - El personaje debe llegar al punto objetivo finalmente
que la experiencia que genera un juego en sus usuarios es muy calculado al señalar en un punto del escenario, evitando los
importante, ya que es el factor que hace que un juego tenga obstáculos que hay en medio, por lo cual se requiere de un
mayor valor. Es importante comprender también que los juegos algoritmo especializado para calcular la ruta que seguirá.
en sí no son experiencias, sino que son herramientas que - En muchos casos, al señalar un elemento del escenario, es
permiten generar experiencias en los jugadores [4]. necesario que el personaje se mueva hacia el elemento
seleccionado. En ese caso, el personaje no llegará al punto
Los videojuegos se pueden considerar como la adaptación de exacto indicado, sino que debe existir un mecanismo que
los juegos tradicionales a un medio en particular. En este caso, permita relacionar un elemento en el escenario con un punto
los juegos se adaptan a un medio que permita generar respuestas cercano contenido en una zona sobre la cual el personaje sí
en un dispositivo de video, como las computadoras personales y pueda caminar.
las consolas de videojuegos. - No todas las acciones realizadas sobre los elementos del
Desde el punto de vista de la Ciencia de la Computación, la escenario o inventario desencadenan algún cambio de estado en
mayoría de los videojuegos pueden ser considerados como el juego.
simulaciones computacionales interactivas de tiempo real - El jugador debe intuir qué tipo de acciones debería realizar
flexible basadas en agentes, considerando "agente" como una para poder vencer los retos planteados en el juego.
entidad autónoma que puede trabajar sin la intervención directa - Es posible realizar la acción de hablar con los personajes que
del usuario y tienen cierto control sobre sus acciones y estado aparecen en el escenario. Estos diálogos se caracterizan por
interno, ya que los videojuegos suponen la existencia de una tener opciones múltiples que el jugador puede elegir como
realidad, incluso si es una realidad ficticia, y simulan esa respuesta y, según su elección, puede cambiar el estado del
realidad mediante un modelo matemático [2]. Además existen juego o vencer retos planteados en él.
agentes como personajes y objetos que interactúan entre sí, por - Es posible que el jugador recolecte objetos a lo largo del
lo cual es considerado un sistema basado en agentes. Por otro juego, algunos de ellos podrán ser obtenidos del mismo
lado, son considerados sistemas de tiempo real debido a que, escenario realizando las acciones apropiadas según la lógica del
por el uso de dispositivos de video, es importante que el tiempo juego y otros podrían ser obtenidos como resultado de algún
de respuesta de los videojuegos sea corto para que la efecto especial.
experiencia del usuario sea buena.
Motor de Juegos: El término motor se puede entender de
Juegos de aventura point-and-click: El término diversas formas, aunque, en esencia, un motor es una
point-and-click hace referencia a una forma en particular de herramienta que brinda una base para desarrollar algo
interfaz que consiste en interactuar sólo a través de señalar específico. Por ejemplo, se puede pensar en un motor de juegos
determinados puntos de una pantalla. Originalmente esto estaba como un conjunto de capas o componentes interrelacionados
limitado a la entrada por mouse. Sin embargo, con las últimas que brindan la base para desarrollar un videojuego. Sin
tendencias en tecnología, esto se ha expandido a más embargo, cada uno de los componentes de este motor más
posibilidades, como el uso de controladores de ciertas consolas grande también puede denominarse motor, ya que, por
de videojuegos y pantallas táctiles de diversos dispositivos. Este separado, cada uno también sirve como base para resolver una
tipo de interacción ha sido tomado ampliamente por juegos de tarea específica.
aventura gráfica. Aunque algunos otros géneros de juegos
también pueden ser considerados del tipo point-and-click, el De manera similar, diversos motores, como el desarrollado en
proyecto pone énfasis en los juegos de aventura, ya que son los este proyecto, pueden ubicarse en otras capas para
que principalmente hacen uso de esta interfaz y tienen muchas complementar la funcionalidad de otro motor o solución más
características en común que no se encuentran en otros géneros, grande. Por ejemplo, productos actuales como Citrus Engine y
tales como manejo de diálogos, inventario y personajes. ALPACA son considerados motores de juegos e incluso
incluyen dicho término en sus nombres, a pesar de ser
En base a una revisión histórica y un análisis de juegos actuales, componentes que funcionan sobre una plataforma más grande y
a continuación se resume, de manera puntual, el conjunto de de propósito general como Adobe Flash, ya que brindan
características que normalmente tiene un juego de aventura herramientas para desarrollar videojuegos de tipos específicos;
point-and-click: en el caso de Citrus Engine, principalmente juegos de
plataforma y en el caso de ALPACA, juegos de aventura.
- Existe un personaje principal controlado por el jugador.
- El juego se compone de diversos escenarios interconectados. Algoritmo A*: Para los juegos de aventura point-and-
- El jugador cuenta con un inventario de objetos y estos objetos click es necesario utilizar un algoritmo que permita obtener
pueden ser combinados para obtener nuevos objetos. rutas para mover al personaje principal en el escenario desde su
- Existe un menú de acciones o algún mecanismo similar que posición actual hasta una posición señalada por el usuario. El
permita seleccionar qué acción se desea realizar y ésta es la que algoritmo que se adaptó para esta tarea fue el algoritmo A*, ya
se aplicaría al señalar algún elemento del juego. que este algoritmo es, probablemente, el algoritmo más usado
en el desarrollo de videojuegos de todo tipo, por su eficiencia y
calidad de respuesta, pues permite obtener la ruta óptima entre - Crear y editar escenarios, así como definir el área de terreno
dos nodos dados de un grafo, si es que esta ruta existe [5]. para cada escenario
- Agregar y quitar objetos y personajes no controlados por el
El algoritmo A* se basa en el algoritmo de Dijkstra y funciona jugador de los escenarios
de manera muy similar a él, pero agrega el uso de una heurística - Definir un punto de acción para cada objeto del escenario
que permite obtener la ruta óptima de un nodo a otro de manera - Guardar los cambios hechos sobre los escenarios
más rápida [6]. - Definir acciones realizables sobre cada objeto dentro del juego
Plataforma Adobe Flash: Flash es una plataforma - Definir el efecto de realizar una acción sobre cada objeto
orientada al desarrollo multimedia en general que cuenta con - Crear y editar diálogos, así como las opciones disponibles para
una gran popularidad en la web (el runtime Flash Player se el jugador como respuesta a la conversación
encuentra instalado en el 98% de las computadoras de escritorio - Definir el efecto que produce llegar a cierto punto del diálogo
en el mundo con conexión a Internet). Esta plataforma está - Guardar los cambios hechos sobre los diálogos
conformada por runtimes, herramientas, frameworks, servicios y - Insertar una lista de textos al momento de definir el texto de
servidores que dan soporte al desarrollo de aplicaciones, un diálogo donde cada elemento corresponde a un idioma
especialmente aquellas con alto contenido multimedia, como es - Agregar y quitar objetos del inventario del jugador
el caso de los videojuegos [7]. - Definir el efecto de combinar dos objetos del inventario

Probablemente el elemento más conocido de todo lo que Cuadro 2.1: Comparación de motores actuales de juegos de
conforma la plataforma Flash es el runtime Flash Player, que aventura point-and-click
tiene la posibilidad de funcionar en navegadores web. Una
a B c d
ventaja de las aplicaciones que se ejecutan sobre este runtime es Adobe Flash Win Win Win
Funciona
que funcionan de manera consistente en todos los navegadores Professional
sobre
web que lo soporten. A pesar de la creciente popularidad de (Win,MacOSX)
tecnologías como HTML5, CSS3 y JavaScript para tareas que Publicación Web, PC, Std: Win Win, Win
antes eran exclusividad de Flash en la web, el desarrollo de para Linux, Lite: Linux
aplicaciones directamente con ellas requiere muchas veces de MacOSX, iOS, MacOSX,
un tratamiento especial para cada navegador en particular sobre Android iOS
el cual se ejecutará la aplicación, lo cual no ocurre con el Personajes Sí Sí Sí Sí
runtime Flash Player [7]. 2D
Escenarios Sí Sí Sí Sí
Por otro lado, una desventaja del runtime Flash Player es que no 2D
funciona en una gran mayoría de dispositivos móviles. Sin Personajes No Sí No No
embargo, es importante mencionar que la plataforma Flash no 3D
está conformada sólo por el runtime Flash Player. La plataforma Escenarios No No No No
Flash contiene herramientas de desarrollo que permiten 3D
compilar ejecutables para el runtime Flash Player o para el
Inventario Sí Sí Sí Sí
runtime AIR, con el cual es posible llevar aplicaciones a
Editor de Sí Sí Sí Sí
plataformas de escritorio y móviles. Actualmente, es posible
objetos
llevar aplicaciones Flash a dispositivos Android, iOS y
Movimiento No Sí Sí Sí
Blackberry gracias al runtime AIR [7].
de cámara
Revisión del Estado del Arte Diálogos con Sí Sí Sí Sí
opción
A continuación se presentan motores actuales enfocados a la
multiple
creación de juegos del género de aventura point-and-click.
Soporte No Sí Sí Sí
a) ALPACA: Es un motor de juegos point-and-click para
2D para la plataforma Flash y requiere necesariamente del uso traducciones
de la herramienta Adobe Flash Professional, que tiene un costo Editor de No No Sí Sí
por licencia. diálogos
b) Wintermute: Es un motor de juegos point-and- Editor de Sí Sí Sí Sí
click 2D, aunque también permite insertar personajes 3D en escenarios
escenarios 2D. Es gratuito. Cursores Sí Sí Sí Sí
c) Adventure Game Studio: Es un motor de juegos editables
2D point-and-click para escritorio. Guardado y Sí Sí Sí Sí
d) Visionaire Studio: Es un motor de juegos 2D carga de
point-and-click para Windows. partidas
Lenguaje de ActionScript Propio Propio Propio
En el Cuadro 2.1, se presenta una comparación entre los
motores con características específicas de cada uno. scripting 3.0

3. SOLUCIÓN Otras funcionalidades que le permite al jugador son:

En esta sección se describen aspectos de las funcionalidades del - Mover el personaje principal indicando un punto objetivo
motor de juegos, su arquitectura y diseño en general. Además, dentro del área de terreno de un escenario y hacia el lugar más
se describen las tecnologías y herramientas utilizadas en el adecuado aunque el punto objetivo esté fuera del terreno.
desarrollo de la solución. - Ir de un escenario a otro.
- Interactuar con los objetos del escenario aplicando cierta
Funcionalidades acción sobre cierto objeto
- Ver en todo momento los objetos del inventario
A continuación se presentan algunas funcionalidades que la
solución ofrece, tales como, le permite al desarrollador:
- Iniciar conversaciones con los personajes no controlados por agregar tipos de datos básicos a los que ya brinda la plataforma
el jugador Flash y que podrán ser usados en cualquier otro componente del
- Recolectar objetos del escenario y agregarlos al inventario motor.
- Combinar objetos del inventario
- Guardar el progreso en el juego Figura 3.2: Componentes de funcionalidades base del motor de
juegos
Arquitectura de la Solución
A continuación se describen, a alto nivel, los componentes que
conforman el motor y cómo interactúan entre sí. Parte de lo que
se busca en la arquitectura del motor es organizar sus
componentes de manera que haya una separación adecuada
entre aquellos que son más dependientes de la plataforma Flash
y aquellos que lo son en menor medida, para tener la posibilidad
de que a futuro sea implementado en otra plataforma fácilmente.
a. Componentes principales: A grandes rasgos, el
motor está conformado por dos componentes principales que se
pueden apreciar en la Figura 3.1, las funcionalidades base y los
editores de contenido. El componente de funcionalidades base
contiene no sólo lógica en sí, sino también las entidades propias
de los juegos de aventura point-and-click y algunas
funcionalidades gráficas básicas.
El componente de funcionalidades base es suficiente para crear
juegos del mencionado género asumiendo que ya se dispone de
los datos propios del juego como los diálogos, la morfología de
los escenarios y los objetos que estos contienen. La creación de
estos datos sin una herramienta que asista el proceso puede - Algoritmos de bajo nivel: Este componente incluye
tomar mucho tiempo y puede ser muy propensa a errores. Para algoritmos que manejan las entidades de bajo nivel y brindan
eso, existe el componente de editores de contenido, que funcionalidades básicas, como detección de colisiones y
mediante una interfaz gráfica permite administrar el contenido búsqueda de la ruta óptima entre dos nodos de un grafo. Estos
del juego y generar archivos que luego servirán como datos de algoritmos no manipulan ningún tipo de dato propio de la lógica
entrada al componente de funcionalidades base. del juego de alto nivel, ya que el objetivo es que estas
operaciones puedan ser usadas de manera general en cualquier
Figura 3.1: Componentes principales del motor de juegos otro componente del motor.
- Modelo: Este componente contiene entidades de alto nivel, es
decir, propias de los juegos de aventura point-and-click, como
escenario, personaje e inventario. En algunos casos, las clases
de este componente hacen uso de entidades de bajo nivel para
describir ciertas propiedades básicas de los objetos de alto nivel.
Los datos de la mayoría de las entidades de este componente se
podrán cargar desde los archivos que representan los recursos
del juego.
- Controlador: Este componente incluye clases que permiten
manipular las entidades de alto nivel. Sólo las clases de este
componente manejan directamente la lógica del juego.
Generalmente, una actualización del estado del juego debe pasar
por alguna clase controladora.
- Vista de depuración: Este componente incluye clases que
permiten mostrar gráficamente ciertas entidades que no
aparecerán finalmente en el juego, pero que son útiles para el
desarrollador y diseñador de niveles mientras está creando y
b. Componentes de funcionalidades base: Para la probando el juego. Por ejemplo, en este componente se incluyen
construcción de este componente se tomará como referencia el métodos para dibujar los polígonos que representan los límites
patrón de arquitectura MVC (Modelo-Vista-Controlador), con del escenario y dibujar la ruta que el personaje principal está
algunos otros elementos necesarios que se indican en la Figura siguiendo dentro del escenario, aunque ninguno de los
3.2. Aunque no se indica explícitamente, los editores de mencionados será mostrado en la versión de producción del
contenido también usaron ciertos elementos del componente de juego.
funcionalidades base, ya que ambos manejan las mismas - Vista de juego: Este componente incluye clases que permiten
estructuras. A continuación se describen los componentes mostrar gráficamente todo lo que es relevante no sólo para el
mostrados en la Figura 3.2. desarrollador o diseñador de niveles, sino para el usuario final,
- Entidades de bajo nivel: Este componente contiene entidades el jugador, y además permite activar y desactivar la vista de
que no son propias del juego, pero que son necesarias para depuración. Este componente brinda funciones básicas para
muchas operaciones básicas. Por ejemplo, algunas entidades representar gráficamente el modelo del juego, ya que cada juego
que representen formas geométricas son necesarias para la en particular tendrá un estilo gráfico distinto y, a pesar del
creación de los escenarios. El objetivo de tener estas clases es nombre del componente, esta vista no será la vista usada
finalmente en el juego, sino que será necesario definir más encuentra una gran cantidad de elementos con los cuales el
particularidades del juego tomando como punto de partida la jugador puede interactuar, por lo cual estos son importantes para
vista básica brindada por el motor. resolver los retos planteados en el juego. Por eso, con el editor
es posible definir las reacciones de cada acción sobre cada
- Intérprete de scripts: Este componente permite traducir uno objeto del escenario. Estas reacciones están representadas por
o varios scripts de juego (en este caso, un script de juego se nodos de secuencia, para los cuales existe un editor
define como un comando más una lista de argumentos) a un especializado.
conjunto de instrucciones dentro del juego que hacen llamadas a
métodos de clases controladoras, con lo cual se logrará Figura 3.3: Editor de escenario
actualizar el estado del juego. Este componente permite definir
las reglas propias del juego fuera del mismo, lo cual posibilita
probar el juego sin necesidad de generar el ejecutable cada vez
que se agregan o cambian reglas de nivel. Además, permite
cierta escalabilidad, ya que, por defecto, el motor aceptará una
serie de comandos básicos que normalmente serían suficientes
para cualquier juego de aventura point-and-click, como por
ejemplo agregar un objeto al inventario mediante el comando
apropiado, además será posible definir nuevos comandos
mediante la implementación de una interfaz por parte del
desarrollador usuario del motor que funcionará de manera
similar al intérprete que el motor ya tiene implementado.
- Videojuego: Este componente no es parte del motor, hace
referencia al juego que se construye usando el motor y, como se
observa en la Figura 3.2, tiene interacción directa con el
modelo, controlador y vista de juego. Básicamente, desde el
videojuego simplemente se deben realizar las llamadas
adecuadas para inicializar el motor, además de definir la vista Editor de secuencias: El usuario puede editar las
final del juego tomando como punto de partida la vista de juego secuencias de nodos de manera gráfica. Esto implica crear,
brindada por el motor. mover y eliminar nodos, así como crear, editar y eliminar
conexiones entre nodos. La definición de conexiones entre
Adaptación del algoritmo A* nodos permite establecer un flujo de ejecución de nodos. Por
ejemplo, en la Figura 3.4 se muestran nodos de diálogo que se
Para este proyecto, el mayor esfuerzo realizado para la
ejecutan de manera secuencial, de los cuales, el primero puede
adaptación del mismo estuvo en la representación de los
ser asignado a la reacción de cierto objeto mediante el editor
escenarios del juego mediante una estructura que permita
correspondiente, de manera que se ejecute el diálogo completo
aplicar el algoritmo sobre él.
al realizar determinada acción sobre el objeto.
Por un lado, un escenario tiene límites y objetos dentro de él.
Figura 3.4: Editor de secuencias
Estos límites y objetos se representan mediante polígonos
dentro del escenario para lograr cierta precisión en las formas,
que no se lograría con representaciones más simples como
cuadriláteros o grillas. Por otro lado, los vértices de los
polígonos son usados como nodos del grafo procesado por el
algoritmo A* para encontrar una ruta óptima. Cada uno de estos
nodos contiene una lista de nodos vecinos. Debido a que, en
este caso, un nodo básicamente representa un punto en un
espacio bidimensional dentro de un escenario, se considera que
dos nodos son vecinos si el segmento de recta que los une no
interseca a ningún polígono del escenario. Además, es
importante mencionar que como función heurística para el
algoritmo se consideró la longitud del segmento de recta que
une un nodo con el nodo objetivo, ya que la representación
elegida para los escenarios brinda información suficiente para
conocer este valor y además resulta apropiado debido a que no
sobreestima el costo real de ir del nodo analizado al nodo
objetivo y es una opción comúnmente usada cuando el
problema involucrado está asociado a puntos de un sistema de Editor de Objetos: El usuario puede definir los
coordenadas. objetos de inventario globales de todo el juego. Como se
observa en la Figura 3.5, esto incluye el identificador del
Interfaz Gráfica mismo, el nombre y las reacciones al realizar cierta acción de
En esta sección se presentan algunas interfaces gráficas que juego sobre el objeto, las cuales se definen como nodos de
corresponden a los editores de contenido, ya que el componente secuencia, de manera similar al proceso para definir reacciones
de funcionalidades base es una biblioteca de clases y métodos y, en los objetos de escenario. Como ya se indicó en secciones
por lo tanto, no tiene interfaz gráfica. anteriores, estos objetos difieren de los objetos de escenario
debido a que no se encuentran en un escenario específico, sino
Editor de Escenario: Como se observa en la Figura que están disponibles de manera general en todo el juego. Estos
3.3, el usuario puede definir el área de terreno para cada objetos pueden ser adquiridos por el jugador y pueden ser
escenario y también define los polígonos base y puntos de transportados de escenario en escenario para utilizarlos de la
acción para cada objeto del escenario. En un escenario se manera más conveniente.
Figura 3.5: Editor de objetos Se han obtenido las siguientes conclusiones:
- Los videojuegos de aventura point-and-click comparten entre
sí muchas características que no se ven en otros géneros de
videojuegos y muchas de ellas no están implementadas en
motores de juegos de propósito general.
- Existen motores específicos de juegos de aventura point-and-
click disponibles. Sin embargo, en general, la carencia que
tienen es que permiten sólo generar juegos para ser ejecutados
en plataformas de escritorio.
- El componente relacionado a la interpretación de scripts
dentro de un motor de juegos es importante debido a que
permite tener cierta lógica del juego (que normalmente sería
parte del código fuente) como un recurso fuera del ejecutable
del juego y, por lo tanto, es posible modificar lógica sin
necesidad de generar nuevamente un ejecutable. Por ello se
implementó un intérprete de scripts para la inclusión de lógica
propia de cada escenario del juego. Esto permite agregar
escenarios o modificar la lógica de los mismos, usando el
Editor de acciones: Como se observa en la Figura mismo ejecutable del juego, alterando sólo los recursos externos
3.6, el usuario puede definir las acciones que estarán que contienen la información de cada escenario.
disponibles de manera global en el juego. La ventaja de tener un - Las estructuras de datos usadas para representar los obstáculos
editor de acciones es que se tendrá flexibilidad en el diseño del y morfología del escenario fueron adecuadas, ya que permiten
juego, ya que no existe limitación para definir acciones de juego que el algoritmo de búsqueda de rutas en el escenario funcione
y los efectos de cada acción sobre cada objeto se definen con tan sólo definir los límites del escenario y los objetos que lo
haciendo uso de los otros editores ya descritos. conforman. En algunos otros motores de videojuegos de
aventura point-and-click disponibles se observó que es
Figura 3.6: Editor de acciones necesario crear ciertas rutas predefinidas de manera explícita y
manual para que el algoritmo de búsqueda de rutas funcione
adecuadamente.
- El algoritmo A* se adaptó al motor de juegos de manera
exitosa y se comprobó que permite obtener soluciones con un
tiempo de respuesta suficientemente bueno para entornos de
tiempo real como los videojuegos, motivo por el cual es
ampliamente usado en el desarrollo de videojuegos.
- El contar con editores de contenido agiliza el proceso de
creación de videojuegos. Un usuario del motor no sólo sería el
desarrollador o programador del juego, sino también un
diseñador de juegos, es decir, alguien encargado de definir las
reglas, historia y mecánicas del juego.
Tecnologías y Herramientas 5. REFERENCIAS
Las tecnologías y herramientas específicas que se usaron para el [1] Entertainment Software Association, «"Essential Facts
desarrollo del motor de juegos fueron la plataforma de About the Computer and Video Game Industry",» 2011.
desarrollo Adobe Flash y las herramientas para la construcción [En línea]. Available:
de la lógica e interfaces gráficas fue mediante el entorno de http://www.theesa.com/facts/pdfs/ESA_EF_2011.pdf.
desarrollo integrado (IDE) Flash Builder y el framework Flex. [Último acceso: 12 Diciembre 2012].
Esta capacidad fue aprovechada para desarrollar las interfaces
gráficas de los editores de contenido del motor. [2] J. Gregory, Game Engine Architecture, Wellesley: AK
Peters, 2009.
Para la construcción del motor de juegos, tanto para el
componente de funcionalidades base como para los editores [3] R. Koster, A Theory of Fun for Game Design, Scottsdale:
gráficos de contenido, se usó el lenguaje de programación Paraglyph Press, 2004.
ActionScript 3.0, que es propio de la plataforma Flash. Es un [4] J. Schell, The Art of Game Design: A Book of Lenses,
lenguaje orientado a objetos basado en el estándar ECMAScript
Burlington: Morgan Kauffman, 2008.
y además del lenguaje base en sí, ActionScript 3.0 contiene
clases propias de la plataforma Flash que facilitan el manejo de [5] D. Bourg, AI for Game Developers, Sebastopol: O’Reilly
contenido multimedia, lo cual es fundamental para el desarrollo Media, 2004.
de videojuegos.
[6] I. Millington y J. Funge, Artificial Intelligence for Games,
4. CONCLUSIONES
San Francisco: Morgan Kauffman, 2006.
El proyecto buscó obtener como producto, básicamente, un
conjunto de funcionalidades que den soporte al desarrollo de [7] Adobe, «Introducing the Adobe Flash Platform,» [En
videojuegos de aventura point-and-click, a manera de biblioteca línea]. Available:
de clases y métodos, y editores de contenido propio de la lógica http://www.adobe.com/devnet/flashplatform/articles/flashpl
del juego, como escenarios, diálogos y personajes. Sin embargo, atform overview.html. [Último acceso: 27 agosto 2012].
para facilitar la prueba del motor y tener en los editores de
contenido, una pre-visualización más cercana al resultado final
del juego, se incorporó ciertas funcionalidades en los editores
para manipular también gráficos.

Anda mungkin juga menyukai