Cornell's Corner

Publicado: 23:27 27/03/2007 · Etiquetas: · Categorías: Pensamientos : Proyecto
Estos días ha estado lloviendo, y vuelvo a mirar más por la ventana de lo normal. En el curro se entiende. A pesar de tener algo de curro pendiente, me aburro un tanto, debido a que no puedo trabajar sin impedimentos de tipo burocrático, así que me dedico a ratos a la vida contemplativa, mientras imagino un destino peor futurible.

En especial estos días de primavera, en los que no hace ni calor ni frío y el cielo se cubre de nubes, pero sigue haciendo sol, me dejan en un estado particularmente idiota. Es como si fuese a haber una tormenta pero el cielo se aguanta el chorreo, al tiempo que el sol se contiene en salir a través de las nubes mientras diluye toda la luz y la reparte en toda la atmósfera por igual: el cielo se pone de un tono extrañamente acromático, pero todo gana un espeso tono dorado. Como si todo quedase bajo un campo de fuerza y el clima parece que se ralentiza.

Mirar este paisaje desde mi ventana hace que recuerde otros tiempos en los que me sentí así, curiosamente por la misma época. Justo hace un año  me encontraba en pleno máster, a punto de empezar mis escarceos con el motor de sonido del juego. Se avecinaban las vacaciones y todo se prometía productivo para ellas, aunque luego cundió mucho menos.
(Warning: a continuación entraré en detalles soporífero-técnico, asi que si no quereis dormiros, saltad hasta el asterisco)
A la hora de elegir como implementar el motor de audio lo primero que hice fue decidir con que primitivas trabajar; básicamente la elección se reducía a dos (de entre unas cuantas mas que quedaron descartadas, como directsound):

     - Open Al, las primitivas básicas de audio (equivalente en audio más o menos al open gl, salvando las distancias). Abarcan todo lo que quieras hacer, pero eso sí, hay que hacerlo a mano. Ahora me arrepiento de no haberlo elegido, tuve miedo de tener que picarme un gigamotor y no ser capaz. Craso error, tuve que hacer casi lo mismo con el que sería mi elección.

    - FMod: el API de libre distribución que era en teoría la panacea. Te libra de tener que gestionar la memoria (craso error again) y tiene funciones potentísimas para hacer un monton de cosas. Además es fácil de usar.

Está claro que escogí FMod. Era gratis, era fácil, y aparentemente era óptimo. Un par de pruebas y ya tenía un programa que ejecutaba mp3 (eso ya no es gratis, pero nos permitiremos la licencia), con efecto doppler y audio 3d. Ahora venía lo gordo: tras hacerme una fachada de contacto con el API, tenía que hacer un motor de sonido que se ajustase a nuestras necesidades.

Para empezar, creé un sistema que gestionase los sonidos a cargar y devolviese las peticiones con un canal de sonido precargado. A este sistema central, añadí un manejador de canales precargados, para que las entidades del juego pudiesen ejecutarlos, moverlos o pararlos. Básico, verdad? pues no tanto.
Para empezar, no conviene cargar un mismo sonido 2 veces, así que si te piden el mismo sonido no hay que precargarlo -> por tanto, el sistema debe tener un sistema de mapeado de sonidos.
Además, no puedes ejecutar todo el mismo sonidos para cosas análogas, por ejemplo disparos. Quedaría raro, así que hay que montar un cargador de sonidos por temas. Esto es difícil de montar en relación con la arquitectura: si lo pongo en el sistema central, tengo que precargar cada vez que ejecute el sonido y si lo pongo en el cargador, se acoplan las responsabilidades del sistema y de éste (el cargador estaría decidiendo que sonido precargar). Por tanto, creamos un gestor de temas aparte que es el que nos da el nombre de un sonido aleatorio a partir de su tema.

Al final teniamos: un sistema centralizado que cargaba los sonidos e iba devolviendo canales de esos sonidos segun la demanda. Una serie de maneadores de canales, para tocar cada sonido y un  selector de sonidos en base a su tema (editables en xml).

La gracia es que cuando monté todo, me empecé a dar cuenta de los fallos de Fmod...para empezar solo tiene un buffer de almacenamiento por cada stream, por tanto, un stream sólo puede sonar por un sólo canal. A parte, su gestión de memoria es un tanto pésima. Al final me vi obligado a liberar a mano los sonidos tras usarlos (lo cual es terriblemente ineficiente) porque si no, al rato el motor de sonido dejaba de funcionar.
* (fin del farragoso texto técnico)

En fin, la proxima vez (hubiera querido que fuese esta, pero en un proyecto mediano/grande hay que especializarse en las tareas) usaré todo a mano: así por lo menos conoceré mis limitaciones y fallos sin que me exploten al final.

Volviendo al presente, se avecina semana santa, y creo que no tendré vacaciones, y si me las dan, igualmente quiero darle un empujoncito al proyecto actual, arreglar unos asuntos personales que llevo un tiempo queriendo solucionar, y demás juguetes en el ático. Por eso estoy dejándolo todo preparado para que no me de más pereza el "ponerme" que el "hacerlo".

La atmósfera de tonos dorados hace a uno pensar sobre épocas de inflexión, sólo espero que esta no signifique una bajada inminente...

Publicado: 22:33 21/03/2007 · Etiquetas: · Categorías: Pensamientos : Proyecto
Hay dias en los que piensas qu elas cosas no te van a salir y luego te salen. Lo  gracioso es que salen enseguida y te quedas como diciendo: y que hago ahora con todo mi tiempo?
Yo he ordenado mis cd's, así de cutre soy.

La cuestión es que llevaba 2 tardes montándome un servidor en local, con toda la parafernalia que ello conlleva, y perdí una de ellas en intentar montar la base de datos, con frustrantes resultados. Hoy después de un par de horas extras (que mañana me cobraré) haciendo de bombero-torero en la oficina tenía pensado dedicar otra frustrante tarde, pero resulta que en 15 minutos he dado con la clave y he montado todo. Y me he dado cuenta de qu esoy tan vago qu ecomo tenía pensado perder el tiempo, he ido y lo he perdido, con dos cojones. Bueno, he ordenado cds, hecho en 5 minutos mi cutre cabecera (ya haré otra, pero quiero hacer pruebas) y he visto que tenia mucho curro pendiente, asi que me he dedicado a pensar cual es la manera mas corta/rápida y poco trabajosa de hacerlo.

Pero que no cunda el pánico, que dentro de lo que cabe resulta que no voy tan mal. En la última reunión de proyecto resultó que todos ibamos igual de mal (aunque los grafistas nos llevan ventaja), pero solventado esto del servidor, y ademas con ideas renovadas en cuanto a los niveles. Así que hoy hago un poco de todo (o de nada) y conciencia tranquila. Aquí paz, y despues gloria.

En otro orden de cosas estoy en situaciones curiosas ultimamente. Dado que las mujeres son entes curiosos y altamente impredecibles, no hablare mucho de esto, que vandal es como radio patio. En cambio si puedo decir algo sobre otro tema: nunca sabes donde vas a encontrar ayuda, pero tampoco sabrás nunca donde te van a putear. Así que no cerreis puertas, pero tened un plan B porsiaca.

Y hasta aquí la rallada de hoy. Mañana con suerte un artículo con chicha.

Publicado: 00:45 16/03/2007 · Etiquetas: · Categorías: Proyecto : Cosas frikis
Como diseñador (igual un dia me lo creo) una de las cosas que tengo que hacer es narrativas. Muchas. De las cuales muchas se tiran a la basura. Sí, es jodido. No me considero un escritor bueno, mas bien algo mediocre, pero si que me gustaría pensar que se me entiende al escribir (aunque tienda a la ironía y eso me la suele jugar para que se me malinterprete).
El caso es que para los juegos, la historia viene siendo un poco como algo que hay que poner ahí para qu eno se note un agujero. Considero un error tratar de hacer un juego como si fuese una peli, peor de eso ya hablaré (tengo mis razones) en otro momento. De lo que iba a hablar hoy, entre otras cosas es de que algo qu eparece a priori complejo, como puede ser escribir miles (vale, a lo sumo 5) de historias que encajen bien, no lo es tanto.

Digamos que todas las historias simples < inciso - SÍ los videojuegos tienen una historia SIMPLE y tirando a mala en muchos casos, y normalmente tópica. Inclusos esos que escribe el guion el negro de Tom Clancy, por no hablar de casos más flagrantes - fin del inciso > tienen unas estructuras comunes. De hecho se pueden fabricar a partir de ellas, como si fuese un esqueleto de alambre.

Me voy a basar en la estructura en 9 actos de David Siegel, aunque no es obligatorio usar todos a rajatabla, claro, si no te gusta algo, quítalo o mézclalo!.www.dsiegel.com/(tiene más paginas, pero buscadlas, perris!). Es una evolución de la básica de 3 actos. Pasemos a ella:

1- Preludio: algo malo se cuece. Una buena historia suele empezar mostrando como las cosas empiezan a ir mal, o mejor aún: mostrando al malo de la peli. Si no hay problemas entonces para que hay película?. Es importante que no confundamos el preludio con la biografía de un personaje o ocn la hostoria previa a la película: este acto es la raiz de la que sale la peli.   Mis comentarios: estoy de acuerdo, pero quizá por mi querencia a tener todo detallado, tiendo a meter muchísima historia. Recordad que un juego no es un libro: dejad lo innecesario para los extras o el manual! Como mucho que hablen de ello o si queremos que de el aspecto de ser algo bien construido, vayamos con cuidado de no pasarnos.

2- Algo identificativo. Empieza con una imagen que impacte, o que sea característica. Con eso es con lo que vas a empezar a dar interes a la gente y con lo que va a arrancar de verdad la peli. Mis comentarios: no tienes ni que poner al personaje, pero por ejemplo en flashdance les quedó bien. O el inicio de las dos torres, por ejemplo. Esto incluso lo he visto intercambiado de sitio con el anterior.

3- Pasa algo malo. No tiene por que ser ni parte de la trama original. Puede servir para dar fuerza al ambiente, al personaje, al malo, o a la trama (ahí si). Ni siquiera tiene por qué ser explícito o algo importante, puede ser cualquier chorrada, pero que no sea una buena noticia, mientras pase en el mundo de la historia. Mis comentarios: Por ejemplo, en parque jurásico, da fuerza al ambiente. En regreso al futuro, a la trama. En bravehearth a todo XD.

4- Sale el Prota. El héroe, el salvador, lo que sea.Suele ser ya algo mas largo. Hay que presentarle, mostrar sus objetivos, y sus capacidades. Incluso podemos mostrar aqui al villano también (normalmente si se hace eso, no se muestra que es el villano). Mis comentarios: Problema: en un juego suele variar debido a cuestiones de mecánicas de juego qu eafecten a la historia: la más importante es que desde un principio ya tenemos al personaje. O hay que presentar secundarios continuamente. Aquí habremos de hacer algunos malabares pero podemos fragmentar y estirar.

-5 Acción decisiva: Aqui es cuando el prota cruza el punto de no retorno. A partir de la línea usted será un héroe o un cadaver, amigo. Hay muchas formas de hacer esto: podemos obligar al personaje, o puede lanzarse él por heroismo. Incluso si le olbigan, puede ser el villano el que le empuja o un personaje bueno que lo hace por su bien. Mis comentarios:Es un juego: que se note que ya no hay retorno y que tu mandas (o que vas a mandar).

6- Hacia la hecatombe. En este acto básicamente hay que cagarla. El acto tiene que acabar en el punto mas bajo del prota (no, sus partes no). Tenemos varias formas: el prota da palos de ciego mientras el malo se rie en su cara, el malo le putea ad infinitum debido a alguna victoria pírrica inicial del bueno,  el prota piensa que  está consiguiendo su objetivo pero es una trampa...hay mil maneras, pero lo que cuenta es joder al bueno como una chinche.  Mis comentarios: Esta parte da tension, así que hay que esmerarse. Podemos meter minivictorias pírricas o periodos de descanso, pero trabajemos esto bien.

7- Contraataque. Vale, llevamos más de una hora de peli-historia lo que sea, el caso es que es más de la mitad. Ahora el bueno tiene que ponerse las pilas. Normalmente biene relacionado con el acto 2, o muestra un punto débil en el plan del malo o lo que sea.Mis comentarios: La historia puede no tener contraataque. Si es la estructura es lo suficientemente sencilla, al final del punto anterior metemos la lucha con el boss o si es muy compleja, metemos varias sucesiones de acto 6-7 (y 8 a veces) (vease finals fantasy, y no confundamos compleja estructura como buena historia)

8- Hacia el objetivo bueno. Vale, el pescado ya está vendido. El malo delante de nosotros (no necesariamente  es literal) y ya sabemos lo que hay que hacer. Tenemos un plan, ponemos musica molona y acción. Aqui nos ventilamos la peli, acabará bien pro supuesto, o no, como queramos, pero lo importante es que no todo (o nada) salga ocmo estaba previsto. Si no, sabiendo el plan al detalle, para que te quedas a ver como lo hacen?
Mis comentarios: Normalmente pediría coherencia en los imprevistos pero... no es un libro, mete personajes que creias muertos, magia, suerte, superfuerza del ultimo aliento de un moribundo, lo que sea. Que mole, que haga ruido, que sea emotivo. Jugamos para divertirnos, no?

9- Iros, que chapamos. Asunto arreglado, concluye y pon un buen final. Lo importante es que dejes el sentimiento que querias que primase en tu historia en la gente al acabar. Mis comentarios: En el artículo dicen que lo hagas rápido, pero otra vez: esto es un juego, deja un buen sabor de boca. Cierra todas las tramas (o casi todas, no sea que haya segunda parte), saca a los secundarios, muestra escenas. De todas maneras esto es poco importante , pues lo hacen más casi los directores de las cinemáticas. Un diseñador en este punto ya no se preocupa casi XD.

Os pongo el esquemita de la estructura d emarras (empieza en 0 y acaba en 8, pa que veais que es el original)


Hasta aqui hemos llegado. Queria poner esto desde hace bastante. Ya iré dejando además de donde me informo sobre diseño de juegos.

Y dejad algun feedback, que me deprime ver los comentarios!, aunque sea para criticar...
(Por cierto, sospecho de buena tinta (china) quien es la persona anonima del ultimo comentario del post de ayer, firmadme, coño)

Publicado: 23:53 13/03/2007 · Etiquetas: · Categorías: Proyecto
Para variar pasa un mes y no escribo, así que voy a ir poniendome memorandum. Tengo tambien alguna que otra chorrada de esas que escribo para poner mis ideas en claro, así que por lo menos algo de material tengo.

El tema del día es falta de tiempo. No sé muy bien como he llegado al punto de que un tío tan vago como yo tiene tantas cosas para hacer. Así me pasa que la situación cae por su propio peso.

- El curro vale, ha habido un par de semanas de tension y de echar horas, era previsible, y al menos me han pagaod por ellas, así que no me quejo. Quitando la subida de responsabilidades pero sin cambiar el nombre de mi cargo no está muy mal. Un 6 "Has estudiado, y dominas la materia, pero..te falta actitud, no puedo darte el notable..."

- El proyecto, regulero. Empiezo a sospechar que al E3 (lol) no llegamos, aunque a Art Futura sí. La cuestión es que tengo que hacer el diseño de los niveles, y justo es la parte que menos me gusta del diseño; sí, soy un tío raro. A todo el mundo le gusta diseñar niveles pero no hacer documento de concepto. Pues a mí al revés. Tengo medio hechos dos, de los tres que tengo que hacer, y no voy a llegar al hito. De momento, me lo tomo con filosofía... ya habrá tiempo para extresarse. Además tengo que hacer la web, y sólo llevo un esqueleto de ella, así que jodidos vamos. El resto de funciones, tales como aprobación de concept arts, revisión del diseño, narrativa, diseño del editor de niveles y alguna chorrada más, van puntuales como relojes, así que este punto tengo un 4..."si se ve que lo sabes, pero casi mejor vas a recuperación, estudias algo más y sacas nota"

- La escuela de idiomas bien, tengo vida social allí y todo, lo cual no es poco, pero empieza a exigirme un tiempo creciente para estudiar y hacer deberes, lo cual me jode. No tenía en cuenta tener que estudiar para sacarme el primer curso de japo al menos. Así que este punto va bien con reservas.
Rondando el 7: "Si estudiases, seguro que sacarías mejor nota. No seas tan vago."

No hablemos de la cosa las artes marciales porque voy como puedo, o sea, cansao y con unas ganas de no hacer nada del copon. Lo bueno es que allí me olvido de todo. Y afortunadamente ya no salgo con ninguna arpi...chica...si me quitasen tanto tiempo como cuando lo hacía, entonces apaga y vamonos (amen de la inestabilidad emocional que te toca aguantar y que a veces te explota en las narices). Para lo poco que lo hago y me voy a tener que poner un cupo...manda huevos, que dijo Trillo...

En fin, que está muy bien hacer cosas, pero a la hora de repartir el tiempo, uno necesitaba una órbita planetaria con una excentricidad mayor.
Ale, no olviden mineralizarse, supervitaminarse y escribir bien en el foro. Hasta la próxima entrada.

Blogs en Vandal · Contacto · Denunciar Contenido