1 / 38

Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos?

Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos?. por Martín Massera (NGD studios). o…. Desarrollo de juegos en grandes equipos. ¿Por qué esta charla?. ADVA: Transmitir la experiencia Para quienes quieren empezar un proyecto

chana
Download Presentation

Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 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 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? 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. 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 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. EVA 2003 - ADVA

  8. Ciclo de vida • Diseño / Desarrollo • Instalación • Operación • Retiro 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 EVA 2003 - ADVA

  10. “Dicen que soy aburrido” • Supuestas contras: • rigidez en el proceso • quita creatividad • Más proceso = menos desarrollo 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 EVA 2003 - ADVA

  12. Y no nos olvidemos del… • Proceso de desarrollo! 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. 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 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 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 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 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) EVA 2003 - ADVA

  19. Todo esto para alcanzar El nirvana de los programadores de juegos! EVA 2003 - ADVA

  20. Proceso de desarrollo • Cascada • Iterativo • Milestones • Distintas formas de ir asegurando la calidad 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 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 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” 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 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) 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 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 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” 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 ) 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 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 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 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 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) EVA 2003 - ADVA

  35. Conclusiones • Vale la pena!!! • Aunque no todo es útil para juegos... Seleccionar las herramientas/métodos 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 EVA 2003 - ADVA

  37. Bibliografía • “Fundamentals of Software Engineering” • Ghezzi, Jazayeri y Mandrioli • “Game Architecture and Design” • Andrew Rollings y Dave Morris EVA 2003 - ADVA

  38. Preguntas mmassera@dc.uba.ar EVA 2003 - ADVA

More Related