lunes, 23 de diciembre de 2013

Resumen del 2013

Falta poco para que termine este 2013 y comience el que sería 5º año de escribir en el Blog (no sé si celebraré de alguna forma los cinco años o se me olvidará, como siempre). Llega por tanto el momento de hacer un repaso a lo hecho este año para poder planificar que quiero para el siguiente (aunque luego no se cumple todo).

Animación

Las mayores carencias en mi formación y en el propio Blog están en este apartado.

Escribí un pequeño post sobre como suelo hacer las cosas usando rotoscopia: http://creadorvj.blogspot.com.es/2013/09/tecnicas-de-animacion-rotoscopia.html

El año próximo intentaré hablar un poco más de esta parte de la creación de videojuegos.

Producción 

En la parte de producción quise seguir aportando consejos desde mi humilde experiencia. Por ejemplo, hablando desde el punto de vista de un desarrollador amateur-independiente, expuse mis pensamientos sobre como idear un nuevo proyecto: http://creadorvj.blogspot.com.es/2013/06/ideando-un-nuevo-proyecto.html

Proyectos 

No ha estado mal el año en este sentido, aunque planeaba hacer un poco más y evolucionar un poco m´sa en calidad. Por desgracia surgen problemas que te retrasan, cambios de planes y trabajos con los que no contabas, sin mencionar que no todos los proyectos terminan bien.

El año empezó con un pequeño proyecto llamado Demon's Maze de un solo nivel, que realizaría para el concurso de videojuegos de Toodaim Blog (con GameMaker). Aunque era solo un nivel muy corto, la idea me gustó y se quedó como un posible desarrollo futuro (añadiendo algunas mejoras), por lo que fue interesante mi participación aunque no ganara.

http://creadorvj.blogspot.com.es/2013/01/concurso-de-videojuegos-con-gamemaker.html

Pude participar como diseñador gráfico en un juego sencillo de puzle desarrollado para Android por el programador Juan Iñiguez (Mess: Simple Puzzles). Este se publicó en Google Play Store, aunque eso sí, con resultados menos exitosos de lo que esperábamos. Para analizar que me gustó del proyecto y que consideré que salió mal, hice también un post-Mortem del juego.

Enlace de descarga: https://play.google.com/store/apps/details?id=com.movidev.mess#?t=W251bGwsMSwyLDIxMiwiY29tLm1vdmlkZXYubWVzcyJd

Post-Mortem: http://creadorvj.blogspot.com.es/2013/10/posmortem-mess-puzzles.html

Mi juego creado íntegramente por mi (gráficos, programación, música, etc.) fue Memory GCards, que conseguí publicar para Android. Fue mi primer proyecto sencillo en una plataforma distinta del PC o la Web, así que quise que fuera un desarrollo cortito del que haré un Post-Mortem el año próximo.

Post: http://creadorvj.blogspot.com.es/2013/10/proyectos-memory-gcards-android.html

Enlace de descarga: https://play.google.com/store/apps/details?id=com.Perplex.GCards

Por otro lado estuve en algunos proyectos más que nunca llegué a comentar en el Blog o solo lo hice de pasada por diversos motivos. Por ejemplo, fui guionista de The Prisioner, un juego que pretendía obtener financiación a través del Crowfunding, pero que no resultó con la calidad suficiente como para conseguirlo. Participé como grafista-pixel artist en P.U. Pets, el videojuego de estrategia para Android que presentó un familiar como proyecto final de carrera. Finalmente, por último, empecé algunas colaboraciones y juegos en los que estoy trabajando ahora.

Guión 

La serie de técnicas de guión aplicadas a videojuegos se amplió un capítulo más gracias a En el bando opuesto: http://creadorvj.blogspot.com.es/2013/06/tecnicas-de-guion-aplicadas-videojuegos.html

Además me propuse hablar sobre los documentos que se suelen usar para desarrollar el guión de un videojuego y que nos ayudan a conseguir una mejor historia con menos fallos en el argumento por dejar menos a la improvisación e ir redactando ordenadamente y por partes.

Ficha de personaje 1: http://creadorvj.blogspot.com.es/2013/07/documentos-del-guion-de-videojuegos.html

Ficha de personaje 2: http://creadorvj.blogspot.com.es/2013/07/continuemos-con-la-segunda-parte-de.html

Ficha de escenario: http://creadorvj.blogspot.com.es/2013/08/documentos-del-guion-de-videojuegos.html

También quise hablar un poco sobre El diálogo: http://creadorvj.blogspot.com.es/2013/11/guion-el-dialogo.html

Diseño de juegos

Traté algunos asuntos sobre el diseño de juegos como las complejidades del diseño asimétrico: http://creadorvj.blogspot.com.es/2013/09/diseno-de-juegos-complejidades-en-el.html

En mi serie de géneros de videojuegos traté algunos de ellos.

Simuladores deportivos: http://creadorvj.blogspot.com.es/2013/02/diseno-de-juegos-generos-simuladores.html

Shoot'em up: http://creadorvj.blogspot.com.es/2013/06/diseno-de-juegos-generos-shoot-em-up.html

Puzzle: http://creadorvj.blogspot.com.es/2013/07/diseno-de-juegos-generos-puzzle.html

Cartas: http://creadorvj.blogspot.com.es/2013/08/diseno-de-juegos-generos-juegos-de.html

Subgénero de Aventura gráfica: http://creadorvj.blogspot.com.es/2013/12/diseno-de-juegos-generos-aventura.html

También continué este año con la serie de documentos de diseño de videojuegos, con algunos que no había comentado el año anterior y que pueden ayudarnos a organizar mejor nuestro trabajo diario de desarrollo.

El checklist: http://creadorvj.blogspot.com.es/2013/02/diseno-de-juegos-el-checklist.html

Y como no, quise hablar de una parte del diseño a la que en ocasiones no damos la importancia que necesita. El diseño de GUI: http://creadorvj.blogspot.com.es/2013/12/diseno-de-gui-o-hud.html

Grafismo 3D 

Inicié mi serie sobre modelado 3D desde un nivel básico, incluyendo también post sobre texturas para los modelos que iría creando. Esta serie además, quiero continuarla durante el año siguiente.

Modelado del libro de hechizos: http://creadorvj.blogspot.com.es/2013/11/modelado-low-poly-desde-nivel-basico.html

Textura del libro de hechizos: http://creadorvj.blogspot.com.es/2013/11/modelado-low-poly-desde-nivel-basico_30.html

Quads vs tris: http://creadorvj.blogspot.com.es/2013/11/modelado-low-poly-quads-vs-tris.html

Modelado de un jarrón: http://creadorvj.blogspot.com.es/2013/12/modelado-low-poly-desde-nivel-basico.html

Entender el mapeado de texturas: http://creadorvj.blogspot.com.es/2013/12/entender-el-mapeado-de-texturas.html

Libros 

El libro destacado de este año es Power-Ups: Conviertete en un profesional de los videojuegos. Un libro repleto de buenos consejos e historias de gente de la industria del videojuego que, además no requiere que tengamos conocimientos previos para poder leerlo.

Escrito por Juan P. Ordóñez, que además es participé de iniciativas como Juegoterapia, gracias a la cual se compran juguetes y consolas a los niños en hospitales, este libro me animó a continuar con mi sueño y me permitió saber mucho más sobre cómo funciona el mundo profesional de la creación de juegos.

Libro Power-Ups: http://creadorvj.blogspot.com.es/2013/11/libros-power-ups-conviertete-en-un.html

Se puede comprar en: http://www.marcialpons.es/editoriales/plan-b-editorial/5489/

Grafismo 2D 

No quise dejar de lado la parte 2D de los gráficos para videojuegos, por lo que continué tratando un poco por encima algunas cosas importantes en post como estos.

Componentes de un gráfico: http://creadorvj.blogspot.com.es/2013/03/skills-componentes-de-un-grafico.html

Pruebas de gráficos: http://creadorvj.blogspot.com.es/2013/10/pruebas-de-graficos.html

Tiles para crear escenarios: http://creadorvj.blogspot.com.es/2013/10/tiles-para-crear-escenarios.html

Formación 

Me propuse aprender Unity, el famoso y tan de moda actualmente, motor para Videojuegos 3D y 2D. Para conseguirlo me serví de la ayuda de Gametopia y sus cursos, en este caso, de Programación en C# con Unity + Inteligencia Artificial: http://creadorvj.blogspot.com.es/2013/06/aprender-unity-esta-vez-va-en-serio.html

Obtuve mi título de Grado Superior en Desarrollo de aplicaciones Web, para mejorar como programador y aprender a desarrollar Webs (Que de alguna forma también tiene similitudes con el mundillo de la creación de juegos.) http://creadorvj.blogspot.com.es/2013/06/y-ahora-que.html

Programación 

Me centré en C# y en el motor Unity, aunque durante este año también aprendí HTML5, Javascript y PHP. Sin embargo, lo que me permitió desarrollar varios prototipos de prueba de los que luego podría sacar algún juego definitivo en el futuro, fue el desarrollo mediante el que ya es mi motor de juegos favorito.

Prototipos en Unity: http://creadorvj.blogspot.com.es/2013/08/prototipos-en-unity.html

Gracias al curso de Gametopia también me inicié en la programación de Inteligencia Artificial para conseguir que los enemigos de mis juegos fueran más interesantes.

IA en Unity: http://creadorvj.blogspot.com.es/2013/09/formacion-inteligencia-artificial.html

El Blog 

Quiero ser creador de videojuegos entrará en su quinto año y ha ido creciendo sin parar en contenido y en visitas. (Realmente aun tiene muy pocas visitas y sigue siendo casi tan humilde como cuando empecé). Aunque sé que podría trabajar más en él y hacerlo crecer de verdad, eso implicaría dejar de lado lo que me mueve, que es la creación de juegos y además, dejaría de aprender, por lo que no podría seguir contando cosas nuevas. Por ello continuaré publicando más o menos dos veces por semana y contando mis avances. Y es que uno de los objetivos de esta Web es que me sirviera como repaso en mi carrera como creador y me ayudara a aprender, compartir y mejorar.

Tengo pendiente organizar las cosas un poco para que sean más fácil de localizar, pero eso ya es otra historia.

En conclusión 

Termino el año sabiendo muchas cosas nuevas, habiendo aprendido de nuevos errores, habiendo recordado y compartido cosas que sabia y que no quería olvidar, y sobre todo, dando un pequeño paso más hacia conseguir definitivamente mi meta final (o acabar de estrellarme, que nunca se sabe).

domingo, 15 de diciembre de 2013

Entender el Mapeado de texturas

El mapeado sirve para indicarnos como se proyectará o “envolverá” la textura sobre nuestro objeto 3D. Para entenderlo, tenemos que pensar en que hay que desplegar la malla del modelo hasta hacerla plana, tal como haríamos por ejemplo, con una caja de galletas que abrimos completamente y aplastamos para ver el dibujo con sus muñequitos, imagen de marca y todo lo que viene pintado en el cartón. Así, además, encontraremos zonas de corte donde la textura pierde su continuidad (seams o “costuras”, sobre lo cual podemos aprender algo más en un post anterior sobre mapeado de texturas).

Empecemos con las formas más comunes y básicas de mapear una textura sobre un objeto 3D.



Planar: Aquí, la textura es un plano que se aplica sobre el objeto, pero realmente no lo envuelve. Podemos imaginarlo como un papel de regalo rígido que solo tapa una de las caras de nuestra caja. Si lo ponemos sobre un papel, lo podemos cubrir por completo porque no necesitamos preocuparnos por los cantos (que son muy finos). Así, este tipo de mapeado es perfecto para aplicar a polígonos u objetos planos, pero no funciona bien en modelos con volumen.


Box: Una caja imaginaria envuelve nuestro objeto y proyecta la textura sobre el mismo. Ideal por tanto, para elementos con forma de caja. En este caso, existe el problema de que la textura se aplicará a cada una de las caras de la caja imaginaria y no se envolverá la imagen generando continuidad. Habrá repetición de la misma en cada cara.


Face: Se aplica la textura a cada cara del objeto, es decir a cada polígono que lo forma. De esta forma si nuestro modelado tiene 3000 Quads, por ejemplo, se repetirá la textura sobre cada uno de esos 3000 Polígonos.


Cylindrical: Con opción de cubrir las tapas o no. En este caso la textura se aplica sobre lo que serían las caras de un cilindro imaginario, quedándose una costura en alguna unión de las mismas, que sería la que nos permitiría desplegarlo y dejarlo completamente plano. (¿alguna vez habéis hecho recortables de figuras 3D de papel que luego había que montar para dar volumen? ¿Recordáis el cilindro?



Spherical: Suele deformar un poco la textura y deja una costura un poco fea en algún sitio de la esfera imaginaria que envuelve el objeto.


Unwrap: Esta es la más usada en videojuegos, básicamente porque es la que mejor funciona para establecer que coordenadas de la textura en 2D, se aplicarán a que coordenadas del objeto en 3D. Tenemos que trabajarla desplegando el objeto hasta dejarlo completamente plano, aunque para ayudarnos, en muchas ocasiones podemos partir de alguno de los métodos anteriores y seguir trabajando para hacer un “desplegado personalizado” del mapa sobre el que dibujaremos nuestra textura. Aquí tendremos que tener verdadero cuidado con las costuras o seams y disimularlas, debido a que para elementos complicados se suelen generar un montón de pequeñas piezas cortadas para poder “aplanar” bien el modelo sin que se produzcan deformaciones.

En caso de tener materiales generados que ya funcionan en 3D, no necesitamos recurrir a este tipo de mapeado si podemos apañarnos con los otros. Por ejemplo un color plano. Este tipo de materiales ni siquiera suelen generar discontinuidad, por lo que podemos olvidarnos de los seams, pero claro, nos limitan mucho, y para nuestros juegos casi siempre nos harán falta pintar texturas.

miércoles, 11 de diciembre de 2013

Diseño de GUI o HUD

Se conoce como GUI (Graphical user Interface) o HUD (Heads-Up Display) a los indicadores que aparecen durante el juego para informar al jugador de cosas como cuántas vidas le quedan, cuantos puntos ha alcanzado o en qué nivel está actualmente. Se trata de un elemento muy importante de nuestro proyecto, que en muchas ocasiones es menospreciado. Y es que, si la información no llega correctamente al usuario, si no lo hace de una forma atractiva, o si tapa demasiado la acción en la pantalla de juego, la GUI ya se puede considerar un auténtico fracaso para el encargado de diseñarla.
Además en los últimos tiempos, donde el desarrollo en dispositivos móviles con pantalla táctil está ganando terreno, se da el caso de que no hay botones físicos para jugar y hay que incorporarlos a la propia GUI del videojuego. Es por todo esto por lo que debemos dedicar tiempo a pensar que vamos a hacer y cómo, para que nuestro producto se comunique correctamente con el jugador durante la partida.

Algunos consejos:

- Utilizar el mínimo espacio  y, a ser posible, situar la interfaz en los lugares donde podamos prever que habrá menos acción durante la partida. Además en caso de tapar mucho, podemos hacer que el HUD sea transparente o que se oculte cuando no lo estamos consultando.

- Adaptarlo en integrarlo con la temática de nuestro juego. Por ejemplo si la cosa va de submarinos parece lógico que el diseño de nuestra GUI tenga muchos elementos metálicos, hechos de agua o que tengan que ver con el mundo de los submarinos y gente relacionada con ellos en general.

- En caso de tener que usar demasiados botones para nuestra idea en una pantalla tactil, deberíamos intentar eliminar algunos y hacer que esas acciones se realicen de forma automática sin necesidad de pulsar botones. Por ejemplo si queremos que el personaje salte y dispare pero solo queremos que haya un botón de acción para ocupar poco espacio en la pantalla, una solución puede ser que el salto se realice automaticamente cuando el protagonista se acerque al borde de un precipicio.

- Mostrar únicamente la información importante en el momento que el usuario necesite saberla. En este caso podemos imaginarnos una barra de vida que, para evitar que moleste, se oculte la mayor parte del tiempo. En el instante en que el personaje reciba daño, sin embargo, parece lógico que esta barra debe mostrarse para enseñar al jugador la cantidad de daño que se le ha causado.

- Crear algo bonito y “cool”. Ya que vamos a estar viendo todos esos dibujos en pantalla la mayor parte del tiempo, es mejor que lo que se muestre sea interesante y agradable. Nada de dejarlo para lo último y hacer cualquier diseño pasable. Los profesionales se pasan mucho tiempo diseñando esta parte del juego e incluso cambian de sitio o de aspecto cosas durante el desarrollo si ven que no funcionan.

- El mejor HUD es el que no está. Y esto lo leí en alguna parte que no recuerdo, pero es cierto que muchas veces el estado de inmersión puede ganar mucho si no hay nada entre el mundo de juego y el jugador, y una GUI siempre es una ventana intermedia. Si se nos ocurre una forma de que la pantalla este completamente libre y la vida del jugador sea el típico color cada vez más rojo que sale cuando nos disparan en un FPS o que las balas que nos quedan estén en el arma que lleva el prota, por poner algunos ejemplos conocidos, estaremos ganando muchos puntos para que quien disfruta de nuestro juego se meta realmente en la historia y la viva mucho más.

domingo, 8 de diciembre de 2013

Modelado Low Poly desde nivel básico: Jarrón

Esta vez vamos a centrarnos en un objeto también muy sencillo, pero elegido para ver un par de cosillas importantes en el modelado de videojuegos. Se trata de un jarrón, el cual tendrá varias piezas (la base y las asas) y que además se puede crear de formas distintas (dependiendo del software 3D que estemos usando). Con esto veremos que es necesario eliminar polígonos inútiles y que, en ocasiones, podemos obtener lo mismo de formas muy diferentes.


 Para empezar, si nuestro software de modelado maneja vectores y dispone de modificadores para ayudarnos a modelar, podemos optar por crear la mitad de la silueta del jarrón y usar una herramienta que la revolucione sobre si misma, creando la forma deseada. Por este método, eso sí, debemos controlar los parámetros para que no se nos genere una cantidad excesiva de polígonos.


El segundo método es un simple cilindro (escogeremos uno de 12 lados) al cual añadiremos segmentos en altura según necesitemos (si pasarnos) y, gracias al que, moviendo y escalando vértices en conjunto, es decir, grupos de vértices que forman un anillo completo del cilindro, obtendremos la forma base del jarrón.


Tendremos en ambos casos que rehacer los polígonos de la tapa y la base del cilindro-jarrón, para que tengan solo 4 lados y, después, insertar esos polígonos ligeramente hacia dentro para generar el agujero del jarrón a partir de una extrusión hacia su interior.



No modelaremos el interior del objeto, por lo que solo necesitamos un pequeño agujero hacia dentro que después pintaremos en la textura de color negro para que parezca que el interior está oscuro y no puede verse. (En este caso no nos interesa gastar polígonos en algo que no usaremos en el juego).

Ajustar los grupos de suavizado es algo que podemos hacer una vez terminada la base de nuestro jarrón. Con esto podemos conseguir que el objeto parezca más redondeado y con menos esquinas.


El modelado del asa puede hacerse de nuevo, mediante un cilindro que podemos modificar para darle la forma deseada moviendo vértices o, por ejemplo, usando una línea de tipo vector a la que daremos grosor y convertiremos en editable para poder ajustar sus vértices y dar unos últimos retoques.

El motivo para hacer las asas por separado a la base, es ahorrar polígonos. Así, en este caso se trata de formas independientes, ya que si sacáramos las asas mediante extrusión desde polígonos del jarrón, tendríamos que añadir más segmentos que en principio no queremos.


Las asas se introducirán ligeramente dentro de la geometría de la base, por lo que los polígonos de las tapas no se van a ver, así que los eliminamos.


Tras ajustar ligeramente el asa para darle una forma más interesante en las zonas donde se une al jarrón, la duplicamos y la espejamos horizontalmente para añadirle un segundo asa. Así podemos juntar las tres piezas en una sola forma y dar por terminado el modelado. (tras ajustar el suavizado de las asas también)


Finalmente colocamos una textura de tipo Checker para dejar el modelo listo para mapear en otra ocasión. !Continuará!

miércoles, 4 de diciembre de 2013

Diseño de juegos: Géneros: Aventura gráfica

La aventura gráfica no es realmente un género de videojuegos, es, tanto un subgénero dentro de la aventura, como también, una “evolución” de las aventuras conversacionales de los años 80 (similares pero únicamente con texto). Sin embargo, lo trato en esta sección por el especial cariño que le tengo a este tipo de videojuegos y porque me gustaría, con el tiempo, recopilar todos los géneros y subgéneros aquí en el blog.

Este tipo de productos consisten en la interacción de objetos y personajes para lograr solucionar una serie de puzles y problemas y poder ir avanzando en la historia, la cual es narrada en tercera o primera persona.

La aventura gráfica, para mí, siempre ha estado ligada a Lucas Arts y a Monkey Island, que fue el primer título de este tipo que disfruté de verdad, quedando enganchado a su humor y su gameplay del tipo point’n’click, en el que teníamos que elegir verbos o acciones para interactuar con objetos y personajes. Era sencillamente perfecto y nos hacia participes de una divertida e interesante historia en la que el protagonista, Guybrush soñaba con llegar a ser un pirata. (En la segunda parte ya lo era y era todavía más divertido).


En este tipo de juegos hay muchas cosas importantes, como puede ser un estilo gráfico uniforme e interesante, una buena historia (y bien narrada), unos personajes (sobre todo el protagonista) que nos entretengan y nos ayuden a superar los retos planteados y, hablando de esto último, unos puzles interesantes, que nos hagan pensar, pero no lleguen a ser imposibles o extraños. Y es que a todo el mundo se le puede ocurrir usar una llave con una cerradura para abrir una puerta, pero para que el jugador tenga que cerrar una llave de paso de agua con un mono, hay que guiarle un poco.

Respecto a mi experiencia con las aventuras gráficas ha sido muy extensa. (Como dije les tengo cariño y es uno de mis géneros o subgéneros favoritos). He jugado una gran cantidad de ellas, tanto en 3D como en 2D (mis favoritas), fui betatester del genial Pangea, de mi compañero Leandro García, e incluso participé en unos cuantos proyectos tanto en solitario (Piratebots) como en grupo, que, por desgracia, no llegaron a terminarse. Y es que el desarrollo de este tipo de juegos requiere de mucho tiempo y esfuerzo por el enorme trabajo gráfico, de guión, de música, sonido y animación que lleva encima. (La música y el sonido podemos simplificarlo un poco, pero sin buenos gráficos y animaciones el juego pierde mucho). Por otro lado, en el tema de la programación, siempre se ha dicho que es sencillo, aunque yo también apuntaría algunas dificultades. (Vamos que también tienen que trabajar los programadores, porque el juego solo no se hace)



Aconsejaría a aquellos que se embarquen en solitario o en grupos pequeños en el desarrollo de una Aventura Gráfica, que se preparen para dedicar mucho tiempo y esfuerzo en dibujar miles de fotogramas, escribir cientos de líneas de conversación e invertir meses y meses de implementar puzles de todo tipo. Y es que, aunque sea un modo genial de contar una historia y dejar al usuario vivirla, el crear este tipo de juegos requiere de muchísimo dedicación constancia y, durante un desarrollo, la euforia de los primeros momentos en los que tenemos la idea para nuestro videojuego, va desapareciendo paulatinamente si no vemos los resultados deseados con cierta prontitud. Por esto, si vais a hacerlo os animo, pero debéis estar seguros de que todos los participantes del proyecto vais a tener la paciencia necesaria y dejar aparcados otros proyectos hasta acabarlo del todo. (Ahora comprenderéis que, por este motivo, se ha puesto tan de moda sacar estos juegos por capítulos, para ir avanzando por metas y no estancarse).