Download Oscar Sanjuán Martínez
Document related concepts
no text concepts found
Transcript
Introducción al Diseño y Programación de Video Juegos Profesor: Oscar Sanjuán Martínez Escuela Universitaria de Ingeniería Técnica de Informática de Oviedo UNIVERSIDAD DE OVIEDO 1 Historia de los videojuegos Inicios 8 bits 16 bits 32 bits Generación actual “Next-gen” Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –2– En cifras… 1985: 2-6 personas 4-12 meses de desarrollo Presupuesto: 20-80 miles de Euros (cuando lo había, que no era siempre) Mercado total: 200m € 2005: 40-120 personas 18-36 meses de desarrollo 5-20 millones de Euros Mercado total: 30 bn € Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –3– En cifras… Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –4– ¿Qué son los videojuegos? Definiciones clásicas de videojuego “Una serie de decisiones interesantes” Sid Meier “Identificar, aprender y dominar patrones” Raph Koster “Una actividad divertida, y una excusa para repetirla una y otra vez” Anónimo Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –5– ¿Qué son los videojuegos? Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –6– Estructura de un equipo Dirección Programación Gráficos Diseño Producción Sonido Testing y QA Marketing Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –7– Programación Escriben el software que implementa la funcionalidad pedida por diseño, la tecnología necesaria para mostrar los contenidos, y las herramientas para construirlos Lógica de juego Sistema Tecnología Herramientas Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –8– Herramientas de Programación Desarrollo: Compiladores: MSVC, Intel, gcc, Codewarrior... Depuradores y analizadores run-time: MSVC, Boundschecker, Purify... Profilers: VTune, profilers hardware Kits de desarrollo para consola Control de código (formalmente: gestión de configuración) Visual SourceSafe, Perforce, CVS, BitKeeper... SDKs y librerías externas DirectX, OpenGL, MaxSDK... Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –9– Gráficos Construyen los elementos visuales, escenarios y personajes Diseño artístico Modelado y texturado Animación Maquetación y diseño 2D Render y FMV Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –10– Herramientas Gráficas Photoshop para imágenes y texturas 3DS Max, Lightwave, Maya o SoftImage para modelado y animación 3D Sin olvidarnos de plug-ins: telas, fluidos, render cartoon, etc. Adobe Premiere y Discreet Combustion para secuenciado y compresión de video Herramientas internas para exportación, visores, creación de secuencias cinemáticas, editores de mapas Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –11– El proceso de desarrollo Desarrollo (a)típico de un videojuego Concepto: la idea fundamental “en 25 palabras” Pre-producción: desarrollar la base e implicaciones de esa idea Producción: construir la funcionalidad y contenidos QA y cierre: asegurar la estabilidad y solidez del juego Post-release: parches, expansiones, explotación Concepto Concept o Pre-producción Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Producción QA Postrelease Página –12– Herramientas: Game Maker Escuela Universitaria de Ingeniería Técnica de Informática de Oviedo UNIVERSIDAD DE OVIEDO 13 Objetivos Conocer la estructura y características básicas de GAMEMAKER Probar varios ejemplos Desarrollar al menos un juego completo Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –14– ¿Porqué desarrollar un videojuego? El desarrollo de un videojuego incorpora elementos muy variados pertenecientes a diferentes campos de la informática. El mercado del software de entretenimiento es pujante y creciente. Interesa a los alumnos (Ejemplo ADOO UPSAM). ES DIVERTIDO!!!! Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –15– ¿Porqué usar Game Maker? La mayoría de los videojuegos profesionales son escritos en C/C++, C# o incluso ensamblador. Los proyectos de desarrollo comerciales implican muchisimo tiempo, personas y esfuerzos. Game Maker simplifica todo eso. (Ejemplo D&D JAVA 2D 4 alumnos, 4 meses de clase) Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –16– ¿Qué es un videojuego? “Un software en el cual uno o más jugadores toman decisiones mediante el control de objetos y recursos en busca de conseguir un objetivo.” Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –17– ¿Qué tipo de videojuegos podemos crear? El Game Maker permite la creación de videojuegos sencillos de cualquier género. Permite la creación incluso de videojuegos 3D y multiusuario. Aunque su objetivo es sobre todo didáctico, nos ayudará a aprender a desarrollar videojuegos. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –18– Modelo de programación: POO. Programación Orientada a Objetos. OOP.POO. Existen algunos matices con respecto a la POO tradicional. OBJETO: todo aquello sobre lo que es posible desencadenar una acción. Ej: en un matamarcianos, serán objetos tanto la nave, como los marcianitos o incluso las balas. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –19– EVENTOS “algo que sucede sobre el objeto o provocado por el” Un evento es por ejemplo cuando un usuario presiona un tecla para disparar. Hay que diferenciar claramente los eventos de las acciones. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –20– PROPIEDADES Diferentes características que tiene un objeto. Nombre Color Ancho Largo Etc… Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –21– Caso de estudio: el Tetris Fondo Objetos ¿Qué elementos intervienen? Eventos ¿Cuándo pasan las cosas? Acciones Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –22– Ejercicio Realizar un análisis en función de: Objetos Eventos Acciones Propiedades PACMAN FIFA UN JUEGO A SU ELECCIÓN Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –23– ELEMENTOS DE UN JUEGO Escuela Universitaria de Ingeniería Técnica de Informática de Oviedo UNIVERSIDAD DE OVIEDO 24 DESCRIPCIÓN Un juego contendrá: Objetos Sprites Sonidos Fondos Niveles Acciones Eventos Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –25– Sprites Los sprites son la representación gráfica de los objetos en pantalla y puede ser estática o animada. Un sprite puede representar uno o muchos objetos. Todas las galletas e incluso los fantasmas son el mismo sprite. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –26– Formatos Los sprites pueden ser creados utilizando cualquier programa o editor gráfico, los formatos más habituales incluyen: BMP GIF ICO JPG PCX TIF Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –27– Objetos Elemento capaces de captar y generar eventos. Pueden ser visibles o no. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –28– Fondos Las imágenes que están detrás de todo, pueden ser estáticas o dinámicas o incluso tener efectos de scrooll. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –29– Sonidos Los sonidos son una parte fundamental de la historia, la ambientación e incluso de la jugabilidad y el ritmo. Los sonidos pueden ser incorporados en diferentes formatos, los más habituales son: WAV (digital) MP3 (digital) MIDI (sintético) Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –30– Niveles “ROOMS” Son las estructuras donde se desarrolla el juego, un juego puede tener muchos niveles cada uno con su propio fondo, objetos, características, reglas y lógica. Algunos juegos pueden tener un solo nivel como por ejemplo el tetris Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –31– Ejercicio Esquematizar un juego de tipo arcade (acción) inventado por ti, indicando donde transcurre la acción, cómo se juega y cual es el objetivo. Una vez hecha la descripción, indicar cual es el fondo y los objetos que intervienen en cada nivel. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –32– Ejemplo Vamos a usar como ejemplo una versión del conocido juego breakout en la que el jugador tiene que destruir una pared de ladrillos haciendo rebotar una pelota contra ellos. La pelota rebota en todas partes de la pantalla excepto en los ladrillos a los cuales rompe y la parte de debajo de la pantalla donde desaparece la pelota y el usuario pierde vida. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –33– Ejemplo II El jugador controla un plataforma que se mueve horizontalmente en la parte baja de la pantalla con el objetivo de impedir que se caiga la pelota y romper el mayor número de ladrillos posibles. Al destruir ladrillos el jugador va ganando puntos y cuando destruye todos los ladrillos se cambia de pantalla. El fondo es una imagen fija. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –34– Ejemplo III Una vez descrito el juego debemos definir los eventos: OBJETO LADRILLO: Evento “tecla cursor izquierda” mover base izquierda. Evento “tecla cursos derecha” mover base derecha. OBJETO BOLA: Evento “chocar contra ladrillo” • Destruir ladrillo. • Sumar puntos de acuerdo al color y al nivel. • Suena una explosión. Chocar “contra las base o contra las paredes” • Rebotar. • Suena el rebote. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –35– Ejemplo IV Evento “salir por la parte inferior de la pantalla” • Quitar una vida al jugador. • Comenzar de nuevo. • Tocar sonido “perder”. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –36– El Entorno de desarrollo de Game Maker Escuela Universitaria de Ingeniería Técnica de Informática de Oviedo UNIVERSIDAD DE OVIEDO 37 Método de estudio Explicación Ejemplo Practica 5 + 1 + 1 Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –38– INTERFAZ DE GAME MAKER MENU DE OPCIONES ICONOS AREA DE TRABAJO EXPLORADOR DE RECURSOS Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –39– El menú de opciones Tiene las opciones típicas de cualquier otro programa windows y algunas cosas específicas como el añadir un sprite, un objeto o un sonido El menú de opciones tiene dos formas de funcionamiento: Sencillo Avanzado Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –40– El menú file El formato de los archivos del Game Maker es .gmd. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –41– Íconos de acceso rápido Nuevo Abrir Grabar Ejecutar Agregar sprite Agregar sonido Agregar fondo Agregar objeto Agregar nivel Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –42– El explorador de recursos Contiene los elementos del juego: Fondos Niveles Sprites Objetos Etc… Para añadir un recurso es suficiente hacer click con el botón derecho sobre el tipo de recurso que se desea agragar. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –43– Modificar un recurso Todos los recursos funcionan igual independientemente de su tipo. Si se presiona con el botón derecho sobre el nombre del recurso aparecerán sus propiedades Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –44– Eliminación de recursos Durante el proceso de creación de videojuegos que muchas veces es iterativo, suele ser habitual el añadir recursos que terminan no siendo necesarios. Es mejor eliminar estos elementos para que no consuman recursos de la máquina. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –45– Ejercicio Crear un juego con un fondo llamado.piso., cuya imagen deberá ser back2.GIF. Agregar dos sprites con las imágenes ball1 y diamant y llamarlos pelota y premio respectivamente. Agregar dos sonidos: applause y zap y llamarlos final y disparo. Definir tres objetos llamados pelota1, pelota2 y premio usando como sprites pelota (para los dos primeros objetos) y premio respectivamente. Agrego un room (nivel) sin cambiarle el nombre, luego lo edito (hago doble click sobre él) y le cambio el nombre a primer nivel. Elimino el objeto pelota2 y el sonido disparo. Grabo el ejercicio en mi carpeta de trabajo Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –46– Pasos para crear un juego Escuela Universitaria de Ingeniería Técnica de Informática de Oviedo UNIVERSIDAD DE OVIEDO 47 Introducción Para que toda construcción llegue a buen puerto, es necesario seguir una serie de pasos… Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –48– El orden de creación Los Fondos Los Sonidos Los Sprites Los Objetos Los Eventos de cada Objeto Las Acciones de evento Los niveles Para poder seguir estos pasos es necesario tener un análisis detallado del juego. A continuación vamos a hacer una pequeña prueba. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –49– El fondo Para agregar un fondo seguimos los pasos descritos con anterioridad. Añadamos un fondo llamado Pista y asociado al fichero back2. Es importante fijarse en los detalles que se pueden consultar sobre las imágenes al seleccionarlas. Existe la posibilidad de editar la imagen al añadirla. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –50– Los sonidos Podemos seleccionar un sonido de manera muy parecida a como lo hemos hecho con el fondo. Hay que tener especial cuidado con el uso de sonidos demasiado grandes o largos. Es posible añadirle efectos al sonido o incluso editarlo. Añade un sonido de explosión. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –51– Los sprites Aunque son similares a los fondos, ya que son imágenes, su diferencia radica en que un sprite dinámico está formado por más de una imagen. Añadimos un sprite llamado explosión Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –52– Los objetos Nombre Lista de Sprites Lista de Eventos definidos Lista de acciones definidas/evento Acciones Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –53– Los objetos II En la ventana de propiedades hago lo siguiente: 1 Le doy un nombre al objeto 2 Asignarle un sprite (que obviamente ya tiene que estar definido) 3 Agregar un evento 4 Elegir todas las acciones que tengo previstas para ese evento 5 Repito los dos pasos anteriores tantas veces como eventos vaya a tener el objeto Para agregar un evento hago click en el botón Add Event; se abre una nueva ventana con los diferentes eventos disponibles. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –54– Los objetos III Existen diferentes tipos de eventos predefinidos. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –55– Niveles Los niveles o ROOMS son los lugares en donde se desarrolla el juego. Todo juego necesita al menos un nivel. En los niveles colocaremos las diferentes instancias de los objetos. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –56– Niveles II Existen pestañas referentes a la definición del nivel en cuanto a: Objetos Fondos Configuración Etc… Una vez hecho esto, estamos listos para empezar!!!! Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –57– Primer ejercicio Vamos a crear un primer juego que no tendrá gran interacción con el usuario, sino que será más bien como un simulador del movimiento de partículas. 1.Fondo: uno solo, a partir de la imagen back7 que está en la carpeta backgrounds; le llamamos piso. 2.Sonidos: uno sólo, para cuando hay un choque; elegimos beep1 de la carpeta sounds y le llamamos rebote Nuestro juego tendrá dos sprites uno para la pared que rodea a todo el nivel y otro para las partículas. Elegimos para el primero la imagen square y para el segundo ball2, ambas de la carpeta Sprites\Various. Les llamamos spPared y spParticula respectivamente. Los objetos también serán dos: pared, a partir del sprite spPared y Particula, a partir del sprite spPartícula. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –58– Primer ejercicio II En ambos marcamos la propiedad Solid para que el GM pueda detectar el choque. En el objeto pared no definimos ningún tipo de evento ni, por lo tanto, ninguna acción. En el objeto Partícula tendremos que definir tres eventos: 1. 2. 3. Creación: en el tenemos que indicar que hace la partícula cuando es creada (va a moverse en cualquier dirección con velocidad 5) Colisión con la pared: va a rebotar contra un objeto sólido (bounce against solid objetcs) y va a tocar el sonido rebote (play sound) Colisión con otra partícula: efectúa exactamente las mismas acciones que en el evento anterior. Habrá un sólo nivel, que tendrá como fondo al piso definido en primer lugar y como borde al objeto pared. Le agrego tantas instancias de partículas como quiera (no poner muchas al principio). 1. Variación1: hacer que el jugador pueda hacer click sobre las partículas y esto cambie su dirección y/o su velocidad 2. Variación 2: hacer que cuando dos partículas choquen se desintegren y aparezca otra diferente (muy difícil) Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –59– Nuestro primer juego completo Escuela Universitaria de Ingeniería Técnica de Informática de Oviedo UNIVERSIDAD DE OVIEDO 60 Descripción Se trata del desarrollo de un sencillo juego, para mayor comodidad, el enunciado se encuentra en un fichero PDF llamado práctica1_GM.pdf AVION MATA GLOBOS NOTA: los ficheros necesarios se encuentran en el mismo directorio que el enunciado de la práctica Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –61– La gestión del tiempo y control Escuela Universitaria de Ingeniería Técnica de Informática de Oviedo UNIVERSIDAD DE OVIEDO 62 ¿Porqué medir el tiempo? Hay muchos eventos que suceden en momentos concretos y cada cierto tiempo. HERRAMIENTA BÁSICA: ALARM Las alarmas miden el tiempo en pasos, no en segundos. Un segundo suele constar de 30 pasos. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –63– Acciones relacionadas con el tiempo ASIGNAR UN VALOR A UNA ALARMA ESTABLECER UNA PAUSA Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –64– Control Existen un tipo especial de objetos llamados objetos de control que no tienen ningún sprite asociado. Este tipo de objetos resultan especialmente útiles para gestionar la operativa del juego, por ejemplo para crear enemigos, controlas elementos de tiempo, etc. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –65– Acciones Condicionales Permiten tomar distintas decisiones en función de valores de elementos, por ejemplo: En el missile command será necesario comparar el número de instancias de una ciudad para saber si el juego debe terminar. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –66– Missile Command Hay que defender varias ciudades del ataque de unos misiles que caen del cielo. Si los misiles caen sobre las ciudades, se destruyen. Es posible eliminar los misiles y evitar la destrucción de las ciudades interceptandolos. Ver Enunciado Completo práctica 2 NOTA: los ficheros necesarios se encuentran en el mismo directorio que el enunciado de la práctica Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –67– Uso de variables Escuela Universitaria de Ingeniería Técnica de Informática de Oviedo UNIVERSIDAD DE OVIEDO 68 Uso de Variables “nombre que hace referencia a un valor” GM utiliza muchas variables de forma transparente y automática, por ejemplo: Cantidad de puntos Cantidad de vidas Cantidad de energia A veces esto no es suficiente. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –69– Características de las variables de GM No es necesario declarar las variables. Existen dos tipos: Numéricas Cadenas Pueden tener ambito: local o Global (global.nombre) Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –70– Operaciones Asignar Verificar Mostrar Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –71– A practicar: Carreras y Futbol Estas prácticas son la 3 y la 4. La tres consiste en realizar una carrera de 2 corredores La cuatro en tiros de faltas en futbol. NOTA: los ficheros necesarios se encuentran en el mismo directorio que el enunciado de la práctica Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –72– Sentencias repetitivas Al igual que en otros lenguajes de programación, existe la posibilidad de repetir operaciones Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –73– Sentencias condicionales También es necesario que exista la posibilidad de utilizar sentencias condicionales. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –74– Break Out Practica 6 Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –75– Para practicar… Como proyecto final, vamos a acometer el desarrollo de un pequeño videojuego utilizando las herramientas aprendidas. Grupos de 2 o 3 como máximo. Tema LIBRE. NOTA: se debe realizar también un desarrollo del argumento, historia, planificación, etc. Oscar Sanjuán Martínez UNIVERSIDAD DE OVIEDO Página –76–