martes, julio 14, 2009

Tendré que abandonar Google?

Ayer intenté echarle un vistazo a mi cuenta en Adsense. No lo hago a menudo, pues en definitiva no es mucho lo que ingresa. Me esperaba una desagradable sorpresa: también el acceso a Adsense ha sido bloqueado para Cuba. Primero fue Google Code y ahora esto. Nada, cosas del embargo. Así que no me extrañaría que un día de estos Analytics también deje de funcionar, y luego Feedburner, Gmail, Gtalk... y luego los cubanos ni siquiera podremos hacer búsquedas en internet, a menos que sean a través de Yahoo.

lunes, julio 13, 2009

The Witcher

Luego de una espera muy prolongada (que incluso pudo ser más larga) he logrado echarle el guante a este juego. Ya les mencioné que la saga de Geralt de Rivia es magnífica, el juego no se queda muy atrás aunque no alcanza al Mass Effect. Sí, eso sería mucho pedir.
Pero el detalle que hace que lo mencione aquí es que The Witcher usa Lua. Lo cual no es novedad porque muchos otros títulos comerciales lo usan, pero me dejó medio sorprendido ver el logo de Lua entre tantos ilustres otros. Y otro detale llamativo es que The Witcher usa el Aurora Engine 2007 de Bioware, nada del otro mundo en mi humilde opinión, aunque tal vez podamos culpar a los artistas. Es por eso que ha dejado de sorprenderme que teniendo el Aurora, Bioware haya usado el Unreal Engine para hacer el Mass Effect.

sábado, julio 11, 2009

De regreso

Me tomé unas largas vacaciones donde la tecnología de comunicación más avanzada a mi alcance era el móvil que me regalaron, sin línea. En fin, un poco de aburrimiento, algo de diversión con la familia que no veía hacía ya un año, pero al fin ya estoy de regreso.
El mundo no parece haber cambiado mucho en mi ausencia, nada de versiones nuevas de Ogre, tal vez vale la pena mencionar que al fin Nvidia se apunta a los 40 nm, y aparte de eso, más nada.
Nos veremos luego.

viernes, julio 03, 2009

Cómo entrar en el negocio de los juegos

Tenía pendiente traducir este artículo de Bob Pendleton desde hace un tiempo, pero me tuve que ir de viaje con urgencia y ahí quedó. Ayer no pude, pero hoy al fin lo terminé a toda prisa. Tal vez no sea una traducción profesional, pero aquí está, porque el contenido realmente vale la pena.

Cuando enseño, en la lista de correos (gameprogrammer.com), en fiestas... me preguntan: "cómo se entra en el negocio de los juegos?" o "Esta clase me conseguirá un trabajo en el negocio de los juegos?". Ambas son casi la misma cosa. Quien pregunta quiere un trabajo en un desarrollador/distribuidor de juegos y quiere saber cómo conseguirlo.
La segunda pregunta, casi siempre hecha por estudiantes de programación, es fácil de responder: "quizás, pero espero que no.". Una clase de programación de juegos no es suficiente para calificarte como desarrollador de juegos de propósito general. La primera pregunta tiene una respuesta tan fácil y obvia que nadie me cree cuando se la digo. La respuesta es escribir un juego y venderlo. No importa cómo lo escribas, y no importa cómo lo vendas. Una vez que lo has hecho, tú, trabajando para ti mismo, eres el presidente de la compañía y estás en el negocio de los juegos.
El negocio de los juegos es en gran parte de emprendedores. Las únicas personas que conozco que llevan más de 10 años en él son dueñas de su propio negocio. Muy a menudo han ido de tener su propio negocio a trabajar para otros y así sucesivamente varias veces. Parece que mucha gente piensa que puedes ir a la universidad, ir a trabajar a ___ (llene el espacio en blanco) y retirarse a los 65. Eso no sucede a menos que seas el dueño de la compañía. Podrías hacerlo obteniendo un título, aprendiendo COBOL y yéndote a trabajar para AT&T manteniendo sus sistema de facturación, pero ni aún así cuentes con eso.
Lo que debes hacer es escribir juegos. Empieza por juegos que puedas terminar en un par de semanas, o al menos dos meses.
De dónde saqué ese consejo? De mi propia carrera y de la historia de Id. Los de Id empezaron escribiendo juegos (http://en.wikipedia.org/wiki/Id_Software) para Softdisk. Tenían que hacer un juego al mes y venderlo. En mi caso empecé escribiendo juegos en Basic en terminales de impresión de papel a principio de los 70. Pasé 20 años aprendiendo simulación de eventos discretos, gráficos, programación, y escribiendo pequeños juegos como hobby antes de conseguir un empleo en la industria de juegos. Después que me harté de eso me fui 5 años a hacer investigaciones corporativas en el negocio de los juegos y la interacción de los juegos con las telecomunicaciones, antes de seguir adelante.
Si no deseas programar juegos lo suficiente para estar programando juegos ahora mismo... realmente quieres entrar en el negocio de los juegos?
Si quisieras ser un maestro de kung fu, practicarías todos los días de tu vida. Crees que se requiere menos para convertirte en un maestro de la programación de juegos? A propósito, las palabras "kung fu" significan algo así como "maestría desarrollada con esfuerzo a través del tiempo". Y además, recientes estudio científicos han demostrado que son necesarios 10 años de esfuerzo diario, esfuerzo diario, para convertirse en un experto en cualquier cosa.
En resumen, si quieres escribir juegos, escribe juegos. Si quieres entrar en el negocio de los juegos, sé el negocio de los juegos.
Estoy diciendo que lo hagas todo por tí solo? Por supuesto que no. Cuando tengas un problema que no puedas solucionar busca en la red, toma una clase, pregunta en mi lista (gameprogrammer.com) :-) Pero, hasta que empieces, no sabrás las preguntas. Aprender requiere que lo hagas mal, de otra forma no hay aprendizaje. Cuántas veces te lastimas los dedos antes de aprender a bloquear una patada? Todo el que puede bloquear una patada se ha lastimado los dedos.
A propósito, en verdad ayuda dejar la verguenza. Ayuda saber que no conoces *la* respuesta, solo una respuesta. Y nunca, nunca creas que eres el experto. Un principiante siempre está aprendiendo, me esfuerzo por ser siempre un principiante.

miércoles, junio 24, 2009

Shaders y múltiples render backends

Uno de los problemas de tener un motor que permite usar D3D y OpenGL es que no hay forma de asegurarse que los shaders funcionen bien en ambos. El caso es que si usas GLSL, no funcionará en Direct3D y si usas HLSL, lo mismo. En teoría Cg es neutro, porque proporciona varios perfiles. En la vida real, solo hay compatibilidad asegurada entre tarjetas/APIs cuando usas el perfil más básico, de shader model 2 hacia arriba te puedes encontrar que, casualmente, las cosas no funcionan en una ATI. La solución es brindar programas Cg para diferentes perfiles, lo cual, me parece a mí, es un lío.
La otra solución, suponiendo que estés escribiendo tu propio motor, es usar un solo API: OpenGL o Direct 3D. En ambos casos es un poco limitado.

martes, junio 23, 2009

Divagaciones sobre Ogre, consolas y hasta los etcéteras

El calor es realmente indecente aquí. Así que en casa apenas puedo trabajar los fines de semana pues mi cuarto parece una sauna. En apenas 5 minutos le disco duro alcanza 43 grados. En la oficina no dispongo del hardware necesario, por lo que mis períodos improductivos son largos.
Solo me queda pensar y satisfacer mi curiosidad. Por ejemplo, me planteaba la factibilidad de desarrollar para consolas (eso es una masturbación mental MUY grande). Este es un campo plagado de opiniones contradictorias, pero hay una que emerge con cierta ventaja: PS3 es muy difícil de aprovechar al máximo. A ver, tenemos un artefacto con 8 núcleos, que requiere un trabajo demencial de optimización mediante hilos. Podríamos, digamos, usar un SPU para IA y otro para físicas, lo gráficos por descontado que van por el suyo, y aún así el Cell har;ia gárgaras con todo esto mientras se echa fresco en los testículos. Por su parte Xbox es un poco menos complejo, solo tres núcleos (hablo de memoria aquí, así que podría estar errado), tiene un chip de video al estilo de una PC común, corre DirectX, en fin, que con esfuerzo mínimo puedes tener tu juego portado de PC a Xbox.
Hay algunas discusiones acerca de Ogre y consolas en el foro. Había interés por parte de Sinbad de acogerse a los programas de Microsoft y portar el motor a Xbox, pero sólo si había gente interesada. No me refiero a cualquier pelagatos, sino a desarrolladores serios. No sé en qué habrá parado eso.
El caso Ogre vs PS3 es algo más complejo y de ahí no saqué nada en claro. Son muchos los trapos sucios que salen a relucir, ya sean problemas de licencia o técnicos, y cada uno de ellos con dos vertientes. Lo peor aquí es que hay mucho músico de oído, porque el SDK de Sony no es algo al que todo el mundo tenga acceso. Solo logré deducir que sí es posible, escribiendo un renderer para PS3 (que en el fondo usa OpenGL), lo cual no quiere decir que funcione a tope. Hay disímiles opiniones acerca de si Ogre está listo para PS3, su manejo de memoria y su arquitectura poco concurrente parecen ser un lastre muy grande. Algunos sitúan la tarea en un nivel de complejidad solo un poco más bajo que escribir tu propio motor. No lo recomiendo, especialmente porque Sony regala PhyreEngine, que es multiplataforma.

lunes, junio 22, 2009

DNT 0.4

Llevaba un buen tiempo sin echarle un vistazo a este juego y hoy me he quedado sorprendido al ver que ayer liberaron la versión 0.4. Espero que sigan avanzando (un poco más rápido si se puede) y que algún día tengamos un RPG lo más completo y divertido posible.