EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín...

38
EVA 2003 - ADVA 1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

Transcript of EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín...

Page 1: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 1

Ingeniería de Software…

¿Vale la pena en el desarrollo de juegos?

por

Martín Massera (NGD studios)

Page 2: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 2

o…

Desarrollo de juegos en grandes

equipos

Page 3: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 3

¿Por qué esta charla?

ADVA: Transmitir la experiencia Para quienes quieren empezar un

proyecto Ingenieria de software, gralmente

poco conocida por programadores amateur

Page 4: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 4

Introducción a la ingeniería de software

Un poco de historia: la software crisis varios interrogantes:

¿Qué tienen que ver programar bien con buen software?

¿Cómo manejar un proyecto grande para…

que haga lo que tiene que hacer? que sea estable? Que sea terminado a tiempo?

Page 5: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 5

Historia de los videojuegos

Empezó más tarde que el resto de la industria, pero la historia se repite.

Pocas plataformas donde una persona sola puede terminar un juego.

Page 6: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 6

Diferencias entre videojuegos y “otro” software

Objetivo: divertir “Es un arte” El prototipo del desarrollador

Hay diferencias, pero no tanto a nivel de programación

Page 7: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 7

Qué es la I.S.?

Conjunto de teorías, métodos, herramientas, etc. para producir software con la calidad deseada.

Además, facilitan todo el ciclo de vida de un software.

Page 8: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 8

Ciclo de vida

Diseño / Desarrollo

Instalación

Operación

Retiro

Page 9: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 9

¿Por qué esta charla? bis

La I.S. proviene de la experiencia de otros desarrolladores (Best Practices)

“No silver bullet” Es necesario encontrar soluciones

para el desarrollo de videojuegos

Page 10: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 10

“Dicen que soy aburrido”

Supuestas contras: rigidez en el proceso quita creatividad Más proceso = menos desarrollo

Page 11: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 11

Sobre qué trata la I. S.

Análisis de requerimientos Manejo de riesgos Especificación Diseño / arquitectura Implementación Testing

Page 12: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 12

Y no nos olvidemos del…

Proceso de desarrollo!

Page 13: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 13

En juegos

Requerimientos: game design

Testing: mucho beta testing, muy poco del resto

“Otros”: Es importante manuales, cajas, promotoras en E3,

etc.

Page 14: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 14

En juegos

Especificacion: por qué no se hace? Tiempo de vida de los juegos Nivel académico requerido

Riesgos: muy importante en proyectos largos

Implementacion: esta parte es casi igual al resto del software

Page 15: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 15

Calidad del software “Hay que expresar la calidad

deseada para poder alcanzarla”

Una vez establecida la calidad deseada, la calidad final es producto directo de la calidad del proceso de desarrollo

Calidad vs tiempo vs presupuesto

Page 16: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 16

Distintos atributos de calidad

Internos vs externos Ej:

Performance (FPS) Estabilidad (cuelgues) Arquitectura “Amigabilidad” con el usuario Y… diversión!!! La gran diferencia

Page 17: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 17

Calidad, servicio y limpieza

La calidad depende de muchas cosas. Ejemplo: Target de usuario Tipo de juego.

No siempre hay que ser carmack

Page 18: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 18

Prueba y error Hay que planear para obtener la

calidad deseada.

Engines: dificil de optimizar si no se penso en la velocidad desde el principio

Prueba y error sirve en algunos casos (ej: balanceo de gameplay)

Page 19: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 19

Todo esto para alcanzar

El nirvana de los programadores de

juegos!

Page 20: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 20

Proceso de desarrollo

Cascada Iterativo

Milestones

Distintas formas de ir asegurando la calidad

Page 21: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 21

Cascada

Análisis de requerimientos Diseño Implementación Testing

Demasiado utópico: una fase puede cambiar cosas de las anteriores

Page 22: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 22

Iterativo Una sucesión de “cascadas”

Requerimientos 1 diseño 1 implementación 1 testing 1

Requerimientos 2 diseño 2 implementación 2 testing 2

Requerimientos 3 diseño 3 implementación 3 testing 3 etc

Page 23: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 23

Milestones Dividir la fase de implementación

en partes

El resultado de cada parte es un ejecutable estable (aunque con menos features)

Previenen la “avalancha de bugs”

Page 24: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 24

Equipo de desarrollo

Comunicación entre programadores Personalidades conflictivas Espíritu de equipo

Comunicación con artistas / game designers ”El papel es tu amigo”

Responsabilidades, no todos hacen todo

Page 25: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 25

Game design / requerimientos Game design: disciplina independiente

Análisis de requerimientos: Game design y no tanto, distintas clases de requerimientos mas cerca de la implementación o del game design

Un error en los requerimientos es muy dificil de corregir después (ej. No considerar multiplayer)

Page 26: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 26

Diseño / Arquitectura

Arquitectura: distintas vistas Módulos Ejecución Conceptual Etc

Más alto nivel Diseño: ya entrando en detalle

Page 27: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 27

Diseño / Arquitectura

Definen el esqueleto del programa Patrones “Estilos arquitectónicos” Otras clases de software parecidas:

Simulación Sistemas de tiempo real

Herramientas: UML

Page 28: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 28

Diseño / Arquitectura Diseñar para:

Velocidad Estabilidad Cambios (en el game design y segundas

partes) Desafío: Abstraer la tecnología de base No cambió el gameplay tanto como las

placas 3D Cohesión vs acoplamiento “No hardcodees mañana lo que puedes

diseñar hoy”

Page 29: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 29

Implementación

“Un pequeño pero importante detalle”

A esta altura, todo + o – definido

Los cambios a distintas etapas tiene que ser registrado (y no con comentarios en el código )

Page 30: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 30

Herramientas que ayudan IDE de desarrollo (Kdevelop, Visual studio) Compilación distribuida (IncrediBuild) Chequeo de memoria dinámica (Bounds

checker) Análisis de performance (Vtune) Control de versiones (CVS)

Reporte de bugs, TO-DO list, wiki, foro, feedback

Page 31: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 31

Errores

En gral los errores son faciles de corregir solo si se detectan en la misma fase en que se hacen

Hay que “testear” el game design

Page 32: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 32

Verificacion / Testing “El testing no puede demostrar la

correctitud de un programa, solo sus errores”

Viejo y querido beta testing

Otras cosas: Regresion Integracion Unidad

Page 33: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 33

Verificacion / Testing En general se deja de lado por

falta de tiempo Hay herramientas

“assert” cppunit

Los bugs pueden: Colgar el programa Arruinar la experiencia del jugador

Page 34: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 34

Problema del testing en videojuegos

Muchas veces resultados gráficos

Bugs difíciles de reproducir

La arquitectura tiene que estar pensada para corregir errores (logueo, saves, etc)

Page 35: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 35

Conclusiones

Vale la pena!!!

Aunque no todo es útil para juegos... Seleccionar las herramientas/métodos

Page 36: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 36

Conclusiones

excepciones:

Software de alcance muy cortito

plataformas donde no nos podemos dar el lujo de ciertas abstracciones por temas de eficiencia

Page 37: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 37

Bibliografía

“Fundamentals of Software Engineering” Ghezzi, Jazayeri y Mandrioli

“Game Architecture and Design” Andrew Rollings y Dave Morris

Page 38: EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA 2003 - ADVA 38

Preguntas

[email protected]