lunes, octubre 31, 2005

Expansión para WoW

World of Warcraft ya tiene una expansión: The burning crusade. Varios sitios que cubrían la Blizzcon publicaron la noticia el pasado día 28 (Gamespot tiene una galería de imágenes). Las mejoras más significativas son el aumento del nivel máximo a 70, dos nuevas razas (incluyendo los blood elves) y un nuevo continente, Outlands.
Otro hecho interesante, se esperaba que durante la feria Blizzard anunciara el Diablo 3. Sin embargo no fue así. Obviamente, se están tomando las cosas con calma. Especialmente ahora que WoW es una fuente de ingresos estable (por el momento). Y es que la Blizzard tiene bastante tela por donde cortar. Pocas compañías pueden vanagloriarse de tener tres franquicias capaces de vender millones de copias en una semana. Lo que que venga, ya sea Starcraft 2 o Diablo 3, no durará mucho en los estantes.

Tags: ,

domingo, octubre 30, 2005

Sony Online anuncia que lanzará un MMORPG gratis

Al parecer se está haciendo muy difícil convencer a los jugadores de pagar las suscripciones, a pesar de que están bastante bajas, en mi opinión. Si exceptuamos, claro, a WoW.
Así que Sony Online planea lanzar un título gratis, basado en el modelo de negocios de la mayoría de los MMORPG asiáticos (como Mu Online). Los ingresos provendrán del acceso a nuevos contenidos o la venta de ítems especiales. Interesante.
Evidentemente el modelo basado en suscripciones ya no es tan sostenible.

Tags: ,

sábado, octubre 29, 2005

La lista

Gracias a Maykel Moya, por descubrir este blog dedicado a nuestra lista de discusión cubana sobre software libre: La Lista.

Cambios en el proyecto

No sé si realmente esto pudiera llamarse proyecto. Pero había que poner algo explícito en el título.
Hoy me di a la tarea de cambiar la estructura de archivos. Ya se hacía muy molesto borrar los ejecutables para poder generar ambos programas otra vez, incluso cuando sólo había que recompilar uno de ellos. Separé el cliente del servidor, cada uno con su makefile independiente. Ambos tienen en común el directorio de cabeceras. Mi primera idea fue usar las autotools y generar un configure. Definitivamente una pérdida de tiempo. Así que me quedé con mis viejos makefiles hechos a mano.
En Windows, usé el DevCpp para crear el proyecto del cliente. Compila, pero por alguna razón da un fallo de segmentación, algo que no puedo explicarme porque el cliente funciona perfecto en Linux. No acabo de entenderme con el debugger de DevCpp para encontrar el punto exacto de la explosión. Tal vez tenga que volver a Visual C.
Estoy trabajando en el movimiento del jugador por el mapa. Aún no implemento la verificación del lado del servidor, pues tengo esperanzas de encontrar quien se haga cargo de hacer un cliente 3d mínimamente decente. Si me quedan ánimos después, trabajaré en implementar ciertas adiciones al protocolo: ahora cada paquete enviado por el cliente llevará el id del jugador. No acabo de definir exactamente como encaja el contador de paquetes en todo esto, pero también incluiré ese valor, para prevenir que el cliente o servidor utilicen paquetes en el orden incorrecto (es perfectamente posible que un paquete B llegue antes que su antecesor A).

Tags: ,

viernes, octubre 28, 2005

Impresiones acerca de la última actualización de Planeshift

Sith happens, como decía alguien por ahí. Las cosas no han salido muy bien luego de esta actualización que incluía arreglos al cliente y al servidor de Planeshift. No me detendré a detallar los problemas, porque los míos son sólo una fracción de los que parece haber. Nada más ver el forum se le caen las alas del corazón a cualquiera. penoso, porque el juego va muy bien. Y digo va porque doy por descontado que estos problemillas se resolverán.
Así que a esperar. Y venga, a ver si alguien se anima a echarme una mano con mi proyecto.

miércoles, octubre 26, 2005

Más sobre EBMAS

Hace un tiempo les mencioné mi primera sesión de entrenamiento de EBMAS. Me habían quedado algunas dudas que ya aclaré un poco. En primer lugar, el maestro Boztepe ha diseñado un sistema más agresivo que el Win Tsung tradicional, esa es la diferencia más importante.
En cuanto a la verticalidad de los puños, pues según ciertas cuentas chinas, el brazo recorre menos espacio (cosas de las artes marciales asiáticas). lo queno quiere decir que no haya golpes como el swing lateral o gancho desde abajo. Pero todo sale desde el frente, nunca se coge impulso desde atrás. Ya he mejorado un poco el golpeo y la posición de los codos aunque me queda mucho aún por avanzar, pues todavía me quedan huecos desprotegidos en la línea central.

lunes, octubre 24, 2005

Actualziación de Planeshift

El fin de semana el servidor de Planeshift estuvo (creo que aún está) caído. El problema se debe a que hay una nueva actualización, de ambos lados, cliente y servidor.

Tags: ,

Creando el cliente

El proyecto avanza y se está haciendo más confuso que un plato de spaghetti sin señalizaciones. Empiezan a hacerse necesarias algunas cosillas como una caché de objetos para centralizar el almacenamiento de las texturas y modelos y permitir que estén accesibles desde diversos componentes. Por el momento una clase sencilla se encarga de mostrar el mapa, más o menos así:

Estoy valorando la opción de pasar el servidor a C++. Hay mucho código compartido con el programa cliente.

Tags: ,

HVC de 3.9 terabytes

En estos días se ha estado comentando acerca de un posible competidor ante el cual los HD-DVD y Blue Ray serían simples monederos de los chiquitos, donde apenas cabe el menudo para coger la guagua. Y es que el disco holográfico apunta a guardar como mínimo 3.9 terabytes, o 200 gigabytes en una tarjeta. La velocidad de transferencia podría alcanzar hasta 1 Gb.
Esta es una foto del disco:


Impresionante ¿no? Si alguien no sabe qué hacer con 3 terabytes, pues a mí se me ocurren algunas cosillas que guardar ahí como:
  • Las dos trilogías en calidad dvd (ya saben de cuál estoy hablando ¿o no? Sólo hay una "dos trilogías")
  • La trilogía de Matrix (aunque la última no vale los megas que ocupa)
  • El señor de ya ustedes saben qué
  • Todas las temporadas de 24 horas

Tags:

viernes, octubre 21, 2005

Informe demográfico sobre desarrolladores

La IGDA ha realizado un análisis sobre la demografía y diversidad de los desarrolladores de juegos. Los pdfs con el resultado completo pueden descargarse ahí, pero en resumen, las encuestas arrojan los siguiente: un 88.5% de los desarrolladores son hombres, la mayoría blancos, 83.3%, seguidos por los asiáticos, 7.5%. De ellos el 80% tiene título universitario. La edad promedio es 31 años y el 13% tiene alguna discapacidad

jueves, octubre 20, 2005

Microsoft reinventa la rueda: licencias "casi" GPL

Microsoft ha publicado varias licencias, dos de ellas, La Microsoft Permisive License y la Microsoft Community License, cumplen los requisitos de la Definición de Software Libre. Tal como destaca el artículo, no es nada adecuado que cada compañía empiece a lanzar sus propias versiones de la GPL, pero luego de criticarla con más saña que la Caperucita Roja al Lobo, no iban a darle su apoyo liberando código bajo tal denominación.
Y para dejar bien claro que no tiene nada que ver unas cosas con las otras, dicen que por el momento no solicitarán la aprobación de la OSI.
Leo en lso comentarios de este post de Ricardo Galli, que tal vez lo que se porponen los de Redmond es liberar porciones de .net bajo alguna licencia de este tipo para desbancar a Java, y por tanto, a Sun Microsystems.
Timeo Danaos et dona ferentes...

DevCpp

Tenía instalado DevCpp desde hace un buen tiempo, pero lo había usado poco. Generalmente era un poco molesto obtener paquetes de desarrollo para poder utilizarlo en un proyecto medianamete decente. Sin embargo, hoy decidí echarle un vistazo porque Scourge no trae un proyecto para Visual C, pero sí para DevCpp. Me di una vuelta por su herramienta de actualización y resulta que sí hay un repositorio de paquetes muy bien provisto, incluyendo Irrlicht 0.11 y Ogre, por hablar solamente de motores 3d. El actualizador no solamente incluye paquetes, sino también las herramientas del entorno como gcc, binutils, etc.
Así que instalé la última versión: 4.9.9.2 y pienso probarla más a fondo y familiarizarme con ella. Si voy a utilizar software libre, pues voy a hacerlo en grande, que no es esencial tener Linux para usarlo.

Tags:

miércoles, octubre 19, 2005

Soporte para Lua en SWIG

Desde hace unos días se venía mencionando esto en la lista de discusión de Lua y hoy circuló el anuncio oficial, aunque algo atrasado porque es del día 15. La versión 1.3.27 de SWIG incluye soporte para Lua. SWIG es una herramienta que parsea cabeceras de C/C++ y genera el código necesario exportar funciones y variables a unos 10 lenguajes como Python, Ruby, etc. ¿Ventajas? un producto bastante maduro, que incluye un parser de C más completo que las opciones disponibles hasta el momento (tolua, luabind y otros), lo que ahorra generar versiones trasquiladas o ficheros específicos.
Y de paso, si aún no te decides a probar SWIG, tolua++ 1.0.7 está disponible.

Tags: ,

Open AL 1.1 ya disponible para Windows

Usualmente los desarrolladores la obtenemos vía CVS en Linux. Pero Garin anunció hoy la disponibilidad del SDK versión 1.1 para Windows. Enjoy!

Tags: ,

martes, octubre 18, 2005

No he estado holgazaneando

Aunque el resultado deja mucho que desear. En estos dos días he dedicado un tiempo al asunto de la cámara en tercera persona. Sin embargo aún no me he estudiado a fondo los artículos que sugerí en la anotación anterior. En esencia esto que ven aqui:

es más o menos inútil por el momento. Ni siquiera el ángulo es el adecuado. Por otra parte, he probado ser un desastre también como diseñador web, pueden comprobarlo aquí, es una página que estoy haciendo para una amiga.

sábado, octubre 15, 2005

ATI sobrepasa a Nvidia en rendimiento Open GL

Un milagroso hack al driver de ATI ha logrado un aumento de rendimiento del 30% y mejor manejo de memoria, según dicen los ingenieros de esta compañia. Ahora una tarjeta de 16 pipelines sobrepasa a su competidora de 24. Tendremos esta nueva característica disponible en la versión 5.11 de Catalyst. Espero que haga algún efecto en mi Radeon 9800 pro.
A ver si esto le da un respiro a ATI, que siempre va por detrás de Nvidia.

Tags: , , ,

Weasel Reader

Hace algún tiempo probé un lector de documentos para Palm llamado Plucker. Sin embargo, crearse documentos era bastante molesto. Con motivo de un mensaje en una lista y considerando que diariamente pierdo un par de horas en las paradas de autobuses, de mi casa a la oficina y de la oficina a la casa, me di a la tarea de encontrar una solución para aprovechar este tiempo leyendo algo de mi copiosa (o debiera decir copiada) biblioteca digital. Luego de un poco de búsqueda encontré el Weasel Reader. Weasel Reader incluye una simple herramienta para convertir a ztxt y tal vez su desventaja mayor sea que solo opera sobre archivos texto.
Su formato ztxt es comprimido, algo importantísimo ya que solo cuento con dos miserables megas. Muy buen programa, y es software libre por supuesto.

viernes, octubre 14, 2005

Gaim 2.0

En estos días el Gaim ha recibido bastante publicidad, al ser contratado Sean Egan por Google. No entraré en detalles acerca de la importancia de que Sean esté trabajando en llevar el soporte de voz a otros clientes. Sin embargo, en el sitio web de Gaim se habla un poco acerca de la versión 2.0.0 y lo que no se ha comentado es que ya se ha iniciado el proceso de mezclar el cliente oficial con gaim-vv. El esperado soporte para video y voz (para Yahoo y MSN si no me equivoco) ya está en camino, aunque no esperen maravillas.

Tags:

Dependencias

Las dependencias son como un saco en el que cabe cualquier cosa. Lo molesto es que por ciertas razones a veces no puedes compartir el saco ya lleno con tus futuros usuarios. Digamos que te encuentras una excelente biblioteca que maneja ciertas operaciones X que debes hacer en tu juego y la utilizas para ahorrarte un montón de trabajo. Genial. Pero sucede que quien descargue tu juego para usarlo en Linux también tendrá que conseguirse esa biblioteca.
Esto puede parecer fácil, pero en ocasiones es todo un problema. Puede ser que no haya un paquete para la distribución del usuario. Puede ser que por alguna razón no compile correctamente. Puede ser que a su vez esa biblioteca tenga otras dependencias y eso nos lleva de vuelta al puede ser inicial. O aún peor, el usuario puede no ser root.
Ten en mente que estás programando un juego. El proceso de obtenerlo y echarlo a andar no debe ser tan complicado, o muchos usuarios terminarán por descartarlo antes de haberlo probado. Trata de conocer las distros disponibles y qué conjunto de paquetes vienen incluidos en los CDs de instalación. Si no puedes evitar algunas dependencias exóticas, entonces al menos trata de proporcionar enlaces a dónde obtenerlas en todos los empaquetados posibles.
Siempre planifica un conjunto inicial de dependecias mínimo. No deberías necesitar más que SDL y sus bibliotecas adicionales (disponible en todas las distros), algo para la interfaz de usuario, alguna bibli0oteca de manejo de archivos de sonido como ogg vorbis y tal vez algún parser de xml, que las hay a montones como parte estándar de las distribuciones actuales. Cualquier cosa extra te está ahorrando tiempo de programación, pero está agregando tiempo de instalación del lado del usuario final, que es a quien, en definitiva, estás tratando de hacer que pase un buen rato.


Tags: ,

jueves, octubre 13, 2005

Corregido el enlace

Ya está funcionando el enlace al tutorial. Aunque filefront me reportaba que los archivos estaban ahí, realmente no estaban, acabo de recargarlo.

miércoles, octubre 12, 2005

Cámara en tercera persona

Ayer inicié el trabajo para implementar una cámara en tercera persona (siguiendo al personaje desde atrás), que parece ser la más popular en los juegos de rol online. De inmediato me percaté que no tenía el suficiente bagaje matemático para deducir cómo desplazar y rotar la cámara. Lo primero que hice fue preguntar y he aquí el resultado, que aún no acabo de entender del todo. Además encontré el artículo en NeHe que menciona Scott. Desgraciadamente no sé cuánto tiempo me tomará implementar algo que funcione.

Tags: ,

martes, octubre 11, 2005

Primer tutorial simple de SDL

Esto es un ejemplo muy básico del trabajo con SDL en C. Cubre las operaciones mínimas que deberás hacer en todo juego: inicializar un modo de video, cargar un par de imágenes, usar una de ellas como fondo y mover la otra usando las teclas del cursor. Igualmente el ejemplo implementa un sencillo contador de cuadros que se muestran por cada segundo. Está bastante comentado y en español, así que creo que no hace falta que me extienda mucho más en esta anotación. Les debo el proyecto de Visual C.
Sólo un comentario adicional acerca del uso de while y no if al procesar eventos. Si se fijan, aclaro bien que es un grave error utilizar if. ¿Por qué? pues porque en ese caso por cada cuadro estaríamos procesando un solo evento. Créeme que no querrás que eso pase, ya cometí esa estupidez una vez. Usando while procesarás todos los eventos pendientes en cada vuelta del lazo principal, ese es el modo correcto de hacerlo.
Disponible para descarga aquí.

Tags: ,

Fotorealismo

En Joystick me encuentro una anotación que lleva a este artículo sobre el fotorrealismo en los juegos. El nivel de detalle gráfico se incrementa un poco con cada juego que sale, y por supuesto, también los requerimientos de hardware. ¿Hasta qué punto vamos a llegar? Sin embargo, no encontramos la misma creatividad e innovación en los modos de juego.
Todo el mundo parece quejarse de esto. Pero si vamos un poco más profundo, solo podríamos culpar de esta tendencia a nosotros mismos, tal y como plantea el artículo. Cuando alguien nos habla de un nuevo juego, lo primero que preguntamos es ¿cómo se ve? Hace unos 12 años lo primero que preguntábamos era ¿cómo se juega? porque básicamente todo se veía igual: algunos montoncitos de píxeles moviéndose en dos dimensiones. Todos queríamos ver el Doom 3, aunque las adiciones al modo de jugarlo eran mínimas. En cambio se esperaba que la tecnología gráfica fuera impresionante (en mi opinión, muy mal aprovechada y demasiado exagerada, pero eso es otra historia). Apenas salió ahí estábamos nosotros a la espera, babeados, esperando echarle mano para probarlo y ver los nuevos monstruos.
Vale la pena echarle un vistazo al análisis que hace el autor de este artículo al tema.

Tags:

lunes, octubre 10, 2005

Enrique Núñez

He podido adquirir gracias a mi mamá, que lo obtuvo de mi hermana, las memorias del Maestro Enrique Núñez Rodríguez. Maestro con mayúsculas, del humorismo cubano, fallecido hace unos meses. No tengo palabras para expresar el gozo que produce leer esta autobiografía. Baste decir que es como tenerlo aún vivo entre nosotros revelándonos las anécdotas que no podía regalarnos desde la TV en aquellos breves minutos con Héctor Rodríguez.
Conocí la obra de Núñez Rodríguez hace muchísimo tiempo, cuando compartía una página del Juventud Rebelde dominical con nada más y nada menos que el Premio Nobel Gabriel García Márquez. Si algo lamento es lo poco que lo disfrutamos los de mi generación, pues no era un humorista de espectáculos teatrales, tuvo muy poco espacio en la prensa escrita y recién hace unos años tuvo algunas apariciones en la televisión, que mi padre y yo seguíamos con fidelidad propia de las fanáticas de Backstreet Boys. Su época dorada fue en la radio de antes del 59 y en los primeros años de la Revolución. Por alguna razón, en los 90 su obra no recibió la divulgación que merecía o yo no estaba en el lugar adecuado para tener acceso a ella.
Para el Maestro, dondequiera que esté, el más sincero homenaje de este admirador suyo.

California acepta ley contra juegos violentos

Hoy, el Gobernador Arnold Schwarzenegger firmó una legislación que prohíbe la venta a menores de juegos que contengan violencia o sexo explícito.

viernes, octubre 07, 2005

Al fin tengo

Ayer al llegar a casa y realizar las operaciones rutinarias de dejar las llaves y el dinero sobre mi armario me encontré con un telegrama de notificación de que debía presentarme en el correo a recoger un bulto. Nadie me había avisado del telegrama y usualmente tardo en percatarme de los cambios en mi cuarto, o mejor dicho, la mitad de la sala que uso para dormir.
No tenía idea de quién podía haberme mandado un paquete porque es una alegría que no recibo desde hace años. Al fin recordé que podía ser la camiseta de los Lores del Sith, que amablemente Erein se ofreció a comprarme y enviarme desde España. Los colegas de la lista pudieron lucirla el día del estreno en Madrid, pero yo llegué un poco tarde al baile.

jueves, octubre 06, 2005

Ya me alisté ¿y ahora qué?

Pues ya aprendí C, ¿qué hago ahora? Pues bien, programar juegos no es exactamente como tus clases de Análisis y Diseño de Algoritmos. En primer lugar sería bueno que hubieses aprobado esas clases y cuando te mencionen un árbol o algo de eso, tengas una idea mínima y no lo confundas con ese objeto vegetal blanco de las meadas de los caninos.
Hay muy buenos lugares donde encontrar información relativa a la creación de juegos y el primero de ellos es indudablemente Gamedev. No tanto por su colección de artículos, como por sus foros. Hay un montón de buenos programadores que pueden echarte una mano con consejos útiles de casi cualquier tema, sin contar un inmenso caudal de información que ya está ahí disponible. Imitado por muchos, pero aún insuperable.
Suponiendo que quieras algo más tangible, como tutoriales, el sitio a visitar es Game Tutorials. Excelentes y portables, lo mismo puedes probarlos en Windows que en Linux. La única desventaja es que algunos temas muy difíciles de encontrar (el único tutorial que he visto de cómo cargar animaciones desde archivos 3ds) sólo están disponibles en un CD que venden.
Para aprender Open GL el sitio #1 es nehe.gamedev.net y su contraparte nexe.gamedev.net para Direct X.
Flipcode era un buen sitio, que lamentablemente cerró, aunque la información y foros siguen ahí.Otro buen forum, con algunos artículos interesantes está en DevMaster.
Sólo me faltaría agregar a esta lista algún sitio con información en español, pero por ahora se los debo.


Tags: ,

miércoles, octubre 05, 2005

Autodesk compra Alias

Autodesk, los dueños de 3D Max, ahora poseen también Maya: Autodesk - Autodesk and Alias Announcement

Escoger un lenguaje de programación

Una de las primeras preguntas que se hacen los que quieren iniciarse en la programación de juegos es qué lenguaje es el más adecuado. Un consejo, si aún no has aprendido un lenguaje, para empezer no deberías estar pensando en programar juegos. Pero como sé que van a ignorar esta advertencia pues seguimos adelante. En realidad puedes hacer un juego en casi cualquier lenguaje, hasta en ensamblador. Pero hay varias opciones que son más adecuadas que las demás.
La elección de las mayorías es C/C++. C genera un código bien optimizado, lo que se traduce en ejecutables muy rápidos. Es portable, hay compiladores de C para cualquier plataforma que te puedas imaginar. La mayoría de las bibliotecas están hechas en C, aunque los proyectos más importantes siempre cuentan con enlaces a otros lenguajes. Su mayor desventaja es que es más molesto de aprender que los demás lenguajes, pero hay un detalle y es que no necesitas conocer a fondo todos los puntos oscuros de C para poder desarrollar con cierta eficiencia. Es el camino largo y difícil, pero vale la pena al final. Además, suena muy bien decir "programo en C". Es como decir que hablas chino o eres maestro de kung fu.
Otra opción es Java. Pero Java es ejecutado por una máquina virtual y puede ser lento. Mis experiencias como usuario de aplicaciones Java no ha sido muy gratificante, sin mencionar que no es parte de un sistema estándar, ni windows ni de la mayoría de las distros linux (luego hablaré acerca de por qué debes evitar las dependencias exóticas). Es recomendable si quieres hacer algo basado en web. Al igual que C, es muy portable.
Ultimamente Python se está haciendo muy popular. Su mayor desventaja es ser interpretado. En Windows puede compilarse a ejecutable. Es más fácil de aprender que C y el tiempo de desarrollo es menor, lo que lo hace muy atractivo. Posee sus propias bibliotecas como PyGame y Soya3d. En general es la mejor opción si quieres partir de cero y llegar a algo rápido.
Estos tres lenguajes disponen de un buen arsenal de bibliotecas, ya sean orientadas a la creación de juegos o auxiliares, y cumplen la condición de permitir desarrollo multiplataforma. Mi elección personal es C/C++, pero siempre es bueno probar varios lenguajes y ver con cuál nos va mejor.
Es muy importante además familiarizarnos con algún lenguaje adicional que sirva para hacer scripting incrustado. Yo uso Lua, Python es nuevamente una opción en esta categoría, aunque algunos (yo incluido) lo consideran un poco pesado.

Tags: ,

lunes, octubre 03, 2005

Hay que aprovechar al máximo las situaciones



Bush de visita en New Orleans. Hay que ver que este tío no pierde tiempo para vacacionar hasta en las peores crisis.