Está en la página 1de 108

PRODUCCIN

Y
DESARROLLO
Nicols Acerenza
DE
Ariel Coppes
VIDEOJUEGOS

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

Venden

online.

Web

los juegos proporcionando descarga

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
Liberacin
Parches

de cdigo

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.
<baddies>
<baddiename=MrZombie>
<model>
<filename>zombie1.mdl</filename>
</model>
<stats>
<health>100</health>
<attackdamage>10</attackdamage>
<speed>10</speed>
</stats>
</baddie>
</baddies>

En particular xml es muy til porque es legible y


extensible (entre otras particularidades), aunque
puede ser lento de procesar.

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){
GameEntityentity;
SpeedPoweruppowerup;
CHECK(!entity.Apply(powerup));
}

TEST(EntityConsumesSpeedPowerup){
GameEntityentity;
entity.Accepts(SpeedPowerup);
SpeedPoweruppowerup;
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-10revenue-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

También podría gustarte