Escuela Universitaria de Ingeniería Técnica de Informática de OviedoUNIVERSIDAD DE OVIEDO
1
Introducción al Diseño y Programación de Video Juegos
Profesor:Oscar Sanjuán Martínez
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –2–
Historia de los videojuegos
Inicios 8 bits 16 bits 32 bits Generación actual “Next-gen”
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –3–
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ínezUNIVERSIDAD DE OVIEDO
Página –4–
En cifras…
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –5–
¿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ínezUNIVERSIDAD DE OVIEDO
Página –6–
¿Qué son los videojuegos?
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –7–
Estructura de un equipo
Dirección Programación Gráficos Diseño Producción Sonido Testing y QA Marketing
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –8–
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ínezUNIVERSIDAD DE OVIEDO
Página –9–
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ínezUNIVERSIDAD DE OVIEDO
Página –10–
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ínezUNIVERSIDAD DE OVIEDO
Página –11–
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ínezUNIVERSIDAD DE OVIEDO
Página –12–
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
Pre-producciónConcepto Producción QA Post-release
Escuela Universitaria de Ingeniería Técnica de Informática de OviedoUNIVERSIDAD DE OVIEDO
13
Herramientas: Game Maker
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –14–
Objetivos
Conocer la estructura y características básicas de GAMEMAKER
Probar varios ejemplos
Desarrollar al menos un juego completo
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –15–
¿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ínezUNIVERSIDAD DE OVIEDO
Página –16–
¿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ínezUNIVERSIDAD DE OVIEDO
Página –17–
¿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ínezUNIVERSIDAD DE OVIEDO
Página –18–
¿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ínezUNIVERSIDAD DE OVIEDO
Página –19–
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ínezUNIVERSIDAD DE OVIEDO
Página –20–
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ínezUNIVERSIDAD DE OVIEDO
Página –21–
PROPIEDADES
Diferentes características que tiene un objeto. Nombre Color Ancho Largo Etc…
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –22–
Caso de estudio: el Tetris
Fondo Objetos ¿Qué elementos intervienen? Eventos ¿Cuándo pasan las cosas? Acciones
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –23–
Ejercicio
Realizar un análisis en función de: Objetos Eventos Acciones Propiedades
PACMAN
FIFA
UN JUEGO A SU ELECCIÓN
Escuela Universitaria de Ingeniería Técnica de Informática de OviedoUNIVERSIDAD DE OVIEDO
24
ELEMENTOS DE UN JUEGO
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –25–
DESCRIPCIÓN
Un juego contendrá: Objetos
Sprites Sonidos Fondos Niveles Acciones Eventos
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –26–
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ínezUNIVERSIDAD DE OVIEDO
Página –27–
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ínezUNIVERSIDAD DE OVIEDO
Página –28–
Objetos
Elemento capaces de captar y generar eventos.
Pueden ser visibles o no.
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –29–
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ínezUNIVERSIDAD DE OVIEDO
Página –30–
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ínezUNIVERSIDAD DE OVIEDO
Página –31–
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ínezUNIVERSIDAD DE OVIEDO
Página –32–
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ínezUNIVERSIDAD DE OVIEDO
Página –33–
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ínezUNIVERSIDAD DE OVIEDO
Página –34–
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ínezUNIVERSIDAD DE OVIEDO
Página –35–
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ínezUNIVERSIDAD DE OVIEDO
Página –36–
Ejemplo IV
Evento “salir por la parte inferior de la pantalla” • Quitar una vida al jugador.• Comenzar de nuevo.• Tocar sonido “perder”.
Escuela Universitaria de Ingeniería Técnica de Informática de OviedoUNIVERSIDAD DE OVIEDO
37
El Entorno de desarrollo de Game Maker
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –38–
Método de estudio
Explicación
Ejemplo
Practica
5 + 1 + 1
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –39–
INTERFAZ DE GAME MAKER
ICONOS
AREA DE TRABAJO
EXPLORADOR DE RECURSOS
MENU DE OPCIONES
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –40–
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ínezUNIVERSIDAD DE OVIEDO
Página –41–
El menú file
El formato de los archivos del Game Maker es .gmd.
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –42–
Íconos de acceso rápido
Nuevo Abrir Grabar Ejecutar Agregar sprite Agregar sonido Agregar fondo Agregar objeto Agregar nivel
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –43–
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ínezUNIVERSIDAD DE OVIEDO
Página –44–
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ínezUNIVERSIDAD DE OVIEDO
Página –45–
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ínezUNIVERSIDAD DE OVIEDO
Página –46–
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
Escuela Universitaria de Ingeniería Técnica de Informática de OviedoUNIVERSIDAD DE OVIEDO
47
Pasos para crear un juego
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –48–
Introducción
Para que toda construcción llegue a buen puerto, es necesario seguir una serie de pasos…
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –49–
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ínezUNIVERSIDAD DE OVIEDO
Página –50–
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ínezUNIVERSIDAD DE OVIEDO
Página –51–
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ínezUNIVERSIDAD DE OVIEDO
Página –52–
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 spritellamado explosión
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –53–
Los objetos
Nombre Lista de Sprites Lista de Eventos
definidos Lista de
acciones definidas/evento
Acciones
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –54–
Los objetos II
En la ventana de propiedades hago lo siguiente:
1 Le doy un nombre al objeto2 Asignarle un sprite (que obviamente ya tiene que
estar definido)3 Agregar un evento4 Elegir todas las acciones que tengo previstas para ese
evento5 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ínezUNIVERSIDAD DE OVIEDO
Página –55–
Los objetos III
Existen diferentes tipos de eventos predefinidos.
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –56–
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ínezUNIVERSIDAD DE OVIEDO
Página –57–
Niveles II
Existen pestañas referentes a la definición del nivel en cuanto a: Objetos Fondos Configuración Etc…
Una vez hecho esto, estamoslistos para empezar!!!!
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –58–
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ínezUNIVERSIDAD DE OVIEDO
Página –59–
Primer ejercicio IIEn 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. 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)
2. 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)
3. 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)
Escuela Universitaria de Ingeniería Técnica de Informática de OviedoUNIVERSIDAD DE OVIEDO
60
Nuestro primer juego completo
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –61–
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
Escuela Universitaria de Ingeniería Técnica de Informática de OviedoUNIVERSIDAD DE OVIEDO
62
La gestión del tiempo y control
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –63–
¿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ínezUNIVERSIDAD DE OVIEDO
Página –64–
Acciones relacionadas con el tiempo
ASIGNAR UN VALOR A UNA ALARMA
ESTABLECER UNA PAUSA
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –65–
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ínezUNIVERSIDAD DE OVIEDO
Página –66–
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ínezUNIVERSIDAD DE OVIEDO
Página –67–
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
Escuela Universitaria de Ingeniería Técnica de Informática de OviedoUNIVERSIDAD DE OVIEDO
68
Uso de variables
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –69–
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ínezUNIVERSIDAD DE OVIEDO
Página –70–
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ínezUNIVERSIDAD DE OVIEDO
Página –71–
Operaciones
Asignar
Verificar
Mostrar
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –72–
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ínezUNIVERSIDAD DE OVIEDO
Página –73–
Sentencias repetitivas
Al igual que en otros lenguajes de programación, existe la posibilidad de repetir operaciones
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –74–
Sentencias condicionales
También es necesario que exista la posibilidad de utilizar sentencias condicionales.
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –75–
Break Out
Practica 6
Oscar Sanjuán MartínezUNIVERSIDAD DE OVIEDO
Página –76–
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.