javisantana.com

El negocio de los juegos independientes y PSP

A traves de un comentario en una de mis páginas diarias, extralife!, que conocía a través del blog de Zaelsius, encuentro el blog de
txomn
y vi uno de sus post acerca de los juegos de ABA Games que tantas veces he comentado aquí. En él habla sobre los juegos de ABA en PSP, de lo que no tenía noticia alguna. Después de asimilarlo, visitando gamesetwatch veo un post titulado “rRootage Goes Homebrew PSP”. Parece ser que han portado uno de los juegos de nuestro amigo Kenta cho y lo han portado a PSP, incluso se pueden bajar los fuentes de repositorio SVN.

Imagino que SONY o Nintendo no aceptarán que gente que no tiene su consentimiento saque al mercado juegos independientes, aunque sería un lujazo poder ver juegos superventas de la escena indie en máquinas como la nueva PSP o Nintendo DS. Técnicamente es muy simple, no hay más que ver un comentario de hace no demasiado tiempo en barrapunto donde trataban el tema de “qué consola me compro para programar”. Sería un buen filón para los desarrolladores independientes, portan su juego a PSP o crean nuevos, y lo venden a un precio razonable usando las vías que se están usando habitualmente para los juegos indie, sin necesidad de distribuirlo. Es cierto que es muy parecido al sistema de los juegos para móviles, que no sé si funcionará bien :/.

Estoy por portar el juego a PocketPC, el código fuente de rRotage para PSP a primera vista parece muy fácilmente portable a PocketPC, la única pega son los puñeteros vertex arrays ya que la implementación de OpenglES para PPC no soporta glVertex, de los cuales está plagado el juego. Aunque bueno, también habría que lidiar con el fixed point :), uf, mejor dejarlo XD.

resultados compo stratos 48h

Bueno, ha terminado la compo de creación rápida de videojuegos. La temática esta vez era la de puntería. Las compos presentadas las puedes encontrar en los foros de stratos, esta vez han sido menos, pero la calidad en mi opinión ha subido.

En mi caso he presentado un jueguecillo en 8kb en el que tienes que destrozar las bases enemigas con un cañón. El aspecto gráfico es una adaptación a 8kb de la de darwinia ^^.

Descatar del juego que esta vez tiene música (gracias sole!) y efectos de sonido. Tiene 64 niveles, aunque podría haber 2^32 solo cambiando un valor, 6 estéticas diferentes, efectos de partículas y alguna cosilla más, incluso me he permitido el lujo de meter trucos :P.

descarga CUBY3:la guerra (90kb).

Sin más, unas fotillos:




Creación rápida de videojuegos: Stratos 48h

Como viene siendo tradición, la gente de stratos monta una compo de creación de juegos en 48h. Esta es la tercera entrega, espero que vaya igual de bien que las dos anteriores.

Curiosamente ayer vi en tigsource que hay otras competiciones de 48h por la red. Buscando un poco por la *extremadamente ineficiente* web de ludumdare puedes encontrar la lista de juegos de la anterior compo y las votaciones, más que nada para poder mirar los juegos que realmente mrezcan la pena entre los 100 y pico presentados. Por mi parte recomiendo Jolle, que ya comenté en otra ocasión, en el que hay que tratar de iluminar un porcentaje de pantalla con unas luces determinadas. Una verdadera gozada para estar hecho en 48h. Es muy posible que exprimiendo un poco más la idea se pudiera sacar un juego muy interesante de inteligencia.

Destripando Darwinia

Llevo una temporada viendo bastantes juegos con estética diferente a la tónica general, esto es, polígonos con texturas realistas, más o menos luces, etc. No sería raro si hablamos de juegos de la escena indie, pero sí que lo es viendo como algunos de estos juegos se cuelan en el escenario que ve el gran público.

Para empezar con este tipo de juegos sería una ofensa al buen gusto no hacerlo con ABA Games. Sus juegos son una mezcla de polígonos semitransparentes lanzados a toda leche por la pantalla a ritmo de música techno que recuerdan a los antiguos juegos de naves. Lo que realmente a mi me parece más interensate de su aspecto gráfico es que absolutamente todo está creado con quads o triangulos, desde las balas, hasta las naves enemigas pasando por el propio jugador. Mirando el datos del juego se puede ver que raramente usa alguna textura más que la de las fuentes. Recomiendo, de nuevo, bajarse sus juegos aunque solo sea por ver algo diferente.

Otro ejemplo es geometric wars, un juego para xbox360 que lo único que tiene son partículas y geometrías simples, aunque me atrevería a decir que además usa algo de post procesado, el típico render a textura y pasada con blending aditivo. merece la pena ver los screenshots. En tigsource publicaron hace unos días cosas sobre el juego y parece que les gustó porque ayer publicaron un link a una entrevista.

El que se lleva la palma en cuanto a estética diferente es Darwinia. Ya lo conocía de hace tiempo gracias a tigsource, pero últimamente lo he vuelto a jugar con más detalle al surgir la noticia de que se iba a vender a través de steam. Como todo programador que se precie me fijé en cómo podría estar creada esa estética. Aparentemente parece una estética simple, no muy compleja de crear, pero si te paras un poco a pensar no es tan simple. Realmente técnicamente sí lo es ( no usa shaderso técnicas avanzadas de render), pero la originalidad y el uso de técnicas con más años que la tos para crear algo tan vistoso merecen un análisis más detallado.

Sin pensarlo demasiado fui al directorio de instalación de la demo y vi lo que había, un main.dat y un sound.dat. Como una gran parte de los juegos que empaquetan sus datos, lo hacen con un formato más o menos conocido. En este caso bastó con cambiarle la extensión a .rar y abrirlo con winrar :). Lo primero que salta a la vista es que todos los ficheros, tanto de imagen como de datos del tipo geometría o scripts están en plano y se pueden ver con un editor de texto o de imágenes.

Lo que más destaca del juego, por lo menos en la pantalla de la demo, es el cielo, el agua y el terreno.

El cielo es algo que me tiene algo intrigado, tiene varias capas, la primera es una rejilla de color azul y después tiene otras capas que, *creo*, son una serie de quads con transparencia y superpuestas con blend aditivo, generadas a partir de la textura clouds.bmp. Luego alrededor de cada una de las “nubes” tiene una especie de halo, que supongo que será la textura antes citada puesta en un quad enorme, de ahí el filtrado que tiene. Sospeché del archivo cloudyglow.bmp, pero lo he cambiado y no he notado diferencia aparente en el cielo, con lo cual me quedo con mi primera idea. Claro está, esas capas se van moviendo lentamente, dando un aspecto que personalmente me gusta mucho.
La textura clouds.bmp a la que me refiero es la siguiente:

El agua, tanto el movimiento, como el aspecto gráfico, depende de la proximidad a un islote. En cuanto al movimiento, las olas se acentúan a medida que te alejas del islote llegando a ser casi nulas en la orilla, donde prácticamente no se nota que se mueva el nivel del agua. Parece que el movimiento es una especie de perlin noise, aunque tranquilamente puede estar precalculado, no encuentro ninguna textura ni nada que me indique que está guardado en alguna parte. El aspecto gráfico tiene como base una textura (water_default.bmp) que tranquilamente se podría haber generado proceduralmente. En una capa superior está la malla de quads con transparencia y en la que el color varía de negro a blanco a medida que se acerca a un continente. La variación de color se hace usando la textura waves_containmentfield.bmp (en la carpeta terrain), supongo que será una técnica similar a la usada para el cell-shading. Tengo de decir que al comienzo pensé que esa textura era usada para colorear el terreno también, usando la misma técnica pero con el resultado del producto escalar de la normal de la cara con el vector de la luz, pero la he descartado por dos razones, nunca se ve una cara blanca y es una estupidez hacerlo dándote opengl todo hecho :). Por descontado que las olas también están bajo la influencia de la iluminación, flat claro está.

El terreno cuando lo vi por primera vez pensé que sería un simple terreno, cuadradote, con iluminación flat y después, con una segunda pasada, un render de las aristas, sin embargo cuando lo miras detenidamente te das cuenta de que algunas líneas son más gordas. Mirando las texturas se ve como en realidad las líneas están en la textura triangleoutline.bmp, de ahí que algunas líneas sean más gordas y tal. Del terreno poco más hay que decir, lo único que tiene sobreado flat y que mola mucho . Lo curioso del terreno es que da la impresión de que está generado, como más adeltante comentaré, porque mirando el archivo map_mine.txt hay partes en las que indica un campo seed y otros datos que apuntan a que es generado de esta forma. Supongo que estará generado con un editor que exportará los datos a fichero (espero). En el mismo archivo se ve como también indica las luces, las posiciones de los “buildings” y alguna cosa más. Si pruebas a cambiar los seed’s y algunos parámetros vas cambiando la forma de los islotes, aunque claro, algunas cosas quedan en el mar, etc.

Los bichos son algo curioso, aparecen pixelados y desde lejos parece que son 2D con billboard, pero si te acercas se ven que están modelados en 3D con iluminación y demás. Realmente no sé como habrá hecho ese efecto, tal vez renderizándolos a texturas y después dibujándolos mucho más grandes (con el filtro de textura adecuado), de forma que se pixelan. Umh, mirándolo con más detenimiento parece que usa ese sistema, pero dibujándo la textura de por encima del modelo poligonal.

De los efectos de partículas tampoco hay mucho que comentar porque son simples quads con outline, pero la verdad es que son vistosos para lo simples que son.

Se podría decir mucho más acerca del juego y es seguro que en alguna de las cosas que he comentado me he confundido. La conclusión de este análisis es que aunque el juego tenga un aspecto simplote, detrás hay un trabajo que seguro ha llevado muchas horas de pruebas y modificaciones. Todo esto, claro está, unido al trabajo de la propia lógica del juego que tiene detalles como la creación mediante ‘gestures’ las tropas, etc y otras perlas que es mejor no perderse, aunque sea jugando 5 minutos a la demo.

Para terminar el diario de desarrollo de darwinia. Viendo las primeras fases de desarrollo no creo que nadie hubiera dado una peseta por él, no porque no tuviera calidad, si no porque ya hay un montón de juegos planteados tal y como aparecen en las primeras imágenes. Por cierto, en la página 2 dice:
_
The landscape you see in these screenshots is entirely procedurally generated and coloured, and the code that drives that generator is still in the final game today
_

También hay cosas curiosas como la siguiente:
_
Chris had a flash of inspiration about how to generate trees using simple fractal algorithms, and was more than willing to invest serious time investigating this issue rather than dealing with the underlying gameplay problems
_

Otro tema que me llama la atención es la cantidad de veces que cambiaron de idea en el planteamiento del juego, lo cual se refleja muy bien en la siguiente frase:
_
t’s interesting to note that a lot of the story of the final game came out of seemingly random decisions made around this time.
_

Para terminar el último comentario del programador, que dice bastante de lo que cuesta hacer las cosas bien:
_
In total Darwinia was in development for just over 1000 days, making it one of the longest projects any of us have ever worked on
_.

No valgo para trabajar

Sí, suena mal, suena al típico personaje que quiere vivir toda su vida del cuento, pero cada día que pasa lo pienso más.

Después de estar unos casi 5 meses en TVCYL, todos los días por la mañana, veo como cada día que pasa pierdo más el interés. Creo que es porque realmente no estoy haciendo un trabajo en el que necesite pensar y tener un mínimo de creatividad (dentro de lo que para un cerebro cuadriculado como el mio significa creatividad). Lo máximo de creatividad que he tenido en estos últimos días en pensar en como sacar una señal de video digital de la unidad móvil por si algún día nos lo piden.

Además de lo anterior, no veo que mi trabajo sirva para algo. Realmente no sé cuanto tiempo pasa desde que entras en una empresa hasta que empiezas a ser “rentable” para el caso de un ingeniero. Siento como si estuviera en medio de una habitación llena de papeles por el suelo, con una escoba y con las manos atadas. No he hablado con nadie de ese tipo de sensación, espero que todo el mundo, o por lo menos la mayoría, hayan tenido en algún momento de su etapa inicial de trabajo problemas de ese tipo.

Está claro, y cada día lo tengo más, que la única forma de no aburrirse, de no perder la motivación es buscar el sitio que a uno le gusta, cueste lo que cueste (cueste lo que cueste). Parece una obviedad, pero a tenor de la infelicidad generalizada que veo a mi alrededor no parece que el resto de mortales se hayan dado cuenta o hayan tenido la suficiente voluntad para hacerlo. Por mi parte esta será la última vez que me quejo de algo, me dedicaré a cosas más productivas :).

Voy a ver si leo algo acerca de cómo conseguir motivación.