780 likes | 1.08k Views
Introducción al Diseño y Programación de Video Juegos. Profesor: Oscar Sanjuán Martínez. Historia de los videojuegos. Inicios 8 bits 16 bits 32 bits Generación actual “Next-gen”. En cifras…. 1985: 2-6 personas 4-12 meses de desarrollo Presupuesto: 20-80 miles de Euros
E N D
Introducción al Diseño y Programación de Video Juegos Profesor: Oscar Sanjuán Martínez
Historia de los videojuegos • Inicios • 8 bits • 16 bits • 32 bits • Generación actual • “Next-gen”
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 €
¿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
Estructura de un equipo • Dirección • Programación • Gráficos • Diseño • Producción • Sonido • Testing y QA • Marketing
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
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...
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
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
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 Concepto Pre-producción Producción QA Post-release
Objetivos • Conocer la estructura y características básicas de GAMEMAKER • Probar varios ejemplos • Desarrollar al menos un juego completo
¿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!!!!
¿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)
¿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.”
¿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.
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.
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.
PROPIEDADES • Diferentes características que tiene un objeto. • Nombre • Color • Ancho • Largo • Etc…
Caso de estudio: el Tetris • Fondo • Objetos ¿Qué elementos intervienen? • Eventos ¿Cuándo pasan las cosas? • Acciones
Ejercicio • Realizar un análisis en función de: • Objetos • Eventos • Acciones • Propiedades • PACMAN • FIFA • UN JUEGO A SU ELECCIÓN
DESCRIPCIÓN • Un juego contendrá: • Objetos • Sprites • Sonidos • Fondos • Niveles • Acciones • Eventos
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.
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
Objetos • Elemento capaces de captar y generar eventos. • Pueden ser visibles o no.
Fondos • Las imágenes que están detrás de todo, pueden ser estáticas o dinámicas o incluso tener efectos de scrooll.
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)
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
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.
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.
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.
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.
Ejemplo IV • Evento “salir por la parte inferior de la pantalla” • Quitar una vida al jugador. • Comenzar de nuevo. • Tocar sonido “perder”.
Método de estudio • Explicación • Ejemplo • Practica • 5 + 1 + 1
INTERFAZ DE GAME MAKER MENU DE OPCIONES ICONOS AREA DE TRABAJO EXPLORADOR DE RECURSOS
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
El menú file • El formato de los archivos del Game Maker es .gmd.
Íconos de acceso rápido • Nuevo • Abrir • Grabar • Ejecutar • Agregar sprite • Agregar sonido • Agregar fondo • Agregar objeto • Agregar nivel
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.
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
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.
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
Introducción • Para que toda construcción llegue a buen puerto, es necesario seguir una serie de pasos…
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.
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.