lunes, 25 de febrero de 2013

Libros: Making Isometric Social Real Time Games with HTML5 CSS3 and JavaScript

Llevo bastante sin hablar de libros sobre videojuegos y además ha dado la casualidad de que estaba buscando un libro sobre HTML5 que no se dedicara a bajarse programas y añadidos con los que hacer el juego y luego exportarlo. Quería ensuciarme las manos de código JavaScript puro, de Canvas y de CSS3 para empezar de cero a hacer mis proyectos para navegador, pero no había manera, hasta que por casualidad pude hacerme con este libro que hoy comento.

En este volumen todo gira en torno a un pequeño proyecto de videojuego en vista isométrica que se irá programando durante su lectura. El objetivo final sería un juego social de los que vemos a diario en Facebook, con su sonido, sus gráficos simpaticos, su almacenamiento en el disco local del cliente y su interacción entre varios usuarios

En definitiva más de 140 páginas dedicadas integramente a desarrollar sin ningún tipo de ayuda salvo nuestro código de la fusión de 3 tecnologías que prometen ser el futuro de Internet y la alternativa a Flash (JavaScript, HTML5 y CSS3). Todo esto que además me viene genial para profundizar en conocimientos dentro de mi formación como Desarrollador de Aplicaciones Web.

Si, lo se, la portada es fea de cojones, pero es que esto va de programar y lo bonito se lo dejan al usuario que se quiera crear sus gráficos, como yo, que hoy, sin venir a cuento, me apetece ilustrar mi post con una raspa de pescado.

martes, 19 de febrero de 2013

Programación gráfica

Queda poco para que acabe el Ciclo Superior de Desarrollo de Aplicaciones Web y me tienen bastante atareado con trabajos, estudios y proyectos como para atender al Blog tanto como quisiera y seguir con mi aprendizaje videojueguil, pero bueno. El caso es que quiero seguir sacando tiempo de donde pueda para actualizar el Blog, aunque sea para contar avances académicos o de trabajo personal.

Estos últimos días, por ejemplo, algo que me ha tenido entretenido ha sido algo llamado programación gráfica. Básicamente consiste en que para pintar algo en la pantalla, ya sean polígonos, lineas, cuadrados o imágenes de pixeles vas a tener que picar unas cuantas lineas de código, especialmente si luego quieres que se muevan un poco. No hablamos de juegos por que no hay interactividad, solo unas estrellas que parecen moverse tras una nave. (Bueno, también hice una pequeña tragaperras con botones HTML, pero por usar las frutas que tenia pintadas de otro juego).

Se trata de una actividad entretenida para programadores, aunque para diseñadores queda un poco como “¿¿¿en serio hay que hacer todo esto para pintar una linea negra??? ¡Si el Gimp o el Photoshop lo hacen solos!”.



Para todos estos experimentos he usado lenguajes como PHP, Javascript, HTML5 (con el canvas) e incluso Java (no, no es lo mismo que Javascript). Algunos han sido trabajillos de clase y ha habido otros por puro entretenimiento, pero supongo que cuando consiga sacar tiempo entre tooooooodo lo que tengo que hacer y los proyectos que aun me surgen intentaré dedicarme a cosas un poco más interactivas.






martes, 12 de febrero de 2013

Diseño de Juegos: El Checklist

Este es el “documento” dentro del desarrollo de videojuegos que podeis hacer más "a vuestro modo". Da igual escribirlo en el papel de un folleto que nos dieron por la calle o en una servilleta de bar, da igual que este hecho a mano o con una letra horrible (como la mía cuando voy con prisa), el caso es registrar cada una de las tareas que os quedan para terminar el vuestro proyecto e ir marcandolas como “cumplidas” cuando esten acabadas.

¿Cómo se hace?

Primero decir que este no es un documento que se pueda compartir con otros, sino que es el ideal cuando trabaja uno solo o, si trabaja en equipo, lo usa solo para ayudarse a cumplir unicamente su tarea. Trata de dividir dichas tareas y dejarlo todo claro para que podamos ir solucionandolas en el orden que nos convenga, quitando algunas si consideramos que nos va a faltar tiempo o añadiendo otras si surgen problemas o nuevas ideas interesantes.

Si pensamos por ejemplo en un grafista que se va a encargar del diseño del menu de juego, podría escribir en su checklist: “diseñar menu de juego”, pero no estaría dividiendo tareas en otras más pequeñas para tener más facil el llegar a su objetivo final.

En este caso sería mejor algo asi:

- Seleccionar o crear una fuente de letra adecuada

- Dibujar logotipo

- Dar color y acabados digitalmente al logotipo

- Dibujar fondo

- Dar color y acabados digitalmente al fondo

- Diseñar ilustración para añadir al fondo

- Dar color y acabados digitalmente a la ilustración de fondo

- Añadir copyright

Si cada dia se pone un rato con este trabajo y va tachando, llegará a terminar todo el arte necesario para la pantalla de título del juego en un tiempo razonable. Así de simple y aplicable a todos los roles de la industría (músico, betatester, programador…)



Además, el checklist también puede usarse para planear plazos aproximados calculando cuanto vamos a tardar en hacer cada tarea y anotandolo. Si tardamos 2 horas en hacer cada cosa y tenemos 10 tareas, ¡en 20 horas habremos terminado!

Lo importante es hacerlo de forma que se aclare al menos uno mismo. Es mejor ser un poco ordenado para no enredarse.

domingo, 3 de febrero de 2013

Diseño de Juegos - Géneros: Simuladores deportivos

Golf, tenis, baloncesto, fútbol… Este tipo de juegos adaptan las normas de cada deporte a nuestra pantalla, para que podamos soñar con ser como nuestro deportista favorito o dar ordenes y llevar a lo más alto al que consideramos el mejor equipo del momento.

Normalmente el diseñador tratará de equilibrar la diversión con el realismo para, por ejemplo, no hacer que un partido de fútbol tenga que ser obligatoriamente de 2 tiempos de 45 minutos cada uno, que en un escenario virtual se hace demasiado extenso.

Un buen modo de diseñar este tipo de juegos consiste en estudiarnos las normas del deporte en el que nos estamos inspirando, como pueden ser: Tamaños del terreno de juego, modos de puntuar, de ganar el partido, etc. Después, nos ayudará mucho visionar videos de dicho deporte, ya que en muchas ocasiones es la Televisión la que acerca la experiencia de juego de una disciplina deportiva a los usuarios, que estarán acostumbrados a una estética o a unas cámaras. Gracias a imitar lo que veamos en la tele estarémos mostrando la alta competición por la pantalla, pero dando la posibilidad al jugador de interactuar (por que lo nuestro no es un video, ¡es un videojuego!).


Si nos apasiona un deporte pero no podemos permitirnos el lujo de practicarlo, o de practicarlo al nivel profesional que nos gustaría, cada vez tenemos más realismo para vivir este tipo de pasión en forma de juego gracias a los últimos avances tecnológicos. Es quizás en este género donde las mejoras gráficas y de video (a la hora de hacer repeticiones, por ejemplo) ayudan realmente a la experiencia de juego.

La Inteligencia Artificial es también muy importante en este caso, así como el multijugador. Los deportes consisten en competición y, al igual que en la vida real lo haríamos, enfrentarnos a otras personas dentro de las reglas del juego nos divierte. En ausencia de estas, una gran IA como la que comentaba antes, debe tratar de hacernos olvidar que estamos jugando contra una máquina y jugar con nosotros dejándose ganar sin ponernoslo demasiado facil. Digo dejándose ganar, por que la IA interna del juego va a ser la responsable de que se cumplan las reglas que estamos diseñado, pero también de otras reglas del entorno, el control, las puntuaciones y otras variables que pueden inclinar la balanza a su favor cuando quiera. Es muy probable que como pasa en muchos juegos, la máquina tenga mucha más información de lo que ocurre internamente en el juego que el usuario, lo que podría darle ventaja si fuese una de esas IAs malvadas de las películas que decide usar lo que sabe para fastidiarnos la vida. Por suerte será el diseñador el que le diga como administrar la información que recoja durante el juego.

Solo queda hablar de la parte fántastica de este género, y es que no es todo simulación de lo que sucede en la vida real y exactamente pasa en la misma, a veces nos puede interesar premiar más la diversión en nuestro juego aunque tengamos que sacrificar el realismo, convirtiendolo en algo mucho más arcade, pero además otras veces podemos inventar un nuevo deporte (del futuro, del pasado o simplemente pura ficción) en el que desarrollaremos nuestras propias normas, equipo y elementos de juego. Será por tanto una simulación de un deporte que podría existir en la realidad (aunque haya que echarle imaginación) pero que no existe.