You are on page 1of 108

PRODUCCIN Y

DESARROLLO DE
VIDEOJUEGOS
Nicols Acerenza
Ariel Coppes
TEMAS
1. Introduccin
2. Modelos de negocios
3. Equipo de desarrollo
4. Ciclo de vida
5. Problemas en el desarrollo de videojuegos
6. Metodologas de desarrollo
7. Tecnologas y herramientas
8. Enfoques

1. Introduccin
QU ES UN VIDEOJUEGO?
Un juego es una actividad competitiva en donde se
quieren alcanzar un conjunto de metas, siguiendo
un marco de reglas preestablecidas.

Su finalidad puede ser principalmente divertir o
educar, pero no quedan acotados a estas
solamente.

Un videojuego es un juego que se presenta en un
software sobre distintas plataformas.



QU DIFERENCIAS HAY CON EL
SOFTWARE CONVENCIONAL?
Se le da una muy fuerte importancia al
contenido audiovisual.

Se necesita de un equipo multidisciplinario
de desarrollo.

Suele ser ms motivador para los
desarrolladores :D.


QU GNEROS DE VIDEOJUEGOS HAY?
Accin
Aventura
Estrategia
Simulacin
Puzzle
Juguetes
Educacional
CULES SON LAS PLATAFORMAS
DISPONIBLES?
PC: Windows, Mac OS, Linux, otros
Web
Consolas: Playstation2, Playstation3, Playstation Portable,
Nintendo Wii, Nintendo DS, Xbox 360, otros.
Dispositivos mviles: Celular, Pocket PC, Palm, otros.
Otros
2. Modelos de
negocios

2.1 Cadena de valores

CADENA DE VALORES
La cadena de valores encapsula las varias etapas
o procesos que se realizan sobre un producto en
su camino hacia un consumidor.

Cada etapa agrega valor u optimiza el producto.

La industria de video juegos est basada en la
creacin, publicacin y distribucin de productos.
CADENA DE VALORES
DESARROLLADORES (1)
Los desarrolladores son los responsables de la
creacin de los videojuegos.

Se componen por equipos interdisciplinarios con
decenas de profesionales como diseadores,
programadores, artistas, msicos, guionistas,
productores, entre otros.
DESARROLLADORES (2)
Generalmente subcontratan a empresas que se
encargan de partes especficas del desarrollo como
animacin o msica.

A veces se necesitan herramientas de desarrollo
externas (grficas, de programacin, etc.) que
tambin alimentan a los desarrolladores en esta
etapa.
PUBLISHERS
Son los responsables de la seleccin de ttulos de
videojuegos, tanto provenientes de estudios de
desarrollo independientes o de estudios internos.

Financian el desarrollo, supervisan su progreso y
correcta terminacin.

Suelen administrar la verificacin, la localizacin
(traduccin a diferentes idiomas y costumbres), el
marketing, la manufactura y en algunos casos, la
distribucin a los Retailers.
FABRICANTES DE CONSOLAS
Se encargan de disear y manufacturar nuevos
sistemas de consolas.

El precio de venta de estas consolas est
fuertemente subsidiado por los fabricantes, y
cobran una licencia por cada copia manufacturada.

Mantienen un estricto control sobre qu ttulos
obtienen la licencia en un mercado altamente
controlado.
DISTRIBUIDORES
Son intermediarios entre los Publishers y los
Retailers.

No crea ni publica juegos, no vende, no
manufactura ni financia estas actividades.

Venden juegos a los Retailers en nombre de los
Publishers pequeos que no tienen los recursos
necesarios.

Proveen espacio de almacenamiento y envo (para
juegos Retail).
RETAILERS Y PORTALES WEB
Retailers
Tiendas donde se pueden comprar los video
juegos en caja.
Compran los video juegos a un Distribuidor o
Publisher.

Portales Web
Venden los juegos proporcionando descarga
online.
CONSUMIDORES
Es quien quiere comprar un video juego.

Es la fuente de dinero que vuelve a cada
eslabn de la cadena.
En algunos casos el consumidor provee ese
dinero en forma directa, comprando el juego.

En otros casos un anunciante puede proveer
dinero mediante anuncios en el juego, etc.

2.2 Modelos de
ingresos
RETAIL
El videojuego se vende en un cd/dvd empaquetado
en una caja en una tienda (p.ej. un supermercado).

Es el mtodo ms conocido y ms usado hasta
hace relativamente poco tiempo.

Un ejemplo: Diablo II de Blizzard.
PUBLICIDAD
Se presentan distintos avisos publicitarios durante
el videojuego, pudiendo ser cuando comienzan, en
las cargas de pantallas, etc.

En caso de ser videojuegos web, los avisos pueden
ser mostrados en la pgina que contiene el
videojuego como cualquier otro aviso web.

El videojuego web Hattrick hace uso de avisos
publicitarios para obtener ingresos.

Otro ejemplo es el Pro Evolution Soccer que
publica avisos en las canchas, entre otros.
ADVERGAMING
Es un caso particular de publicidad donde el
contenido del videojuego depende de la misma,
parcial o totalmente (en la mayora de los casos).

Un ejemplo es un videojuego dedicado a
promocionar y publicitar un dibujo animado de
algn canal de tv, por ejemplo, SpongeBob Driving
Exam de Batovi Games Studio, videojuego
realizado para Nickelodeon.
PROBAR ANTES DE COMPRAR (TRY
BEFORE YOU BUY)
Se distribuye una versin gratuita de prueba
limitada por tiempo o por funcionalidades para
permitir al usuario (potencial comprador) probar el
producto y en caso de que le convenza el
contenido puede pagar para obtener la versin
completa.

Mystery Studios usa este
modelo con Pirate Poppers
desde el portal de PlayFirst.
TORNEOS
Los jugadores pagan una suma de dinero para
participar de una competencia en donde el ganador
obtiene un premio (p. ej. mercaderas) que se
obtiene de la entrada de todos los otros jugadores
menos el porcentaje que se queda el organizador
del torneo.

Shot Online es un videojuego de Golf que utiliza
este modelo de ingresos.
SUBSCRIPCIONES
Se paga una cuota fija por mes para obtener distintos
servicios.
Los formatos ms conocidos son:
Todo lo que puedas consumir: acceso a jugar a un conjunto de
videojuegos de forma ilimitada.
Compras por mes: uno o ms juegos gratis (que elija) y
descuentos adicionales.
Miembro vip: obtiene privilegios especiales (p. ej. tems o
pantallas nuevas).

GameTap es un portal que permite acceder de forma ilimitada
a un conjunto de juegos por una suma fija por mes.

Blizzard tambin utiliza este modelo para el World of Warcraft.
SUBSCRIPCIONES EN CAPAS
Es un caso particular del anterior, se permite a los
usuarios jugar gratis pero aquellos que deseen acceso
a contenido extra pueden pagar una cuota por mes (p.
ej. 5 dlares), a medida que requieran de ms
funcionalidades o contenido pueden pagar mayores
cuotas.

Runscape es un MMO que lidera en este tipo de
modelo, teniendo 1 millon de usuarios que optaron por
el programa de subscripciones en capas, generando 60
millones de dlares anualmente.

Hattrick tambin provee un sistema de privilegios
especiales con una cuota fija por mes que cambia
segn la cantidad y cantidad de estos.


DISPOSITIVOS MVILES
Se distribuyen los videojuegos desde un portal
accesible desde el dispositivo mvil y se pueden
comprar por medio de una transaccin desde el
mismo (usualmente, cerca de 5 dlares por juego).

Arcade Fishing de Batovi Games Studio es un
ejemplo de este modelo:
MICROTRANSACCIONES
Se distribuye el juego de forma gratuita o a bajo
precio. Se les provee a los jugadores contenido
opcional como nuevas armas, pantallas,
personalizaciones de su avatar, etc. y se les cobra
poca plata por cada una de estos.
Maple Story es un MMORPG de plataformas 2D
desarrollado por Nexon que utiliza este modelo.

MERCHANDIZE
Los usuarios pueden jugar gratis.

Mediante la compra de mercadera se proporcionan
cdigos para usar dentro del juego y destrabar
funcionalidades o contenido exclusivo

Ejemplo
Webkinz
DONACIONES
El juego es gratuito y las ganancias vienen de las
donaciones de los usuarios

Ejemplo
The Kingdom of Loathing
MMORPG de bajo presupuesto
1.4 millones de cuentas creadas
194 mil cuentas activas
Entre 140-150k dlares de ganancias por
mes. (Eso dicen :S)

XBOX LIVE COMMUNITY GAMES (1)
XBOX LIVE COMMUNITY GAMES (2)
XNA CREATORS CLUB

Es una comunidad para desarrolladores de
videojuegos.

Se proporcionan herramientas para crear
juegos en Windows y Xbox 360, y recursos
para aprender a crear estos juegos.




XBOX LIVE COMMUNITY GAMES (3)
Cmo funciona?
Se debe ser miembro Premium de XNA Creators
Club
Se podr enviar juegos completos para XBox 360
creados en XNA Game Studio.
Otros miembros Premium de la comunidad evaluarn
el juego para asegurar que se puede jugar y no tiene
errores.
Si el juego est correctamente evaluado, se fija el
precio en puntos (entre 200 a 800) que los jugadores
pagarn para poder jugar.
XBOX LIVE COMMUNITY GAMES (4)
El juego queda disponible en el XBox LIVE
Marketplace.

Se obtiene un pago electrnico cada trimestre (hasta
70% de las ganancias del juego)

Dependiendo del xito del juego, este puede ser
promocionados en los sitios de XBox y Microsoft.
XBOX LIVE COMMUNITY GAMES (5)
Cmo comenzar?
Se debe tener un XBox 360

Descargar XNA Game Studio.

Crear una cuenta en XNA Creators Club y pagar una
membresa Premium (US$99 anuales).

Crear el juego y enviarlo para la revisin.
XBOX LIVE COMMUNITY GAMES (6)
Disponibilidad

Est disponible en USA, Canad, Reino Unido,
Francia, Italia, Espaa.

Ms adelante se podr participar desde otros pases.


3. Equipos de
desarrollo
INTRODUCCIN

Existen distintos roles que se pueden cumplir en
una empresa de videojuegos, los mismos pueden
estar en distintas reas de desarrollo y se
presentan a continuacin.
DISEO
Diseador de juego
Diseador de niveles/escenas
Escritor de guiones/historia
PROGRAMACIN
Programador junior
Programador lder
Programador de herramientas/motor
(infraestructura)
Programador grfico/efectos especiales.
Programador o Ingeniero de audio.
Programador de inteligencia artificial.
Programador de redes
ARTES VISUALES
Artista junior
Constructor de objetos 3D
Artista de concepto
Artista de texturas
Constructor de personajes
Animador de personajes
Constructor de niveles
Director de arte y animaciones
Tcnico de arte
AUDIO
Ingeniero/diseador de sonidos
Compositor
VERIFICACIN
Lder de verificacin
Verificador de juego

PRODUCCIN
Pueden ser vistos como Gerentes de proyecto.

Se encargan de asegurar que el progreso del
proyecto sea acorde con lo planificado y dentro del
presupuesto. Coordinan la verificacin.

Se encargan de temas contractuales, legales y de
negocios.

Existen varios niveles que van desde el Productor
ejecutivo hasta los Productores asociados.
PRODUCCIN
Tenemos dos tipos de Productores

Productor externo
Trabaja con un Publisher o Desarrollador
externo.
Se asegura que el proyecto est encaminado
y siga la planificacin.

Productor interno
Gestiona lo referente a el equipo de desarrollo.
Representa al equipo y al producto hacia el exterior.



4. Ciclo de vida
INTRODUCCION
Concepto
Pre-Produccin
Produccin
Alfa
Beta
Congelacin de cdigo
Liberacin
Parches
Actualizaciones
CONCEPTO (1)
Es cuando se define el concepto del juego.

Se realiza una tormenta de ideas.

Se crea el arte de concepto para mostrar como se
ver el juego y su historia.

Participan
Diseador
Lder tcnico (Programador)
Artista de concepto
Productor

CONCEPTO (2)
Artefactos generados:

Concepto de alto nivel
Es una descripcin en pocas oraciones de lo que es el
juego. Incluye las caractersticas que lo destacan y lo
diferencian de los dems juegos. Muestra la visin del juego.

Propuesta del juego
Es un documento que se utiliza para realizar la presentacin
del juego en busca de financiamiento.

Resume el documento de concepto, explicando de que se
trata el juego, por que ser exitoso, como ser desarrollado
y como generar dinero.
CONCEPTO (3)
Artefactos generados:
Documento de concepto:
Describe el concepto en forma ms detallada.

Puede incluir las siguientes secciones:
Concepto de alto nivel
Gnero
Gameplay
Caractersticas
Ambientacin (incluye arte de concepto)
Audiencia objetivo
Plataformas de hardware
Cronograma estimado
Presupuesto
Anlisis competitivo
Equipo de desarrollo
Anlisis de riesgos




PRE-PRODUCCIN (1)
En esta etapa se demuestra que vale la pena
construir el juego y que el equipo est capacitado
para hacerlo.

Si se trabaja con Publisher, este puede utilizar el
perodo de Pre-Produccin para determinar si el
proyecto puede ser realizado por el equipo.

PRE-PRODUCCIN (2)
Artefactos generados:
Plan de proyecto
Es una gua que indica como va a ser construido el
juego. Se divide en varios documentos independientes
que son plan de personal, plan de recursos,
seguimiento de proyecto, presupuesto, anlisis de
prdidas y ganancias, cronograma de desarrollo y
definicin de milestones.
Documento de diseo
Define el juego describindolo en forma clara y
detallada.
Detalla la mecnica, gameplay, vistas, niveles,
personajes, las distintas pantallas, interfaz de usuario,
historias, assets, etc
PRE-PRODUCCIN (3)
Artefactos generados:
Documento de diseo tcnico
Es un documento de diseo de software
Describe las herramientas que sern utilizadas.
Lista hardware y software que debe ser comprado.
Establece un cronograma de implementacin.

Plan de produccin de arte
Indica la esttica del juego y el cronograma de creacin de
arte. Incluye una Biblia de arte que describe los objetos a
ser creados

PRE-PRODUCCIN (4)
Artefactos generados
Prototipos
Programa de software que captura la esencia del juego.

Puede ser la mayor influencia para determinar si el
proyecto contina.

Muestra la visin y demuestra que se puede llegar de las
ideas a la realidad en forma efectiva y razonable.

Mitiga riesgos tecnolgicos.

PRODUCCIN (1)
Se comienza la construccin del juego
Se escribe el cdigo.
Se crea el arte grfico.
Se crean los sonidos.
Se crean niveles del juego
Verificadores comienzan a trabajar cuando algo puede
ser jugado

El juego puede cambiar o evolucionar
Aparecen nuevas features.
Se quitan otras
Se deben completar y mantener actualizados los
documentos ya generados.


PRODUCCIN (2)
Si se trabaja con Publisher suelen definirse milestones
que indican un conjunto de features a ser
implementadas para una fecha determinada.

El incumplimiento de estas puede implicar que no se
paguen avances acordados con el Publisher.

Estas milestones se marcan en el cronograma del
proyecto.

Deben estar definidas en forma clara, medible y
concisa.
Mala definicin : Tener un nivel jugable

ALFA
Es el punto en el que el juego puede ser jugado de principio a
fin.

Quedan detalles por agregar o arreglar y no todos los assets
estn terminados.

Motor, interfaz de usuario y subsitemas estn completos

El foco cambia de:
Construir a terminar
Crear a arreglar.

Se comienza la verificacin en busca de errores



BETA
Todos los assets son integrados y el desarrollo se
detiene, lo nico que se hace es arreglar errores.

El objetivo en esta etapa es estabilizar el proyecto
y eliminar la mayor cantidad de errores posible
antes de liberar el juego
CONGELACIN DE CDIGO
Una vez que se solucionaron los errores
encontrados en Beta (o por lo menos los mas
crticos) se obtiene el candidato para la liberacin
final.

En esta etapa se congela el cdigo y queda
pendiente de aprobacin para pasar a ser la
versin final.
LIBERACIN
El juego esta completo, verificado y listo para ser
enviado a los canales de distribucin.
PARCHES
En los juegos para PC, se ha vuelto casi inevitable
que se requieran parches luego del lanzamiento.

Dado que existen muchas combinaciones posibles
de hardware, es imposible verificarlas todas.

Si se encuentra un problema generalizado el
desarrollador deber crear un Parche.


ACTUALIZACIONES
La actualizacin es diferente al parche, ya que
representa contenido adicional creado para mejorar
el videojuego.

La actualizacin es un proyecto y necesita ser
manejado como tal, con verificacin, milestones, y
el resto de los elementos del proceso de desarrollo.

5.Problemas en el
desarrollo de
videojuegos
QU PROBLEMAS EXISTEN EN EL
DESARROLLO DE VIDEOJUEGOS? (1)
La rpida y constante evolucin de las tecnologas.

Los requisitos cambiantes y difciles de evaluar
(diversin, atractivo grfico, etc.)

La comunicacin se dificulta por ser una industria
multidisciplinaria (artistas, diseadores, sonidistas,
etc.)
QU PROBLEMAS EXISTEN EN EL
DESARROLLO DE VIDEOJUEGOS? (2)
Bsqueda de perfeccin lleva a retrasos en los
plazos planificados (mejores armas, mejores
escenarios, etc.)

Concentracin de conocimientos en pocas
personas (p. ej. un especialista en inteligencia
artificial)
CMO SE PUEDEN
SOLUCIONAR?
Existen diversas soluciones, a continuacin se
plantean algunas:

Realizar mejoras en el proceso y metodologas de
desarrollo (p. ej. codificar mano a mano con el
diseador).

Desarrollo de nuevas herramientas (p. ej. entornos
para realizar prototipos o motores que encapsulen la
dependencia a una tecnologa especfica).

Seguimiento de nuevos enfoques y paradigmas (p.
ej. datadriven para la separacin entre contenido y el
cdigo).


6. Metodologas de
desarrollo
METODOLOGA DE DESARROLLO

Una metodologa plantea realizar un conjunto de
prcticas y mtodos para lograr un objetivo.

Existen dos extremos, las metodologas que
intentan predecir (deterministas o secuenciales) y
las que se adaptan al cambio (giles).

6.1 Metodologas
Deterministas
METODOLOGAS DETERMINISTAS
Se basan en tres premisas:
Todo sale de acuerdo a lo planificado.
Micro optimizaciones llevan a macro optimizaciones
Las personas son prescindibles y hay que decirles que
hacer.

Metodologas presentadas: Waterfall.
WATERFALL (O BDUF)
Plantea que el diseo tiene que ser perfecto y estar
completo antes de comenzar la implementacin.

Es el ms utilizado en la industria hoy en da en las
empresas grandes.
WATERFALL - VIRTUDES
Facilidad de adopcin por el equipo de desarrollo.
Facilita la administracin del proyecto.
Aplicable en equipos de desarrollo grandes.
Fcil aplicabilidad en proyectos que se basan en
modificaciones pequeas de productos ya
realizados (secuelas de juegos).
WATERFALL - DEBILIDADES
No responde bien ante cambios.
Existen problemas de comunicacin e
interpretacin.
Ningn objeto puede ser considerado completo
hasta que todas las dependencias de ese objeto
hayan sido construidas.
Cuando hay departamentos de desarrollo que
dependen uno de otro se generan situaciones de
cuello de botella.

6.2 Metodologas
giles
METODOLOGAS GILES
Se basan en cuatro premisas [Agi01] en donde se
da mayor importancia a:

Individuos e sus interacciones frente a procesos y
herramientas
Software en funcionamiento frente a documentacin
exhaustiva
Colaboracin del cliente frente a negociacin de un
contrato.
Respuesta al cambio frente a seguir un plan.

Metodologas presentadas: Scrum y Extreme
Programming.
SCRUM
Es una metodologa gil que sirve para administrar
y controlar el desarrollo de un producto. Se
caracteriza por cinco valores:
Compromiso
Enfoque
Sinceridad
Respeto
Coraje
SCRUM
Estos valores son implementados mediante varias
prcticas (sprints, scrum master, etc.). Se presenta
un ciclo de vida con Scrum:

SCRUM - VIRTUDES
Al ser iterativo e incremental se obtienen versiones
jugables del producto en intervalos regulares de
tiempo.
Involucra a todo el equipo y hace que participen
activamente en el proceso.
Mayor control tanto del cliente como los
desarrolladores sobre el alcance del proyecto.
Priorizacin de caractersticas del producto en cada
Sprint.

SCRUM - DEBILIDADES
Dificultad en la adopcin.
Difcil involucrar al cliente en el proceso.
Problemas en la elaboracin de contratos.
Resulta difcil definir la descripcin de las
funcionalidades del videojuego en una granularidad
adecuada, que no sea demasiado especifica ni
muy vasta.
En proyectos que duran aos es difcil mantener la
perspectiva y la direccin.
Difcil adopcin en equipos grandes (p. ej. 100
personas)
SCRUM - EJEMPLO
EA Digital Illusions CE (DICE) est trabajando en
Mirrors Edge utilizando Scrum, y planifica liberar
una versin simultanea para PC, PS3 y XBox360.

EXTREME PROGRAMMING (XP)
Es una metodologa gil que se enfoca en la parte
de desarrollo y se basa en cinco valores:
Comunicacin
Simplicidad
Respeto
Coraje
Retroalimentacin

Son llevados a cabo por varias prcticas, entre
ellas: pair programming y test first programming
EXTREME PROGRAMMING (XP)
Ejemplo de pair programming:
EXTREME PROGRAMMING (XP) -
VIRTUDES
Distribucin del conocimiento entre todos los
miembros.
Entrenamiento de programadores con menos
experiencia por parte de los que tienen ms
experiencia.
Mayores perodos de concentracin.
La interaccin frecuente entre los clientes y los
diseadores permite adaptar el desarrollo del
videojuego a las necesidades de ambos y a lograr
el resultado esperado.
EXTREME PROGRAMMING (XP) -
DEBILIDADES
Algunas de las prcticas son difciles de adoptar.
Las prcticas estn pensadas principalmente para
programadores y no necesariamente consideran
otros roles.
Difcil aplicacin en equipos de desarrollo
numerosos.
EXTREME PROGRAMMING (XP) - EJEMPLO
Principalmente nos interesa destacar la experiencia
desarrollada por Peter Drake y Nigel Kerr [DK06],
en donde plantean el desarrollo de un videojuego
en un curso de grado intentando hacer uso de
todas y cada una de las prcticas planteadas por
XP.

El proyecto fue un videojuego multijugador de
estrategia por turnos desarrollado en Java, el
cliente fue externo al desarrollo y la interaccin se
realiz de forma remota.
SCRUM Y EXTREME PROGRAMMING (XP)
Ambas metodologas comparten muchos aspectos
a pesar que una apunta al gerenciamiento del
proyecto (Scrum) y la otra al desarrollo (XP).

Por lo tanto se pueden utilizar (y se utilizan) en
conjunto obteniendo ganancias de aplicar las
prcticas de ambas.

En particular Highmoon Studios es una empresa de
videojuegos que aprovecha este aspecto y ha
escrito artculos al respecto.
7.Tecnologas y
herramientas
TECNOLOGAS Y HERRAMIENTAS
Las reas tecnolgicas ms relevantes para
videojuegos son:
rendering (p. ej. shaders)
simulacin (p. ej. simulacin fsica)
redes
audio (p. ej. sonido tridimensional)
inteligencia artificial (p. ej. pathfinding)

TECNOLOGAS Y HERRAMIENTAS
Que se acompaan de herramientas para
generar contenido, por ejemplo:

Editor de modelos 3d (p. ej. Blender)
Editor de scripts
Editor de shaders (p.ej. RenderMonkey)

TECNOLOGAS Y HERRAMIENTAS -
EJEMPLOS
TECNOLOGAS Y HERRAMIENTAS
Y tambin de:
motores (p. ej. Ogre3d para acceder al hardware
grfico, entre otras funcionalidades)
bibliotecas (p. ej. SDL_mixer para reproducir sonidos)
frameworks
que nos abstraen para poder utilizar en cdigo el
contenido generado por las herramientas.

TECNOLOGAS Y HERRAMIENTAS -
EJEMPLOS
Wintermute Engine Development Kit es un kit que viene tanto
con un motor como con un conjunto de herramientas para
generar videojuegos del gnero de aventuras grficas.
8. Enfoques
8.1 Data-driven
development
INTRODUCCIN (1)
Colocando todo el contenido de la lgica del
videojuego y de las descripciones (posiblemente
incluso los niveles) en cdigo se tienen las
siguientes consecuencias:

Tanto los artistas como los diseadores se ven
perjudicados ya que ante cualquier cambio o
ajuste pequeo dependen de cambios en el
cdigo por un programador y no pueden ver el
mismo rpidamente.
INTRODUCCIN (2)
El programador dedica un tiempo considerable a
pedidos de los artistas y los diseadores y
menos tiempo a implementar nuevas
caractersticas funcionales del juego en s.

El cdigo termina atado a Un juego en particular,
reduciendo considerablemente la reusabilidad
del cdigo.
DATA DRIVEN
Las arquitecturas Data-driven solucionan estos
problemas colocando la mayor parte del contenido
en archivos separados y lo mnimo posible en el
cdigo del videojuego.

Esto implica no solo contenido audiovisual sino
tambin definiciones completas de personajes e
incluso comportamientos (p. ej. con scripts de Lua
o Python).

DATA DRIVEN - EJEMPLO
Un ejemplo de la utilizacin de xml para definir una
entidad en un videojuego.
















En particular xml es muy til porque es legible y
extensible (entre otras particularidades), aunque
puede ser lento de procesar.
<baddies>
<baddie name=Mr Zombie>
<model>
<filename>zombie1.mdl</filename>
</model>
<stats>
<health>100</health>
<attackdamage>10</attackdamage>
<speed>10</speed>
</stats>
</baddie>
</baddies>
8.2 Test-driven
development
TEST DRIVEN DEVELOPMENT
Es un enfoque que plantea guiar el desarrollo por
pruebas realizadas previamente, paso a paso de
forma iterativa e incremental.

Se puede aplicar a distintos niveles pero
usualmente se aplica a nivel de cdigo y XP es una
metodologa que lo aprovecha a ese nivel.
TEST DRIVEN DEVELOPMENT

TEST DRIVEN DEVELOPMENT -
EJEMPLO

TEST (EntityDoesNotConsumesSpeedPowerupByDefault) {
GameEntity entity;
SpeedPowerup powerup;
CHECK (!entity.Apply(powerup));
}

TEST (EntityConsumesSpeedPowerup) {
GameEntity entity;
entity.Accepts(SpeedPowerup);
SpeedPowerup powerup;
CHECK (entity.Apply(powerup));
}
TEST DRIVEN DEVELOPMENT -
VIRTUDES
Al elaborar las pruebas primero, el programador no
siente que las pruebas destruyen el cdigo.
Se tiene mucha retroalimentacin.
Sirve como forma de documentacin.
Ayuda al realizar reconstruccin logrando un mejor
diseo.
Reducen tiempo de debugging sobre el juego.
Proveen una medida del progreso del proyecto.
TEST DRIVEN DEVELOPMENT -
DEBILIDADES
Difcil de adoptar.

Gran cantidad de cdigo extra.

Difcil de utilizar para probar caractersticas como
diversin, atractivo grfico, componentes de la
interfaz grfica.

Requiere de un framework para correr las pruebas
de forma automatizada.
TEST DRIVEN DEVELOPMENT
En videojuegos presenta ciertos retos:
probar para distintas plataformas
probar grficos, audio, etc.
probar bibliotecas o motores de terceros que no fueron
diseados para ser probados por pruebas unitarias
probar eventos no deterministas (p. ej. simulacin
fsica)
probar scripts de alto nivel (p. ej. Lua)

Preguntas?
CONTACTO
Por informacin o material extra, nuestro contacto
es:

ariel.coppes@gmail.com
nicoace@gmai.com

REFERENCIAS
IGDA
[Agi01] Manifesto for agile software development. Online, 2001.
http://agilemanifesto.org/.
[DK06] Peter Drake and Nigel Kerr. Developing a computer strategy game in an
undergraduate course in software development using extreme programming. J. Comput.
Small Coll., 22(2):3945, 2006.
[BB03] Bob Bates. Game Developers Market Guide. ISBN1592001041. Muska &
Lipman/Premier-Trade, 2003
[Llo04] Noel Llopis. Gdc 2004: Software engineering roundtable summary. Online, 2004.
http://www.gamesfromwithin.com/articles/0403/000016.html
Shot Online, videojuego de Golf http://shotonline.gpotato.com/news/tour/
Subscripciones en capas Runescape - http://www.jagex.com/
Top 10 revenue models for free to play - http://www.freetoplay.biz/2007/08/02/top-10-
revenue-models-for-free-to-play-games/
Wintermute Engine Development Kit - http://dead-code.org/home/
Mirrors Edge de DICE, artculo de gamasutra :
http://www.gamasutra.com/view/feature/3684/living_on_the_edge_dices_owen_.php

You might also like