3. 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
4. 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
7. • 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
12. 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?
17. ¿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.
18. ¿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
21. Puntos clave
• UX es el rey, el código no.
• Falta de SRD.
• Destapar.
• Probar lo visible.
• Aleatoriedad.
• Problema con las herramientas.
22. 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
32. 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.
34. Lógica del juego
Combinación:
• 4 Valores
• En un rango de [1-4]
• Valor correcto =
intenta el siguiente.
• Valor incorrecto =
vuelve a empezar
35. 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