View
371
Download
0
Category
Preview:
Citation preview
TRABAJO DE FIN DE MÁSTER
DESARROLLO DE UN VIDEOJUEGO EN BLENDER (KNIGHT
LORE)
Autor: Adrián Alonso González
Tutor: Ricardo Aler Mur
MÁSTER UNIVERSITARIO EN INGENIERÍA INFORMÁTICA
08/0
7/2
015
ÍNDICE
Introducción
Estado de la cuestión
Análisis
Diseño, Implementación y Pruebas
Conclusiones y líneas futuras
Demostración
2
INTRODUCCIÓN
Motivaciones
Objetivos del proyecto
3
Motivaciones
Profesionales: la industria del videojuego está en auge desde hace tiempo.
Beneficios económicos equiparables (puede que mayores) a industrias como las de la música o el cine.
Proceso de producción cada vez más evolucionado, equiparable a superproducciones de cine Motores de videojuegos y software de modelado 3D.
Personales: tengo una gran pasión por el mundo de los videojuegos e interés en su proceso de desarrollo.
Experiencia previa en modelado 3D, concretamente en Blender.
4
Objetivos del proyecto
Conocer y documentar el proceso de producción de un
videojuego comercial.
Analizar el videojuego del que se realizará la adaptación,
Knight Lore, y extraer sus elementos principales.
Aplicar los conocimientos adquiridos y desarrollar el
videojuego utilizando el motor de Blender.
Documentar todo el proceso.
5
ESTADO DE LA CUESTIÓN
Modelado 3D
Motores de videojuegos
Retrovideojuegos
Proceso de producción profesional de videojuegos
6
Modelado 3D
Técnica que permite mediante diversos medios (en este caso un software informático) crear objetos tridimensionales.
Dos formas de representar objetos:
Representación analítica:
Ecuaciones de cónicas, splines…
Utilizando polígonos teselados (mallas de triángulos).
7
Modelado 3D
Gratuita, de código libre y multiplataforma
(Windows, Mac y Linux )
Características principales: Modo de edición de mallas 3D.
Varios motores de renderizado: motor principal, cycles, videojuegos.
Modo de escultura 3D.
Texturizado.
Pack de herramientas para animación.
Simulación de fluidos, partículas, físicas, ropa…
Motor de videojuegos.
Extensible mediante plugins.
Interfaz altamente personalizable.
8
Motores de videojuegos
Software que facilita la creación de videojuegos.
Ofrece funciones como:
Renderizado de los gráficos.
Soporte para programar los mecanismos del juego.
Gestión de recursos (animaciones, sonido, modelos 3D…).
Motor de físicas y detección de colisiones.
Soporte para implementar la IA de los enemigos.
Soporte para la computación paralela.
9
10
Modelo de pago Experiencia necesariaSoporte y
documentaciónPropósito
Versión de pago ($9.90
al mes) y gratuitaAlta
Alto grado de soporte y
documentación por parte
de Crytek
Utilizado en el ámbito
profesional
Versión gratuita y pago
de un 5% en royaltiesAlta
Alto grado de soporte y
documentación por parte
de Epic
Ampliamente utilizado en
el ámbito profesional
Versión gratuita y de
pago ($1500)Media-Alta
Alto grado de soporte y
documentación por parte
de Unity Technologies
Utilizado en el ámbito
profesional
No se comercializa,
uso interno por parte
de EA
Se desconoce Se desconoce
Utilizado en el ámbito
profesional, únicamente
por la empresa EA
Versión gratuita y dos
de pago (precios de
$39.99 y $799.99)
MediaSoporte y documentación
por Yoyo Games
Utilizado para iniciarse
en el mundo del
desarrollo de
videojuegos
Gratuita Media-AltaAmplía comunidad de
usuarios
Utilizado para iniciarse
en el mundo del
desarrollo de
videojuegos
Software
Motores de videojuegos
Características principales:Renderizado: técnicas como lightmaping o técnica de Level of
Detail (LOD).
Animaciones: insertadas mediante un actuador específico.
Motor de físicas: librería bullet. Varios tipos de cuerpos (No Collision, Static, Dynamic, Rigid Body, Soft Body…).
Programación: sistema de reglas basado en tres componentes: sensores, controladores y actuadores. Sistema que se puede complementar con programación Python.
11
Videojuego Knight Lore
Perspectiva isométrica Forma de representación en dos dimensiones de objetos
tridimensionales.
Se utilizan tres ejes que forman ángulos de 120º.
Los objetos no disminuyen su tamaño al alejarse del punto de vista.
Normalmente se utilizaba una perspectiva dimétrica en lugar de una isométrica. Dos ángulos iguales y uno distinto (ratio de píxeles de 2:1).
Fue una completa innovación en el mundo de los videojuegos ya que por “primera” vez se observaron entornos en 3D (aunque no era 3D puro).
12
Videojuego Knight Lore
Perspectiva isométrica
13
Videojuego Knight Lore
Knight Lore
Desarrollado en 1984 por Chris y Tim Stamper, de la empresa británica Ultimate Play the Game.
Clásico de los juegos de 8 bits aparecidos en la década de los 80 e inspiración del juego desarrollado.
Época en la que se comienzan a utilizar los ordenadores también como plataformas de videojuegos: Spectrum, Amstrad, MSX.
Trata sobre Sabreman, un explorador, que sufre una maldición de licantropía y debe buscar (en un límite de 40 días) una serie de objetos en el castillo de Knight Lore para que el mago Melkor pueda elaborar una poción que le cure.
Uso de un motor en perspectiva isométrica Filmation.
14
Proceso de producción profesional de
videojuegos
Ciclo de desarrollo• Post-mortem
• Documentación y Registro del ProyectoPostproducción
• Plan de Pruebas
• Lanzamiento del códigoFase de pruebas
• Plan de Implementación
• Seguimiento del Progreso
• Análisis de Riesgos
Producción
• Concepto
• Requisitos del proyecto
• Planificación del proyecto
• Análisis de Riesgos
Preproducción
15
Proceso de producción profesional de
videojuegos
Roles principales
Producción
• Productor ejecutivo
• Productor
Diseño
• Director creativo
• Diseñador
• Guionista
Ingeniería
• Director técnico
• Ingeniero jefe
• Ingeniero
Diseño artístico
• Director artístico
• Diseñador de recursos
• Artistas técnicos
Sonido
• Diseñador de sonido
• Compositor
Aseguramiento de la calidad
• Jefe del equipo de pruebas
• Miembro del equipo de pruebas
16
ANÁLISIS
Resumen del proceso
Valoración de alternativas
17
Resumen del proceso
Como parte del proceso de análisis se obtuvieron:
13 casos de uso.
45 requisitos:
29 funcionales.
16 no funcionales.
Plan de pruebas que contempla 12 pruebas.
Plan de riesgos que contempla 8 riesgos.
18
Valoración de alternativas
Elementos del juego original implementados:
Perspectiva isométrica.
Objetivo principal llevar los objetos al caldero en el límite de tiempo.
Transformación en hombre lobo con comportamiento adaptativo de los enemigos.
Partidas aleatorias.
Mecanismo de control.
Algunos objetos, elementos del escenario y niveles.
19
Valoración de alternativas20
Valoración de alternativas
Estructura del juegoSe plantearon dos alternativas para el diseño:
Diseñar todo el videojuego utilizando un único fichero Blender: a priori el desarrollo es menos costoso pero al trabajar con un archivo más pesado se consumen más recursos y el proceso se puede ralentizar.
Desarrollo modular utilizando distintos ficheros Blender y usar enlaces: desarrollo más compartimentado, más facilidad para realizar pruebas individuales y archivos más ligeros.
Se eligió la segunda alternativa archivos Blender separados para personaje, niveles e interfaces.
21
DISEÑO, IMPLEMENTACIÓN Y
PRUEBAS
Diseño
Implementación
Pruebas
Postproducción
22
Diseño
Mecanismos del juego Inicialización.
Carga de niveles.
Control de cámaras.
Flujo del tiempo.
Aparición de objetos.
Objetivo principal.
Mecanismo de pausa.
Sistema de control.
Interacciones con los objetos.
Sistema de vidas.
Transformación en hombre lobo.
…
23
Diseño
Cámaras implementadas e interfaces
24
Diseño
Otras interfaces
25
Diseño
Personaje principal
26
Diseño
Personaje principal Animaciones:
Andar en línea recta.
Girar izquierda y derecha.
Saltar.
Animación en estado relajado.
Transformación.
Configuración de físicas:
Cuerpo de tipo Character tipo especial para personajes de videojuegos. Los saltos se programan más fácilmente y el personaje escala automáticamente algunas superficies.
27
Diseño
Otros personajes y objetos
28
Diseño
Mapa de niveles:
Amarillo: aquellos que contienen algún objeto de la poción.
Rojo: aquellos niveles en los que el personaje puede aparecer aleatoriamente al inicio de la partida.
Verde: aquellos niveles que contienen vidas para el personaje.
Morado: resto de niveles.
29
Diseño
Niveles
30
Nivel caldero Nivel 7 Nivel 6
Diseño
Sonido 16 efectos de sonido movimiento al andar, movimiento al saltar,
contacto con el suelo, empujar objeto, objeto recogido, recoger vida,
choque con objeto dañino…
8 temas para sonido ambiental música de fondo principal del
juego, ambiente de mazmorra, sonido ambiente de bosque, juego
superado, juego no superado…
31
Implementación
Los mecanismos jugables se han implementado utilizando el combinación el sistema de sensores, controladores y actuadores de BGE junto a programación en Python. Sensor: elementos que se activan cuando ocurre un evento.
Controlador: se utilizan para establecer condiciones sobre cuándo se producirá una acción o no y qué acciones se producirán. Se activan al accionarse algún sensor por lo que son el nexo de unión entre sensores y actuadores. Existe un controlador especial que es el controlador Python.
Actuador: una vez que se evalúa positivamente un controlador éste activa uno o más actuadores. Estos actuadores se utilizan para ejecutar una acción del juego y modificar directamente su estado.
32
Implementación
Ejemplo sensores, controladores y actuadores:
33
Implementación
Ejemplo programación Python:
def change_camera(cont):
sensor = cont.sensors["s_keyboard"]
if sensor.positive:
…
34
Pruebas
Como resultado del proceso de pruebas:5 errores encontrados y subsanados. 4 Errores leves y 1 grave.
Ejemplo:
Error: al intentar soltar un objeto fuera del escenario este atravesaba la pared y caía.
Solución: implementar una “pared de seguridad” y un “suelo de seguridad” para evitar que los objetos atraviesen los límites de la habitación.
Todas las pruebas superadas finaliza el desarrollo del código del videojuego.
35
CONCLUSIONES Y LÍNEAS
FUTURAS
Conclusiones
Postmortem: Planificación y presupuesto
(análisis de desviaciones)
Líneas futuras
36
Conclusiones
Objetivos cumplidos:
Se ha investigado acerca del proceso de producción de videojuegos y se han utilizado
esos conocimientos, junto a un estudio del juego original y de la herramienta de
desarrollo a utilizar, para lograr un desarrollo satisfactorio.
Juego desarrollado:
Se han implementado la gran mayoría de los mecanismos relevantes del juego original,
dando prioridad a aquellos que eran más interesantes de implementar en Blender.
Se han utilizado técnicas que ofrece BGE como el lightmapping o la simulación de
físicas.
Además se han añadido mecanismos adicionales como las vistas en primera y tercera
persona.
37
Conclusiones
Blender como motor de videojuegos:
Ideal para iniciarse en el desarrollo de videojuegos.
No obstante no incluye elementos básicos como son los sistemas de partículas y hay que recurrir a programación en Python para añadirlos.
Conclusiones personales:
He adquirido una valiosa experiencia en el desarrollo de videojuegos, industria en auge.
Gran satisfacción personal al desarrollar mi primer proyecto audiovisual y además un videojuego, mi principal hobby.
38
Postmortem: Planificación y presupuesto
(análisis de desviaciones)
Planificación estimada
39
Postmortem: Planificación y presupuesto
(análisis de desviaciones)
Planificación final
40
Postmortem: Planificación y presupuesto
(análisis de desviaciones)
Presupuesto Medios técnicos empleados:
HardwareSoftware
• Software libre y/o gratuito:• SO Windows 8,1 (DreamSpark)
• Desarrollo Blender 2.7.4.
• Edición imágenes GIMP 2.8.
• Edición sonido Audacity 2.1.0.
• Edición video Windows Movie Maker 12.
• Gestión del proyecto Microsoft Project 2013 (DreamSpark).
• Ofimática OpenOffice
• Ordenador con procesador AMD FX-8350 Eight Core 4.00 GHz y 16 GB de memoria RAM
41
Postmortem: Planificación y presupuesto
(análisis de desviaciones)
Presupuesto estimado vs presupuesto final
Concepto Coste total estimado Coste total final Diferencia
Coste de personal 49444 € 44184 € 5260 €
Coste de Software 0 € 0 € 0 €
Coste de Hardware 46.13 € 41.22 € 4.91 €
Costes indirectos 324.69 € 324.69 € 0 €
Costes totales 49813.44 € 44549.91 € 5263.53 €
IVA 10460.82 € 9355.48 € 1105.34 €
60274.26 € 53905.39 € 6368.87 €
42
Líneas futuras
Ampliación del número de niveles, objetos, personajes y sonidos. Se facilitaría gracias al desarrollo modular en distintos archivos Blender del videojuego.
Soporte a un sistema de control adicional mediante un controlador de juego (mando de consola).
Sistema de trofeos y mejores puntuaciones.
Portabilidad a otras plataformas: Difícil ya que BGE no incluye soporte a otras plataformas y los ports realizados por
usuarios no funcionan a un nivel óptimo.
No obstante todos los recursos desarrollados se podrían reutilizar en una adaptación utilizando otro motor de videojuegos como Unity, el cual soporta una gran cantidad de plataformas.
43
DEMOSTRACIÓN44
MUCHAS GRACIAS
POR SU ATENCIÓN
PREGUNTAS
45
Recommended