sábado, 31 de diciembre de 2011

Feliz Año 2012

Felicidades anticipadas! Este nuevo año prometo hablar de nuevos proyectos y el game engine en desarrollo, así como tutoriales o artículos interesantes acerca de este mundo. Saludos a los paseantes y que lo paseis bien!

martes, 20 de diciembre de 2011

SFML 2.0 - nueva API gráfica

Cada vez más cerca del lanzamiento de la nueva versión de Simple and Fast Multimedia Library, una API portable multimedia para C++ que ofrece un nivel de acceso alto y bajo de gráficos, entrada, audio etc. con el objetivo de proporcionar las funciones necesarias para realizar videojuegos y aplicaciones interactivas.
La versión inestable de SFML 2.0 lleva en el servidor mucho tiempo, pero hace menos de un mes el creador liberó una primera versión de la nueva API gráfica sin optimizaciones para ir probandolo. Con cambios como el soporte de vertex shaders, diferente manejo de transformaciones y optimizaciones en el renderizado, esta versión no tiene nada que envidiar a sus semejantes.

Todo apunta, o al menos a palabras de señor Laurent, a que la nueva API formará parte de SFML 2.0 en cuestión de semanas. Esperemos que el lanzamiento no se aleje mucho de esta fecha.
Para más información recomiendo consultar el foro (en inglés), exáctamente este tema y este otro para obtener información y opiniones más recientes de los usuarios.

Yo personalmente todavía estoy con la versión 2.0 sin la nueva API, pero calculo que no tardaré más de una semana en cambiarme. Aunque no haya documentación oficial alguna, el release lleva todo lo necesario para crearla. Y por supuesto, sobra decir que en el foro oficial agradecerán cualquier comentario sobre su buen o mal funcionamiento, errores, sugerencias etc.


Saludos.

miércoles, 14 de diciembre de 2011

Mini Soccer

Si bien Brave Bill fué uno de mis primeros proyectos como ya mencioné, indudablemente Mini Soccer puede considerarse como el primer juego que creé con SDL. Este pequeño minijuego, también sin terminarlo, fué producto de mi afición y participación activa en el fútbol.

La poca experiencia que tenía en aquel momento en la mecánica y la física de los juegos, trajo consigo (como es de esperar) una extraña reacción de la pelota en la colisión con los jugadores - aspecto que actualmente no he querido cambiar, por razones de pereza. Sin embargo, sería una opción muy interesante sacar un adictivo juego basado en éste con su tabla de clasificación online, multijugador online, selección de equipos y varias ideas que estoy seguro de que encajarían muy bien.

Como hasta ahora, os dejaré el proyecto jugable tal y como quedó en su momento, con unos cambiós en la equipación de los jugadores. Nada más y nada menos que las equipaciónes del Barça y del Real Madrid, a consecuencia del clásico jugado el pasado fin de semana, con el resultado de 1 - 3 a favor del Barça. Solamente por evitar cualquier trifulca aclararé que no sigo los colores de ninguno de los dos equipos xD.

Controles generales:
  • Número 1: Cambiar a modo 1 jugador contra la máquina.
  • Número 2: Cambiar a modo 2 jugadores.
Controles Jugador 1:
  • Flechas de dirección: Movimiento del jugador.
  • Ctrl derecho: Saltar.
Controles Jugador 2:
  • A, S, D, W: Movimiento del jugador.
  • Espacio: Saltar.

Mini Soccer versión windows: Descargar
Pide la versión para linux! =)
Qué tal un remake en SFML con nuevas funcionalidades mencionadas arriba? Por supuesto, la jugabilidad también cambiaría al igual que los gráficos. ALGUN GRAFISTA?

Saludos.

jueves, 8 de diciembre de 2011

Game Design Document

Hace poco tuve la oportunidad de leer unos artículos y partes de diferentes libros donde se trataba el tema del Game Design. Especialmente me apoyo en la explicación del libro llamado Game Programming All in One, que da a conocer las técnicas para hacer un simple documento del diseño de un juego.

Se trata de un documento donde se reunen todos los rasgos, características y reglas que un juego pueda esconder en su interior. De modo que facilita el desarrollo del mismo tanto en grandes compañías como a desarrolladores independientes. Mantener toda la información en la cabeza puede que no sea un problema para los desarrolladores independientes, pero sí para los grupos de desarrollo.

El problema de no usarlo

Una persona puede tener muchas ideas locas dando vueltas por la cabeza deseando ver que se hagan realidad. Es más o menos la primera idea que al creador le llega. Mas tarde este creador piensa mucho en el posible proyecto y va almacenando toda la información en su cabeza (Brainstorming). Esta persona reune un pequeño grupo de desarrollo (programadores, grafistas…) para poner en marcha su proyecto.
Pero hay un problema, que el principal creador mantiene todas sus ideas en la cabeza, y los demás miembros del grupo no pueden leer su mente. De modo que no saben ni entienden exactamente que es lo que quiere el creador.

Aunque parezca mentira, ocurre a menudo y es la causa por la que muchos proyectos son abandonados. Ya que un buen diseño del juego mantiene el proyecto organizado. Por eso animo a cualquier desarrollador a que antes haga un buen diseño del mismo.
  
Estructura general

Para un juego trabajado estaría bien hacer un diseño bastante extenso, pero no siempre hace falta hacer algo tan pesado. Aun así, nunca viene mal hacer un diseño lo mas detallado posible.

Hay muchas maneras de hacer un diseño, y esta es solo una más. De modo que cualquiera puede usar su propio estilo o su estructura mas deseada.

La idea de un game design es que un grupo de desarrollo mantenga las mismas ideas del juego y todos estén igualmente informados. Vamos a ver primero la estructura de un diseño cortito, normalmente usado para juegos cortos o remakes de otros.

Para un diseño corto sería suficiente tocar esta serie de puntos:
  • Visión global del juego. 
  • Objetivos del juego. 
  • Historia.
  • Personajes y enemigos. 
  • Menús y opciones.
  • Apariencia.
Y para un diseño más completo sería casi lo mismo, pero con algunos puntos más y hacer descripciones mas detalladas:
  • Visión global del juego.
  • Objetivos del juego.
  • Requerimientos del sistema.
  • Historia.
  • Personajes, sus historias y características.
  • Enemigos y sus características.
  • Menús y todas sus opciones.
  • Descripción de músicas.
  • Descripción de sonidos.
  • Descripción completa de los niveles y sus objetivos.
La diferencia entre estos dos diseños, es que en el diseño corto se describe el juego un poco por encima. Y en el extenso, el juego se describe totalmente; desde una historia detallada, hasta incluso el color del los botones del menú.

Éstas son nada mas que ideas de cómo lograr un documento de diseño que pueda servir para llevar a cabo un proyecto. Existen multitud de plantillas para los documentos de game design. Solo tenéis que iniciar vuestro buscador favorito y buscarlos con palabras clave, o bien guiaros por vuestra imaginación.

Saludos.

viernes, 2 de diciembre de 2011

Brave Bill

Esta vez traigo un pequeño proyecto abandonado (abandonware) hace ya unos cuantos años. Aún lo conservo en mi archivo y aunque apenas tiene niveles de juego, creo que no está tan mal para pasar un buen rato. Fué uno de mis primeros proyectos en C++ y SDL. En su momento quise obtener un buen juego con su historia y jugabilidad, pero la falta de experiencia e incluso el aspecto que fué cogiendo el juego resultaron ser un problema para mi gusto. De todos modos, gracias a este pequeño proyecto conseguí meterme más a fondo en este mundo y me dí cuenta que cualquier persona con ganas de aprender podía llegar a tener sus propias creaciones.


No recuerdo exáctamente por qué lo llame Brave Bill, pero sí recuerdo que en un principio le puse de nombre algo como Platformer haciendo referencia al género del juego. El juego reúne ciertas características de los juegos de puzzle y de habilidad, ya que algunos de los niveles te piden pensar antes de actuar o pueden resolverse con habilidad retándote a poner a prueba tus reflejos.

Para poder crear los escasos niveles que contiene, me propuse crear un editor de niveles usando tiles. Logré crear un simple editor para crear fácilmente niveles de manera visual y sin esfuerzo, nada muy complejo pero cumplía con su objetivo.

En el menú inicial seleccionamos el modo con la tecla espacio. Para controlar el personaje solo hay que usar las flechas del teclado. Esto nos permite mover el jugador de izquierda a derecha y saltar. Además, podremos realizar un walljump si saltamos estando pegados a la pared. Y si nos acercamos al borde de un bloque, podremos agarrarnos siempre y cuando mantengamos la tecla pulsada hacia adelante, y mientras lo hacemos, podremos subir pulsando la tecla de saltar. De lo contrario, caerá rozando la pared para ejecutar un walljump si eso es lo que queremos. Puede parecer dificil al principio, pero uno se acostumbra.

Brave Bill version windows: Descargar
 
Como siempre, si alguien lo desea para Linux que lo pida e intentaré compilarlo. Tambíen me gustaría hacer una petición especial, que es simplemente avisar de su funcionamiento ya que nunca lo he probado en otras PCs. Por si esto fuera poco, si surge la ocasión y alguien me pide que distribuya el editor de niveles o incluso el código fuente, hacermelo saber. Sería un honor que este juego fuera útil para el aprendizaje de los demás tanto como lo fué para mí.

Saludos.