43
Desarrollo dirigido por Pruebas para Videojuegos Javier Gutiérrez [email protected] / @IWT2_Javier

GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

  • Upload
    javierj

  • View
    239

  • Download
    2

Embed Size (px)

DESCRIPTION

Esta presentación muestra las ideas clave para el desarrollo de videojuegos mediante desarrollo dirigido por pruebas (o TDD):

Citation preview

Page 1: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

Desarrollo dirigido por Pruebas para

Videojuegos

Javier Gutié[email protected] / @IWT2_Javier

Page 2: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

¿Quién soy yo?

Page 3: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

3

• Acercar el desarrollo de videojuegos a las prácticas de Ingeniería del Software

• Justificar que se puede aplicar TDD para el desarrollo de videojuegos

• Ver los principales problemas y soluciones para aplicar TDD en el desarrollo de videojuegos.

Objetivos

Objetivos

Page 4: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

4

1. Mi experiencia.

2. ¿Qué es TDD?.

3. ¿Quién usa TDD para desarrollar videojuegos?.

4. Aspectos claves en videojuegos.

5. Probar el código que no se ve.

6. Conclusiones.

TDD y Videojuegos

Índice

Page 5: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

5

Mi experiencia

Page 6: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

Faltan enemigos

Demasiado rápido

Constante equivocada

Mala lógica

Variable no declarada

Mi Experiencia

Page 7: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

• Sin pruebas

• No veía fácilmente el diseño

• Fallaba por sorpresa sin saber por qué

• Cambiaba por cambiar.

• Apechugar con las malas decisiones.

• No avanzaba.

• Presionado por fecha límite.

• Me sentía mal.

• Un cuadro típico de necesito TDD.

Mi experiencia

Page 8: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

Mi experiencia

Page 9: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

9

¿Qué es TDD?

Page 10: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

¿Qué es TDD?

Page 11: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

¿Qué es TDD?

Page 12: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

1. You are not allowed to write any production code unless it is to make a failing unit test pass.

2. You are not allowed to write any more of a unit test than is sufficient to fail; and compilation failures are failures.

3. You are not allowed to write any more production code than is sufficient to pass the one failing unit test.

¿Qué es TDD?

Page 13: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

13

¿Qué es TDD?

Page 14: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

¿Esto se aplica a videojuegos?

Resolviendo niveles automáticamente

http://www.youtube.com/watch?v=DlkMs4ZHHr8

Page 15: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

15

¿Quién usa TDD?

Page 16: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

¿Usan TDD para desarrollar juegos?

Onikami

Page 17: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

¿Usan TDD para desarrollar juegos?

• Solo es útil ara determinados algoritmos.

• Dedicamos mucho más tiempo a tareas que son escribir código.

• Probamos los juegos a mano.

• Provoca grandes retrasos.

• No lo usamos porque nunca lo hemos usado.

• Umbral de entrada muy alto.

• No merece la pena.

Page 18: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

¿TDD sirve?

• TDD incrementa el tiempo y los recursos.• TDD es difícil en determinados contextos

(como interfaces gráficas).• TDD es difícil de aprender y aplicar

correctamente.• Las diferencias entre personas influyen

mucho en los resultados.• TDD suele evitar errores de código.• TDD no suele evitar errores de aceptación.• TDD suele generar código menos

acoplado.• Resultados no concluyentes cobre la

mejora de diseño con TDD

Page 19: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

¿Todos?... No

Page 20: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

20

Aspectos claves en videojuegos

Page 21: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

Puntos clave

• UX es el rey, el código no.

• Falta de SRD.

• Destapar.

• Probar lo visible.

• Aleatoriedad.

• Problema con las herramientas.

Page 22: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

Puntos clave

• Movimiento

• Colisiones

• Inteligencia artificial

• Respuestas a inputs externos.

• Eventos de tiempo

• Carga de assets

• Pintar la pantalla

• Reproducir los gráficos

• Probar el juego como el usuario

final.

• Programación multihilo.

• Rendimiento.

Es mas difícil aplicar TDD a:Podemos aplicar TDD a

Page 23: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

23

Separación de conceptos

Page 24: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

La S de Solid

A CLASS SHOULD HAVE ONLY ONE REASON TO

CHANGE.

Page 25: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

Single Responsibility

Page 26: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

Single Responsibility

Page 27: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

27

Independencia de los gráficos

Page 28: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

TDD y Videojuegos

Filosofía TDD

Page 29: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

TDD y videojuegos

Page 30: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

Probar los actores

Gema:Tiene posición X, YEstá visible por defectoPuede volverse invisible

Page 31: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

Haz visible lo invisible

Page 32: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

Usa lo visual a tu favor

Hazlo fácil de ver / cambiar.

• Pero la UX es importante• Vas a tener que jugar con

tu juego muchoooo.• Procura que sea divertido.• Agiliza los cambios.

Page 33: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

33

Mas ejemplos

Page 34: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

Lógica del juego

Combinación:• 4 Valores• En un rango de [1-4]• Valor correcto =

intenta el siguiente.• Valor incorrecto =

vuelve a empezar

Page 35: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

Lógica del juego

Combinación:• 4 Valores• En un rango de [1-4]• Valor correcto =

intenta el siguiente.• Valor incorrecto =

vuelve a empezar

Si destapamos el código

Page 36: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

36

¿Y eso cómo queda en la realidad?

Page 37: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

37

Test Coverage Metric

Page 38: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

38

Y en el futuro…..

Page 39: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

39

Conclusiones

Page 40: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

Conclusiones

Page 41: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

Conclusiones

• Falsa sensación de velocidad.

• Falsa sensación de seguridad.

• No tener claro qué probar

• Set-up complejo.

• Módulos “Dios”

¿Por qué pierdo la fe?

Mal diseño

Page 42: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

Conclusiones

Todo por hacer

Page 43: GamwUS. Desarrollo Diriguido por Pruebas y Videojuegos

Enlaces

Fin