Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Estado de México Escuela de Diseño, Ingeniería y Arquitectura Departamento de Tecnologías de Información y Computación Datos de la materia Nombre de la materia: Clave de la materia: Liga al programa de la asignatura: Competencias a desarrollar: Proyecto de desarrollo de videojuegos TC1021 https://serviciosva.itesm.mx/planesestudio/consultas/materias/consultamaterias.aspx?form= Consultar_Materias_Sintetico&ClaveMateria=TC1021&Idioma=ESP 1. Desarrollo de software siguiendo un enfoque de ingeniería. 2. Desarrollar aplicaciones que resuelvan problemas en la ciencia, la industria, la educación y el entretenimiento, con una visión internacional de la sociedad y sus requerimientos culturales. 3. Desarrollar aplicaciones utilizando tecnología de vanguardia. Datos del grupo y docente Horario de clase: Grupo 01 14:30 MaVi Salón: 6304 Nombre del docente: Roberto Martínez Román Datos de contacto: rmroman@itesm.mx Objetivo general de la asignatura (tomado del programa de estudios): Al final de este curso el alumno será capaz de desarrollar, trabajando en equipo, proyectos básicos de software que satisfacen necesidades específicas de interacción, aplicando un proceso sistemático de desarrollo de software. Objetivo general de la asignatura (basado en competencias) Aplica los conocimientos de programación y desarrollo de sistemas para diseñar y construir un videojuego que incluya interacción con el usuario, animación, niveles y persistencia de datos. Políticas generales para el desarrollo del curso: La tolerancia para el acceso a clase es 5 minutos, después de lo cual no se permitirá el acceso al salón de clases. Durante la clase, no podrás estar entrando o saliendo, bajo ningún motivo. Tienes derecho a 3 semanas de faltas durante el semestre. Es tu obligación estar al tanto de tus faltas. Si te sorprendo leyendo o haciendo algo que no sea de la materia saldrás del salón con falta. La copia de trabajos, tareas y exámenes serán sancionados como DA (Deshonestidad Académica) Si por alguna circunstancia no asistes a una clase donde se realizó un examen rápido o una actividad con ponderación en ese parcial o final, no habrá manera de recuperar ese porcentaje en otra actividad de ningún tipo. Antes de entrar a la clase deberán ser apagados los teléfonos celulares. Sólo se puede usar para probar el funcionamiento de tu proyecto.
No. de sesión Fecha Objetivos de Aprendizaje para el desarrollo de competencias institucionales Contenidos Actividades de instrucción Recursos de Apoyo Tipos de Evidencia de aprendizaje Instrumentos de Evaluación 1, 2 12 y 15 de enero 3,4 19 y 22 de enero 5, 6 26 y 29 de enero 7, 8 2 y 5 de febrero 9, 10 9 y 12 de febrero Conocer la historia de los videojuegos identificando los elementos principales que han marcado el cambio. Conocer los distintos tipos de videojuegos destacando las características principales de cada uno. Comprender la posición actual de la industria de los videojuegos y su potencial para diferentes áreas de especialidad (educación, rehabilitación) haciendo una investigación de la industria de desarrollo de software. Conocer los elementos básicos de un juego en 2D analizando algunos juegos comerciales. Comprender las fases del desarrollo de un sistema y entender cómo éstas se aplican al desarrollo de un Conocer y aplicar al menos una convención de código y de documentación en la escritura de clases en Java. Comprender los elementos básicos para la administración de un proyecto definiendo tareas de desarrollo de un videojuego y la manera de hacer un seguimiento básico del mismo. Comprender el uso de las matemáticas para definir áreas de visualización y graficación en un Comprender las leyes básicas de física para el manejo de velocidad, aceleración y distancia analizando objetos de un Conocer las técnicas para obtener requerimientos y usar al menos dos en la obtención de requerimientos de un juego 2D. Conceptos básicos de videojuegos. Historia de los videojuegos. Tipos de juegos. Industria de videojuegos. Elementos básicos de un juego 2D. Conceptos básicos de desarrollo de sistemas Fases del desarrollo de un sistema. Convenciones de código y documentación. Elementos básicos para la administración de un proyecto. Conceptos de ciencias básicas en el desarrollo de un Uso de matemáticas en un Uso de física en un Interacción humanocomputadora en los videojuegos. Técnicas para obtener requerimientos. Modelación de usuarios.. Instalación y prueba del software. para analizar algunos videojuegos comerciales para definir las etapas de su proyecto y documentar clases en Java para identificar elementos matemáticos en su videojuego. para identificar los elementos de física y requerimient os. Presentación. Presentación, artículos. cap. 1,2,3,4 cap. 5, 6 7, 8, 9 cap. 10, 11 Producto. Primera versión de la propuesta del proyecto. Producto. Entrega de la propuesta del videojuego Lista de cotejo Lista de cotejo
No. de sesión Fecha Objetivos de Aprendizaje para el desarrollo de competencias institucionales Contenidos Actividades de instrucción Recursos de Apoyo Tipos de Evidencia de aprendizaje Instrumentos de Evaluación Comprender la manera de definir la modelación de usuarios específicos, genéricos, principales y secundarios de un videojuego de 2D. 11, 12 16 y 19 de febrero Presentación del primer prototipo. Producto. Prototipo. Rúbrica 13, 14 23 y 26 de febrero 15, 16 1 y 4 de marzo 17, 18 8 y 11 de marzo 19, 20 15 y 18 de marzo Conocer la manera de desarrollar un escenario de juego normal, con opciones básicas de consulta de score, actualización de posiciones, colisiones, etc. Aplicar métricas de usabilidad para definirlas en un Conocer y aplicar el software de control de versiones para administrar los archivos del proyecto y trabajar colaborativamente. Desarrollar de manera básica los casos de uso, planteando el flujo normal y anormal de cada escenario para un videojuego en 2D. Aplicar el concepto de herencia, polimorfismo, encapsulación, para la definición de clases que apoyen un juego en el que se tendrán clases bases con manejo de posiciones, velocidades, dibujos. Introducción a escenarios y casos de uso. Especificaciones de usabilidad. Software de Sistema de control de versiones. Orientación a objetos y videojuegos. Casos de uso básicos de un juego en 2D. Herencia, polimorfismo, encapsulación e interfaces en un juego 2D. Diseño básico de clases para un juego en 2D para seleccionar y crear un espacio para su proyecto cap. 12, 13 cap. 12, 13 cap. 14, 15, 16, 17 cap. 18, 19, 20 Producto Lista de cotejo 21, 22 29 de marzo y 1ero. de Presentación del segundo prototipo. Producto. Rúbrica
No. de sesión Fecha Objetivos de Aprendizaje para el desarrollo de competencias institucionales Contenidos Actividades de instrucción Recursos de Apoyo Tipos de Evidencia de aprendizaje Instrumentos de Evaluación 23, 24 5 y 8 de 25, 26 12 y 15 de 26, 27 19 y 22 de Conocer las clases e interfaces que nos ayudan a desarrollar aplicaciones con interfaz gráfica. Comprender los elementos básicos de las clases de interfaz gráfica para aplicarlos en el videojuego. Entender y aplicar el manejo de la distribución de los elementos de la interfaz gráfica. Comprender el uso y manejo de hilos (threads) para el desarrollo de un Conocer y, en su caso, construir un Framework básico de animación. Aplicar sprites para incorporar animación en el videojuego. Conocer, comprender y aplicar el manejo de una plantilla (game engine) para el desarrollo un Conocer y aplicar los conceptos básicos de uso de elementos de interacción con el usuario, ratón, teclado. Conocer y usar las clases y métodos que permitan el uso e implementación de música y efectos de sonido en un Desarrollo e implementación de un juego 2D. Aplicaciones con interfaz gráfica. Elementos básicos de la interfaz gráfica. Manejo de la distribución de los elementos de la interfaz gráfica. Manejo de hilos (threads) Framework básico de animación. Gráficos y animación en 2D. Gráficos animados (sprites). Manejo de plantillas (game engine) para el desarrollo un Manejo de colisiones. para definir la interfaz de usuario para construir la interface del proyecto cap. 21, 22, 23 cap. 24, 25, 26 cap. 27, 28, 29 y 30 28, 29 26 y 29 de Presentación del tercer avance del proyecto. Producto Rúbrica
No. de sesión Fecha Objetivos de Aprendizaje para el desarrollo de competencias institucionales Contenidos Actividades de instrucción Recursos de Apoyo Tipos de Evidencia de aprendizaje Instrumentos de Evaluación 30 3 de mayo Aplicar técnicas de optimización para definir un juego más cercano al tiempo real. Conocer los elementos para respetar los derechos de autor en imágenes y audio y ser éticos en su uso. Comprender el uso de licencias de software en el desarrollo de videojuegos tanto para uso académico como para uso comercial. Técnicas de optimización. Derechos de autor. Derechos de autor en imágenes y audio. Licencias de software.. para revisión del código del proyecto. Investigación acerca de las diferentes licencias de software. Actividad de sostenibilidad cap. 31, 32, 33 Producto Rúbrica Metodología de enseñanza-aprendizaje (breve descripción de cómo se desarrollará el curso): Aprendizaje colaborativo. Los alumnos trabajan en equipo para desarrollar un videojuego, entregan avances en cada parcial y al final del curso hacen la presentación de su proyecto ante un jurado. Bibliografía obligatoria y/o básica: Libro de texto: [NAIR], Suryakumar Balakrishnan Nair, Learning LibGDX Game Development. 2 nd. Ed., Packt Publishing, 2015., McConnell, Steve., Code complete, 2nd ed., Microsoft Press, 2004 Libro de consulta: [COOK], James Cook, LibGDX Game Development By Example,, Packt Publishing, 2015 [JESSE], Jesse Schell, The Art of Game Design, CRC Press, 2014 [DAVISON], Davison, Andrew, Killer game programming in Java, O'Reilly Media, 2005
Sistema de evaluación: Calificaciones parciales: 2 presentaciones: 80% de las presentaciones de avances. 20% de actividades (exámenes, tareas, prácticas) Calificación final: 60% promedio de registros. 5% Semana i. 40% del proyecto final. 3era. presentación: 80% de las presentaciones de avances. 10% de actividades (exámenes, tareas, prácticas) 10% de actividad de sostenibilidad. Síntesis curricular de el/la profesor/profesora: Estudios: Maestro en Ciencias en Ingeniería Eléctrica con especialidad en Computación. Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional. Ingeniero en Electrónica con especialidad en Sistemas Digitales y computadoras. Universidad Autónoma Metropolitana. Unidad Azcapotzalco. Actividad actual: El Ing. Roberto Martínez es profesor de planta del Tecnológico de Monterrey campus Estado de México; imparte materias como: Fundamentos de programación, Programación orientada a objetos, Arquitecturas de desarrollo de software, Aplicaciones de cómputo móvil, Proyecto de desarrollo de videojuegos, entre otras. Actualmente participa en el proyecto "Reinventando la enseñanza de la computación", un esfuerzo del Tecnológico de Monterrey y Microsoft México para cambiar la forma de enseñar la computación en escuelas preparatorias. En este proyecto, participa con dos módulos sobre la programación de robots con el lenguaje Python y desarrollo de aplicaciones móviles. También participa en el proyecto de Aprendizaje móvil de la RZMCM donde busca usar y desarrollar herramientas que ayuden al alumno a mejorar su aprendizaje. Ha participado en diversas conferencias con ponencias acerca del uso de robots para aprender a programar, el uso de aplicaciones móviles orientadas al tema de sustentabilidad y el uso de recursos para mejorar el aprendizaje móvil. Coordina el diplomado "Desarrollo de aplicaciones móviles y realidad aumentada para las plataformas ios y Android" que imparte el Campus de Educación Ejecutiva del Tecnológico de Monterrey.
Certificaciones - Certificado como "Microsoft Certified Application Specialist. Using Microsoft Office Excel 2007" - Certificado como Sun Certified Programmer for the Java 2 platform 1.4 por Sun Microsystems - Certificado en el curso SSD3 Object Oriented Programming and Design por Carnegie Technology Education, filial de la Universidad Carnegie Mellon. Otros: a. Descripción de tareas Lecturas del libro de y [NAIR] que se evalúan cada semana, excepto en la semana de exámenes b. Descripción de otras actividades a desarrollar dentro del curso s dentro del salón de clase en pareja para reforzar el tema y aplicarlo en el desarrollo de su videojuego. c. Explicación detallada del proyecto final a. Es un proyecto en el cual se integran los conocimientos de los primeros semestres de la carrera: Desarrollado para dispositivos móviles con sistema operativo Android. (Teléfono y/o tablet) Splash Screen de inicio: Logo del Tec. (No pueden cambiar los colores, ni el tamaño) Leyenda "Campus Estado de México" Nombre del proyecto (opcional) Splash Screen con el nombre del proyecto (si no lo incluyeron en la pantalla de inicio). Menú principal: Iniciar el juego. Puede llevarlos a seleccionar personaje, introducir password, cargar nuevo juego, etc. Marcadores más altos (al menos 3)
Ayuda. Instrucciones para jugarlo. Historia del juego. Habla sobre el tema del juego; historia del personaje, de los enemigos, etc. Créditos. Nombre, Matrícula, Correo, Carrera. Aquí debe indicar el nombre de la materia y campus Estado de México. Salir (confirmar) Menú de pausa: Continuar, Reiniciar, Ayuda, Regresar al menú principal. Pausar el juego por completo al recibir una llamada, mensaje, aviso del sistema operativo. Manejo de memoria óptima (tanto en código, como en imágenes). Ejecución óptima. Pantalla final que indique que se acabó el juego. Función de salvar/cargar el juego. (evaluar si aplica esta función) Estado del juego: Vidas, puntos, energía, armas, nivel, etapa, etc. Mínimo 2 niveles o el equivalente. Música de fondo y efectos. Animaciones (usa sprites, no GIF animados) En principio no deben usar librerías externas, a menos que se justifiquen y las autorice el profesor. Para este semestre usaremos libgdx un engine para escribir videojuegos en Android. Es opcional el uso de Bluetooth o la red para juegos multiplayer. d. Varios [Registre información que podría ser de interés para otros profesores de la materia o para el Director de departamento.]