games control system s.a.w2.ucab.edu.ve/tl_files/ingenieriainformatica/tig/framework...
TRANSCRIPT
Games Control System S.A.
Diseño y Desarrollo de framework para la construcción de
video-juegos que posean simulaciones dinámicas virtuales 3d en
tiempo real e implementación en juego basado en pinball.
José Enrique Reyes 25/03/2010
2
EMPRESA
La empresa Games Control Systems
desarrollo de soluciones tecnológicas y de sistemas informáticos para diferentes
centros de esparcimiento
están relacionados con el área de los video
carreras de caballos, etc.
procesos administrativos,
establecimientos, así como la gestión de los sistemas informáticos propios de la
empresa. Adicionalmente
equipos necesarios para que estos sistemas sean implantados.
Esta empresa fue conformada por un grupo de emprendedores que vi
las posibilidades y necesidades existentes
de entretenimiento, y con
se buscan soluciones inn
necesidades de los clientes.
Técnicos
Figura 1: Estructura Organizacional de la empresa Games Control Systems.
La empresa Games Control Systems es una empresa joven
desarrollo de soluciones tecnológicas y de sistemas informáticos para diferentes
centros de esparcimiento dentro de todo el territorio nacional. Estos sistemas
están relacionados con el área de los video-juegos, como por ejemplo bingos y
, etc. también se desarrollan sistemas que automatizan los
administrativos, de control de nómina y de flujo de trabajo de estos
, así como la gestión de los sistemas informáticos propios de la
dicionalmente se realiza la instalación y mantenimiento de los
equipos necesarios para que estos sistemas sean implantados.
e conformada por un grupo de emprendedores que vi
dades y necesidades existentes en el área tecnológica de los
on la experiencia en el desarrollo de software y sistemas
soluciones innovadoras, de alto nivel tecnológico que satisfagan las
clientes.
Socios de la empresa Games Control Systems
Administración
Departamento Creativo
Departamento de Desarrollo de
Software
Departamento de Desarrollo Web
Figura 1: Estructura Organizacional de la empresa Games Control Systems.
GCS 2010
es una empresa joven encargada del
desarrollo de soluciones tecnológicas y de sistemas informáticos para diferentes
dentro de todo el territorio nacional. Estos sistemas
juegos, como por ejemplo bingos y
también se desarrollan sistemas que automatizan los
na y de flujo de trabajo de estos
, así como la gestión de los sistemas informáticos propios de la
realiza la instalación y mantenimiento de los
e conformada por un grupo de emprendedores que vieron
en el área tecnológica de los centros
en el desarrollo de software y sistemas,
de alto nivel tecnológico que satisfagan las
Departamento Creativo
Figura 1: Estructura Organizacional de la empresa Games Control Systems.
3
NUESTRA VISIÓN Ser la compañía líder en el desarrollo de
de Venezuela, ofreciendo productos innovadores, de calidad, que sean divertidos
y que generen experiencias memorables para nuestros clientes.
NUESTRA MISIÓN Nos sentimos orgullosos de trabajar en un área que apasiona a todos
integrantes de la compañía y creemos que esto es esencial para poder cumplir
con nuestros objetivos a corto y a largo plazo. Estamos convencidos que
trabajando duro, con dedicación, paciencia y mucha vocación lograremos
alcanzar nuestras metas.
NUESTROS VALORES
• Integridad - Llevamos a cabo nuestros negocios con honestidad, integridad y transparencia, cumpliendo con las leyes y reglamentos aplicables.
• Excelencia - Estamos siempre comprometidos a superar nuestra
expectativas, proporcionando un servic
• El trabajo en equipo, liderazgo y comunicación lograr los objetivos de negocio de la compañía y superar
constantemente.
• Respeto - Promover un entorno que fomenta la diversidad, la
comunicación y el respe
clientes.
• Innovación - Fomentar la creatividad y la innovación en la mejora de
nuestra oferta de entretenimiento y en la mejora de nuestra excelencia
operativa.
Ser la compañía líder en el desarrollo de video-juegos y entretenimiento
de Venezuela, ofreciendo productos innovadores, de calidad, que sean divertidos
y que generen experiencias memorables para nuestros clientes.
Nos sentimos orgullosos de trabajar en un área que apasiona a todos
integrantes de la compañía y creemos que esto es esencial para poder cumplir
con nuestros objetivos a corto y a largo plazo. Estamos convencidos que
trabajando duro, con dedicación, paciencia y mucha vocación lograremos
alcanzar nuestras metas.
Llevamos a cabo nuestros negocios con honestidad, integridad
y transparencia, cumpliendo con las leyes y reglamentos aplicables.
Estamos siempre comprometidos a superar nuestra
, proporcionando un servicio de altísima calidad.
El trabajo en equipo, liderazgo y comunicación - Trabajar juntos para lograr los objetivos de negocio de la compañía y superarnos
.
Promover un entorno que fomenta la diversidad, la
comunicación y el respeto mutuo para nuestros empleados y nuestros
Fomentar la creatividad y la innovación en la mejora de
nuestra oferta de entretenimiento y en la mejora de nuestra excelencia
GCS 2010
juegos y entretenimiento
de Venezuela, ofreciendo productos innovadores, de calidad, que sean divertidos
Nos sentimos orgullosos de trabajar en un área que apasiona a todos los
integrantes de la compañía y creemos que esto es esencial para poder cumplir
con nuestros objetivos a corto y a largo plazo. Estamos convencidos que
trabajando duro, con dedicación, paciencia y mucha vocación lograremos
Llevamos a cabo nuestros negocios con honestidad, integridad
y transparencia, cumpliendo con las leyes y reglamentos aplicables.
Estamos siempre comprometidos a superar nuestras
io de altísima calidad.
Trabajar juntos para
nos
Promover un entorno que fomenta la diversidad, la
to mutuo para nuestros empleados y nuestros
Fomentar la creatividad y la innovación en la mejora de
nuestra oferta de entretenimiento y en la mejora de nuestra excelencia
4
CASOS EXITOSOS
Games Control Systems
colocados a nivel nacional en distintas salas, AllBingo y AllHorse. Ambos han
tenido gran receptividad y la compañía está ansiosa de seguir aumentado su
repertorio de juegos.
All Horse
Video-juego de Carreras d
quiniela (combinación sin orden entre primero y segundo) entre 6 caballos. El
juego completo se compone de un
video principal en alta definición y módulos para us
Video Principal: Inicio de la carrera.
Games Control Systems orgullosamente muestra como emblema 2 juegos,
colocados a nivel nacional en distintas salas, AllBingo y AllHorse. Ambos han
tenido gran receptividad y la compañía está ansiosa de seguir aumentado su
Carreras de Caballos. El objetivo es predecir el ganador o
quiniela (combinación sin orden entre primero y segundo) entre 6 caballos. El
juego completo se compone de un servidor principal de control,
rincipal en alta definición y módulos para usuarios.
Video Principal: Inicio de la carrera. Video Principal: Repetición en cámara lenta.
GCS 2010
orgullosamente muestra como emblema 2 juegos,
colocados a nivel nacional en distintas salas, AllBingo y AllHorse. Ambos han
tenido gran receptividad y la compañía está ansiosa de seguir aumentado su
Caballos. El objetivo es predecir el ganador o
quiniela (combinación sin orden entre primero y segundo) entre 6 caballos. El
de control, un cliente de
Video Principal: Repetición en cámara lenta.
5
Módulo para Usuarios: Sincronizando con servidor de control.
AllBingo
Juego de Bingo español de 25 bolas. El objetivo del juego es hacer líneas
tantos horizontales como verticales, diagonales, esquinas o cruces. También
compuesto por un servidor de control, un cliente de video con
módulos de juego. El juego recrea un mundo virtual 3d con colisiones en tiempo
real.
Módulo para Usuarios: Sincronizando con servidor de control.
Juego de Bingo español de 25 bolas. El objetivo del juego es hacer líneas
tantos horizontales como verticales, diagonales, esquinas o cruces. También
compuesto por un servidor de control, un cliente de video con doble pantalla
El juego recrea un mundo virtual 3d con colisiones en tiempo
GCS 2010
Juego de Bingo español de 25 bolas. El objetivo del juego es hacer líneas
tantos horizontales como verticales, diagonales, esquinas o cruces. También
doble pantalla y
El juego recrea un mundo virtual 3d con colisiones en tiempo
6
OPORTUNIDAD
En la actualidad la compañía GCS posee distintos video
posicionados en diferentes salas de bingo
desarrollado siguiendo esquemas de trabajo relativamente nuevos, respaldados
por el conocimiento del personal de la compañía.
En los dos últimos años se ha ganado mucha experiencia y ha obtenido
buena retro-alimentación por parte de nuestros clientes, por ello; GCS si
obligación de evolucionar estos esquemas así como las herramientas utilizadas en
el desarrollo de videojuegos, teniendo en mente acelerar
productos, estandarizar los procesos y aumentar la calidad de los mismos.
Ahora, la compañía
con el desarrollo de un nuevo proyecto de alta complejidad técnica basado en
pinball. Este producto tendrá como objetivo afianzar los conocimientos y a su vez
ser novedoso. Se busca, entonces diseñar
servir como base para otros productos
objetos, tratando de reunir las mejores prácticas y patrones de diseño en cuan
al desarrollo de video-juegos.
En la actualidad la compañía GCS posee distintos video
posicionados en diferentes salas de bingo y casinos en Venezuela
siguiendo esquemas de trabajo relativamente nuevos, respaldados
por el conocimiento del personal de la compañía.
En los dos últimos años se ha ganado mucha experiencia y ha obtenido
alimentación por parte de nuestros clientes, por ello; GCS si
obligación de evolucionar estos esquemas así como las herramientas utilizadas en
el desarrollo de videojuegos, teniendo en mente acelerar la creación de
productos, estandarizar los procesos y aumentar la calidad de los mismos.
añía desea aumentar su gama de productos, y se enfrenta
con el desarrollo de un nuevo proyecto de alta complejidad técnica basado en
pinball. Este producto tendrá como objetivo afianzar los conocimientos y a su vez
. Se busca, entonces diseñar una herramienta flexible que pueda
servir como base para otros productos con una sólida arquitectura orientada a
objetos, tratando de reunir las mejores prácticas y patrones de diseño en cuan
juegos.
GCS 2010
En la actualidad la compañía GCS posee distintos video-juegos
Venezuela. Estos se han
siguiendo esquemas de trabajo relativamente nuevos, respaldados
En los dos últimos años se ha ganado mucha experiencia y ha obtenido
alimentación por parte de nuestros clientes, por ello; GCS siente la
obligación de evolucionar estos esquemas así como las herramientas utilizadas en
la creación de nuevos
productos, estandarizar los procesos y aumentar la calidad de los mismos.
desea aumentar su gama de productos, y se enfrenta
con el desarrollo de un nuevo proyecto de alta complejidad técnica basado en
pinball. Este producto tendrá como objetivo afianzar los conocimientos y a su vez
una herramienta flexible que pueda
una sólida arquitectura orientada a
objetos, tratando de reunir las mejores prácticas y patrones de diseño en cuanto
7
OBJETIVO GENERAL
Diseñar y Desarrollar framework para la construcción de video
posean simulaciones dinámicas virtuales 3d en tiempo real e implementarlo en
juego basado en pinball.
OBJETIVOS ESPECÍFICOS
• Definir, Diseñar y Desarrollar
Ogre.
• Definir, Diseñar y Desarrollar
• Definir, Diseñar y Desarrollar
• Definir, Diseñar y Desarrollar
• Definir, Diseñar y Desarrollar
• Definir, Diseñar y Desarrollar Subsistema de Eventos.
• Definir, Diseñar y Desarrollar Subsistema de Estados.
• Definir, Diseñar y Desarrollar el Cargador de Mundos Virtuales.
• Definir, Diseñar y Desarrollar Modelo de Entidades del Juego.
• Diseñar elementos
basado en pinball.
• Diseñar elementos físicos
• Probar funcionamiento del framework para el juego basado en pinball.
Desarrollar framework para la construcción de video
posean simulaciones dinámicas virtuales 3d en tiempo real e implementarlo en
.
OBJETIVOS ESPECÍFICOS
Definir, Diseñar y Desarrollar Wrapper (encapsulador de alto nivel)
Definir, Diseñar y Desarrollar Wrapper de OIS.
Definir, Diseñar y Desarrollar Wrapper de NxOgre.
Definir, Diseñar y Desarrollar Wrapper de OpenAl.
Definir, Diseñar y Desarrollar Subsistema de Actualización de Entidade
Definir, Diseñar y Desarrollar Subsistema de Eventos.
Definir, Diseñar y Desarrollar Subsistema de Estados.
Definir, Diseñar y Desarrollar el Cargador de Mundos Virtuales.
Definir, Diseñar y Desarrollar Modelo de Entidades del Juego.
Diseñar elementos gráficos con sus respectivos materiales
basado en pinball.
Diseñar elementos físicos para juego basado en pinball.
Probar funcionamiento del framework para el juego basado en pinball.
GCS 2010
Desarrollar framework para la construcción de video-juegos que
posean simulaciones dinámicas virtuales 3d en tiempo real e implementarlo en
(encapsulador de alto nivel) de
istema de Actualización de Entidades.
Definir, Diseñar y Desarrollar el Cargador de Mundos Virtuales.
Definir, Diseñar y Desarrollar Modelo de Entidades del Juego.
con sus respectivos materiales para juego
Probar funcionamiento del framework para el juego basado en pinball.
8
ALCANCE
El sistema final deberá proporcionar un esquema d
desarrollar juegos que contengan simulaciones dinámicas virtuales
Inicialmente dicho sistema se utilizará para desarrollar un juego basado en
pinball, pero la arquitectura del mismo deberá ser flexible e independiente del
juego, por ello, podrá utilizarse para otros proyectos que tengan necesidades
similares.
Primeramente, es necesario crear “wrappers” para cada una de las
librerías a utilizar, estos deberán exponer sus
organizada y sencilla.
Como parte del proyecto fueron identificados 4
subsistemas que harán posible que dicho framework sea orientado a data,
organizado, eficiente y escalable.
Cargador de Mundos Virtuales:otras características de la simulación estén
deberá ser posible confeccionar el mundo virtual en un formato legible
donde se puedan definir
simulación. El sistema leerá este archivo en tiempo real y generará los
requerimientos que satisfagan las necesidades de la simulación.
Subsistema de Actualización:actualización eficiente que mantenga un registro dinámico de las entidades
activas del juego y permita actualizarlas lo más rápido posible
interfaz única entre ellas
Subsistema de Eventosque permita que las diferentes entidades y módulos del
fácil y eficientemente. Para ello, se creará un manejador de eventos que
mantenga un registro de los emisores y receptores del sistema,
direccionar los eventos solo a quienes sea necesario.
El sistema final deberá proporcionar un esquema de trabajo fluido para
desarrollar juegos que contengan simulaciones dinámicas virtuales
Inicialmente dicho sistema se utilizará para desarrollar un juego basado en
pinball, pero la arquitectura del mismo deberá ser flexible e independiente del
, por ello, podrá utilizarse para otros proyectos que tengan necesidades
Primeramente, es necesario crear “wrappers” para cada una de las
lizar, estos deberán exponer sus funcionalidades de forma
Como parte del proyecto fueron identificados 4 principales
subsistemas que harán posible que dicho framework sea orientado a data,
eficiente y escalable.
Cargador de Mundos Virtuales: La idea principal es evitar que las entidades y de la simulación estén codificadas dentro del
deberá ser posible confeccionar el mundo virtual en un formato legible
puedan definir las distintas propiedades de los elementos de la
simulación. El sistema leerá este archivo en tiempo real y generará los
requerimientos que satisfagan las necesidades de la simulación.
Subsistema de Actualización: Será necesario desarrollar un subsistemaactualización eficiente que mantenga un registro dinámico de las entidades
activas del juego y permita actualizarlas lo más rápido posible
interfaz única entre ellas.
Subsistema de Eventos: Será indispensable desarrollar tambiénque permita que las diferentes entidades y módulos del juego se comuniquen
fácil y eficientemente. Para ello, se creará un manejador de eventos que
mantenga un registro de los emisores y receptores del sistema,
s solo a quienes sea necesario.
GCS 2010
e trabajo fluido para
desarrollar juegos que contengan simulaciones dinámicas virtuales en 3d.
Inicialmente dicho sistema se utilizará para desarrollar un juego basado en
pinball, pero la arquitectura del mismo deberá ser flexible e independiente del
, por ello, podrá utilizarse para otros proyectos que tengan necesidades
Primeramente, es necesario crear “wrappers” para cada una de las
funcionalidades de forma
principales módulos o
subsistemas que harán posible que dicho framework sea orientado a data,
La idea principal es evitar que las entidades y
codificadas dentro del juego, por ello
deberá ser posible confeccionar el mundo virtual en un formato legible ASCII
las distintas propiedades de los elementos de la
simulación. El sistema leerá este archivo en tiempo real y generará los
Será necesario desarrollar un subsistema de
actualización eficiente que mantenga un registro dinámico de las entidades
activas del juego y permita actualizarlas lo más rápido posible siguiendo una
también un subsistema
juego se comuniquen
fácil y eficientemente. Para ello, se creará un manejador de eventos que
mantenga un registro de los emisores y receptores del sistema, y se encargue de
9
Subsistema de Estados:situaciones. Se requiere total transparencia, organización y legibilidad a la hora
de declarar, y cambiar
manejador de estados que permita cumplir con estos requerimientos.
Subsistema de Estados: El juego o simulación poseerá varios estados o . Se requiere total transparencia, organización y legibilidad a la hora
entre dichos estados. Por ello es necesario real
manejador de estados que permita cumplir con estos requerimientos.
GCS 2010
El juego o simulación poseerá varios estados o
. Se requiere total transparencia, organización y legibilidad a la hora
estados. Por ello es necesario realizar un
manejador de estados que permita cumplir con estos requerimientos.
10
LIMITACIONES
• La Arquitectura del Motor de
eficientemente las funcionalidades de Ogre como librería gráfica, Nvidia
PhysX como librería física, MyGUI como librería para el desarrollo de
interfaces de usuario, OIS como librería para la captura general de eventos
de entrada y OpenAl como librería de
• El Sistema de Actualización de Entidades deberá evadir fallos de caché
por consiguiente;
• El Sistema de Eventos
el Patrón de Diseño "Delegados".
• El formato que almacena la composición de los Mundos Virtuales deberá
contener las distintas propiedades de cada una de las entidades del mundo
como nombre, modelo
orientación y escala.
• La herramienta utilizada
Autodesk Maya y dichos modelos deberán ser de baja resolución
• Los materiales del
puede apoyarse en NVIDIA SHADER FX o ATI RenderMonkey
a Arquitectura del Motor debe ser programada en
eficientemente las funcionalidades de Ogre como librería gráfica, Nvidia
PhysX como librería física, MyGUI como librería para el desarrollo de
interfaces de usuario, OIS como librería para la captura general de eventos
de entrada y OpenAl como librería de Audio 3d.
El Sistema de Actualización de Entidades deberá evadir fallos de caché
deberá trabajar por Lote y no por Entidad
ventos deberá ser flexible y fácil de utilizar
Patrón de Diseño "Delegados".
l formato que almacena la composición de los Mundos Virtuales deberá
contener las distintas propiedades de cada una de las entidades del mundo
como nombre, modelo gráfico, modelo físico, mate
orientación y escala.
La herramienta utilizada para el desarrollo de elementos gr
y dichos modelos deberán ser de baja resolución
materiales del juego deberán ser programados en lenguaje GLSL
puede apoyarse en NVIDIA SHADER FX o ATI RenderMonkey
GCS 2010
be ser programada en C++ integrando
eficientemente las funcionalidades de Ogre como librería gráfica, Nvidia
PhysX como librería física, MyGUI como librería para el desarrollo de
interfaces de usuario, OIS como librería para la captura general de eventos
El Sistema de Actualización de Entidades deberá evadir fallos de caché,
ntidad.
deberá ser flexible y fácil de utilizar, se recomienda
l formato que almacena la composición de los Mundos Virtuales deberá
contener las distintas propiedades de cada una de las entidades del mundo
material, posición,
para el desarrollo de elementos gráficos será
y dichos modelos deberán ser de baja resolución.
juego deberán ser programados en lenguaje GLSL,
puede apoyarse en NVIDIA SHADER FX o ATI RenderMonkey.
11
ÁREA DE CONOCIMIENTO
• Fuerte conocimiento en
• Cómodo conocimiento de matemática vectorial y física.
• Experiencia con el motor gráfico Ogre y
• Experiencia ligera en programación de
• Experiencia ligera en el desarrollo de video
• Experiencia ligera en Autodesk Maya.
ÁREA DE CONOCIMIENTO
Fuerte conocimiento en C++ y programación orientada a objetos.
conocimiento de matemática vectorial y física.
Experiencia con el motor gráfico Ogre y NxOgre.
Experiencia ligera en programación de Shaders.
Experiencia ligera en el desarrollo de video-juegos.
Experiencia ligera en Autodesk Maya.
GCS 2010
y programación orientada a objetos.